[PATCH v2 vkd3d 1/4] tests: Introduce check_sub_resource_uvec4().
Józef Kucia
joseph.kucia at gmail.com
Thu Nov 1 16:39:27 CDT 2018
From: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---
Version 2: Use sub_resource_idx in check_sub_resource_*() functions.
---
tests/d3d12.c | 55 ++++++++++++++++++++++++++++++++++-----------------
1 file changed, 37 insertions(+), 18 deletions(-)
diff --git a/tests/d3d12.c b/tests/d3d12.c
index 25c2fdf80439..504c77deb74b 100644
--- a/tests/d3d12.c
+++ b/tests/d3d12.c
@@ -749,7 +749,7 @@ static void check_sub_resource_uint8_(unsigned int line, ID3D12Resource *texture
{
struct resource_readback rb;
- get_texture_readback_with_command_list(texture, 0, &rb, queue, command_list);
+ get_texture_readback_with_command_list(texture, sub_resource_idx, &rb, queue, command_list);
check_readback_data_uint8_(line, &rb, NULL, expected, max_diff);
release_resource_readback(&rb);
}
@@ -805,7 +805,7 @@ static void check_sub_resource_vec4_(unsigned int line, ID3D12Resource *texture,
bool all_match = true;
struct vec4 got = {};
- get_texture_readback_with_command_list(texture, 0, &rb, queue, command_list);
+ get_texture_readback_with_command_list(texture, sub_resource_idx, &rb, queue, command_list);
for (y = 0; y < rb.height; ++y)
{
for (x = 0; x < rb.width; ++x)
@@ -826,6 +826,39 @@ static void check_sub_resource_vec4_(unsigned int line, ID3D12Resource *texture,
got.x, got.y, got.z, got.w, expected->x, expected->y, expected->z, expected->w, x, y);
}
+#define check_sub_resource_uvec4(a, b, c, d, e) check_sub_resource_uvec4_(__LINE__, a, b, c, d, e)
+static void check_sub_resource_uvec4_(unsigned int line, ID3D12Resource *texture,
+ unsigned int sub_resource_idx, ID3D12CommandQueue *queue, ID3D12GraphicsCommandList *command_list,
+ const struct uvec4 *expected_value)
+{
+ struct resource_readback rb;
+ struct uvec4 value = {};
+ unsigned int x = 0, y;
+ bool all_match = true;
+
+ get_texture_readback_with_command_list(texture, sub_resource_idx, &rb, queue, command_list);
+ for (y = 0; y < rb.height; ++y)
+ {
+ for (x = 0; x < rb.width; ++x)
+ {
+ value = *get_readback_uvec4(&rb, x, y);
+ if (!compare_uvec4(&value, expected_value))
+ {
+ all_match = false;
+ break;
+ }
+ }
+ if (!all_match)
+ break;
+ }
+ release_resource_readback(&rb);
+
+ ok_(line)(all_match,
+ "Got {0x%08x, 0x%08x, 0x%08x, 0x%08x}, expected {0x%08x, 0x%08x, 0x%08x, 0x%08x} at (%u, %u).\n",
+ value.x, value.y, value.z, value.w,
+ expected_value->x, expected_value->y, expected_value->z, expected_value->w, x, y);
+}
+
static bool use_warp_device;
static unsigned int use_adapter_idx;
@@ -5459,10 +5492,9 @@ static void test_shader_instructions(void)
ID3D12GraphicsCommandList *command_list;
struct test_context_desc desc;
struct test_context context;
- struct resource_readback rb;
ID3D12CommandQueue *queue;
- unsigned int i, x, y;
ID3D12Resource *cb;
+ unsigned int i;
HRESULT hr;
static const DWORD ps_div_code[] =
@@ -7850,20 +7882,7 @@ static void test_shader_instructions(void)
transition_resource_state(command_list, context.render_target,
D3D12_RESOURCE_STATE_RENDER_TARGET, D3D12_RESOURCE_STATE_COPY_SOURCE);
-
- get_texture_readback_with_command_list(context.render_target, 0, &rb, queue, command_list);
- for (y = 0; y < rb.height; ++y)
- {
- for (x = 0; x < rb.width; ++x)
- {
- const struct uvec4 *v = get_readback_uvec4(&rb, x, y);
- ok(compare_uvec4(v, &uint_tests[i].output.u),
- "Got 0x%08x, 0x%08x, 0x%08x, 0x%08x expected 0x%08x, 0x%08x, 0x%08x, 0x%08x.\n",
- v->x, v->y, v->z, v->w, uint_tests[i].output.u.x, uint_tests[i].output.u.y,
- uint_tests[i].output.u.z, uint_tests[i].output.u.w);
- }
- }
- release_resource_readback(&rb);
+ check_sub_resource_uvec4(context.render_target, 0, queue, command_list, &uint_tests[i].output.u);
reset_command_list(command_list, context.allocator);
transition_resource_state(command_list, context.render_target,
--
2.18.1
More information about the wine-devel
mailing list