mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-04-13 05:43:18 -07:00
tests: Introduce check_sub_resource_uvec4().
Signed-off-by: Józef Kucia <jkucia@codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
7338ba0337
commit
887401ed27
@ -749,7 +749,7 @@ static void check_sub_resource_uint8_(unsigned int line, ID3D12Resource *texture
|
|||||||
{
|
{
|
||||||
struct resource_readback rb;
|
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);
|
check_readback_data_uint8_(line, &rb, NULL, expected, max_diff);
|
||||||
release_resource_readback(&rb);
|
release_resource_readback(&rb);
|
||||||
}
|
}
|
||||||
@ -805,7 +805,7 @@ static void check_sub_resource_vec4_(unsigned int line, ID3D12Resource *texture,
|
|||||||
bool all_match = true;
|
bool all_match = true;
|
||||||
struct vec4 got = {};
|
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 (y = 0; y < rb.height; ++y)
|
||||||
{
|
{
|
||||||
for (x = 0; x < rb.width; ++x)
|
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);
|
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 bool use_warp_device;
|
||||||
static unsigned int use_adapter_idx;
|
static unsigned int use_adapter_idx;
|
||||||
|
|
||||||
@ -5459,10 +5492,9 @@ static void test_shader_instructions(void)
|
|||||||
ID3D12GraphicsCommandList *command_list;
|
ID3D12GraphicsCommandList *command_list;
|
||||||
struct test_context_desc desc;
|
struct test_context_desc desc;
|
||||||
struct test_context context;
|
struct test_context context;
|
||||||
struct resource_readback rb;
|
|
||||||
ID3D12CommandQueue *queue;
|
ID3D12CommandQueue *queue;
|
||||||
unsigned int i, x, y;
|
|
||||||
ID3D12Resource *cb;
|
ID3D12Resource *cb;
|
||||||
|
unsigned int i;
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
|
||||||
static const DWORD ps_div_code[] =
|
static const DWORD ps_div_code[] =
|
||||||
@ -7850,20 +7882,7 @@ static void test_shader_instructions(void)
|
|||||||
|
|
||||||
transition_resource_state(command_list, context.render_target,
|
transition_resource_state(command_list, context.render_target,
|
||||||
D3D12_RESOURCE_STATE_RENDER_TARGET, D3D12_RESOURCE_STATE_COPY_SOURCE);
|
D3D12_RESOURCE_STATE_RENDER_TARGET, D3D12_RESOURCE_STATE_COPY_SOURCE);
|
||||||
|
check_sub_resource_uvec4(context.render_target, 0, queue, command_list, &uint_tests[i].output.u);
|
||||||
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);
|
|
||||||
|
|
||||||
reset_command_list(command_list, context.allocator);
|
reset_command_list(command_list, context.allocator);
|
||||||
transition_resource_state(command_list, context.render_target,
|
transition_resource_state(command_list, context.render_target,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user