diff --git a/dlls/wined3d/drawprim.c b/dlls/wined3d/drawprim.c index a050bb248b1..a1992c498d8 100644 --- a/dlls/wined3d/drawprim.c +++ b/dlls/wined3d/drawprim.c @@ -1949,15 +1949,6 @@ void drawPrimitive(IWineD3DDevice *iface, BOOL lighting_changed, lighting_original = FALSE; - if (TRACE_ON(d3d_draw) && wined3d_settings.offscreen_rendering_mode == ORM_FBO) { - check_fbo_status(iface); - } - - if (This->depth_copy_state == WINED3D_DCS_COPY) { - depth_copy(iface); - } - This->depth_copy_state = WINED3D_DCS_INITIAL; - /* Shaders can be implemented using ARB_PROGRAM, GLSL, or software - * here simply check whether a shader was set, or the user disabled shaders */ if (This->vs_selected_mode != SHADER_NONE && This->stateBlock->vertexShader && @@ -1990,6 +1981,15 @@ void drawPrimitive(IWineD3DDevice *iface, } This->numDirtyEntries = 0; /* This makes the whole list clean */ + if (TRACE_ON(d3d_draw) && wined3d_settings.offscreen_rendering_mode == ORM_FBO) { + check_fbo_status(iface); + } + + if (This->depth_copy_state == WINED3D_DCS_COPY) { + depth_copy(iface); + } + This->depth_copy_state = WINED3D_DCS_INITIAL; + if(DrawPrimStrideData) { /* Note: this is a ddraw fixed-function code path */