radeonsi: add a hack to disable TRUNC_COORD for shadow samplers
authorMarek Olšák <marek.olsak@amd.com>
Tue, 26 May 2020 09:39:08 +0000 (05:39 -0400)
committerMarge Bot <eric+marge@anholt.net>
Tue, 2 Jun 2020 20:47:49 +0000 (20:47 +0000)
This fixes dEQP-GLES3.functional.shaders.texture_functions.textureprojlodoffset.sampler2dshadow_vertex.

This is probably a dEQP bug.

Fixes: d573d1d82524b8a2e5f56938069cabc0f0176a0e
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5209>

src/gallium/drivers/radeonsi/si_state.c

index 808f4af9192e5045ce3eaa64fb3ee04bd327263c..f17e8b57a13e23b41d895e92d966cf92ce090087 100644 (file)
@@ -4479,7 +4479,8 @@ static void *si_create_sampler_state(struct pipe_context *ctx,
    unsigned max_aniso = sscreen->force_aniso >= 0 ? sscreen->force_aniso : state->max_anisotropy;
    unsigned max_aniso_ratio = si_tex_aniso_filter(max_aniso);
    bool trunc_coord = state->min_img_filter == PIPE_TEX_FILTER_NEAREST &&
-                      state->mag_img_filter == PIPE_TEX_FILTER_NEAREST;
+                      state->mag_img_filter == PIPE_TEX_FILTER_NEAREST &&
+                      state->compare_mode == PIPE_TEX_COMPARE_NONE;
    union pipe_color_union clamped_border_color;
 
    if (!rstate) {