2022-03-07 17:55:44 -08:00
|
|
|
[require]
|
|
|
|
shader model >= 4.0
|
|
|
|
|
2022-03-07 17:55:40 -08:00
|
|
|
[pixel shader]
|
|
|
|
float4 main() : SV_TARGET
|
|
|
|
{
|
|
|
|
int x = 5;
|
|
|
|
int y = 15;
|
|
|
|
|
|
|
|
return float4(x >> y, y >> x, x << y, y << x);
|
|
|
|
}
|
|
|
|
|
|
|
|
[test]
|
2024-03-19 04:36:23 -07:00
|
|
|
todo(glsl) draw quad
|
2022-03-07 17:55:40 -08:00
|
|
|
probe all rgba (0.0, 0.0, 163840.0, 480.0)
|
|
|
|
|
2023-09-12 22:29:10 -07:00
|
|
|
[pixel shader]
|
|
|
|
float4 main() : sv_target
|
|
|
|
{
|
|
|
|
int x = 1;
|
|
|
|
int y = -1;
|
|
|
|
int z = 34;
|
|
|
|
uint x2 = 1;
|
|
|
|
|
|
|
|
return float4(x << y, x << z, x2 << y, x2 << z);
|
|
|
|
}
|
|
|
|
|
|
|
|
[test]
|
2024-03-19 04:36:23 -07:00
|
|
|
todo(glsl) draw quad
|
2023-09-12 22:29:10 -07:00
|
|
|
probe all rgba (-2147483648.0, 4.0, 2147483650.0, 4.0)
|
|
|
|
|
2023-09-23 09:31:55 -07:00
|
|
|
[pixel shader]
|
|
|
|
float4 main() : sv_target
|
|
|
|
{
|
|
|
|
int x = 2147483647;
|
|
|
|
int y = -1;
|
|
|
|
int z = 34;
|
|
|
|
uint x2 = 4294967295;
|
|
|
|
|
|
|
|
return float4(x >> y, x >> z, x2 >> y, x2 >> z);
|
|
|
|
}
|
|
|
|
|
|
|
|
[test]
|
2024-03-19 04:36:23 -07:00
|
|
|
todo(glsl) draw quad
|
2023-09-23 09:31:55 -07:00
|
|
|
probe all rgba (0.0, 536870912.0, 1.0, 1073741824.0)
|
|
|
|
|
2022-03-07 17:55:40 -08:00
|
|
|
[pixel shader]
|
|
|
|
float4 main() : SV_TARGET
|
|
|
|
{
|
|
|
|
int x = 5;
|
|
|
|
int y = 15;
|
|
|
|
|
|
|
|
return float4(x & y, x | y, x ^ y, ~x);
|
|
|
|
}
|
|
|
|
|
|
|
|
[test]
|
2024-03-19 04:36:23 -07:00
|
|
|
todo(glsl) draw quad
|
2022-03-07 17:55:40 -08:00
|
|
|
probe all rgba (5.0, 15.0, 10.0, -6.0)
|
|
|
|
|
|
|
|
[pixel shader]
|
|
|
|
float4 main() : SV_TARGET
|
|
|
|
{
|
|
|
|
int zero = 0;
|
|
|
|
int one = 1;
|
|
|
|
|
|
|
|
return float4(zero & zero, zero & one, one & zero, one & one);
|
|
|
|
}
|
|
|
|
|
|
|
|
[test]
|
2024-03-19 04:36:23 -07:00
|
|
|
todo(glsl) draw quad
|
2022-03-07 17:55:40 -08:00
|
|
|
probe all rgba (0.0, 0.0, 0.0, 1.0)
|
|
|
|
|
|
|
|
[pixel shader]
|
|
|
|
float4 main() : SV_TARGET
|
|
|
|
{
|
|
|
|
int zero = 0;
|
|
|
|
int one = 1;
|
|
|
|
|
|
|
|
return float4(zero | zero, zero | one, one | zero, one | one);
|
|
|
|
}
|
|
|
|
|
|
|
|
[test]
|
2024-03-19 04:36:23 -07:00
|
|
|
todo(glsl) draw quad
|
2022-03-07 17:55:40 -08:00
|
|
|
probe all rgba (0.0, 1.0, 1.0, 1.0)
|
|
|
|
|
|
|
|
[pixel shader]
|
|
|
|
float4 main() : SV_TARGET
|
|
|
|
{
|
|
|
|
int zero = 0;
|
|
|
|
int one = 1;
|
|
|
|
|
|
|
|
return float4(zero ^ zero, zero ^ one, one ^ zero, one ^ one);
|
|
|
|
}
|
|
|
|
|
|
|
|
[test]
|
2024-03-19 04:36:23 -07:00
|
|
|
todo(glsl) draw quad
|
2022-03-07 17:55:40 -08:00
|
|
|
probe all rgba (0.0, 1.0, 1.0, 0.0)
|
|
|
|
|
2024-05-20 10:18:04 -07:00
|
|
|
[pixel shader]
|
2024-05-20 09:45:41 -07:00
|
|
|
float4 main() : SV_TARGET
|
|
|
|
{
|
|
|
|
int a = 0;
|
|
|
|
int b = 0;
|
|
|
|
int c = 1;
|
|
|
|
int d = 1;
|
|
|
|
|
|
|
|
a ^= 0;
|
|
|
|
b ^= 1;
|
|
|
|
c ^= 0;
|
|
|
|
d ^= 1;
|
|
|
|
|
|
|
|
return float4(a, b, c, d);
|
|
|
|
}
|
|
|
|
|
|
|
|
[test]
|
2024-05-20 10:18:04 -07:00
|
|
|
todo(glsl) draw quad
|
2024-05-20 09:45:41 -07:00
|
|
|
probe all rgba (0.0, 1.0, 1.0, 0.0)
|
|
|
|
|
2022-03-07 17:55:40 -08:00
|
|
|
[pixel shader]
|
|
|
|
float4 main() : SV_TARGET
|
|
|
|
{
|
|
|
|
uint x = 5;
|
|
|
|
uint y = 15;
|
|
|
|
|
|
|
|
return float4(x >> y, y >> x, x << y, y << x);
|
|
|
|
}
|
|
|
|
|
|
|
|
[test]
|
2024-03-19 04:36:23 -07:00
|
|
|
todo(glsl) draw quad
|
2022-03-07 17:55:40 -08:00
|
|
|
probe all rgba (0.0, 0.0, 163840.0, 480.0)
|
|
|
|
|
|
|
|
[pixel shader]
|
|
|
|
float4 main() : SV_TARGET
|
|
|
|
{
|
|
|
|
uint x = 5;
|
|
|
|
uint y = 15;
|
|
|
|
|
|
|
|
return float4(x & y, x | y, x ^ y, ~x);
|
|
|
|
}
|
|
|
|
|
|
|
|
[test]
|
2024-03-19 04:36:23 -07:00
|
|
|
todo(glsl) draw quad
|
2022-03-07 17:55:40 -08:00
|
|
|
probe all rgba (5.0, 15.0, 10.0, 4294967296.0)
|
|
|
|
|
|
|
|
[pixel shader]
|
|
|
|
float4 main() : SV_TARGET
|
|
|
|
{
|
|
|
|
uint zero = 0;
|
|
|
|
uint one = 1;
|
|
|
|
|
|
|
|
return float4(zero & zero, zero & one, one & zero, one & one);
|
|
|
|
}
|
|
|
|
|
|
|
|
[test]
|
2024-03-19 04:36:23 -07:00
|
|
|
todo(glsl) draw quad
|
2022-03-07 17:55:40 -08:00
|
|
|
probe all rgba (0.0, 0.0, 0.0, 1.0)
|
|
|
|
|
|
|
|
[pixel shader]
|
|
|
|
float4 main() : SV_TARGET
|
|
|
|
{
|
|
|
|
uint zero = 0;
|
|
|
|
uint one = 1;
|
|
|
|
|
|
|
|
return float4(zero | zero, zero | one, one | zero, one | one);
|
|
|
|
}
|
|
|
|
|
|
|
|
[test]
|
2024-03-19 04:36:23 -07:00
|
|
|
todo(glsl) draw quad
|
2022-03-07 17:55:40 -08:00
|
|
|
probe all rgba (0.0, 1.0, 1.0, 1.0)
|
|
|
|
|
|
|
|
[pixel shader]
|
|
|
|
float4 main() : SV_TARGET
|
|
|
|
{
|
|
|
|
uint zero = 0;
|
|
|
|
uint one = 1;
|
|
|
|
|
|
|
|
return float4(zero ^ zero, zero ^ one, one ^ zero, one ^ one);
|
|
|
|
}
|
|
|
|
|
|
|
|
[test]
|
2024-03-19 04:36:23 -07:00
|
|
|
todo(glsl) draw quad
|
2022-03-07 17:55:40 -08:00
|
|
|
probe all rgba (0.0, 1.0, 1.0, 0.0)
|
2023-11-21 23:08:04 -08:00
|
|
|
|
2024-03-12 21:38:02 -07:00
|
|
|
[pixel shader todo]
|
|
|
|
uint u;
|
|
|
|
int i;
|
|
|
|
|
|
|
|
uint4 main() : sv_target
|
|
|
|
{
|
|
|
|
return uint4(countbits(u), firstbitlow(u), firstbithigh(u), firstbithigh(i));
|
|
|
|
}
|
|
|
|
|
|
|
|
[test]
|
|
|
|
uniform 0 uint4 0 0 0 0
|
|
|
|
todo(sm<6) draw quad
|
|
|
|
probe all rgbaui (0, 0xffffffff, 0xffffffff, 0xffffffff)
|
|
|
|
uniform 0 uint4 0xffffffff 0xffffffff 0 0
|
|
|
|
todo(sm<6) draw quad
|
|
|
|
probe all rgbaui (32, 0, 31, 0xffffffff)
|
|
|
|
uniform 0 uint4 0xcccccccc 0xcccccccc 0 0
|
|
|
|
todo(sm<6) draw quad
|
|
|
|
probe all rgbaui (16, 2, 31, 29)
|
2023-11-21 23:08:04 -08:00
|
|
|
|
|
|
|
[require]
|
|
|
|
shader model >= 6.0
|
|
|
|
int64
|
|
|
|
|
|
|
|
[pixel shader]
|
|
|
|
int64_t2 a;
|
|
|
|
int2 s;
|
|
|
|
|
|
|
|
float4 main() : sv_target
|
|
|
|
{
|
|
|
|
int64_t x = a.x;
|
|
|
|
int64_t y = a.y;
|
|
|
|
int z = s.x;
|
|
|
|
int w = s.y;
|
|
|
|
|
|
|
|
return float4(x >> y, x >> -y, x >> z, x >> w);
|
|
|
|
}
|
|
|
|
|
|
|
|
[test]
|
|
|
|
uniform 0 int64_t2 9223372036854775807 -1
|
|
|
|
uniform 4 int4 34 66 0 0
|
2023-11-21 06:38:19 -08:00
|
|
|
draw quad
|
2023-11-21 23:08:04 -08:00
|
|
|
probe all rgba (0.0, 4.611686018e18, 536870912.0, 2.305843009e18) 1
|
|
|
|
uniform 0 int64_t2 -1 -1
|
|
|
|
uniform 4 int4 34 66 0 0
|
2023-11-21 06:38:19 -08:00
|
|
|
draw quad
|
2023-11-21 23:08:04 -08:00
|
|
|
probe all rgba (-1.0, -1.0, -1.0, -1.0) 1
|
|
|
|
|
|
|
|
[pixel shader]
|
|
|
|
uint64_t2 a;
|
|
|
|
uint2 s;
|
|
|
|
|
|
|
|
float4 main() : sv_target
|
|
|
|
{
|
|
|
|
uint64_t x = a.x;
|
|
|
|
uint64_t y = a.y;
|
|
|
|
uint z = s.x;
|
|
|
|
uint w = s.y;
|
|
|
|
|
|
|
|
return float4(x >> y, x >> -y, x >> z, x >> w);
|
|
|
|
}
|
|
|
|
|
|
|
|
[test]
|
|
|
|
uniform 0 uint64_t2 0xffffffffffffffff 1
|
|
|
|
uniform 4 uint4 34 66 0 0
|
2023-11-21 06:38:19 -08:00
|
|
|
draw quad
|
2023-11-21 23:08:04 -08:00
|
|
|
probe all rgba (9.223372036e18, 1.0, 1073741823.0, 4.611686018e18) 1
|
|
|
|
|
|
|
|
[pixel shader]
|
|
|
|
uint64_t2 a;
|
|
|
|
uint2 s;
|
|
|
|
|
|
|
|
float4 main() : sv_target
|
|
|
|
{
|
|
|
|
uint64_t x = a.x;
|
|
|
|
uint64_t y = a.y;
|
|
|
|
uint z = s.x;
|
|
|
|
uint w = s.y;
|
|
|
|
|
|
|
|
return float4(x << y, x << -y, x << z, x << w);
|
|
|
|
}
|
|
|
|
|
|
|
|
[test]
|
|
|
|
uniform 0 uint64_t2 0x83 1
|
|
|
|
uniform 4 uint4 34 66 0 0
|
2023-11-21 06:38:19 -08:00
|
|
|
draw quad
|
2023-11-21 23:08:04 -08:00
|
|
|
probe all rgba (262.0, 9.223372036e18, 2250562863104.0, 524.0) 1
|
|
|
|
|
|
|
|
[pixel shader]
|
|
|
|
uint64_t2 a;
|
|
|
|
|
|
|
|
float4 main() : sv_target
|
|
|
|
{
|
|
|
|
uint64_t x = a.x;
|
|
|
|
uint64_t y = a.y;
|
|
|
|
|
|
|
|
return float4(x ^ y, x & y, x | y, ~x);
|
|
|
|
}
|
|
|
|
|
|
|
|
[test]
|
|
|
|
uniform 0 uint64_t2 0x300000000 0x500000000
|
2023-12-05 06:24:15 -08:00
|
|
|
draw quad
|
2023-11-20 22:43:36 -08:00
|
|
|
probe all rgba (25769803776.0, 4294967296.0, 30064771072.0, 1.844674404e19) 1
|
2024-03-12 21:38:02 -07:00
|
|
|
|
|
|
|
[pixel shader]
|
|
|
|
uint64_t u;
|
|
|
|
int64_t i;
|
|
|
|
|
|
|
|
uint4 main() : sv_target
|
|
|
|
{
|
|
|
|
return uint4(0, firstbitlow(u), firstbithigh(u), firstbithigh(i));
|
|
|
|
}
|
|
|
|
|
|
|
|
[test]
|
|
|
|
uniform 0 uint64_t2 0 0
|
|
|
|
todo draw quad
|
|
|
|
probe all rgbaui (0, 0xffffffff, 0xffffffff, 0xffffffff)
|
|
|
|
uniform 0 int64_t2 -1 -1
|
|
|
|
todo draw quad
|
|
|
|
probe all rgbaui (64, 0, 63, 0xffffffff)
|
|
|
|
uniform 0 uint64_t2 0xcccccccccccccccc 0xcccccccccccccccc
|
|
|
|
todo draw quad
|
|
|
|
probe all rgbaui (32, 2, 63, 61)
|