summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2009-02-11 05:07:31 +1000
committerDave Airlie <airlied@redhat.com>2009-02-11 05:07:31 +1000
commit7394c429c065eb96801500605ab7caa0a1289193 (patch)
tree489534a3bc7824e0ca49b186129e283b7d7f60c2 /src/mesa/drivers/dri
parent18aca218a29578b5cb14a3bc492330406d3a761d (diff)
radeon/r200: flush vertices when data in cmdbuf.
This fixes a whole bunch of regressions in piglit
Diffstat (limited to 'src/mesa/drivers/dri')
-rw-r--r--src/mesa/drivers/dri/r200/r200_ioctl.h4
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_ioctl.h6
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 6b9e4be30a..316acef459 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 ac763703bc..4e93804646 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