mesa/src/broadcom/compiler
Alejandro Piñeiro 1c4f76672d broadcom/compiler: avoid unneeded sint/unorm clamping when lowering stores
They are being used on integer to integer stores. From Vulkan sec,
final paragraph of 16.4.4 "Texel Output Format Conversion":
    "Each component is converted based on its type and size (as
     defined in the Format Definition section for each
     VkFormat). ... Integer outputs are converted such that their value
     is preserved. The converted value of any integer that cannot be
     represented in the target format is undefined."

I didn't find a equivalent quote for OpenGL as all conversion entries
are forcused on float to integer, fixed-point to integer, etc, and not
on integer to integer. Didn't find any test failure with this change.

We didn't get any shader-db stats change with shaderdb (even
overriding to OpenGL 4.4 to get more shaders built), so as a reference
Vulkan shader-db stats with the pattern
dEQP-VK.image.*.with_format.*.*
   total instructions in shared programs: 37534 -> 36522 (-2.70%)
   instructions in affected programs: 12080 -> 11068 (-8.38%)
   helped: 241
   HURT: 0
   Instructions are helped.

   total uniforms in shared programs: 9100 -> 8550 (-6.04%)
   uniforms in affected programs: 3004 -> 2454 (-18.31%)
   helped: 229
   HURT: 0

   total max-temps in shared programs: 6110 -> 6014 (-1.57%)
   max-temps in affected programs: 402 -> 306 (-23.88%)
   helped: 43
   HURT: 0
   Max-temps are helped.

   total nops in shared programs: 1523 -> 1526 (0.20%)
   nops in affected programs: 21 -> 24 (14.29%)
   helped: 3
   HURT: 6
   Inconclusive result (value mean confidence interval includes 0).

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14194>
2021-12-15 11:53:20 +00:00
..
meson.build broadcom/compiler: add a constant alu optimization pass 2021-02-23 08:08:01 +00:00
nir_to_vir.c broadcom/compiler: improve documentation for Z writes 2021-12-03 10:39:08 +00:00
qpu_schedule.c broadcom/compiler: improve thrsw merge 2021-12-14 09:50:17 +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: track passthrough Z writes 2021-12-03 10:39:08 +00:00
v3d_nir_lower_image_load_store.c broadcom/compiler: avoid unneeded sint/unorm clamping when lowering stores 2021-12-15 11:53:20 +00:00
v3d_nir_lower_io.c v3d/compiler: Handle point_coord_upper_left 2021-09-12 21:01:11 +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 broadcom/compiler: consider RT component size when lowering logic ops in Vulkan 2021-05-18 11:28:17 +00:00
v3d_nir_lower_robust_buffer_access.c v3dv: don't lower vulkan resource index result to scalar 2021-06-10 05:47:29 +00:00
v3d_nir_lower_scratch.c nir: Make nir_ssa_def_rewrite_uses take an SSA value 2021-03-08 16:59:55 +00: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: track passthrough Z writes 2021-12-03 10:39:08 +00:00
vir_dump.c broadcom/compiler: use signed pointers for packed condition 2021-04-12 15:22:05 +00:00
vir_live_variables.c broadcom/compiler: Fix qpu.flags.muf typo. 2021-08-24 08:30:59 +00:00
vir_opt_constant_alu.c broadcom/compiler: make opt passes set current block 2021-11-02 11:17:01 +00:00
vir_opt_copy_propagate.c broadcom/compiler: make opt passes set current block 2021-11-02 11:17:01 +00:00
vir_opt_dead_code.c broadcom/compiler: make opt passes set current block 2021-11-02 11:17:01 +00:00
vir_opt_redundant_flags.c broadcom/compiler: make opt passes set current block 2021-11-02 11:17:01 +00: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: remove unused macro and function definition 2021-10-20 10:08:27 +00:00
vir_to_qpu.c broadcom/compiler: remove qpu_acc helper 2021-09-24 08:46:06 +00:00