Zebediah Figura : tests: Move check_readback_data_vec4() to utils.h.

Alexandre Julliard julliard at winehq.org
Tue May 31 15:45:42 CDT 2022


Module: vkd3d
Branch: master
Commit: e6ea409bbfb53b8efabfe42a3d446c0200f5668d
URL:    https://source.winehq.org/git/vkd3d.git/?a=commit;h=e6ea409bbfb53b8efabfe42a3d446c0200f5668d

Author: Zebediah Figura <zfigura at codeweavers.com>
Date:   Tue May 17 15:45:40 2022 +0200

tests: Move check_readback_data_vec4() to utils.h.

Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
Signed-off-by: Giovanni Mascellani <gmascellani at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 tests/d3d12_test_utils.h     | 42 ------------------------------------------
 tests/shader_runner_d3d11.c  | 30 ------------------------------
 tests/shader_runner_d3d9.c   | 30 ------------------------------
 tests/shader_runner_vulkan.c | 32 +-------------------------------
 tests/utils.h                | 43 +++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 44 insertions(+), 133 deletions(-)

diff --git a/tests/d3d12_test_utils.h b/tests/d3d12_test_utils.h
index d8220409..c25449e6 100644
--- a/tests/d3d12_test_utils.h
+++ b/tests/d3d12_test_utils.h
@@ -506,24 +506,12 @@ static void get_texture_readback_with_command_list(ID3D12Resource *texture, unsi
     assert_that(hr == S_OK, "Failed to map readback buffer, hr %#x.\n", hr);
 }
 
-static void *get_readback_data(struct resource_readback *rb,
-        unsigned int x, unsigned int y, unsigned int z, size_t element_size)
-{
-    unsigned int slice_pitch = rb->row_pitch * rb->height;
-    return &((BYTE *)rb->data)[slice_pitch * z + rb->row_pitch * y + x * element_size];
-}
-
 static unsigned int get_readback_uint(struct resource_readback *rb,
         unsigned int x, unsigned int y, unsigned int z)
 {
     return *(unsigned int *)get_readback_data(rb, x, y, z, sizeof(unsigned int));
 }
 
