summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBruno JimĂ©nez <[email protected]>2014-06-11 17:28:01 +0200
committerTom Stellard <[email protected]>2014-06-12 15:52:08 -0400
commit4f70d83089bb1fea3cda9aa050e5bbd7f3768734 (patch)
treeed44de9d9b9bd1920bd2ac4bad8fd8701e11245b
parent607bc899701dda25f7c91ebd2ec2136d4dab0448 (diff)
r600g/compute: solve a bug introduced by 2e01b8b440c1402c88a2755d89f40292e1f36ce5
That commit made possible that the items could be one just after the other when their size was a multiple of ITEM_ALIGNMENT. But compute_memory_prealloc_chunk still looked to leave a gap between items. Resulting in that we got an infinite loop when trying to add an item which would left no space between itself and the next item. Fixes piglit test: cl-custom-r600-create-release-buffer-bug And the test for alignment I have just sent: http://lists.freedesktop.org/archives/piglit/2014-June/011135.html Sorry about this. Reviewed-by: Tom Stellard <[email protected]>
-rw-r--r--src/gallium/drivers/r600/compute_memory_pool.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gallium/drivers/r600/compute_memory_pool.c b/src/gallium/drivers/r600/compute_memory_pool.c
index 2050f289475..ec8c470fc65 100644
--- a/src/gallium/drivers/r600/compute_memory_pool.c
+++ b/src/gallium/drivers/r600/compute_memory_pool.c
@@ -110,7 +110,7 @@ int64_t compute_memory_prealloc_chunk(
for (item = pool->item_list; item; item = item->next) {
if (item->start_in_dw > -1) {
- if (item->start_in_dw-last_end > size_in_dw) {
+ if (last_end + size_in_dw <= item->start_in_dw) {
return last_end;
}