steve-lunarg | e0b9deb | 2016-09-16 13:26:37 -0600 | [diff] [blame] | 1 | |
| 2 | // uniform Texture1D g_tex3[3][2]; // TODO: legal in HLSL, but we don't handle it yet. |
| 3 | |
| 4 | uniform Texture1D g_tex[3]; |
| 5 | uniform Texture1D g_tex_explicit[3] : register(t1); |
| 6 | |
| 7 | SamplerState g_samp[3]; |
| 8 | SamplerState g_samp_explicit[3] : register(s5); |
| 9 | |
| 10 | uniform float3x3 g_mats[4]; |
| 11 | uniform float3x3 g_mats_explicit[4] : register(b10); |
| 12 | uniform float g_floats[4]; |
| 13 | |
| 14 | // uniform float g_floats[4] = { 10, 11, 12, 13 }; // TODO: ... add when initializer lists can be flattened. |
| 15 | |
| 16 | float4 TestFn1() |
| 17 | { |
| 18 | return g_tex[1].Sample(g_samp[1], 0.2); |
| 19 | } |
| 20 | |
| 21 | float4 TestFn2(Texture1D l_tex[3], SamplerState l_samp[3]) |
| 22 | { |
| 23 | return l_tex[2].Sample(l_samp[2], 0.2); |
| 24 | } |
| 25 | |
John Kessenich | 4e55988 | 2016-09-27 23:09:32 -0600 | [diff] [blame] | 26 | static int not_flattened_a[5] = { 1, 2, 3, 4, 5 }; |
steve-lunarg | e0b9deb | 2016-09-16 13:26:37 -0600 | [diff] [blame] | 27 | |
| 28 | struct PS_OUTPUT { float4 color : SV_Target0; }; |
| 29 | |
| 30 | void main(out PS_OUTPUT ps_output) |
| 31 | { |
| 32 | // test flattening for local assignment initialization |
| 33 | SamplerState local_sampler_array[3] = g_samp; |
| 34 | Texture1D local_texture_array[3] = g_tex; |
| 35 | float local_float_array[4] = g_floats; |
| 36 | |
| 37 | ps_output.color = TestFn1() + TestFn2(g_tex, g_samp); |
| 38 | } |