[Mesa-dev] [PATCH 25/36] st/nine: Ignore MULTISAMPLEMASK when RT is not multisampled

Axel Davy axel.davy at ens.fr
Wed Dec 7 22:30:48 UTC 2016


We were ignoring MULTISAMPLEMASK for non-maskable multisample
modes, but we were missing the non-multisampled case.

Fixes a crash in Halo.

Signed-off-by: Axel Davy <axel.davy at ens.fr>
---
 src/gallium/state_trackers/nine/device9.c    | 4 ++--
 src/gallium/state_trackers/nine/nine_state.c | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/gallium/state_trackers/nine/device9.c b/src/gallium/state_trackers/nine/device9.c
index 62f2e8e..3523748 100644
--- a/src/gallium/state_trackers/nine/device9.c
+++ b/src/gallium/state_trackers/nine/device9.c
@@ -1842,8 +1842,8 @@ NineDevice9_SetRenderTarget( struct NineDevice9 *This,
         This->state.changed.group |= NINE_STATE_VIEWPORT | NINE_STATE_SCISSOR | NINE_STATE_MULTISAMPLE;
 
         if (This->state.rt[0] &&
-            (This->state.rt[0]->desc.MultiSampleType == D3DMULTISAMPLE_NONMASKABLE) !=
-            (rt->desc.MultiSampleType == D3DMULTISAMPLE_NONMASKABLE))
+            (This->state.rt[0]->desc.MultiSampleType <= D3DMULTISAMPLE_NONMASKABLE) !=
+            (rt->desc.MultiSampleType <= D3DMULTISAMPLE_NONMASKABLE))
             This->state.changed.group |= NINE_STATE_SAMPLE_MASK;
     }
 
diff --git a/src/gallium/state_trackers/nine/nine_state.c b/src/gallium/state_trackers/nine/nine_state.c
index 503ff5c..9e2dfc6 100644
--- a/src/gallium/state_trackers/nine/nine_state.c
+++ b/src/gallium/state_trackers/nine/nine_state.c
@@ -1100,7 +1100,7 @@ nine_update_state(struct NineDevice9 *device)
             pipe->set_blend_color(pipe, &color);
         }
         if (group & NINE_STATE_SAMPLE_MASK) {
-            if (state->rt[0]->desc.MultiSampleType == D3DMULTISAMPLE_NONMASKABLE) {
+            if (state->rt[0]->desc.MultiSampleType <= D3DMULTISAMPLE_NONMASKABLE) {
                 pipe->set_sample_mask(pipe, ~0);
             } else {
                 pipe->set_sample_mask(pipe, state->rs[D3DRS_MULTISAMPLEMASK]);
-- 
2.10.2



More information about the mesa-dev mailing list