-static const struct vec4 *get_readback_vec4(struct resource_readback *rb, unsigned int x, unsigned int y)
-{
-    return get_readback_data(rb, x, y, 0, sizeof(struct vec4));
-}
-
 static void release_resource_readback(struct d3d12_resource_readback *rb)
 {
     D3D12_RANGE range = {0, 0};
@@ -565,36 +553,6 @@ static void check_readback_data_uint_(unsigned int line, struct resource_readbac
     ok_(line)(all_match, "Got 0x%08x, expected 0x%08x at (%u, %u, %u).\n", got, expected, x, y, z);
 }
 
-#define check_readback_data_vec4(a, b, c, d) check_readback_data_vec4_(__LINE__, a, b, c, d)
-static void check_readback_data_vec4_(unsigned int line, struct resource_readback *rb,
-        const RECT *rect, const struct vec4 *expected, unsigned int max_diff)
-{
-    RECT r = {0, 0, rb->width, rb->height};
-    unsigned int x = 0, y = 0;
-    struct vec4 got = {0};
-    bool all_match = true;
-
-    if (rect)
-        r = *rect;
-
-    for (y = r.top; y < r.bottom; ++y)
-    {
-        for (x = r.left; x < r.right; ++x)
-        {
-            got = *get_readback_vec4(rb, x, y);
-            if (!compare_vec4(&got, expected, max_diff))
-            {
-                all_match = false;
-                break;
-            }
-        }
-        if (!all_match)
-            break;
-    }
-    ok_(line)(all_match, "Got {%.8e, %.8e, %.8e, %.8e}, expected {%.8e, %.8e, %.8e, %.8e} at (%u, %u).\n",
-            got.x, got.y, got.z, got.w, expected->x, expected->y, expected->z, expected->w, x, y);
-}
-
 #define check_sub_resource_uint(a, b, c, d, e, f) check_sub_resource_uint_(__LINE__, a, b, c, d, e, f)
 static inline void check_sub_resource_uint_(unsigned int line, ID3D12Resource *texture,
         unsigned int sub_resource_idx, ID3D12CommandQueue *queue, ID3D12GraphicsCommandList *command_list,
diff --git a/tests/shader_runner_d3d11.c b/tests/shader_runner_d3d11.c
index c8304ce6..a4e4f52b 100644
--- a/tests/shader_runner_d3d11.c
+++ b/tests/shader_runner_d3d11.c
@@ -577,36 +577,6 @@ static void release_readback(struct d3d11_shader_runner *runner, struct d3d11_re
     ID3D11Resource_Release(rb->resource);
 }
 
-static const struct vec4 *get_readback_vec4(struct resource_readback *rb, unsigned int x, unsigned int y)
-{
-    return (struct vec4 *)((BYTE *)rb->data + y * rb->row_pitch) + x;
-}
-
-static void check_readback_data_vec4(struct resource_readback *rb,
-        const RECT *rect, const struct vec4 *expected, unsigned int max_diff)
-{
-    unsigned int x = 0, y = 0;
-    struct vec4 got = {0};
-    bool all_match = true;
-
-    for (y = rect->top; y < rect->bottom; ++y)
-    {
-        for (x = rect->left; x < rect->right; ++x)
-        {
-            got = *get_readback_vec4(rb, x, y);
-            if (!compare_vec4(&got, expected, max_diff))
-            {
-                all_match = false;
-                break;
-            }
-        }
-        if (!all_match)
-            break;
-    }
-    ok(all_match, "Got {%.8e, %.8e, %.8e, %.8e}, expected {%.8e, %.8e, %.8e, %.8e} at (%u, %u).\n",
-            got.x, got.y, got.z, got.w, expected->x, expected->y, expected->z, expected->w, x, y);
-}
-
 static void d3d11_runner_probe_vec4(struct shader_runner *r, const RECT *rect, const struct vec4 *v, unsigned int ulps)
 {
     struct d3d11_shader_runner *runner = d3d11_shader_runner(r);
diff --git a/tests/shader_runner_d3d9.c b/tests/shader_runner_d3d9.c
index 14f8184a..8fa189cc 100644
--- a/tests/shader_runner_d3d9.c
+++ b/tests/shader_runner_d3d9.c
@@ -480,36 +480,6 @@ static void init_readback(struct d3d9_shader_runner *runner, struct d3d9_resourc
     rb->rb.depth = 1;
 }
 
-static const struct vec4 *get_readback_vec4(const struct resource_readback *rb, unsigned int x, unsigned int y)
-{
-    return (struct vec4 *)((BYTE *)rb->data + y * rb->row_pitch + x * sizeof(struct vec4));
-}
-
-static void check_readback_data_vec4(struct resource_readback *rb,
-        const RECT *rect, const struct vec4 *expected, unsigned int max_diff)
-{
-    unsigned int x = 0, y = 0;
-    struct vec4 got = {0};
-    bool all_match = true;
-
-    for (y = rect->top; y < rect->bottom; ++y)
-    {
-        for (x = rect->left; x < rect->right; ++x)
-        {
-            got = *get_readback_vec4(rb, x, y);
-            if (!compare_vec4(&got, expected, max_diff))
-            {
-                all_match = false;
-                break;
-            }
-        }
-        if (!all_match)
-            break;
-    }
-    ok(all_match, "Got {%.8e, %.8e, %.8e, %.8e}, expected {%.8e, %.8e, %.8e, %.8e} at (%u, %u).\n",
-            got.x, got.y, got.z, got.w, expected->x, expected->y, expected->z, expected->w, x, y);
-}
-
 static void release_readback(struct d3d9_resource_readback *rb)
 {
     IDirect3DSurface9_UnlockRect(rb->surface);
diff --git a/tests/shader_runner_vulkan.c b/tests/shader_runner_vulkan.c
index 4ef371ac..f218399b 100644
--- a/tests/shader_runner_vulkan.c
+++ b/tests/shader_runner_vulkan.c
@@ -19,12 +19,12 @@
  */
 
 #define VK_NO_PROTOTYPES
+#define VKD3D_TEST_NO_DEFS
 #include "config.h"
 #include "vulkan/vulkan.h"
 #include "vkd3d_shader.h"
 #include "vkd3d.h"
 #include "shader_runner.h"
-#define VKD3D_TEST_NO_DEFS
 #include "vkd3d_test.h"
 
 struct vulkan_resource
@@ -832,36 +832,6 @@ struct vulkan_resource_readback
     VkBuffer buffer;
 };
 
-static const struct vec4 *get_readback_vec4(const struct resource_readback *rb, unsigned int x, unsigned int y)
-{
-    return (struct vec4 *)((uint8_t *)rb->data + y * rb->row_pitch + x * sizeof(struct vec4));
-}
-
-static void check_readback_data_vec4(const struct resource_readback *rb,
-        const RECT *rect, const struct vec4 *expected, unsigned int max_diff)
-{
-    unsigned int x = 0, y = 0;
-    struct vec4 got = {0};
-    bool all_match = true;
-
-    for (y = rect->top; y < rect->bottom; ++y)
-    {
-        for (x = rect->left; x < rect->right; ++x)
-        {
-            got = *get_readback_vec4(rb, x, y);
-            if (!compare_vec4(&got, expected, max_diff))
-            {
-                all_match = false;
-                break;
-            }
-        }
-        if (!all_match)
-            break;
-    }
-    ok(all_match, "Got {%.8e, %.8e, %.8e, %.8e}, expected {%.8e, %.8e, %.8e, %.8e} at (%u, %u).\n",
-            got.x, got.y, got.z, got.w, expected->x, expected->y, expected->z, expected->w, x, y);
-}
-
 static void vulkan_runner_probe_vec4(struct shader_runner *r, const RECT *rect, const struct vec4 *v, unsigned int ulps)
 {
     struct vulkan_shader_runner *runner = vulkan_shader_runner(r);
diff --git a/tests/utils.h b/tests/utils.h
index 2cb9511f..c7d6d772 100644
--- a/tests/utils.h
+++ b/tests/utils.h
@@ -23,6 +23,7 @@
 #include <stdbool.h>
 #include <stdint.h>
 #include <stdlib.h>
+#include "vkd3d_test.h"
 
 struct vec2
 {
@@ -112,4 +113,46 @@ static inline void set_rect(RECT *rect, int left, int top, int right, int bottom
     rect->bottom = bottom;
 }
 
+static void *get_readback_data(const struct resource_readback *rb,
+        unsigned int x, unsigned int y, unsigned int z, size_t element_size)
+{
+    unsigned int slice_pitch = rb->row_pitch * rb->height;
+    return &((uint8_t *)rb->data)[slice_pitch * z + rb->row_pitch * y + x * element_size];
+}
+
+static const struct vec4 *get_readback_vec4(const struct resource_readback *rb, unsigned int x, unsigned int y)
+{
+    return get_readback_data(rb, x, y, 0, sizeof(struct vec4));
+}
+
+#define check_readback_data_vec4(a, b, c, d) check_readback_data_vec4_(__LINE__, a, b, c, d)
+static inline void check_readback_data_vec4_(unsigned int line, const struct resource_readback *rb,
+        const RECT *rect, const struct vec4 *expected, unsigned int max_diff)
+{
+    RECT r = {0, 0, rb->width, rb->height};
+    unsigned int x = 0, y = 0;
+    struct vec4 got = {0};
+    bool all_match = true;
+
+    if (rect)
+        r = *rect;
+
+    for (y = r.top; y < r.bottom; ++y)
+    {
+        for (x = r.left; x < r.right; ++x)
+        {
+            got = *get_readback_vec4(rb, x, y);
+            if (!compare_vec4(&got, expected, max_diff))
+            {
+                all_match = false;
+                break;
+            }
+        }
+        if (!all_match)
+            break;
+    }
+    ok_(line)(all_match, "Got {%.8e, %.8e, %.8e, %.8e}, expected {%.8e, %.8e, %.8e, %.8e} at (%u, %u).\n",
+            got.x, got.y, got.z, got.w, expected->x, expected->y, expected->z, expected->w, x, y);
+}
+
 #endif




More information about the wine-cvs mailing list