mesa/src/gallium/drivers/v3d
Iago Toral Quiroga 73e8fc3efb broadcom/compiler: don't use imprecise_32bit_lowering for idiv lowering
This is known to produce bogus results for certain combinations of
operands, so don't use it. See this issue for details:

https://gitlab.freedesktop.org/mesa/mesa/-/issues/6555

With this change, the idiv lowering will produce mul_high instructions,
so we need to instruct the compiler to lower those with the ALU lowering
right after the idiv lowering by adding the lower_mul_high option (we
only need to add this to V3D, since V3DV already had it set). This will
cause injection of uadd_carry instructions, for which we have backend
implementations that produce better code for us than the NIR lowering.

total instructions in shared programs: 12457692 -> 12463625 (0.05%)
instructions in affected programs: 23115 -> 29048 (25.67%)
helped: 0
HURT: 111

total threads in shared programs: 416372 -> 416368 (<.01%)
threads in affected programs: 8 -> 4 (-50.00%)
helped: 0
HURT: 2

total uniforms in shared programs: 3704067 -> 3704589 (0.01%)
uniforms in affected programs: 5804 -> 6326 (8.99%)
helped: 2
HURT: 109

total max-temps in shared programs: 2147845 -> 2148088 (0.01%)
max-temps in affected programs: 2456 -> 2699 (9.89%)
helped: 6
HURT: 91

Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17871>
2022-08-05 09:28:22 +00:00
..
.editorconfig
driinfo_v3d.h driconf: Stop quoting true/false in boolean option definitions. 2020-10-02 23:59:52 +00:00
meson.build v3d: add support for on-disk shader cache 2022-03-18 08:58:01 +00:00
v3d_blit.c gallium: add pipe_blit_info::dst_sample, update u_blitter to write that sample 2022-07-23 18:21:31 +00:00
v3d_bufmgr.c vc4: use intmax_t for formatted output of timespec members 2020-11-05 07:07:39 +00:00
v3d_bufmgr.h v3d: rename header include guards 2021-04-29 11:22:12 +02:00
v3d_cl.c v3dv/build: meson infrastructure for multi-hw-version support 2021-06-22 11:34:06 +02:00
v3d_cl.h v3d: rename VC5 enums and definitions 2021-04-29 11:22:12 +02:00
v3d_context.c v3d: release all color buffers on context destroy 2022-06-07 10:05:55 +00:00
v3d_context.h v3d: save only required states in blitter 2022-06-06 16:25:53 +00:00
v3d_disk_cache.c v3d: fix some leaks in cache 2022-04-04 10:49:59 +00:00
v3d_fence.c v3d: add fence wait function 2021-08-03 08:33:52 +00:00
v3d_format_table.h
v3d_formats.c v3d,v3dv: add options to force 32-bit or 16-bit TMU precision 2021-08-11 05:57:10 +00:00
v3d_job.c v3d: implement double-buffer mode 2022-01-14 10:57:27 +00:00
v3d_program.c v3d/v3dv: use NIR_PASS(_ 2022-07-20 11:35:25 +00:00
v3d_query.c v3d: implement performance counter queries 2021-08-03 08:33:52 +00:00
v3d_query.h v3dv/v3d: Fix copyright holder to Raspberry Pi Ltd 2022-02-18 11:50:07 +01:00
v3d_query_perfcnt.c v3dv/v3d: Fix copyright holder to Raspberry Pi Ltd 2022-02-18 11:50:07 +01:00
v3d_query_pipe.c v3d: do not leak BO on query begin 2022-04-08 13:51:25 +00:00
v3d_resource.c gallium: move get_canonical_format hook to pipe_screen 2022-04-22 08:51:56 +00:00
v3d_resource.h v3d: rebind sampler view if resource changed the BO 2022-03-04 17:20:28 +00:00
v3d_screen.c broadcom/compiler: don't use imprecise_32bit_lowering for idiv lowering 2022-08-05 09:28:22 +00:00
v3d_screen.h v3d: add support for on-disk shader cache 2022-03-18 08:58:01 +00:00
v3d_uniforms.c v3d: add support for no buffer object bound 2021-12-03 15:32:36 +00:00
v3dx_context.h v3d: extend the list of formats supported by the TFU unit 2020-12-11 10:29:34 +00:00
v3dx_draw.c v3d,v3dv: add a common v3d_hw_prim_type helper 2022-07-27 00:00:54 +00:00
v3dx_emit.c v3d,v3dv: stop copying and pasting the translate_swizzle helper 2022-07-13 10:09:34 +00:00
v3dx_format_table.c v3d: add R10G10B10X2_UNORM to format table 2021-09-28 00:20:39 +00:00
v3dx_job.c v3d: Update prim_counts when prims generated query in flight without TF 2021-11-11 08:02:04 +00:00
v3dx_rcl.c v3d: disable early-Z on odd frame dimensions 2022-05-04 07:44:46 +00:00
v3dx_state.c gallium: fixup some inconsistent uses of enum pipe_shader_type. 2022-08-04 08:17:39 +00:00