summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2008-12-03 17:31:25 -0500
committerAlex Deucher <alexdeucher@gmail.com>2008-12-03 17:31:25 -0500
commit941ac0d3ab839dc5aaaef2f3b7f5c7085b2894c5 (patch)
treed153d180a1b14293360611b182fef2ef1109b5a1 /src
parent927aee181f3637bda1b761caf93fbc0652e1207b (diff)
Make sure 3D state is emited when switching to 3D IB
- fixes bug 18864
Diffstat (limited to 'src')
-rw-r--r--src/radeon.h4
-rw-r--r--src/radeon_exa_render.c9
-rw-r--r--src/radeon_textured_videofuncs.c6
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;