Stefan Dösinger (@stefan) commented about dlls/mfmediaengine/tests/mfmediaengine.c:
+ } + + ok(!enable_print, "ID3D11Device_GetImmediateContext\n"); + ID3D11Device_GetImmediateContext(d3d11_dev, &d3d11_dev_ctx); + + /* Map and unmap to wait for the Draw calls in MF to have finished. */ + hr = ID3D11DeviceContext_Map(d3d11_dev_ctx, (ID3D11Resource *)video_texture, 0, D3D11_MAP_READ, 0, &mapped_subresource); + ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr); + ID3D11DeviceContext_Unmap(d3d11_dev_ctx, (ID3D11Resource *)video_texture, 0); + + ID3D11DeviceContext_ClearState(d3d11_dev_ctx); + ID3D11DeviceContext_RSSetState(d3d11_dev_ctx, d3d11_rs); + ID3D11DeviceContext_OMSetRenderTargets(d3d11_dev_ctx, 1, &d3d11_rtv, NULL); + ID3D11DeviceContext_VSSetShader(d3d11_dev_ctx, d3d11_vs, NULL, 0); + ID3D11DeviceContext_PSSetShader(d3d11_dev_ctx, d3d11_ps, NULL, 0); + ID3D11DeviceContext_PSSetShaderResources(d3d11_dev_ctx, 0, 1, &d3d11_srv); I think all of these only need to be called once, so you can pull them out of the render loop (that while(!event_ended) loop)
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/1046#note_10531