Check for geometry feature with prim ID shader

This commit is contained in:
baldurk
2024-10-25 10:20:16 +01:00
parent b1dbfb7aa2
commit 0d98343eca
+10 -1
View File
@@ -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;