Nikolay Sivov : d3d10/effect: Set state block masks for state variables.

Alexandre Julliard julliard at winehq.org
Thu Oct 7 16:21:22 CDT 2021


Module: wine
Branch: master
Commit: e893e6e27bc3d97901f65519a14bce6e588f65bc
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=e893e6e27bc3d97901f65519a14bce6e588f65bc

Author: Nikolay Sivov <nsivov at 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 at codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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);




More information about the wine-cvs mailing list