2024-08-14 11:53:25 -07:00
|
|
|
[require]
|
|
|
|
shader model >= 4.0
|
|
|
|
|
|
|
|
[pixel shader]
|
|
|
|
uniform uint4 nonconst;
|
|
|
|
|
|
|
|
float4 main() : SV_TARGET
|
|
|
|
{
|
|
|
|
uint a = 35, r = 2;
|
|
|
|
|
|
|
|
uint shifted = a; shifted >>= nonconst.x;
|
|
|
|
a >>= r;
|
|
|
|
return float4(a, shifted, 0, 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
[test]
|
|
|
|
uniform 0 uint4 2 0 0 0
|
2024-10-21 07:23:27 -07:00
|
|
|
todo(msl) draw quad
|
2024-08-14 11:53:25 -07:00
|
|
|
probe (0, 0) rgba (8, 8, 0, 0)
|
|
|
|
|
|
|
|
[pixel shader]
|
|
|
|
uniform uint4 nonconst;
|
|
|
|
|
|
|
|
float4 main() : SV_TARGET
|
|
|
|
{
|
|
|
|
int a = 5, b = -12;
|
|
|
|
uint r = 1;
|
|
|
|
|
|
|
|
int shifted_a = a; shifted_a >>= nonconst.x;
|
|
|
|
int shifted_b = b; shifted_b >>= nonconst.x;
|
|
|
|
a >>= r;
|
|
|
|
b >>= r;
|
|
|
|
return float4(a, b, shifted_a, shifted_b);
|
|
|
|
}
|
|
|
|
|
|
|
|
[test]
|
|
|
|
uniform 0 uint4 1 0 0 0
|
2024-10-21 07:23:27 -07:00
|
|
|
todo(msl) draw quad
|
2024-08-14 11:53:25 -07:00
|
|
|
probe (0, 0) rgba (2, -6, 2, -6)
|
|
|
|
|
|
|
|
[pixel shader]
|
|
|
|
uniform uint4 nonconst;
|
|
|
|
|
|
|
|
float4 main() : SV_TARGET
|
|
|
|
{
|
|
|
|
uint a = 35, r = 3;
|
|
|
|
|
|
|
|
uint shifted = a; shifted <<= nonconst.x;
|
|
|
|
a <<= r;
|
|
|
|
return float4(a, shifted, 0, 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
[test]
|
|
|
|
uniform 0 uint4 3 0 0 0
|
2024-10-21 07:23:27 -07:00
|
|
|
todo(msl) draw quad
|
2024-08-14 11:53:25 -07:00
|
|
|
probe (0, 0) rgba (280, 280, 0, 0)
|
|
|
|
|
|
|
|
[pixel shader]
|
|
|
|
uniform uint4 nonconst;
|
|
|
|
|
|
|
|
float4 main() : SV_TARGET
|
|
|
|
{
|
|
|
|
int a = 5, b = -12;
|
|
|
|
uint r = 2;
|
|
|
|
|
|
|
|
int shifted_a = a; shifted_a <<= nonconst.x;
|
|
|
|
int shifted_b = b; shifted_b <<= nonconst.x;
|
|
|
|
a <<= r;
|
|
|
|
b <<= r;
|
|
|
|
return float4(a, b, shifted_a, shifted_b);
|
|
|
|
}
|
|
|
|
|
|
|
|
[test]
|
|
|
|
uniform 0 uint4 2 0 0 0
|
2024-10-21 07:23:27 -07:00
|
|
|
todo(msl) draw quad
|
2024-08-14 11:53:25 -07:00
|
|
|
probe (0, 0) rgba (20, -48, 20, -48)
|
|
|
|
|
|
|
|
[pixel shader fail]
|
|
|
|
% Make sure that bitshifts DON'T work with floats
|
|
|
|
float4 main() : SV_TARGET
|
|
|
|
{
|
|
|
|
float x = 5.0, y = 15.0;
|
|
|
|
x <<= y;
|
|
|
|
y <<= x;
|
|
|
|
return float4(x, y, 0, 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
[pixel shader]
|
|
|
|
float4 main() : SV_TARGET
|
|
|
|
{
|
|
|
|
int source = 55;
|
|
|
|
int i = -0x4141;
|
|
|
|
uint u = 128;
|
|
|
|
|
|
|
|
int a = source; a &= i;
|
|
|
|
int b = source; b |= u;
|
|
|
|
int c = source; c ^= i;
|
|
|
|
|
|
|
|
return float4(a, b, c, 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
[test]
|
2024-10-21 07:23:27 -07:00
|
|
|
todo(msl) draw quad
|
2024-08-14 11:53:25 -07:00
|
|
|
probe (0, 0) rgba (55, 183, -16760, 0)
|