From: Dave Airlie Date: Tue, 10 Feb 2009 19:07:31 +0000 (+1000) Subject: radeon/r200: flush vertices when data in cmdbuf. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7394c429c065eb96801500605ab7caa0a1289193;p=mesa.git radeon/r200: flush vertices when data in cmdbuf. This fixes a whole bunch of regressions in piglit --- 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