From: Alyssa Rosenzweig Date: Wed, 23 Nov 2022 20:24:21 +0000 (-0500) Subject: asahi: Implement anisotropy X-Git-Tag: upstream/23.3.3~15373 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3827c465e1ba6a3799e824ba709c71454d3b56d7;p=platform%2Fupstream%2Fmesa.git asahi: Implement anisotropy Passes KHR-GLES3.texture_filter_anisotropic.* Signed-off-by: Alyssa Rosenzweig Part-of: --- diff --git a/docs/features.txt b/docs/features.txt index ad49890..83786c9 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -235,7 +235,7 @@ GL 4.6, GLSL 4.60 -- all DONE: radeonsi, zink GL_ARB_shader_draw_parameters DONE (i965, llvmpipe, nvc0, d3d12) GL_ARB_shader_group_vote DONE (freedreno/a6xx, i965, nvc0, llvmpipe) GL_ARB_spirv_extensions DONE (freedreno, i965/gen7+, llvmpipe) - GL_ARB_texture_filter_anisotropic DONE (etnaviv/HALTI0, freedreno, i965, nv50, nvc0, r600, softpipe, llvmpipe, d3d12, virgl, v3d, panfrost/g72+) + GL_ARB_texture_filter_anisotropic DONE (etnaviv/HALTI0, freedreno, i965, nv50, nvc0, r600, softpipe, llvmpipe, d3d12, virgl, v3d, panfrost/g72+, asahi) GL_ARB_transform_feedback_overflow_query DONE (i965/gen6+, nvc0, llvmpipe, softpipe, virgl) GL_KHR_no_error DONE (all drivers) diff --git a/src/gallium/drivers/asahi/agx_pipe.c b/src/gallium/drivers/asahi/agx_pipe.c index f155acf..0a1ac94 100644 --- a/src/gallium/drivers/asahi/agx_pipe.c +++ b/src/gallium/drivers/asahi/agx_pipe.c @@ -1249,6 +1249,7 @@ agx_get_param(struct pipe_screen* pscreen, enum pipe_cap param) case PIPE_CAP_OCCLUSION_QUERY: case PIPE_CAP_PRIMITIVE_RESTART: case PIPE_CAP_PRIMITIVE_RESTART_FIXED_INDEX: + case PIPE_CAP_ANISOTROPIC_FILTER: return true; case PIPE_CAP_SAMPLER_VIEW_TARGET: diff --git a/src/gallium/drivers/asahi/agx_state.c b/src/gallium/drivers/asahi/agx_state.c index cf04564..7b9da7b 100644 --- a/src/gallium/drivers/asahi/agx_state.c +++ b/src/gallium/drivers/asahi/agx_state.c @@ -399,6 +399,7 @@ agx_create_sampler_state(struct pipe_context *pctx, agx_pack(&so->desc, SAMPLER, cfg) { cfg.minimum_lod = state->min_lod; cfg.maximum_lod = state->max_lod; + cfg.maximum_anisotropy = util_next_power_of_two(MAX2(state->max_anisotropy, 1)); cfg.magnify_linear = (state->mag_img_filter == PIPE_TEX_FILTER_LINEAR); cfg.minify_linear = (state->min_img_filter == PIPE_TEX_FILTER_LINEAR); cfg.mip_filter = agx_mip_filter_from_pipe(state->min_mip_filter);