From 5ff12322c9d79780bf4f655aad831e4acb744ee7 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Tue, 14 Jan 2020 18:03:29 +0100 Subject: [PATCH] radv: only use VkSamplerCreateInfo::compareOp if enabled Cc: Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2350 Signed-off-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen Tested-by: Marge Bot Part-of: --- src/amd/vulkan/radv_device.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c index b4e840c76ef..a7906919ecd 100644 --- a/src/amd/vulkan/radv_device.c +++ b/src/amd/vulkan/radv_device.c @@ -6700,6 +6700,7 @@ radv_init_sampler(struct radv_device *device, bool compat_mode = device->physical_device->rad_info.chip_class == GFX8 || device->physical_device->rad_info.chip_class == GFX9; unsigned filter_mode = V_008F30_SQ_IMG_FILTER_MODE_BLEND; + unsigned depth_compare_func = V_008F30_SQ_TEX_DEPTH_COMPARE_NEVER; const struct VkSamplerReductionModeCreateInfoEXT *sampler_reduction = vk_find_struct_const(pCreateInfo->pNext, @@ -6707,11 +6708,14 @@ radv_init_sampler(struct radv_device *device, if (sampler_reduction) filter_mode = radv_tex_filter_mode(sampler_reduction->reductionMode); + if (pCreateInfo->compareEnable) + depth_compare_func = radv_tex_compare(pCreateInfo->compareOp); + sampler->state[0] = (S_008F30_CLAMP_X(radv_tex_wrap(pCreateInfo->addressModeU)) | S_008F30_CLAMP_Y(radv_tex_wrap(pCreateInfo->addressModeV)) | S_008F30_CLAMP_Z(radv_tex_wrap(pCreateInfo->addressModeW)) | S_008F30_MAX_ANISO_RATIO(max_aniso_ratio) | - S_008F30_DEPTH_COMPARE_FUNC(radv_tex_compare(pCreateInfo->compareOp)) | + S_008F30_DEPTH_COMPARE_FUNC(depth_compare_func) | S_008F30_FORCE_UNNORMALIZED(pCreateInfo->unnormalizedCoordinates ? 1 : 0) | S_008F30_ANISO_THRESHOLD(max_aniso_ratio >> 1) | S_008F30_ANISO_BIAS(max_aniso_ratio) | -- 2.30.2