From 46b68ed41daecfaf1761e299cf040156e0f65ac0 Mon Sep 17 00:00:00 2001 From: Tim Foley Date: Fri, 15 Dec 2017 14:26:58 -0800 Subject: Add sample-rate-input detection for HLSL. (#312) * Add sample-rate-input detection for HLSL. In the HLSL case, it is possible to do this detection entirely based on declared signatures (it doesn't have a dependency on code generation like the GLSL case does). I've added test cases for the two main ways that a shader can become sample rate: 1. Qualify a fragment input with `sample` 2. Accept an input with the `SV_SampleIndex` semantic In each case I nested the input inside a `struct` to try to match common HLSL idiom, and to make sure that we handle the nested case. This code is *not* robust against shaders that declare such an input and then never use it, but that is to be expected given the goals for Slang. * Fixup: add missing test output files --- tests/reflection/sample-rate-input.hlsl | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 tests/reflection/sample-rate-input.hlsl (limited to 'tests/reflection/sample-rate-input.hlsl') diff --git a/tests/reflection/sample-rate-input.hlsl b/tests/reflection/sample-rate-input.hlsl new file mode 100644 index 000000000..0545afb02 --- /dev/null +++ b/tests/reflection/sample-rate-input.hlsl @@ -0,0 +1,15 @@ +//TEST:REFLECTION:-profile ps_5_0 -target hlsl + +// Confirm that we register a shader as sample-rate when +// it declares (not necessarly *uses*) a `sample` qualified input + +struct PSInput +{ + float4 extra : EXTRA; + sample float4 color : COLOR; +}; + +float4 main(PSInput input) : SV_Target +{ + return input.extra + input.color; +} \ No newline at end of file -- cgit v1.2.3