diff --git a/docs/features.txt b/docs/features.txt index c302f2bd5b6..ad498905cb7 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -90,7 +90,7 @@ GL 3.2, GLSL 1.50 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llv GL_ARB_draw_elements_base_vertex (Base vertex offset) DONE (v3d, vc4, panfrost, lima, asahi) GL_ARB_fragment_coord_conventions (Frag shader coord) DONE (v3d, vc4, panfrost, lima, asahi) GL_ARB_provoking_vertex (Provoking vertex) DONE (v3d, vc4, panfrost, lima, asahi) - GL_ARB_seamless_cube_map (Seamless cubemaps) DONE (panfrost) + GL_ARB_seamless_cube_map (Seamless cubemaps) DONE (panfrost, asahi) GL_ARB_texture_multisample (Multisample textures) DONE (freedreno/a5xx+, v3d, vc4, panfrost) GL_ARB_depth_clamp (Frag depth clamp) DONE (panfrost) GL_ARB_sync (Fence objects) DONE (v3d, vc4, panfrost, lima) diff --git a/src/asahi/lib/cmdbuf.xml b/src/asahi/lib/cmdbuf.xml index 76f620efee5..1e43178b9ca 100644 --- a/src/asahi/lib/cmdbuf.xml +++ b/src/asahi/lib/cmdbuf.xml @@ -291,6 +291,7 @@ + diff --git a/src/gallium/drivers/asahi/agx_pipe.c b/src/gallium/drivers/asahi/agx_pipe.c index f5c157392a5..f155acfd5ea 100644 --- a/src/gallium/drivers/asahi/agx_pipe.c +++ b/src/gallium/drivers/asahi/agx_pipe.c @@ -1270,6 +1270,8 @@ agx_get_param(struct pipe_screen* pscreen, enum pipe_cap param) case PIPE_CAP_TEXTURE_MULTISAMPLE: case PIPE_CAP_SURFACE_SAMPLE_COUNT: case PIPE_CAP_SAMPLE_SHADING: + case PIPE_CAP_SEAMLESS_CUBE_MAP: + case PIPE_CAP_SEAMLESS_CUBE_MAP_PER_TEXTURE: return is_deqp; case PIPE_CAP_COPY_BETWEEN_COMPRESSED_AND_PLAIN_FORMATS: @@ -1318,8 +1320,6 @@ agx_get_param(struct pipe_screen* pscreen, enum pipe_cap param) case PIPE_CAP_TGSI_TEXCOORD: case PIPE_CAP_FS_FACE_IS_INTEGER_SYSVAL: case PIPE_CAP_FS_POSITION_IS_SYSVAL: - case PIPE_CAP_SEAMLESS_CUBE_MAP: - case PIPE_CAP_SEAMLESS_CUBE_MAP_PER_TEXTURE: return true; case PIPE_CAP_FS_COORD_ORIGIN_LOWER_LEFT: case PIPE_CAP_FS_COORD_PIXEL_CENTER_INTEGER: diff --git a/src/gallium/drivers/asahi/agx_state.c b/src/gallium/drivers/asahi/agx_state.c index f37c9e1b945..cf045645e34 100644 --- a/src/gallium/drivers/asahi/agx_state.c +++ b/src/gallium/drivers/asahi/agx_state.c @@ -407,6 +407,14 @@ agx_create_sampler_state(struct pipe_context *pctx, cfg.wrap_r = agx_wrap_from_pipe(state->wrap_r); cfg.pixel_coordinates = state->unnormalized_coords; cfg.compare_func = agx_compare_funcs[state->compare_func]; + + /* Only support seamless cube maps if we advertise GLES3. Works around a + * mesa/st bug where seamless_cube_map is set in GLES2 contrary to the + * spec. When we advertise GLES3, this check can be removed. + */ + cfg.seamful_cube_maps = + !(agx_device(pctx->screen)->debug & AGX_DBG_DEQP) || + !state->seamless_cube_map; }