tests: Add additional non-constant array indexing tests.

This commit is contained in:
Francisco Casas 2024-07-08 17:51:04 -04:00 committed by Henri Verbeet
parent eb2d320596
commit e0cfd8f86a
Notes: Henri Verbeet 2024-08-08 23:47:10 +02:00
Approved-by: Elizabeth Figura (@zfigura)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/936

View File

@ -134,6 +134,95 @@ todo(sm<4 | glsl) draw quad
probe (0, 0) rgba (1.0, 120.0, 90.0, 4.0) probe (0, 0) rgba (1.0, 120.0, 90.0, 4.0)
[pixel shader todo(sm<4)]
float i, j;
float4 main() : sv_target
{
float arr[6][2] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
return arr[i][j];
}
[test]
if(sm<4) uniform 0 float 3
if(sm<4) uniform 4 float 1
if(sm>=4) uniform 0 float4 3 1 0 0
todo(sm<4 | glsl) draw quad
probe (0, 0) rgba (7, 7, 7, 7)
if(sm<4) uniform 0 float 5
if(sm<4) uniform 4 float 0
if(sm>=4) uniform 0 float4 5 0 0 0
todo(sm<4 | glsl) draw quad
probe (0, 0) rgba (10, 10, 10, 10)
[pixel shader todo(sm<4)]
float i, j;
float k;
float4 main() : sv_target
{
float4 arr[4][3] = {
0, 1, 2, 3,
10, 11, 12, 13,
20, 21, 22, 23,
30, 31, 32, 33,
40, 41, 42, 43,
50, 51, 52, 53,
60, 61, 62, 63,
70, 71, 72, 73,
80, 81, 82, 83,
90, 91, 92, 93,
100, 101, 102, 103,
110, 111, 112, 113,
};
return arr[i + k][j + k];
}
[test]
if(sm<4) uniform 0 float 2
if(sm<4) uniform 4 float 1
if(sm<4) uniform 8 float -1
if(sm>=4) uniform 0 float4 2 1 -1 0
todo(sm<4 | glsl) draw quad
probe (0, 0) rgba (30, 31, 32, 33)
if(sm<4) uniform 0 float 1
if(sm<4) uniform 4 float 0
if(sm<4) uniform 8 float 1
if(sm>=4) uniform 0 float4 1 0 1 0
todo(sm<4 | glsl) draw quad
probe (0, 0) rgba (70, 71, 72, 73)
[pixel shader todo(sm<4)]
float i, j;
float4 main() : sv_target
{
struct
{
float a;
float b[3];
} apples[4] = {42, 0, 1, 2, 42, 3, 4, 5, 42, 6, 7, 8, 42, 9, 10, 11};
return apples[i - 10].b[j - 10];
}
[test]
if(sm<4) uniform 0 float 11
if(sm<4) uniform 4 float 12
if(sm>=4) uniform 0 float4 11 12 0 0
todo(sm<4 | glsl) draw quad
probe (0, 0) rgba (5, 5, 5, 5)
if(sm<4) uniform 0 float 13
if(sm<4) uniform 4 float 10
if(sm>=4) uniform 0 float4 13 10 0 0
todo(sm<4 | glsl) draw quad
probe (0, 0) rgba (9, 9, 9, 9)
% SM1 doesn't support relative addressing if it is used in a l-value. % SM1 doesn't support relative addressing if it is used in a l-value.
[require] [require]
shader model >= 4.0 shader model >= 4.0