Mesa (staging/19.3): radv: only use VkSamplerCreateInfo::compareOp if enabled

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jan 15 20:22:15 UTC 2020


Module: Mesa
Branch: staging/19.3
Commit: f167aab11db9c521a4de9dfc576a70736f7820fb
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f167aab11db9c521a4de9dfc576a70736f7820fb

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Tue Jan 14 18:03:29 2020 +0100

radv: only use VkSamplerCreateInfo::compareOp if enabled

Cc: <mesa-stable at lists.freedesktop.org>
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2350
Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3392>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3392>
(cherry picked from commit 5ff12322c9d79780bf4f655aad831e4acb744ee7)

---

 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 80d945dc613..2db0cc9ac96 100644
--- a/src/amd/vulkan/radv_device.c
+++ b/src/amd/vulkan/radv_device.c
@@ -6562,6 +6562,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,
@@ -6569,11 +6570,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) |



More information about the mesa-commit mailing list