mesa/src/broadcom/compiler
Iago Toral Quiroga 82981ccbb1 broadcom/compiler: use unifa for UBO loads from uniform addresses
This basically processes UBO loads as uniform loads by writing
the load address to the unifa register and reading sequential
values with ldunifa.

This process is faster than going through the TMU, but we can only
use it when the address we are reading from is uniform across all
channels, since we are basically reading from the UBO address
as if it was a uniform stream.

This leads to better performance in the UE4 Shooter demo.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8980>
2021-02-12 08:24:22 +00:00
..
meson.build v3d/compiler: add a lowering pass for robust buffer access 2020-10-13 21:21:33 +00:00
nir_to_vir.c broadcom/compiler: use unifa for UBO loads from uniform addresses 2021-02-12 08:24:22 +00:00
qpu_schedule.c broadcom/compiler: disallow reading two uniforms in the same instruction 2021-02-12 08:24:21 +00:00
qpu_validate.c broadcom/compiler: don't check for GFXH-1633 on V3D 4.2.x 2021-02-12 08:24:21 +00:00
v3d33_tex.c broadcom/compiler: support pipelining of tex instructions 2021-02-04 10:33:10 +00:00
v3d33_vpm_setup.c broadcom/vc5: Move V3D 3.3 VPM write setup to a separate file. 2018-01-12 21:56:24 -08:00
v3d40_tex.c broadcom/compiler: Add a v3d_compile argument to vir_set_[pu]f 2021-02-12 07:05:33 +00:00
v3d_compiler.h broadcom/compiler: pass a devinfo to check if an instruction writes to TMU 2021-02-12 08:24:21 +00:00
v3d_nir_lower_image_load_store.c v3d: Ask the state tracker to lower image accesses off of derefs. 2020-02-24 18:25:02 +00:00
v3d_nir_lower_io.c v3d: use intrinsic builders 2021-01-06 14:34:41 +00:00
v3d_nir_lower_line_smooth.c v3d: use intrinsic builders 2021-01-06 14:34:41 +00:00
v3d_nir_lower_logic_ops.c v3d: mark some variables static const 2021-01-13 07:24:32 +00:00
v3d_nir_lower_robust_buffer_access.c v3d/compiler: add a lowering pass for robust buffer access 2020-10-13 21:21:33 +00:00
v3d_nir_lower_scratch.c v3d: Use the new lower_to_scratch implementation for indirects on temps. 2019-04-12 16:16:58 -07:00
v3d_nir_lower_txf_ms.c v3d: Use nir_shader_lower_instructions() for txf_ms lowering. 2019-07-18 11:28:56 -07:00
vir.c broadcom/compiler: do not DCE ldunifa 2021-02-12 08:24:21 +00:00
vir_dump.c broadcom/compiler: name registers correctly based on V3D version 2021-02-12 08:24:21 +00:00
vir_live_variables.c util/hash_table: update users to use new optimal integer hash functions 2020-01-23 17:06:57 +00:00
vir_opt_copy_propagate.c v3d: Use ldunif instructions for uniforms. 2019-03-05 12:57:39 -08:00
vir_opt_dead_code.c v3d: Drop the V3D 3.x vpm read dead code elimination. 2019-03-05 12:57:39 -08:00
vir_opt_redundant_flags.c v3d: fix checking twice auf flag 2019-06-13 11:45:18 +02:00
vir_opt_small_immediates.c v3d: Use ldunif instructions for uniforms. 2019-03-05 12:57:39 -08:00
vir_register_allocate.c broadcom/compiler: pass a devinfo to check if an instruction writes to TMU 2021-02-12 08:24:21 +00:00
vir_to_qpu.c broadcom/compiler: emit ldunifarf when needed 2021-02-12 08:24:21 +00:00