r600g: support up to 64 shader constants
authorAlex Deucher <alexdeucher@gmail.com>
Tue, 4 Jan 2011 20:37:12 +0000 (15:37 -0500)
committerAlex Deucher <alexdeucher@gmail.com>
Tue, 4 Jan 2011 20:37:12 +0000 (15:37 -0500)
commitf28bb6bdd1e98be11bbcaef545575a22db638d5a
tree4c675cb9b48efbd00ecfede5bbabfda3c67cc895
parente96e86d07be86ce12628d750ff686d6aea919fff
r600g: support up to 64 shader constants

From the r600 ISA:
Each ALU clause can lock up to four sets of constants
into the constant cache.  Each set (one cache line) is
16 128-bit constants. These are split into two groups.
Each group can be from a different constant buffer
(out of 16 buffers). Each group of two constants consists
of either [Line] and [Line+1] or [line + loop_ctr]
and [line + loop_ctr +1].

For supporting more than 64 constants, we need to
break the code into multiple ALU clauses based
on what sets of constants are needed in that clause.

Note: This is a candidate for the 7.10 branch.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
src/gallium/drivers/r600/r600_asm.c
src/gallium/drivers/r600/r600_sq.h