mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-22 10:58:08 +02:00
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> |
||
|---|---|---|
| .. | ||
| .editorconfig | ||
| driinfo_v3d.h | ||
| meson.build | ||
| v3d_blit.c | ||
| v3d_bufmgr.c | ||
| v3d_bufmgr.h | ||
| v3d_cl.c | ||
| v3d_cl.h | ||
| v3d_context.c | ||
| v3d_context.h | ||
| v3d_disk_cache.c | ||
| v3d_fence.c | ||
| v3d_format_table.h | ||
| v3d_formats.c | ||
| v3d_job.c | ||
| v3d_program.c | ||
| v3d_query.c | ||
| v3d_query.h | ||
| v3d_query_perfcnt.c | ||
| v3d_query_pipe.c | ||
| v3d_resource.c | ||
| v3d_resource.h | ||
| v3d_screen.c | ||
| v3d_screen.h | ||
| v3d_uniforms.c | ||
| v3dx_context.h | ||
| v3dx_draw.c | ||
| v3dx_emit.c | ||
| v3dx_format_table.c | ||
| v3dx_job.c | ||
| v3dx_rcl.c | ||
| v3dx_state.c | ||