Files
vkd3d/tests/hlsl/getdimensions.shader_test

171 lines
2.5 KiB
Plaintext
Raw Normal View History

[require]
shader model >= 4.0
[srv 0]
size (2d, 2, 3)
1.0 0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 0.0
1.0 0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 0.0
[pixel shader]
Texture2D t : register(t0);
float4 main() : sv_target
{
uint u1, u2;
float f1, f2;
float4 ret;
t.GetDimensions(u1, u2);
t.GetDimensions(f1, f2);
ret.x = u1;
ret.y = f2;
t.GetDimensions(u1, f2);
ret.z = u1;
t.GetDimensions(f1, u2);
ret.w = u2;
return ret;
}
[test]
todo(glsl | msl) draw quad
probe (0, 0) rgba (2.0, 3.0, 2.0, 3.0)
[srv 1]
size (2d, 2, 2)
levels 2
1.0 0.0 1.0 0.0 1.0 0.0 1.0 0.0
1.0 0.0 1.0 0.0 1.0 0.0 1.0 0.0
0.0 0.0 1.0 0.0
[pixel shader]
Texture2D t : register(t1);
float4 main() : sv_target
{
float4 ret;
t.GetDimensions(ret.x, ret.y);
t.GetDimensions(1, ret.z, ret.z, ret.w);
return ret;
}
[test]
todo(glsl | msl) draw quad
probe (0, 0) rgba (2.0, 2.0, 1.0, 2.0)
[require]
shader model >= 6.2
native-16-bit
[uav 0]
format r32-uint
size (buffer, 4)
0 0 0 0
[compute shader]
RWBuffer<uint16_t> u : register(u0);
[numthreads(1, 1, 1)]
void main()
{
uint width;
u.GetDimensions(width);
u[0] = (uint16_t)width;
}
[test]
dispatch 1 1 1
probe uav 0 (0) rui(4)
[uav 0]
stride 6
size (buffer, 2)
0 0 0
[compute shader]
struct foo
{
uint16_t count;
half h;
uint16_t stride;
};
RWStructuredBuffer<foo> u : register(u0);
[numthreads(1, 1, 1)]
void main()
{
uint count, stride;
u.GetDimensions(count, stride);
struct foo f0 = {(uint16_t)count, 0.5, (uint16_t)stride};
u[0] = f0;
}
[test]
dispatch 1 1 1
probe uav 0 (0) rui(0x38000002)
probe uav 0 (1) rui(6)
[uav 0]
stride 8
size (buffer, 2)
0 0 0 0
[compute shader]
struct foo
{
uint16_t count;
half h;
uint32_t stride;
};
RWStructuredBuffer<foo> u : register(u0);
[numthreads(1, 1, 1)]
void main()
{
uint count, stride;
u.GetDimensions(count, stride);
struct foo f0 = {(uint16_t)count, 0.5, stride};
u[0] = f0;
}
[test]
dispatch 1 1 1
probe uav 0 (0) rui(0x38000002)
probe uav 0 (1) rui(8)
[uav 0]
stride 8
size (buffer, 2)
0 0 0 0
[compute shader]
struct foo
{
uint16_t count;
uint32_t stride;
};
RWStructuredBuffer<foo> u : register(u0);
[numthreads(1, 1, 1)]
void main()
{
uint count, stride;
u.GetDimensions(count, stride);
struct foo f0 = {(uint16_t)count, stride};
u[0] = f0;
}
[test]
dispatch 1 1 1
probe uav 0 (0) rui(2)
probe uav 0 (1) rui(8)