tests: Test bool semantics.

This commit is contained in:
Zebediah Figura 2023-04-20 19:46:27 -05:00 committed by Alexandre Julliard
parent 8b4e70dfee
commit 3cce4e70e9
Notes: Alexandre Julliard 2023-05-01 22:25:00 +02:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Francisco Casas (@fcasas)
Approved-by: Henri Verbeet (@hverbeet)
Approved-by: Alexandre Julliard (@julliard)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/177
3 changed files with 58 additions and 2 deletions

View File

@ -53,6 +53,7 @@ vkd3d_shader_tests = \
tests/array-parameters.shader_test \
tests/asuint.shader_test \
tests/bitwise.shader_test \
tests/bool-semantics.shader_test \
tests/cast-broadcast.shader_test \
tests/cast-componentwise-compatible.shader_test \
tests/cast-componentwise-equal.shader_test \

View File

@ -0,0 +1,53 @@
[require]
shader model >= 4.0
[input layout]
0 r32g32b32a32 uint apple
0 r32g32 int sv_position
[vertex buffer 0]
format r32 uint
0 1 0x80000000 0xffffffff -2 -2
0 1 0x80000000 0xffffffff -2 2
0 1 0x80000000 0xffffffff 2 -2
0 1 0x80000000 0xffffffff 2 2
[vertex shader]
struct input
{
bool4 apple : apple;
int4 pos : sv_position;
};
struct output
{
bool4 apple : apple;
int4 fapple : apple1;
float4 pos : sv_position;
};
void main(in struct input i, out struct output o, uint id : SV_VertexID)
{
o.apple = i.apple;
o.fapple = i.apple;
o.pos = i.pos;
}
[pixel shader]
struct input
{
bool4 apple : apple;
int4 fapple : apple1;
float4 pos : sv_position;
};
float4 main(struct input i) : sv_target
{
return i.apple + i.fapple;
}
[test]
draw triangle strip 4
todo probe all rgba (0.0, 2.0, 2.0, 2.0)

View File

@ -152,7 +152,9 @@ static DXGI_FORMAT parse_format(const char *line, enum texture_data_type *data_t
formats[] =
{
{"r32g32b32a32 float", TEXTURE_DATA_FLOAT, 16, DXGI_FORMAT_R32G32B32A32_FLOAT},
{"r32g32b32a32 uint", TEXTURE_DATA_UINT, 16, DXGI_FORMAT_R32G32B32A32_UINT},
{"r32g32 float", TEXTURE_DATA_FLOAT, 8, DXGI_FORMAT_R32G32_FLOAT},
{"r32g32 int", TEXTURE_DATA_SINT, 8, DXGI_FORMAT_R32G32_SINT},
{"r32g32 uint", TEXTURE_DATA_UINT, 8, DXGI_FORMAT_R32G32_UINT},
{"r32 float", TEXTURE_DATA_FLOAT, 4, DXGI_FORMAT_R32_FLOAT},
{"r32 sint", TEXTURE_DATA_SINT, 4, DXGI_FORMAT_R32_SINT},
@ -270,11 +272,11 @@ static void parse_resource_directive(struct resource_params *resource, const cha
break;
case TEXTURE_DATA_SINT:
u.i = strtol(line, &rest, 10);
u.i = strtol(line, &rest, 0);
break;
case TEXTURE_DATA_UINT:
u.u = strtoul(line, &rest, 10);
u.u = strtoul(line, &rest, 0);
break;
}