From 7394c429c065eb96801500605ab7caa0a1289193 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Wed, 11 Feb 2009 05:07:31 +1000 Subject: [PATCH] radeon/r200: flush vertices when data in cmdbuf. This fixes a whole bunch of regressions in piglit --- src/mesa/drivers/dri/r200/r200_ioctl.h | 4 +++- src/mesa/drivers/dri/radeon/radeon_ioctl.h | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/mesa/drivers/dri/r200/r200_ioctl.h b/src/mesa/drivers/dri/r200/r200_ioctl.h index 6b9e4be30a0..316acef4593 100644 --- a/src/mesa/drivers/dri/r200/r200_ioctl.h +++ b/src/mesa/drivers/dri/r200/r200_ioctl.h @@ -39,6 +39,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "radeon_dri.h" #include "r200_lock.h" +#include "radeon_cs_legacy.h" + #include "xf86drm.h" #include "drm.h" #include "radeon_drm.h" @@ -129,7 +131,7 @@ static INLINE int R200_DB_STATECHANGE( */ #define R200_FIREVERTICES( rmesa ) \ do { \ - if ( rmesa->radeon.dma.flush ) { \ + if ( rmesa->radeon.cmdbuf.cs->cdw || rmesa->radeon.dma.flush ) { \ r200Flush( rmesa->radeon.glCtx ); \ } \ } while (0) diff --git a/src/mesa/drivers/dri/radeon/radeon_ioctl.h b/src/mesa/drivers/dri/radeon/radeon_ioctl.h index ac763703bcf..4e93804646a 100644 --- a/src/mesa/drivers/dri/radeon/radeon_ioctl.h +++ b/src/mesa/drivers/dri/radeon/radeon_ioctl.h @@ -38,7 +38,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "main/simple_list.h" #include "radeon_lock.h" - +#include "radeon_cs_legacy.h" extern void radeonEmitState( r100ContextPtr rmesa ); extern void radeonEmitVertexAOS( r100ContextPtr rmesa, @@ -132,9 +132,9 @@ static INLINE int RADEON_DB_STATECHANGE(r100ContextPtr rmesa, */ #define RADEON_FIREVERTICES( rmesa ) \ do { \ - if ( rmesa->radeon.dma.flush ) { \ + if (rmesa->radeon.cmdbuf.cs->cdw || rmesa->radeon.dma.flush ) { \ radeonFlush( rmesa->radeon.glCtx ); \ - } \ + } \ } while (0) /* Command lengths. Note that any time you ensure ELTS_BUFSZ or VBUF_BUFSZ -- 2.30.2