zink: set compareEnable when setting compareOp
authorErik Faye-Lund <erik.faye-lund@collabora.com>
Mon, 20 Jan 2020 16:35:55 +0000 (17:35 +0100)
committerMarge Bot <eric+marge@anholt.net>
Tue, 28 Jan 2020 21:04:26 +0000 (21:04 +0000)
We need to enable compareEnable for compareOp to be valid, and ANV was
recently updated to respect this. So let's update Zink to match.

This fixes the shadow-variants of several piglit regressions, like these:
spec@arb_shader_texture_lod@execution@tex-miplevel-selection
spec@glsl-1.20@execution@tex-miplevel-selection

Fixes: a19cdf989b1 ("anv: only use VkSamplerCreateInfo::compareOp if enabled")
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3473>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3473>

src/gallium/drivers/zink/zink_context.c

index f79e289727d61a253edadb2e5ecffe33bc652e01..f2b9044bc2bc7e471bca40a53913c90fdf654490 100644 (file)
@@ -140,8 +140,10 @@ zink_create_sampler_state(struct pipe_context *pctx,
 
    if (state->compare_mode == PIPE_TEX_COMPARE_NONE)
       sci.compareOp = VK_COMPARE_OP_NEVER;
-   else
+   else {
       sci.compareOp = compare_op(state->compare_func);
+      sci.compareEnable = VK_TRUE;
+   }
 
    sci.borderColor = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK; // TODO
    sci.unnormalizedCoordinates = !state->normalized_coords;