mesa/src/gallium/drivers/etnaviv
Pavel Ondračka 1c72c71bdf nir/move_vec_src_uses_to_dest: allow to skip reuse of constant sources
And enable this for r300 and intel-vec4

crocus HSW (mostly helps few doplhin ubershaders):
total instructions in shared programs: 1576736 -> 1576589 (<.01%)
instructions in affected programs: 38235 -> 38088 (-0.38%)
helped: 12
HURT: 0
total cycles in shared programs: 111025838 -> 110944796 (-0.07%)
cycles in affected programs: 5646582 -> 5565540 (-1.44%)
helped: 15
HURT: 6
total spills in shared programs: 447 -> 432 (-3.36%)
spills in affected programs: 186 -> 171 (-8.06%)
helped: 12
HURT: 0
total fills in shared programs: 792 -> 774 (-2.27%)
fills in affected programs: 291 -> 273 (-6.19%)
helped: 12
HURT: 0

r300 RV530:
total instructions in shared programs: 96655 -> 96304 (-0.36%)
instructions in affected programs: 15020 -> 14669 (-2.34%)
helped: 79
HURT: 18
total temps in shared programs: 13027 -> 12952 (-0.58%)
temps in affected programs: 677 -> 602 (-11.08%)
helped: 41
HURT: 9
total cycles in shared programs: 147745 -> 147314 (-0.29%)
cycles in affected programs: 21831 -> 21400 (-1.97%)
helped: 84
HURT: 19

