OSDN Git Service

freedreno: a2xx: ir2 update
authorJonathan Marek <jonathan@marek.ca>
Tue, 24 Jul 2018 12:58:24 +0000 (08:58 -0400)
committerRob Clark <robdclark@gmail.com>
Tue, 14 Aug 2018 16:46:25 +0000 (12:46 -0400)
commitdc9705f30deabb789735966e3d2278e3c9e00c8a
treedd0ab5f833222ec25ce03a2622259040c51f6c91
parent5406eb551381cff824e12a263a2951f198d4082f
freedreno: a2xx: ir2 update

this patch brings a number of changes to ir2:
-ir2 now generates CF clauses as necessary during assembly. this simplifies
 fd2_program/fd2_compiler and is necessary to implement optimization passes
-ir2 now has separate vector/scalar instructions. this will make it easier
 to implementing scheduling of scalar+vector instructions together. dst_reg
 is also now seperate from src registers instead of a single list
-ir2 now implements register allocation. this makes it possible to compile
 shaders which have more than 64 TGSI registers
-ir2 now implements the following optimizations: removal of IN/OUT MOV
 instructions generated by TGSI and removal of unused instructions when
 some exports are disabled
-ir2 now allows full 8-bit index for constants
-ir2_alloc no longer allocates 4 times too many bytes

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Signed-off-by: Rob Clark <robdclark@gmail.com>
src/gallium/drivers/freedreno/a2xx/fd2_compiler.c
src/gallium/drivers/freedreno/a2xx/fd2_program.c
src/gallium/drivers/freedreno/a2xx/instr-a2xx.h
src/gallium/drivers/freedreno/a2xx/ir-a2xx.c
src/gallium/drivers/freedreno/a2xx/ir-a2xx.h