Nikolay Sivov : d3d10/effect: Set state block masks for state variables.
Module: wine Branch: master Commit: e893e6e27bc3d97901f65519a14bce6e588f65bc URL: https://source.winehq.org/git/wine.git/?a=commit;h=e893e6e27bc3d97901f65519a... Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Wed Oct 6 10:53:38 2021 +0300 d3d10/effect: Set state block masks for state variables. Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> Signed-off-by: Matteo Bruni <mbruni(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/d3d10/effect.c | 6 ++++++ dlls/d3d10/tests/effect.c | 3 --- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/dlls/d3d10/effect.c b/dlls/d3d10/effect.c index afcd292356e..0ba906375d7 100644 --- a/dlls/d3d10/effect.c +++ b/dlls/d3d10/effect.c @@ -4157,6 +4157,12 @@ static HRESULT STDMETHODCALLTYPE d3d10_effect_pass_ComputeStateBlockMask(ID3D10E D3D10StateBlockMaskEnableCapture(mask, D3D10_DST_PS, 0, 1); if (pass->gs.shader != &null_shader_variable) D3D10StateBlockMaskEnableCapture(mask, D3D10_DST_GS, 0, 1); + if (pass->rasterizer) + D3D10StateBlockMaskEnableCapture(mask, D3D10_DST_RS_RASTERIZER_STATE, 0, 1); + if (pass->depth_stencil) + D3D10StateBlockMaskEnableCapture(mask, D3D10_DST_OM_DEPTH_STENCIL_STATE, 0, 1); + if (pass->blend) + D3D10StateBlockMaskEnableCapture(mask, D3D10_DST_OM_BLEND_STATE, 0, 1); return S_OK; } diff --git a/dlls/d3d10/tests/effect.c b/dlls/d3d10/tests/effect.c index 1a06ff95365..781abb46745 100644 --- a/dlls/d3d10/tests/effect.c +++ b/dlls/d3d10/tests/effect.c @@ -4331,13 +4331,10 @@ static void test_effect_state_groups(void) hr = pass->lpVtbl->ComputeStateBlockMask(pass, &mask); ok(hr == S_OK, "Unexpected hr %#x.\n", hr); ret = D3D10StateBlockMaskGetSetting(&mask, D3D10_DST_RS_RASTERIZER_STATE, 0); -todo_wine ok(ret, "Unexpected mask.\n"); ret = D3D10StateBlockMaskGetSetting(&mask, D3D10_DST_OM_DEPTH_STENCIL_STATE, 0); -todo_wine ok(ret, "Unexpected mask.\n"); ret = D3D10StateBlockMaskGetSetting(&mask, D3D10_DST_OM_BLEND_STATE, 0); -todo_wine ok(ret, "Unexpected mask.\n"); hr = pass->lpVtbl->Apply(pass, 0);
participants (1)
-
Alexandre Julliard