r300 RV370:
total instructions in shared programs: 63678 -> 63669 (-0.01%)
instructions in affected programs: 931 -> 922 (-0.97%)
helped: 12
HURT: 6
total temps in shared programs: 10028 -> 10013 (-0.15%)
temps in affected programs: 339 -> 324 (-4.42%)
helped: 33
HURT: 10
total cycles in shared programs: 101118 -> 101087 (-0.03%)
cycles in affected programs: 2659 -> 2628 (-1.17%)
helped: 22
HURT: 6

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24932>
2023-09-19 18:05:37 +02:00
..
hw etnaviv: update headers from rnndb 2022-11-16 12:53:28 +00:00
tests nir: Drop "SSA" from NIR language 2023-08-12 16:44:41 -04:00
etnaviv_asm.c etnaviv: use feature bit for one const src per instuction limitation 2022-04-27 09:10:27 +00:00
etnaviv_asm.h etnaviv: use feature bit for one const src per instuction limitation 2022-04-27 09:10:27 +00:00
etnaviv_blend.c etnaviv: switch to float_to_ubyte(..) 2023-08-17 09:42:20 +00:00
etnaviv_blend.h
etnaviv_blt.c etnaviv: keep blit destination tile status valid if possible 2023-07-14 14:21:35 +00:00
etnaviv_blt.h etnaviv: blt: Add color resolve support 2022-11-02 18:58:09 +00:00
etnaviv_clear_blit.c etnaviv: split etna_copy_resource_box levels parameter in src/dst 2023-07-17 09:27:13 +00:00
etnaviv_clear_blit.h etnaviv: split etna_copy_resource_box levels parameter in src/dst 2023-07-17 09:27:13 +00:00
etnaviv_compiler.c nir: unify lower_find_msb with has_{find_msb_rev,uclz} 2023-08-22 12:08:37 +00:00
etnaviv_compiler.h etnaviv: linker: clean up etna_link_shader(..) 2023-07-11 11:15:32 +00:00
etnaviv_compiler_cmdline.c etnaviv: unbreak cmdline compiler 2023-08-21 05:13:16 +00:00
etnaviv_compiler_nir.c nir/move_vec_src_uses_to_dest: allow to skip reuse of constant sources 2023-09-19 18:05:37 +02:00
etnaviv_compiler_nir.h etnaviv: fix null pointer dereference 2023-08-16 13:17:23 +00:00
etnaviv_compiler_nir_emit.c etnaviv: implement nir_op_uclz and lower find_{msb,lsb} to uclz 2023-04-06 16:51:36 +00:00
etnaviv_compiler_nir_liveness.c nir: Rename nir_instr_type_ssa_undef to nir_instr_type_undef 2023-08-15 17:44:27 +00:00
etnaviv_compiler_nir_ra.c nir: Drop nir_dest 2023-08-14 21:22:53 +00:00
etnaviv_context.c etnaviv: initialize VIVS_GL_BUG_FIXES 2023-07-19 16:35:04 +00:00
etnaviv_context.h etnaviv: nir: support intrinsic used for txs lowering 2023-07-21 08:52:03 +00:00
etnaviv_debug.h etnaviv: make use of BITFIELD_BIT(..) macro 2023-07-24 15:22:56 +00:00
etnaviv_disasm.c etnaviv: print writemask of store operations 2023-04-06 16:51:36 +00:00
etnaviv_disasm.h
etnaviv_disk_cache.c etnaviv: make wider use of DBG_ENABLED(..) 2023-06-08 10:09:14 +00:00
etnaviv_disk_cache.h
etnaviv_emit.c etnaviv: Fully replicate back stencil config 2023-08-22 12:00:27 +02:00
etnaviv_emit.h
etnaviv_etc2.c
etnaviv_etc2.h util: Move src/gallium/include/pipe/p_format.h to src/util/format/u_formats.h 2022-11-19 03:38:19 +00:00
etnaviv_fence.c
etnaviv_fence.h
etnaviv_format.c etnaviv: fill alpha channel for DXT1_RGB textures 2022-09-01 09:02:49 +00:00
etnaviv_format.h
etnaviv_internal.h gallium: move vertex stride to CSO 2023-08-14 01:23:25 +00:00
etnaviv_nir.c nir: Drop most uses if nir_instr_rewrite_src() 2023-08-18 01:00:15 +00:00
etnaviv_nir.h etnaviv: nir: add etna_nir_lower_to_source_mods(..) 2023-07-24 15:22:56 +00:00
etnaviv_nir_lower_source_mods.c nir: Drop nir_instr_rewrite_src() 2023-08-18 01:00:15 +00:00
etnaviv_nir_lower_texture.c nir: Drop nir_dest 2023-08-14 21:22:53 +00:00
etnaviv_nir_lower_ubo_to_uniform.c treewide: Drop nir_ssa_for_src users 2023-09-18 10:25:17 -04:00
etnaviv_perfmon.c etnaviv: add two new HI related perfmon counter 2022-01-31 10:14:57 +00:00
etnaviv_perfmon.h etnaviv: add two new HI related perfmon counter 2022-01-31 10:14:57 +00:00
etnaviv_query.c etnaviv: Add support for conditional rendering 2023-06-09 20:35:24 +02:00
etnaviv_query.h
etnaviv_query_acc.c etnaviv: query: optimize context flushes 2023-06-11 18:41:32 +00:00
etnaviv_query_acc.h
etnaviv_query_acc_occlusion.c etnaviv: query: correct max number of occlusion query samples 2023-06-11 18:41:32 +00:00
etnaviv_query_acc_perfmon.c etnaviv: query: correct max number of perfmon samples 2023-06-11 18:41:32 +00:00
etnaviv_query_sw.c
etnaviv_query_sw.h
etnaviv_rasterizer.c
etnaviv_rasterizer.h
etnaviv_resource.c etnaviv: add tile status buffer status into TS metadata 2023-07-14 14:21:35 +00:00
etnaviv_resource.h etnaviv: add tile status buffer status into TS metadata 2023-07-14 14:21:35 +00:00
etnaviv_rs.c etnaviv: keep blit destination tile status valid if possible 2023-07-14 14:21:35 +00:00
etnaviv_rs.h etnaviv: add support for big tile RS states 2022-04-27 09:10:27 +00:00
etnaviv_screen.c etnaviv: support OES_texture_half_float_linear 2023-07-04 06:15:49 +00:00
etnaviv_screen.h gallium: move etnaviv screen_lookup_or_create function to common code 2023-02-12 17:11:16 +00:00
etnaviv_shader.c etnaviv: fix segfault after compile failure 2023-07-19 08:46:22 +00:00
etnaviv_shader.h etnaviv: remove tgsi remains 2023-06-20 08:29:19 +00:00
etnaviv_state.c gallium: move vertex stride to CSO 2023-08-14 01:23:25 +00:00
etnaviv_state.h
etnaviv_surface.c etnaviv: remove copy of resource level in etna_surface 2022-11-25 21:30:40 +00:00
etnaviv_surface.h etnaviv: remove copy of resource level in etna_surface 2022-11-25 21:30:40 +00:00
etnaviv_texture.c etnaviv: allow sampler TS even if the resource is flushed 2023-07-14 14:21:35 +00:00
etnaviv_texture.h etnaviv: add texture descriptor suballocator 2022-07-13 15:00:33 +00:00
etnaviv_texture_desc.c etnaviv: only emit sampler config for changed samplers 2023-06-13 18:16:26 +00:00
etnaviv_texture_desc.h
etnaviv_texture_state.c etnaviv: only emit sampler config for changed samplers 2023-06-13 18:16:26 +00:00
etnaviv_texture_state.h
etnaviv_tiling.c
etnaviv_tiling.h
etnaviv_transfer.c etnaviv: remove bogus comment about replacing resource storage 2023-07-17 09:27:13 +00:00
etnaviv_transfer.h
etnaviv_translate.h compiler: Rename shader_prim to mesa_prim and replace all usage of pipe_prim_type with mesa_prim 2023-06-03 03:29:03 +00:00
etnaviv_uniforms.c etnaviv: nir: support intrinsic used for txs lowering 2023-07-21 08:52:03 +00:00
etnaviv_uniforms.h
etnaviv_util.h etnaviv: switch to float_to_ubyte(..) 2023-08-17 09:42:20 +00:00
etnaviv_zsa.c etnaviv: switch to float_to_ubyte(..) 2023-08-17 09:42:20 +00:00
etnaviv_zsa.h
meson.build etnaviv: nir: add etna_nir_lower_to_source_mods(..) 2023-07-24 15:22:56 +00:00
README

Notes for the etnaviv gallium driver
------------------------------------

There are two ways how this driver might get used:

- application opens kms device (kmscube, weston, ..)
- X via xf86-video-armada

For the kms device case we provide a renderonly based driver like
imx where all the magic for buffer import and export between kms
and renderonly GPU is handled automaticly.

For X/xf86-video-armada we need to provide etnaviv_dri.so.