vkd3d/tests/hlsl/uav-rwbyteaddressbuffer.shader_test
Nikolay Sivov 89e5912fd2 vkd3d-shader/hlsl: Implement RWByteAddressBuffer.Store*() methods.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-10-28 17:51:04 +01:00

106 lines
1.6 KiB
Plaintext

[require]
shader model >= 5.0
[uav 1]
format r32-typeless
size (raw_buffer, 4)
1 2 3 4
[pixel shader]
RWByteAddressBuffer u : register(u1);
float4 main() : sv_target
{
u.Store(0, 10);
u.Store(4, 11.1f);
return 0;
}
[test]
todo(glsl) draw quad
probe uav 1 (0) ri (10)
if(sm<6) probe uav 1 (1) ri (11)
if(sm>=6) probe uav 1 (1) r (11.1)
[pixel shader]
RWByteAddressBuffer u : register(u1);
float4 main() : sv_target
{
u.Store2(0, uint2(10, 11));
u.Store2(8, float2(12.2f, 13.3f));
return 0;
}
[test]
todo(glsl) draw quad
probe uav 1 (0) rgbaui(10, 11, 12, 13)
[pixel shader]
RWByteAddressBuffer u : register(u1);
float4 main() : sv_target
{
u.Store(0, 20);
u.Store3(4, uint3(21, 22, 23));
return 0;
}
[test]
todo(glsl) draw quad
probe uav 1 (0) rgbaui(20, 21, 22, 23)
[pixel shader]
RWByteAddressBuffer u : register(u1);
float4 main() : sv_target
{
u.Store(0, 20);
u.Store3(4, float3(21.1f, 22.2f, 23.3f));
return 0;
}
[test]
todo(glsl) draw quad
probe uav 1 (0) rgbaui(20, 21, 22, 23)
[require]
shader model >= 5.0
float64
[pixel shader]
RWByteAddressBuffer u : register(u1);
float4 main() : sv_target
{
u.Store(0, (double)12.2);
return 0;
}
[test]
todo(glsl) draw quad
if(sm<6) probe uav 1 (0) ri (12)
if(sm>=6) probe uav 1 (0) rd (12.2)
% SM 6 add support for templated Store<>().
[require]
shader model >= 6.0
float64
[pixel shader]
RWByteAddressBuffer u : register(u1);
float4 main() : sv_target
{
u.Store<int64_t>(0, (int64_t)-12);
u.Store<double>(8, 13.3);
return 0;
}
[test]
draw quad
probe uav 1 (0) ri64 (-12)
probe uav 1 (1) rd (13.3)