diff options
author | Marek Olšák <[email protected]> | 2011-08-03 20:57:48 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2011-08-05 07:08:18 +0200 |
commit | 64ab39b035f755510a644643b96451431bbe5f27 (patch) | |
tree | da2384e07f054c95bde09decb916ea4eff57b838 /src/gallium/drivers/r300/r300_emit.c | |
parent | 115651241b7f04e7ec274c267e7de5d1c8fb8c9f (diff) |
winsys/radeon: fix space checking
We should remove the relocations which caused a validation failure
from the list, so that the kernel receives only the validated ones.
NOTE: This is a candidate for the 7.11 branch.
Diffstat (limited to 'src/gallium/drivers/r300/r300_emit.c')
-rw-r--r-- | src/gallium/drivers/r300/r300_emit.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/gallium/drivers/r300/r300_emit.c b/src/gallium/drivers/r300/r300_emit.c index 502aed3a20c..b953bd10f43 100644 --- a/src/gallium/drivers/r300/r300_emit.c +++ b/src/gallium/drivers/r300/r300_emit.c @@ -1238,13 +1238,12 @@ validate: r300->rws->cs_add_reloc(r300->cs, r300_resource(index_buffer)->cs_buf, r300_resource(index_buffer)->domain, 0); - /* Now do the validation. */ + /* Now do the validation (flush is called inside cs_validate on failure). */ if (!r300->rws->cs_validate(r300->cs)) { /* Ooops, an infinite loop, give up. */ if (flushed) return FALSE; - r300_flush(&r300->context, RADEON_FLUSH_ASYNC, NULL); flushed = TRUE; goto validate; } |