diff options
author | Jerome Glisse <[email protected]> | 2010-08-03 17:02:48 -0400 |
---|---|---|
committer | Jerome Glisse <[email protected]> | 2010-08-03 17:02:48 -0400 |
commit | a0b3944c30fdecf5ef97fd602b8a286bcc80fed3 (patch) | |
tree | 090c8615bf606d041f9be3cb3bf12604f601ba20 /src/gallium/drivers/r600/r600_draw.c | |
parent | 3a8d4a89795d180b910b2c0dfa98c57cf9bb45a6 (diff) |
r600g: flush and resubmit if we reach limit
Signed-off-by: Jerome Glisse <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600/r600_draw.c')
-rw-r--r-- | src/gallium/drivers/r600/r600_draw.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/gallium/drivers/r600/r600_draw.c b/src/gallium/drivers/r600/r600_draw.c index c52dfd3fb3f..43c805b9823 100644 --- a/src/gallium/drivers/r600/r600_draw.c +++ b/src/gallium/drivers/r600/r600_draw.c @@ -170,6 +170,10 @@ static int r600_draw_common(struct r600_draw *draw) return r; /* FIXME */ r = radeon_ctx_set_draw_new(rctx->ctx, rctx->draw); + if (r == -EBUSY) { + r600_flush(draw->ctx, 0, NULL); + r = radeon_ctx_set_draw_new(rctx->ctx, rctx->draw); + } if (r) return r; rctx->draw = radeon_draw_duplicate(rctx->draw); |