d3d11/tests: Introduce a clear_rtv() helper.

This fixes warnings with gcc 12.2.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
This commit is contained in:
Eric Pouech 2022-09-15 19:37:20 +02:00 committed by Alexandre Julliard
parent 6ba6f54f56
commit 5fa25d00d7

View file

@ -1810,6 +1810,13 @@ static void release_test_context_(unsigned int line, struct d3d11_test_context *
ok_(__FILE__, line)(!ref, "Device has %lu references left.\n", ref);
}
static void clear_rtv(ID3D11DeviceContext *context, ID3D11RenderTargetView *rtv, const struct vec4 *v)
{
/* Cast to (const float *) instead of passing &v->x, since gcc warns about
* overreading a float[4] from a float otherwise. */
ID3D11DeviceContext_ClearRenderTargetView(context, rtv, (const float *)v);
}
#define draw_quad(context) draw_quad_vs_(__LINE__, context, NULL, 0)
#define draw_quad_vs(a, b, c) draw_quad_vs_(__LINE__, a, b, c)
static void draw_quad_vs_(unsigned int line, struct d3d11_test_context *context,
@ -20778,7 +20785,7 @@ static void test_face_culling(void)
device = test_context.device;
context = test_context.immediate_context;
ID3D11DeviceContext_ClearRenderTargetView(context, test_context.backbuffer_rtv, &red.x);
clear_rtv(context, test_context.backbuffer_rtv, &red);
draw_color_quad(&test_context, &green);
check_texture_color(test_context.backbuffer, 0xff00ff00, 0);
@ -20786,7 +20793,7 @@ static void test_face_culling(void)
ccw_vb = create_buffer(device, D3D11_BIND_VERTEX_BUFFER, sizeof(ccw_quad), ccw_quad);
test_context.vb = ccw_vb;
ID3D11DeviceContext_ClearRenderTargetView(context, test_context.backbuffer_rtv, &red.x);
clear_rtv(context, test_context.backbuffer_rtv, &red);
draw_color_quad(&test_context, &green);
check_texture_color(test_context.backbuffer, 0xff0000ff, 0);
@ -20811,12 +20818,12 @@ static void test_face_culling(void)
ID3D11DeviceContext_RSSetState(context, state);
test_context.vb = cw_vb;
ID3D11DeviceContext_ClearRenderTargetView(context, test_context.backbuffer_rtv, &red.x);
clear_rtv(context, test_context.backbuffer_rtv, &red);
draw_color_quad(&test_context, &green);
check_texture_color(test_context.backbuffer, tests[i].expected_cw ? 0xff00ff00 : 0xff0000ff, 0);
test_context.vb = ccw_vb;
ID3D11DeviceContext_ClearRenderTargetView(context, test_context.backbuffer_rtv, &red.x);
clear_rtv(context, test_context.backbuffer_rtv, &red);
draw_color_quad(&test_context, &green);
check_texture_color(test_context.backbuffer, tests[i].expected_ccw ? 0xff00ff00 : 0xff0000ff, 0);
@ -20837,11 +20844,11 @@ static void test_face_culling(void)
ID3D11DeviceContext_RSSetState(context, state);
test_context.vb = cw_vb;
ID3D11DeviceContext_ClearRenderTargetView(context, test_context.backbuffer_rtv, &red.x);
clear_rtv(context, test_context.backbuffer_rtv, &red);
draw_color_quad(&test_context, &green);
check_texture_color(test_context.backbuffer, 0xff00ff00, 0);
test_context.vb = ccw_vb;
ID3D11DeviceContext_ClearRenderTargetView(context, test_context.backbuffer_rtv, &red.x);
clear_rtv(context, test_context.backbuffer_rtv, &red);
draw_color_quad(&test_context, &green);
if (!broken_warp)
check_texture_color(test_context.backbuffer, 0xffff0000, 0);
@ -20857,14 +20864,14 @@ static void test_face_culling(void)
ID3D11DeviceContext_RSSetState(context, state);
test_context.vb = cw_vb;
ID3D11DeviceContext_ClearRenderTargetView(context, test_context.backbuffer_rtv, &red.x);
clear_rtv(context, test_context.backbuffer_rtv, &red);
draw_color_quad(&test_context, &green);
if (!broken_warp)
check_texture_color(test_context.backbuffer, 0xffff0000 , 0);
else
win_skip("Broken WARP.\n");
test_context.vb = ccw_vb;
ID3D11DeviceContext_ClearRenderTargetView(context, test_context.backbuffer_rtv, &red.x);
clear_rtv(context, test_context.backbuffer_rtv, &red);
draw_color_quad(&test_context, &green);
check_texture_color(test_context.backbuffer, 0xff00ff00, 0);
@ -20911,22 +20918,22 @@ static void test_line_antialiasing_blending(void)
ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
ID3D11DeviceContext_OMSetBlendState(context, blend_state, NULL, D3D11_DEFAULT_SAMPLE_MASK);
ID3D11DeviceContext_ClearRenderTargetView(context, test_context.backbuffer_rtv, &red.x);
clear_rtv(context, test_context.backbuffer_rtv, &red);
draw_color_quad(&test_context, &green);
check_texture_color(test_context.backbuffer, 0xe2007fcc, 1);
ID3D11DeviceContext_ClearRenderTargetView(context, test_context.backbuffer_rtv, &green.x);
clear_rtv(context, test_context.backbuffer_rtv, &green);
draw_color_quad(&test_context, &red);
check_texture_color(test_context.backbuffer, 0xe2007fcc, 1);
ID3D11DeviceContext_OMSetBlendState(context, NULL, NULL, D3D11_DEFAULT_SAMPLE_MASK);
ID3D11BlendState_Release(blend_state);
ID3D11DeviceContext_ClearRenderTargetView(context, test_context.backbuffer_rtv, &red.x);
clear_rtv(context, test_context.backbuffer_rtv, &red);
draw_color_quad(&test_context, &green);
check_texture_color(test_context.backbuffer, 0x7f00ff00, 1);
ID3D11DeviceContext_ClearRenderTargetView(context, test_context.backbuffer_rtv, &green.x);
clear_rtv(context, test_context.backbuffer_rtv, &green);
draw_color_quad(&test_context, &red);
check_texture_color(test_context.backbuffer, 0xcc0000ff, 1);
@ -20945,11 +20952,11 @@ static void test_line_antialiasing_blending(void)
ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
ID3D11DeviceContext_RSSetState(context, rasterizer_state);
ID3D11DeviceContext_ClearRenderTargetView(context, test_context.backbuffer_rtv, &red.x);
clear_rtv(context, test_context.backbuffer_rtv, &red);
draw_color_quad(&test_context, &green);
check_texture_color(test_context.backbuffer, 0x7f00ff00, 1);
ID3D11DeviceContext_ClearRenderTargetView(context, test_context.backbuffer_rtv, &green.x);
clear_rtv(context, test_context.backbuffer_rtv, &green);
draw_color_quad(&test_context, &red);
check_texture_color(test_context.backbuffer, 0xcc0000ff, 1);
@ -27162,7 +27169,7 @@ static void test_stream_output_resume(void)
ID3D11DeviceContext_GSSetShader(context, gs, NULL, 0);
ID3D11DeviceContext_GSSetConstantBuffers(context, 0, 1, &cb);
ID3D11DeviceContext_ClearRenderTargetView(context, test_context.backbuffer_rtv, &white.x);
clear_rtv(context, test_context.backbuffer_rtv, &white);
check_texture_color(test_context.backbuffer, 0xffffffff, 0);
/* Draw into a SO buffer and then immediately destroy it, to make sure that
@ -27885,7 +27892,7 @@ static void test_gather(void)
ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
ID3D11DeviceContext_PSSetShader(context, ps, NULL, 0);
ID3D11DeviceContext_ClearRenderTargetView(context, rtv, &white.x);
clear_rtv(context, rtv, &white);
draw_quad(&test_context);
get_texture_readback(rt, 0, &rb);
for (y = 0; y < texture_desc.Height; ++y)
@ -27906,7 +27913,7 @@ static void test_gather(void)
ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
ID3D11DeviceContext_PSSetShader(context, ps, NULL, 0);
ID3D11DeviceContext_ClearRenderTargetView(context, rtv, &white.x);
clear_rtv(context, rtv, &white);
draw_quad(&test_context);
get_texture_readback(rt, 0, &rb);
for (y = 0; y < texture_desc.Height; ++y)
@ -27934,7 +27941,7 @@ static void test_gather(void)
ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
ID3D11DeviceContext_PSSetShader(context, ps, NULL, 0);
ID3D11DeviceContext_ClearRenderTargetView(context, rtv, &white.x);
clear_rtv(context, rtv, &white);
draw_quad(&test_context);
get_texture_readback(rt, 0, &rb);
for (y = 0; y < texture_desc.Height; ++y)
@ -27955,7 +27962,7 @@ static void test_gather(void)
ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
ID3D11DeviceContext_PSSetShader(context, ps, NULL, 0);
ID3D11DeviceContext_ClearRenderTargetView(context, rtv, &white.x);
clear_rtv(context, rtv, &white);
draw_quad(&test_context);
get_texture_readback(rt, 0, &rb);
for (y = 0; y < texture_desc.Height; ++y)
@ -27974,7 +27981,7 @@ static void test_gather(void)
constant.offset_x = 0;
constant.offset_y = 0;
ID3D11DeviceContext_UpdateSubresource(context, (ID3D11Resource *)cb, 0, NULL, &constant, 0, 0);
ID3D11DeviceContext_ClearRenderTargetView(context, rtv, &white.x);
clear_rtv(context, rtv, &white);
draw_quad(&test_context);
get_texture_readback(rt, 0, &rb);
for (y = 0; y < texture_desc.Height; ++y)
@ -28173,7 +28180,7 @@ static void test_gather_c(void)
ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
ID3D11DeviceContext_PSSetShader(context, ps, NULL, 0);
ID3D11DeviceContext_ClearRenderTargetView(context, rtv, &white.x);
clear_rtv(context, rtv, &white);
draw_quad(&test_context);
get_texture_readback(rt, 0, &rb);
for (y = 0; y < texture_desc.Height; ++y)
@ -28194,7 +28201,7 @@ static void test_gather_c(void)
ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
ID3D11DeviceContext_PSSetShader(context, ps, NULL, 0);
ID3D11DeviceContext_ClearRenderTargetView(context, rtv, &white.x);
clear_rtv(context, rtv, &white);
draw_quad(&test_context);
get_texture_readback(rt, 0, &rb);
for (y = 0; y < texture_desc.Height; ++y)
@ -30502,7 +30509,7 @@ static void test_generate_mips(void)
ID3D11DeviceContext_GenerateMips(context, srv);
ID3D11DeviceContext_ClearRenderTargetView(context, test_context.backbuffer_rtv, &white.x);
clear_rtv(context, test_context.backbuffer_rtv, &white);
srv_desc.Format = tests[j].texture_format == DXGI_FORMAT_R8G8B8A8_UINT
? DXGI_FORMAT_R8G8B8A8_UINT : DXGI_FORMAT_R8G8B8A8_UNORM;
@ -30571,7 +30578,7 @@ static void test_generate_mips(void)
ID3D11DeviceContext_GenerateMips(context, srv);
ID3D11DeviceContext_ClearRenderTargetView(context, test_context.backbuffer_rtv, &white.w);
clear_rtv(context, test_context.backbuffer_rtv, &white);
srv_desc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
srv_desc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D;
@ -30603,7 +30610,7 @@ static void test_generate_mips(void)
ID3D11DeviceContext_GenerateMips(context, srv);
ID3D11DeviceContext_ClearRenderTargetView(context, test_context.backbuffer_rtv, &white.w);
clear_rtv(context, test_context.backbuffer_rtv, &white);
srv_desc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
srv_desc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D;
@ -33280,7 +33287,7 @@ static void test_deferred_context_rendering(void)
hr = ID3D11Device_CreateBlendState(device, &blend_desc, &blue_blend);
ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
ID3D11DeviceContext_ClearRenderTargetView(immediate, test_context.backbuffer_rtv, &white.x);
clear_rtv(immediate, test_context.backbuffer_rtv, &white);
ID3D11DeviceContext_ClearRenderTargetView(deferred, test_context.backbuffer_rtv, green);
@ -33297,12 +33304,12 @@ static void test_deferred_context_rendering(void)
color = get_texture_color(test_context.backbuffer, 320, 240);
ok(color == 0xff00ff00, "Got unexpected colour %#08lx.\n", color);
ID3D11DeviceContext_ClearRenderTargetView(immediate, test_context.backbuffer_rtv, &white.x);
clear_rtv(immediate, test_context.backbuffer_rtv, &white);
ID3D11DeviceContext_ExecuteCommandList(immediate, list1, TRUE);
color = get_texture_color(test_context.backbuffer, 320, 240);
ok(color == 0xff00ff00, "Got unexpected colour %#08lx.\n", color);
ID3D11DeviceContext_ClearRenderTargetView(immediate, test_context.backbuffer_rtv, &white.x);
clear_rtv(immediate, test_context.backbuffer_rtv, &white);
ID3D11DeviceContext_ExecuteCommandList(immediate, list2, TRUE);
color = get_texture_color(test_context.backbuffer, 320, 240);
ok(color == 0xffffffff, "Got unexpected colour %#08lx.\n", color);
@ -33313,7 +33320,7 @@ static void test_deferred_context_rendering(void)
hr = ID3D11DeviceContext_FinishCommandList(deferred, TRUE, &list2);
ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
ID3D11DeviceContext_ClearRenderTargetView(immediate, test_context.backbuffer_rtv, &white.x);
clear_rtv(immediate, test_context.backbuffer_rtv, &white);
ID3D11DeviceContext_ExecuteCommandList(immediate, list2, TRUE);
color = get_texture_color(test_context.backbuffer, 320, 240);
ok(color == 0xff00ff00, "Got unexpected colour %#08lx.\n", color);
@ -33328,7 +33335,7 @@ static void test_deferred_context_rendering(void)
hr = ID3D11Device_CreateRenderTargetView(device, (ID3D11Resource *)texture, NULL, &rtv);
ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
ID3D11DeviceContext_ClearRenderTargetView(immediate, test_context.backbuffer_rtv, &white.x);
clear_rtv(immediate, test_context.backbuffer_rtv, &white);
ID3D11DeviceContext_ClearRenderTargetView(immediate, rtv, green);
hr = ID3D11Device_CreateDeferredContext(device, 0, &deferred);
@ -34343,7 +34350,7 @@ static void test_dynamic_map_synchronization(void)
hr = ID3D11Device_CreateBuffer(device, &buffer_desc, NULL, &test_context.vb);
ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
ID3D11DeviceContext_ClearRenderTargetView(immediate, test_context.backbuffer_rtv, &red.x);
clear_rtv(immediate, test_context.backbuffer_rtv, &red);
for (y = 0; y < 200; ++y)
{