From 308d3aa676fc4e3456a64f7b9482aa6d175df845 Mon Sep 17 00:00:00 2001 From: Giovanni Mascellani Date: Mon, 26 May 2025 21:50:08 +0200 Subject: [PATCH] tests/hlsl: Add a test reading from a minimum precision signed integer array. --- tests/hlsl/arithmetic-int-uniform.shader_test | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) 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];