From dd450c526f3671da31bdda73d6d637699ab72943 Mon Sep 17 00:00:00 2001 From: Elizabeth Figura Date: Tue, 17 Dec 2024 12:54:45 -0600 Subject: [PATCH] tests/d3d12: Make the dtof test a bit more interesting. --- tests/d3d12.c | 80 +++++++++++++++++++++++---------------------------- 1 file changed, 36 insertions(+), 44 deletions(-) diff --git a/tests/d3d12.c b/tests/d3d12.c index ee0e7bf6..0d024873 100644 --- a/tests/d3d12.c +++ b/tests/d3d12.c @@ -10239,70 +10239,66 @@ static void test_shader_instructions(void) static const DWORD ps_dtou_code[] = { #if 0 - double src0; + double2 src0, src1; void main(out uint4 dst : SV_Target) { - dst = uint4(src0, -src0, 0, 0); + dst.xz = src0.yx; + dst.yw = -src1; } #endif - 0x43425844, 0x6ca74abd, 0xe970e02d, 0xa65b35db, 0xd2f58586, 0x00000001, 0x00000128, 0x00000004, - 0x00000030, 0x00000040, 0x00000074, 0x00000118, 0x4e475349, 0x00000008, 0x00000000, 0x00000008, + 0x43425844, 0xfaba33b8, 0x1e15cf47, 0xcd89f03c, 0xdf2aef62, 0x00000001, 0x000000ec, 0x00000004, + 0x00000030, 0x00000040, 0x00000074, 0x000000dc, 0x4e475349, 0x00000008, 0x00000000, 0x00000008, 0x4e47534f, 0x0000002c, 0x00000001, 0x00000008, 0x00000020, 0x00000000, 0x00000000, 0x00000001, - 0x00000000, 0x0000000f, 0x545f5653, 0x65677261, 0xabab0074, 0x58454853, 0x0000009c, 0x00000050, - 0x00000027, 0x0102186a, 0x04000059, 0x00208e46, 0x00000000, 0x00000001, 0x03000065, 0x001020f2, - 0x00000000, 0x02000068, 0x00000001, 0x060000d7, 0x00100012, 0x00000000, 0x00208446, 0x00000000, - 0x00000000, 0x070000d7, 0x00100022, 0x00000000, 0x80208446, 0x00000041, 0x00000000, 0x00000000, - 0x05000036, 0x00102032, 0x00000000, 0x00100046, 0x00000000, 0x08000036, 0x001020c2, 0x00000000, - 0x00004002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0100003e, 0x30494653, 0x00000008, - 0x00000021, 0x00000000, + 0x00000000, 0x0000000f, 0x545f5653, 0x65677261, 0xabab0074, 0x58454853, 0x00000060, 0x00000050, + 0x00000018, 0x0102186a, 0x04000059, 0x00208e46, 0x00000000, 0x00000002, 0x03000065, 0x001020f2, + 0x00000000, 0x060000d7, 0x00102052, 0x00000000, 0x002084e6, 0x00000000, 0x00000000, 0x070000d7, + 0x001020a2, 0x00000000, 0x80208e46, 0x00000041, 0x00000000, 0x00000001, 0x0100003e, 0x30494653, + 0x00000008, 0x00000021, 0x00000000, }; static struct named_shader ps_dtou = {"dtou", ps_dtou_code, sizeof(ps_dtou_code)}; static const DWORD ps_dtoi_code[] = { #if 0 - double src0; + double2 src0, src1; void main(out uint4 dst : SV_Target) { - dst = int4(src0, -src0, 0, 0); + dst.xz = int2(src0.yx); + dst.yw = int2(-src1); } #endif - 0x43425844, 0x38d82727, 0x8666b36c, 0x91954b7e, 0xf376163a, 0x00000001, 0x00000128, 0x00000004, - 0x00000030, 0x00000040, 0x00000074, 0x00000118, 0x4e475349, 0x00000008, 0x00000000, 0x00000008, + 0x43425844, 0xbc0fca8f, 0x063a975f, 0x4699eeed, 0xa39c6d2c, 0x00000001, 0x000000ec, 0x00000004, + 0x00000030, 0x00000040, 0x00000074, 0x000000dc, 0x4e475349, 0x00000008, 0x00000000, 0x00000008, 0x4e47534f, 0x0000002c, 0x00000001, 0x00000008, 0x00000020, 0x00000000, 0x00000000, 0x00000001, - 0x00000000, 0x0000000f, 0x545f5653, 0x65677261, 0xabab0074, 0x58454853, 0x0000009c, 0x00000050, - 0x00000027, 0x0102186a, 0x04000059, 0x00208e46, 0x00000000, 0x00000001, 0x03000065, 0x001020f2, - 0x00000000, 0x02000068, 0x00000001, 0x060000d6, 0x00100012, 0x00000000, 0x00208446, 0x00000000, - 0x00000000, 0x070000d6, 0x00100022, 0x00000000, 0x80208446, 0x00000041, 0x00000000, 0x00000000, - 0x05000036, 0x00102032, 0x00000000, 0x00100046, 0x00000000, 0x08000036, 0x001020c2, 0x00000000, - 0x00004002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0100003e, 0x30494653, 0x00000008, - 0x00000021, 0x00000000, + 0x00000000, 0x0000000f, 0x545f5653, 0x65677261, 0xabab0074, 0x58454853, 0x00000060, 0x00000050, + 0x00000018, 0x0102186a, 0x04000059, 0x00208e46, 0x00000000, 0x00000002, 0x03000065, 0x001020f2, + 0x00000000, 0x060000d6, 0x00102052, 0x00000000, 0x002084e6, 0x00000000, 0x00000000, 0x070000d6, + 0x001020a2, 0x00000000, 0x80208e46, 0x00000041, 0x00000000, 0x00000001, 0x0100003e, 0x30494653, + 0x00000008, 0x00000021, 0x00000000, }; static const struct named_shader ps_dtoi = {"dtoi", ps_dtoi_code, sizeof(ps_dtoi_code)}; static const DWORD ps_dtof_code[] = { #if 0 - double src0; + double2 src0, src1; void main(out uint4 dst : SV_Target) { - float2 f = float2(src0, -src0); - dst.x = asuint(f.x); - dst.y = asuint(f.y); - dst.zw = 0; + float4 f; + f.xz = src0.yx; + f.yw = -src1; + dst = asuint(f); } #endif - 0x43425844, 0xa920927f, 0xac06725f, 0x310edf68, 0xec6ab7cd, 0x00000001, 0x00000128, 0x00000004, - 0x00000030, 0x00000040, 0x00000074, 0x00000118, 0x4e475349, 0x00000008, 0x00000000, 0x00000008, + 0x43425844, 0xc72c8b4d, 0x455c6951, 0xd193c640, 0x4dce07a4, 0x00000001, 0x000000ec, 0x00000004, + 0x00000030, 0x00000040, 0x00000074, 0x000000dc, 0x4e475349, 0x00000008, 0x00000000, 0x00000008, 0x4e47534f, 0x0000002c, 0x00000001, 0x00000008, 0x00000020, 0x00000000, 0x00000000, 0x00000001, - 0x00000000, 0x0000000f, 0x545f5653, 0x65677261, 0xabab0074, 0x58454853, 0x0000009c, 0x00000050, - 0x00000027, 0x0100186a, 0x04000059, 0x00208e46, 0x00000000, 0x00000001, 0x03000065, 0x001020f2, - 0x00000000, 0x02000068, 0x00000001, 0x060000c9, 0x00100012, 0x00000000, 0x00208446, 0x00000000, - 0x00000000, 0x070000c9, 0x00100022, 0x00000000, 0x80208446, 0x00000041, 0x00000000, 0x00000000, - 0x05000036, 0x00102032, 0x00000000, 0x00100046, 0x00000000, 0x08000036, 0x001020c2, 0x00000000, - 0x00004002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0100003e, 0x30494653, 0x00000008, - 0x00000001, 0x00000000, + 0x00000000, 0x0000000f, 0x545f5653, 0x65677261, 0xabab0074, 0x58454853, 0x00000060, 0x00000050, + 0x00000018, 0x0100186a, 0x04000059, 0x00208e46, 0x00000000, 0x00000002, 0x03000065, 0x001020f2, + 0x00000000, 0x060000c9, 0x00102052, 0x00000000, 0x002084e6, 0x00000000, 0x00000000, 0x070000c9, + 0x001020a2, 0x00000000, 0x80208e46, 0x00000041, 0x00000000, 0x00000001, 0x0100003e, 0x30494653, + 0x00000008, 0x00000001, 0x00000000, }; static const struct named_shader ps_dtof = {"dtof", ps_dtof_code, sizeof(ps_dtof_code)}; static const DWORD ps_utod_code[] = @@ -10950,14 +10946,10 @@ static void test_shader_instructions(void) {&ps_dge, {.d = {{1.5, 1.0}}}, {{0xffffffff}}, true}, {&ps_dlt, {.d = {{0.0, 1.0}}}, {{0xffffffff}}, true}, {&ps_dlt, {.d = {{1.0, 1.0}}}, {{0x00000000}}, true}, - {&ps_dtou, {.d = {{ -NAN}}}, {{ 0, 0 }}, true, false, false, true}, - {&ps_dtou, {.d = {{ NAN}}}, {{ 0, 0 }}, true, false, false, true}, - {&ps_dtou, {.d = {{-INFINITY}}}, {{ 0, ~0u}}, true}, - {&ps_dtou, {.d = {{ INFINITY}}}, {{~0u, 0 }}, true}, - {&ps_dtou, {.d = {{ -1.0}}}, {{ 0, 1 }}, true}, - {&ps_dtou, {.d = {{ 1.0}}}, {{ 1, 0 }}, true}, - {&ps_dtoi, {.d = {{ 1.0}}}, {.i = {1, -1}}, true}, - {&ps_dtof, {.d = {{ 1.5}}}, {.f = {1.5f, -1.5f}}, true}, + {&ps_dtou, {.d = {{INFINITY, -INFINITY}, {1.0, -1.0}}}, {{0, 0, UINT_MAX, 1}}, true}, + {&ps_dtou, {.d = {{NAN, -NAN}, {1.0, -1.0}}}, {{0, 0, 0, 1}}, true, .todo_on_nvidia = true}, + {&ps_dtoi, {.d = {{INFINITY, -INFINITY}, {1.0, -1.0}}}, {.i = {INT_MIN, -1, INT_MAX, 1}}, true}, + {&ps_dtof, {.d = {{1.5, (1.0/3.0)}, {1e40, -0.0}}}, {.f = {(1.0f/3.0f), -INFINITY, 1.5f, 0.0f}}, true}, {&ps_utod, {.u = {{3, 0xffffffff}}}, {.d = {3.0, 4294967295.0}}, true}, {&ps_itod, {.u = {{3, INT_MIN}}}, {.d = {3.0, -2147483648.0}}, true}, {&ps_ftod, {.f = {{-2.5f, -2.5f}}}, {.d = {-2.5, 2.5}}, true},