summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;