Module: vkd3d Branch: master Commit: 3cce4e70e90e63b162655f79e6be94b2d3d7eefc URL: https://gitlab.winehq.org/wine/vkd3d/-/commit/3cce4e70e90e63b162655f79e6be94...
Author: Zebediah Figura zfigura@codeweavers.com Date: Thu Apr 20 19:46:27 2023 -0500
tests: Test bool semantics.
---
Makefile.am | 1 + tests/bool-semantics.shader_test | 53 ++++++++++++++++++++++++++++++++++++++++ tests/shader_runner.c | 6 +++-- 3 files changed, 58 insertions(+), 2 deletions(-)
diff --git a/Makefile.am b/Makefile.am index b9fd06ee..b689d12e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -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 \ diff --git a/tests/bool-semantics.shader_test b/tests/bool-semantics.shader_test new file mode 100644 index 00000000..0e42fdf9 --- /dev/null +++ b/tests/bool-semantics.shader_test @@ -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) diff --git a/tests/shader_runner.c b/tests/shader_runner.c index f1d93457..8c66ff5e 100644 --- a/tests/shader_runner.c +++ b/tests/shader_runner.c @@ -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; }