tests: Replace test_ps_viewport_index() with a shader runner test.

Mainly to allow testing the functionality in question with DXIL shaders
as well.
This commit is contained in:
Conor McCarthy
2024-05-01 14:36:30 +10:00
committed by Henri Verbeet
parent 55fe8df979
commit cd8cea6913
Notes: Henri Verbeet 2025-07-31 15:06:45 +02:00
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1663
10 changed files with 154 additions and 119 deletions

View File

@@ -973,6 +973,21 @@ static bool d3d11_runner_draw(struct shader_runner *r,
ID3D11DeviceContext_RSSetState(context, runner->rasterizer_state);
set_viewport(context, 0.0f, 0.0f, fb_width, fb_height, 0.0f, 1.0f);
if (r->viewport_count)
{
D3D11_VIEWPORT viewports[ARRAY_SIZE(r->viewports)];
for (i = 0; i < r->viewport_count; ++i)
{
viewports[i].TopLeftX = r->viewports[i].x;
viewports[i].TopLeftY = r->viewports[i].y;
viewports[i].Width = r->viewports[i].width;
viewports[i].Height = r->viewports[i].height;
viewports[i].MinDepth = 0.0f;
viewports[i].MaxDepth = 1.0f;
}
ID3D11DeviceContext_RSSetViewports(runner->immediate_context, r->viewport_count, viewports);
}
ID3D11DeviceContext_DrawInstanced(context, vertex_count, instance_count, 0, 0);
ID3D11PixelShader_Release(ps);