r600g/compute: Tidy a bit compute_memory_finalize_pending
authorBruno Jiménez <brunojimen@gmail.com>
Mon, 19 May 2014 16:14:54 +0000 (18:14 +0200)
committerTom Stellard <thomas.stellard@amd.com>
Tue, 10 Jun 2014 19:29:57 +0000 (15:29 -0400)
commit1d6384318eb100e3c4c50ad43e2a3e1942ccbd21
treeb3286f0c2b4cc495a2c53072637b8785fead2dcc
parent39bd08efdd12350304aa0c2e412185ef48bcca70
r600g/compute: Tidy a bit compute_memory_finalize_pending

Explanation of the changes, as requested by Tom Stellard:

Let's take need after is calculated as
item->size_in_dw+2048 - (pool->size_in_dw - allocated)

BEFORE:
If need is positive or 0:
    we calculate need += 1024 - (need % 1024), which is like
        cealing to the nearest multiple of 1024, for example
        0 goes to 1024, 512 goes to 1024 as well, 1025 goes
        to 2048 and so on. So now need is always possitive,
        we do compute_memory_grow_pool, check its output
        and continue.

If need is negative:
    we calculate need += 1024 - (need % 1024), in this case
        we will have negative numbers, and if need is
        [-1024:-1] 0, so now we take the else, recalculate
        need as need = pool->size_in_dw / 10 and
        need += 1024 - (need % 1024), we do
        compute_memory_grow_pool, check its output and continue.

AFTER:
If need is positive or 0:
    we jump the if, calculate need += 1024 - (need % 1024)
        compute_memory_grow_pool, check its output and continue.

If need is negative:
    we enter the if, and need is now pool->size_in_dw / 10.
        Now we calculate need += 1024 - (need % 1024)
        compute_memory_grow_pool, check its output and continue.

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
src/gallium/drivers/r600/compute_memory_pool.c