2021-10-03 19:19:07 -05:00
|
|
|
% Test what kinds of expressions are valid array dimensions.
|
|
|
|
|
|
2022-10-30 17:21:12 -05:00
|
|
|
[pixel shader todo]
|
2020-10-01 23:09:47 -05:00
|
|
|
float4 main() : sv_target
|
|
|
|
|
{
|
|
|
|
|
const int dim = 4;
|
|
|
|
|
float a[2 * 2] = {0.1, 0.2, 0.3, 0.4};
|
2023-09-14 19:29:24 +10:00
|
|
|
#ifdef __hlsl_dx_compiler
|
|
|
|
|
/* float array dimensions are not valid. */
|
|
|
|
|
float b[4] = a;
|
|
|
|
|
#else
|
2020-10-01 23:09:47 -05:00
|
|
|
float b[4.1] = a;
|
2023-09-14 19:29:24 +10:00
|
|
|
#endif
|
2020-10-01 23:09:47 -05:00
|
|
|
float c[dim] = b;
|
|
|
|
|
float d[true] = {c[0]};
|
|
|
|
|
float e[65536];
|
|
|
|
|
return float4(d[0], c[0], c[1], c[3]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[test]
|
2023-09-14 19:29:24 +10:00
|
|
|
todo(sm<6) draw quad
|
2025-05-24 00:15:05 +02:00
|
|
|
probe (0, 0) f32(0.1, 0.1, 0.2, 0.4)
|
2024-06-25 18:36:32 -04:00
|
|
|
|
|
|
|
|
[pixel shader fail]
|
|
|
|
|
float4 fun() { return 0; };
|
|
|
|
|
|
|
|
|
|
float a[CompileShader(ps_2_0, main())];
|
|
|
|
|
|
|
|
|
|
float4 main() : sv_target { return 0; }
|
2025-05-24 00:15:05 +02:00
|
|
|
|
|
|
|
|
[pixel shader todo]
|
|
|
|
|
float4 main() : sv_target
|
|
|
|
|
{
|
|
|
|
|
const uint cap = 4;
|
|
|
|
|
const float array[cap] = { 1.0, 2.0, 3.0, 4.0 };
|
|
|
|
|
return float4(array[0], array[1], array[2], array[3]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[test]
|
|
|
|
|
todo(sm<6) draw quad
|
|
|
|
|
probe (0, 0) f32(1, 2, 3, 4)
|
|
|
|
|
|
|
|
|
|
[pixel shader fail]
|
|
|
|
|
float4 main() : sv_target
|
|
|
|
|
{
|
|
|
|
|
uint cap = 4;
|
|
|
|
|
const float array[cap] = { 1.0, 2.0, 3.0, 4.0 };
|
|
|
|
|
return float4(array[0], array[1], array[2], array[3]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[pixel shader todo(sm<6) fail(sm>=6)]
|
|
|
|
|
float4 main() : sv_target
|
|
|
|
|
{
|
|
|
|
|
const uint4 cap = uint4(2, 4, 1, 0);
|
|
|
|
|
const float array[cap.y] = { 1.0, 2.0, 3.0, 4.0 };
|
|
|
|
|
return float4(array[0], array[1], array[2], array[3]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[test]
|
|
|
|
|
todo(sm<6) draw quad
|
|
|
|
|
probe (0, 0) f32(1, 2, 3, 4)
|
|
|
|
|
|
|
|
|
|
[pixel shader todo(sm<6) fail(sm>=6)]
|
|
|
|
|
struct nya
|
|
|
|
|
{
|
|
|
|
|
float a, b;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
float4 main() : sv_target
|
|
|
|
|
{
|
|
|
|
|
const nya cap = { 5, 4 };
|
|
|
|
|
const float array[cap.b] = { 1.0, 2.0, 3.0, 4.0 };
|
|
|
|
|
return float4(array[0], array[1], array[2], array[3]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[test]
|
|
|
|
|
todo(sm<6) draw quad
|
|
|
|
|
probe (0, 0) f32(1, 2, 3, 4)
|
|
|
|
|
|
|
|
|
|
[pixel shader todo(sm<6) fail(sm>=6)]
|
|
|
|
|
float4 main() : sv_target
|
|
|
|
|
{
|
|
|
|
|
const float cap = 4;
|
|
|
|
|
const float array[cap] = { 1.0, 2.0, 3.0, 4.0 };
|
|
|
|
|
return float4(array[0], array[1], array[2], array[3]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[test]
|
|
|
|
|
todo(sm<6) draw quad
|
|
|
|
|
probe (0, 0) f32(1, 2, 3, 4)
|
|
|
|
|
|
|
|
|
|
[pixel shader fail]
|
|
|
|
|
float foo() { return 4; }
|
|
|
|
|
float4 main() : sv_target
|
|
|
|
|
{
|
|
|
|
|
const float cap = foo();
|
|
|
|
|
const float array[cap] = { 1.0, 2.0, 3.0, 4.0 };
|
|
|
|
|
return float4(array[0], array[1], array[2], array[3]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[pixel shader fail]
|
|
|
|
|
struct nya
|
|
|
|
|
{
|
|
|
|
|
float a, b;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
float foo()
|
|
|
|
|
{
|
|
|
|
|
return 5;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
float4 main() : sv_target
|
|
|
|
|
{
|
|
|
|
|
const nya cap = { foo(), 4 };
|
|
|
|
|
const float array[cap.b] = { 1.0, 2.0, 3.0, 4.0 };
|
|
|
|
|
return float4(array[0], array[1], array[2], array[3]);
|
|
|
|
|
}
|