summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/savage/savageioctl.c
diff options
context:
space:
mode:
authorFelix Kuehling <fxkuehl@gmx.de>2005-01-20 13:59:49 +0000
committerFelix Kuehling <fxkuehl@gmx.de>2005-01-20 13:59:49 +0000
commitedb9a165c14bd90938340a74a636ac5f65ac4c35 (patch)
tree990529c998c91f37a9bfb92b6611cb90d6d575c0 /src/mesa/drivers/dri/savage/savageioctl.c
parentddfa61ee194b9d4ec88d499c71cd6810e7f6a022 (diff)
Added support for ELTS to the _savage_render_stage. Requires at least
Savage DRM version 2.2.0. Otherwise the render stage is disabled.
Diffstat (limited to 'src/mesa/drivers/dri/savage/savageioctl.c')
-rw-r--r--src/mesa/drivers/dri/savage/savageioctl.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/mesa/drivers/dri/savage/savageioctl.c b/src/mesa/drivers/dri/savage/savageioctl.c
index 62e7142d24..27747c3cd8 100644
--- a/src/mesa/drivers/dri/savage/savageioctl.c
+++ b/src/mesa/drivers/dri/savage/savageioctl.c
@@ -559,6 +559,9 @@ void savageFlushCmdBufLocked( savageContextPtr imesa, GLboolean discard )
drm_savage_cmd_header_t *start;
int ret;
+ /* complete indexed drawing commands */
+ savageFlushElts(imesa);
+
/* If we lost the context we must restore the initial state (at
* the start of the command buffer). */
if (imesa->lostContext) {
@@ -609,13 +612,15 @@ void savageFlushCmdBufLocked( savageContextPtr imesa, GLboolean discard )
}
if (discard) {
+ assert (!savageHaveIndexedVerts(imesa));
imesa->dmaVtxBuf.total = 0;
imesa->dmaVtxBuf.used = 0;
imesa->dmaVtxBuf.flushed = 0;
}
- imesa->clientVtxBuf.used = 0;
- imesa->clientVtxBuf.flushed = 0;
-
+ if (!savageHaveIndexedVerts(imesa)) {
+ imesa->clientVtxBuf.used = 0;
+ imesa->clientVtxBuf.flushed = 0;
+ }
imesa->cmdBuf.write = imesa->cmdBuf.base;
/* Save the current state at the start of the command buffer. That