[PATCH vkd3d 3/4] tests: Add a test for the shader DFMA instruction.

Conor McCarthy cmccarthy at codeweavers.com
Mon Aug 9 10:12:30 CDT 2021


Signed-off-by: Conor McCarthy <cmccarthy at codeweavers.com>
---
 tests/d3d12.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/tests/d3d12.c b/tests/d3d12.c
index 12dab502..9854af30 100644
--- a/tests/d3d12.c
+++ b/tests/d3d12.c
@@ -9157,6 +9157,29 @@ static void test_shader_instructions(void)
         0x30494653, 0x00000008, 0x00000001, 0x00000000,
     };
     static struct named_shader ps_dmin_dmax = {"dmin_dmax", ps_dmin_dmax_code, sizeof(ps_dmin_dmax_code)};
+    static const DWORD ps_dfma_code[] =
+    {
+#if 0
+        double2 src0;
+
+        void main(out uint4 dst : SV_Target)
+        {
+            asuint(fma(src0.x, src0.y, 1.0000002433080226l), dst.x, dst.y);
+            dst.zw = 0;
+        }
+#endif
+        0x43425844, 0xde5b55c7, 0x2660b48d, 0x52b1761e, 0x50319c4d, 0x00000001, 0x0000012c, 0x00000004,
+        0x00000030, 0x00000040, 0x00000074, 0x0000011c, 0x4e475349, 0x00000008, 0x00000000, 0x00000008,
+        0x4e47534f, 0x0000002c, 0x00000001, 0x00000008, 0x00000020, 0x00000000, 0x00000000, 0x00000001,
+        0x00000000, 0x0000000f, 0x545f5653, 0x65677261, 0xabab0074, 0x58454853, 0x000000a0, 0x00000050,
+        0x00000028, 0x0102186a, 0x04000059, 0x00208e46, 0x00000000, 0x00000001, 0x03000065, 0x001020f2,
+        0x00000000, 0x02000068, 0x00000001, 0x0e0000d3, 0x00100032, 0x00000000, 0x00208446, 0x00000000,
+        0x00000000, 0x00208ee6, 0x00000000, 0x00000000, 0x00005002, 0x41500000, 0x3ff00000, 0x00000000,
+        0x00000000, 0x05000036, 0x00102032, 0x00000000, 0x00100046, 0x00000000, 0x08000036, 0x001020c2,
+        0x00000000, 0x00004002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0100003e, 0x30494653,
+        0x00000008, 0x00000021, 0x00000000,
+    };
+    static struct named_shader ps_dfma = {"dfma", ps_dfma_code, sizeof(ps_dfma_code)};
     static const DWORD ps_dmovc_code[] =
     {
 #if 0
@@ -9936,6 +9959,8 @@ static void test_shader_instructions(void)
         {&ps_dmov,      {.d = {{2.5 + 1.0e-9, -3.5 - 1.0e-9}}},  {.d = {3.5 + 1.0e-9, -2.5 - 1.0e-9}}, true},
         {&ps_dadd,      {.d = {{2.5, 0.0}}},  {.d = {2.5 + 1.0000002433080226, 2.5 + 2.000000481493771}}, true},
         {&ps_dmin_dmax, {.d = {{-1.0, 1.0}}}, {.d = {-1.0, 1.0}}, true},
+        {&ps_dfma,      {.d = {{1.0000002433080226, 2.000000481493771}}},
+                        {.d = {1.0000002433080226 * 2.000000481493771 + 1.0000002433080226}}, true, true},
         {&ps_dmovc,     {.d = {{0.5, 0.0}}},  {.d = {4.5, 4.5}}, true, true},
         {&ps_dmovc,     {.d = {{1.5, 0.0}}},  {.d = {1.5, 0.0}}, true, true},
         {&ps_dmodifier, {.d = {{1.5, 0.0}}},  {.d = {1.5f, 2.5f}}, true},
-- 
2.32.0




More information about the wine-devel mailing list