From 12137e9b00436eee3bf27f7a2fc5106513af8981 Mon Sep 17 00:00:00 2001 From: Jay Kwak <82421531+jkwak-work@users.noreply.github.com> Date: Fri, 30 Aug 2024 07:35:01 -0700 Subject: Fix redundant decorations in IRParam (#4964) * Fix redundant decorations in IRParam Closes #4922 The problem was that same decorations were added to an IRParam multiple times while running `specializeIRForEntryPoint()`. `cloneGlobalValueWithCodeCommon()` kept cloning decorations for the params that were already processed. --- tests/bugs/gh-4922-nointerpolation.slang | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 tests/bugs/gh-4922-nointerpolation.slang (limited to 'tests') diff --git a/tests/bugs/gh-4922-nointerpolation.slang b/tests/bugs/gh-4922-nointerpolation.slang new file mode 100644 index 000000000..3619aae0b --- /dev/null +++ b/tests/bugs/gh-4922-nointerpolation.slang @@ -0,0 +1,15 @@ +//TEST:SIMPLE(filecheck=HLSL): -target hlsl -entry main +//TEST:SIMPLE(filecheck=GLSL): -target glsl -entry main + +// This test checks if `nointerpolation` is emitted more than once +//HLSL-NOT:nointerpolation nointerpolation +//GLSL-NOT:flat flat + +[shader("pixel")] +void main(out float4 SV_Target : SV_Target, const in nointerpolation float4 color : color) +{ + for (int i = 0; i < 10; ++i) + {} + + SV_Target = color; +} -- cgit v1.2.3