diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2008-12-03 17:31:25 -0500 |
---|---|---|
committer | Alex Deucher <alexdeucher@gmail.com> | 2008-12-03 17:31:25 -0500 |
commit | 941ac0d3ab839dc5aaaef2f3b7f5c7085b2894c5 (patch) | |
tree | d153d180a1b14293360611b182fef2ef1109b5a1 /src | |
parent | 927aee181f3637bda1b761caf93fbc0652e1207b (diff) |
Make sure 3D state is emited when switching to 3D IB
- fixes bug 18864
Diffstat (limited to 'src')
-rw-r--r-- | src/radeon.h | 4 | ||||
-rw-r--r-- | src/radeon_exa_render.c | 9 | ||||
-rw-r--r-- | src/radeon_textured_videofuncs.c | 6 |
3 files changed, 6 insertions, 13 deletions
diff --git a/src/radeon.h b/src/radeon.h index 902d1c05..86cee4b4 100644 --- a/src/radeon.h +++ b/src/radeon.h @@ -1318,8 +1318,10 @@ do { \ case EXA_ENGINEMODE_3D: \ break; \ } \ - if (flush && info->directRenderingEnabled) \ + if (flush && info->directRenderingEnabled) { \ RADEONCPFlushIndirect(pScrn, 1); \ + RADEONInit3DEngine(pScrn); \ + } \ info->accel_state->engineMode = EXA_ENGINEMODE_3D; \ } while (0); #else diff --git a/src/radeon_exa_render.c b/src/radeon_exa_render.c index c75c6a52..b7972000 100644 --- a/src/radeon_exa_render.c +++ b/src/radeon_exa_render.c @@ -558,9 +558,6 @@ static Bool FUNC_NAME(R100PrepareComposite)(int op, RADEON_SWITCH_TO_3D(); - if (!info->accel_state->XInited3D) - RADEONInit3DEngine(pScrn); - if (!FUNC_NAME(R100TextureSetup)(pSrcPicture, pSrc, 0)) return FALSE; pp_cntl = RADEON_TEX_0_ENABLE | RADEON_TEX_BLEND_0_ENABLE; @@ -859,9 +856,6 @@ static Bool FUNC_NAME(R200PrepareComposite)(int op, PicturePtr pSrcPicture, RADEON_SWITCH_TO_3D(); - if (!info->accel_state->XInited3D) - RADEONInit3DEngine(pScrn); - if (!FUNC_NAME(R200TextureSetup)(pSrcPicture, pSrc, 0)) return FALSE; pp_cntl = RADEON_TEX_0_ENABLE | RADEON_TEX_BLEND_0_ENABLE; @@ -1223,9 +1217,6 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture, RADEON_SWITCH_TO_3D(); - if (!info->accel_state->XInited3D) - RADEONInit3DEngine(pScrn); - if (!FUNC_NAME(R300TextureSetup)(pSrcPicture, pSrc, 0)) return FALSE; txenable = R300_TEX_0_ENABLE; diff --git a/src/radeon_textured_videofuncs.c b/src/radeon_textured_videofuncs.c index 7a4ffc2e..63434c6f 100644 --- a/src/radeon_textured_videofuncs.c +++ b/src/radeon_textured_videofuncs.c @@ -142,10 +142,10 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv RADEON_WAIT_3D_IDLECLEAN | RADEON_WAIT_DMA_GUI_IDLE); FINISH_ACCEL(); - } - if (!info->accel_state->XInited3D) - RADEONInit3DEngine(pScrn); + if (!info->accel_state->XInited3D) + RADEONInit3DEngine(pScrn); + } if (pPriv->bicubic_enabled) vtx_count = 6; |