etnaviv: implement UBOs
authorJonathan Marek <jonathan@marek.ca>
Sat, 4 Jan 2020 19:17:15 +0000 (14:17 -0500)
committerMarge Bot <eric+marge@anholt.net>
Wed, 29 Jan 2020 11:47:34 +0000 (11:47 +0000)
commit6346490a2ee5535dc75fcab34981d2a5b591dc01
tree9a4d156f726dd38faf95ada8a3be7ae7e1e49ca2
parent7ff8ce7a3f080b4016fa6239e9d0b406b69310e5
etnaviv: implement UBOs

At the same time, use pre-HALTI2 to use address register for indirect
uniform loads, since integers/LOAD instruction isn't always available.

Passes all dEQP-GLES3.functional.ubo.* on GC7000L. GC3000 with an extra
flush hack passes most of them, but still fails on some of the cases with
many loads.

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3389>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3389>
src/gallium/drivers/etnaviv/etnaviv_compiler_nir.c
src/gallium/drivers/etnaviv/etnaviv_compiler_nir_emit.h
src/gallium/drivers/etnaviv/etnaviv_context.c
src/gallium/drivers/etnaviv/etnaviv_context.h
src/gallium/drivers/etnaviv/etnaviv_emit.c
src/gallium/drivers/etnaviv/etnaviv_internal.h
src/gallium/drivers/etnaviv/etnaviv_screen.c
src/gallium/drivers/etnaviv/etnaviv_state.c
src/gallium/drivers/etnaviv/etnaviv_uniforms.c