From 05f0f5603561daed2c134e13bc64649362759968 Mon Sep 17 00:00:00 2001 From: davli-nv Date: Wed, 20 Aug 2025 17:30:44 -0700 Subject: Implement SV_VulkanSamplePosition (#8236) -Adds semantic SV_VulkanSamplePosition that emits corresponding gl_SamplePosition and SpvBuiltinSamplePosition -Adds gl_SamplePosition property to glsl.meta.slang -Adds SPIRV and GLSL tests for the semantic and property -Plan is to later implement SV_SamplePosition that follows HLSL range of -0.5 to +0.5, and emits GetRenderTargetSamplePosition(SV_SampleIndex) which needs more complicated IR manipulation for HLSL and Metal Fixes #7906 --------- Co-authored-by: ArielG-NV <159081215+ArielG-NV@users.noreply.github.com> --- source/slang/slang-emit-spirv.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'source/slang/slang-emit-spirv.cpp') diff --git a/source/slang/slang-emit-spirv.cpp b/source/slang/slang-emit-spirv.cpp index aa4c3bec8..6b42896d0 100644 --- a/source/slang/slang-emit-spirv.cpp +++ b/source/slang/slang-emit-spirv.cpp @@ -6182,6 +6182,11 @@ struct SPIRVEmitContext : public SourceEmitterBase, public SPIRVEmitSharedContex requireSPIRVCapability(SpvCapabilitySampleRateShading); return getBuiltinGlobalVar(inst->getFullType(), SpvBuiltInSampleId, inst); } + else if (semanticName == "sv_vulkansampleposition") + { + requireSPIRVCapability(SpvCapabilitySampleRateShading); + return getBuiltinGlobalVar(inst->getFullType(), SpvBuiltInSamplePosition, inst); + } else if (semanticName == "sv_stencilref") { requireSPIRVCapability(SpvCapabilityStencilExportEXT); -- cgit v1.2.3