diff --git a/tests/hlsl/arithmetic-int-uniform.shader_test b/tests/hlsl/arithmetic-int-uniform.shader_test index f9edde778..dc7c43c71 100644 --- a/tests/hlsl/arithmetic-int-uniform.shader_test +++ b/tests/hlsl/arithmetic-int-uniform.shader_test @@ -274,6 +274,32 @@ uniform 12 uint 1 todo(msl) draw quad probe (0, 0) rgbai(1, -0xfff, 0xffe, -0xffe) +[pixel shader] +uniform min16int u[2]; +uniform uint i; + +int4 main() : sv_target +{ + min16int arr[4] = {1, 2, -0x7ff, 0xfff}; + return int4(u[0] + arr[i], u[1] + arr[i + 1], 0, 0); +} + +[test] +uniform 0 uint 2 +uniform 4 uint 0xffe +% i is allocated differently between SM4-5 and SM6 +uniform 5 uint 2 +uniform 8 uint 2 +todo(msl) draw quad +% In D3D12 with SM5 all reads to the array return 0 +if(sm>=6 | !d3d12) probe (0, 0) rgbaui(0xfffff803, 0x1ffd, 0, 0) +uniform 0 uint 0 +uniform 4 uint 0 +uniform 5 uint 0 +uniform 8 uint 0 +todo(msl) draw quad +if(sm>=6 | !d3d12) probe (0, 0) rgbaui(1, 2, 0, 0) + [pixel shader] uniform min16int u[4];