tests/shader_runner: Move the check_readback_data_vec4() call to shader_runner.c.

Split the probe_vec4() directive into get_rt_readback() and release_readback().

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Zebediah Figura
2022-05-17 15:45:41 +02:00
committed by Alexandre Julliard
parent e6ea409bbf
commit 4a9d675c49
6 changed files with 74 additions and 51 deletions

View File

@@ -546,8 +546,10 @@ struct d3d11_resource_readback
ID3D11Resource *resource;
};
static void init_readback(struct d3d11_shader_runner *runner, struct d3d11_resource_readback *rb)
static struct resource_readback *d3d11_runner_get_rt_readback(struct shader_runner *r)
{
struct d3d11_shader_runner *runner = d3d11_shader_runner(r);
struct d3d11_resource_readback *rb = malloc(sizeof(*rb));
D3D11_TEXTURE2D_DESC texture_desc;
D3D11_MAPPED_SUBRESOURCE map_desc;
HRESULT hr;
@@ -569,22 +571,17 @@ static void init_readback(struct d3d11_shader_runner *runner, struct d3d11_resou
rb->rb.width = texture_desc.Width;
rb->rb.height = texture_desc.Height;
rb->rb.depth = 1;
return &rb->rb;
}
static void release_readback(struct d3d11_shader_runner *runner, struct d3d11_resource_readback *rb)
{
ID3D11DeviceContext_Unmap(runner->immediate_context, rb->resource, 0);
ID3D11Resource_Release(rb->resource);
}
static void d3d11_runner_probe_vec4(struct shader_runner *r, const RECT *rect, const struct vec4 *v, unsigned int ulps)
static void d3d11_runner_release_readback(struct shader_runner *r, struct resource_readback *rb)
{
struct d3d11_resource_readback *d3d11_rb = CONTAINING_RECORD(rb, struct d3d11_resource_readback, rb);
struct d3d11_shader_runner *runner = d3d11_shader_runner(r);
struct d3d11_resource_readback rb;
init_readback(runner, &rb);
check_readback_data_vec4(&rb.rb, rect, v, ulps);
release_readback(runner, &rb);
ID3D11DeviceContext_Unmap(runner->immediate_context, d3d11_rb->resource, 0);
ID3D11Resource_Release(d3d11_rb->resource);
free(d3d11_rb);
}
static const struct shader_runner_ops d3d11_runner_ops =
@@ -592,7 +589,8 @@ static const struct shader_runner_ops d3d11_runner_ops =
.create_resource = d3d11_runner_create_resource,
.destroy_resource = d3d11_runner_destroy_resource,
.draw = d3d11_runner_draw,
.probe_vec4 = d3d11_runner_probe_vec4,
.get_rt_readback = d3d11_runner_get_rt_readback,
.release_readback = d3d11_runner_release_readback,
};
void run_shader_tests_d3d11(int argc, char **argv)