vkd3d/tests/hlsl/bitwise-assignment.shader_test

105 lines
1.8 KiB
Plaintext
Raw Normal View History

[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
todo(glsl) draw quad
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
todo(glsl) draw quad
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
todo(glsl) draw quad
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
todo(glsl) draw quad
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]
draw quad
probe (0, 0) rgba (55, 183, -16760, 0)