diff options
author | Nicolai Haehnle <prefect_@gmx.net> | 2005-02-18 18:28:52 +0000 |
---|---|---|
committer | Nicolai Haehnle <prefect_@gmx.net> | 2005-02-18 18:28:52 +0000 |
commit | 8281cca82fb89001edd3e2360202e358bdc6bda7 (patch) | |
tree | 40819f8336413e6b4d1539dcd1a05148e24bc066 | |
parent | 4d73f1af35aed1483804b7a9639f231be1ee4bf1 (diff) |
Always submit command buffers, even when there are no cliprects,
so that we no longer leak DMA buffers (plus, this just might fix some
state-setting related problems, if there were any - but that's unlikely).
Update the DRM to cope with cmdbuf->nbox == 0.
-rw-r--r-- | src/mesa/drivers/dri/r300/r300_cmdbuf.c | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/src/mesa/drivers/dri/r300/r300_cmdbuf.c b/src/mesa/drivers/dri/r300/r300_cmdbuf.c index bdb417932b..a897149c2d 100644 --- a/src/mesa/drivers/dri/r300/r300_cmdbuf.c +++ b/src/mesa/drivers/dri/r300/r300_cmdbuf.c @@ -92,22 +92,15 @@ int r300FlushCmdBufLocked(r300ContextPtr r300, const char* caller) cmd.boxes = (drm_clip_rect_t *)r300->radeon.pClipRects; } - if (cmd.nbox) { - ret = drmCommandWrite(r300->radeon.dri.fd, - DRM_RADEON_CMDBUF, &cmd, sizeof(cmd)); + ret = drmCommandWrite(r300->radeon.dri.fd, + DRM_RADEON_CMDBUF, &cmd, sizeof(cmd)); - if (RADEON_DEBUG & DEBUG_SYNC) { - fprintf(stderr, "Syncing in %s\n\n", __FUNCTION__); - radeonWaitForIdleLocked(&r300->radeon); - } - - r300->dma.nr_released_bufs = 0; - } else { - ret = 0; - if (RADEON_DEBUG & DEBUG_IOCTL) - fprintf(stderr, "%s: No cliprects\n", __FUNCTION__); + if (RADEON_DEBUG & DEBUG_SYNC) { + fprintf(stderr, "Syncing in %s\n\n", __FUNCTION__); + radeonWaitForIdleLocked(&r300->radeon); } + r300->dma.nr_released_bufs = 0; r300->cmdbuf.count_used = 0; r300->cmdbuf.count_reemit = 0; |