From 0d98343eca418dde9c0c0329207fd199fee02788 Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 25 Oct 2024 10:20:16 +0100 Subject: [PATCH] Check for geometry feature with prim ID shader --- renderdoc/driver/vulkan/vk_shader_cache.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/renderdoc/driver/vulkan/vk_shader_cache.cpp b/renderdoc/driver/vulkan/vk_shader_cache.cpp index 85047d0e0..bcc06e0d2 100644 --- a/renderdoc/driver/vulkan/vk_shader_cache.cpp +++ b/renderdoc/driver/vulkan/vk_shader_cache.cpp @@ -35,6 +35,7 @@ enum class FeatureCheck NonMetalBackend = 0x4, FormatlessWrite = 0x8, SampleShading = 0x10, + Geometry = 0x20, }; BITMASK_OPERATORS(FeatureCheck); @@ -110,7 +111,7 @@ static const BuiltinShaderConfig builtinShaders[] = { rdcspv::ShaderStage::Compute), BuiltinShaderConfig(BuiltinShader::PixelHistoryPrimIDFS, EmbeddedResource(glsl_pixelhistory_primid_frag), - rdcspv::ShaderStage::Fragment), + rdcspv::ShaderStage::Fragment, FeatureCheck::Geometry), BuiltinShaderConfig(BuiltinShader::ShaderDebugSampleVS, EmbeddedResource(glsl_shaderdebug_sample_vert), rdcspv::ShaderStage::Vertex), BuiltinShaderConfig(BuiltinShader::DiscardFS, EmbeddedResource(glsl_discard_frag), @@ -189,6 +190,14 @@ static bool PassesChecks(const BuiltinShaderConfig &config, const VkDriverInfo & return false; } + if(config.checks & FeatureCheck::Geometry) + { + if(!features.geometryShader) + { + return false; + } + } + if(config.stage == rdcspv::ShaderStage::Geometry && !features.geometryShader) return false;