From 83675103a1a4fefde11b314aed26f4d37860efe7 Mon Sep 17 00:00:00 2001 From: davli-nv Date: Tue, 5 Aug 2025 10:55:52 -0700 Subject: Implement SPV_EXT_fragment_invocation_density (SPV_NV_shading_rate) (#8037) * Implement SPV_EXT_fragment_invocation_density -Adds semantics SV_FragSize and SV_FragInvocationCount and implements them for SPIRV and GLSL using the appropriate target builtins from extensions. -Adds test case checking for expected target builtins from these semantics. -For future work, could implement SV_FragSize using pixel shader input SV_ShadingRate for HLSL, and SV_FragInvocationCount needs research. Fixes #7974 Generated with Claude Code * address review feedback https://github.com/shader-slang/slang/pull/8037#pullrequestreview-3084645845 * fixup format * review feedback https://github.com/shader-slang/slang/pull/8037#pullrequestreview-3086442819 --- tests/glsl/fragment-invocation-density-glsl.slang | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 tests/glsl/fragment-invocation-density-glsl.slang (limited to 'tests/glsl') diff --git a/tests/glsl/fragment-invocation-density-glsl.slang b/tests/glsl/fragment-invocation-density-glsl.slang new file mode 100644 index 000000000..7cee4620b --- /dev/null +++ b/tests/glsl/fragment-invocation-density-glsl.slang @@ -0,0 +1,15 @@ +//TEST:SIMPLE(filecheck=CHECK-GLSL): -target glsl -stage fragment -entry main + +// Test for EXT_fragment_invocation_density support (gl_FragSizeEXT and gl_FragInvocationCountEXT ) +import glsl; + +layout(location = 0) out highp vec4 FragColor; + +void main() +{ + // CHECK-GLSL: #extension GL_EXT_fragment_invocation_density : require + // CHECK-GLSL-DAG: gl_FragSizeEXT + // CHECK-GLSL-DAG: gl_FragInvocationCountEXT + + FragColor = vec4(gl_FragSizeEXT.x, gl_FragSizeEXT.y, gl_FragInvocationCountEXT, 1.0); +} \ No newline at end of file -- cgit v1.2.3