mesa/src
Rhys Perry 4735c8a522 nir/loop_analyze: adjust force unrolling to only include interesting modes
Instead of force-unrolling any loop which reads an entire array, only do
it for arrays which might be faster to access with constant indices.

Significantly improves compile-time for these CTS tests, which could
previously timeout:
dEQP-VK.spirv_assembly.instruction.graphics.16bit_storage.struct_mixed_types.uniform_buffer_block_geom
dEQP-VK.spirv_assembly.instruction.graphics.16bit_storage.struct_mixed_types.uniform_geom
dEQP-VK.spirv_assembly.instruction.graphics.8bit_storage.struct_mixed_types.storage_buffer_geom
dEQP-VK.spirv_assembly.instruction.graphics.spirv_ids_abuse.lots_ids_geom

fossil-db (Navi):
Totals from 19 (0.01% of 137413) affected shaders:
SGPRs: 1728 -> 1688 (-2.31%)
VGPRs: 1176 -> 1168 (-0.68%)
CodeSize: 198496 -> 136580 (-31.19%)
MaxWaves: 154 -> 156 (+1.30%)
Instrs: 38889 -> 26029 (-33.07%)
Cycles: 446108 -> 1059924 (+137.59%); split: -0.91%, +138.51%
VMEM: 3245 -> 2926 (-9.83%)
SMEM: 850 -> 828 (-2.59%); split: +4.71%, -7.29%
VClause: 549 -> 533 (-2.91%)
SClause: 1810 -> 1522 (-15.91%)
Copies: 2209 -> 1705 (-22.82%); split: -22.95%, +0.14%
Branches: 854 -> 603 (-29.39%); split: -29.86%, +0.47%
PreSGPRs: 1512 -> 1506 (-0.40%); split: -0.53%, +0.13%

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7161>
2020-10-22 12:07:45 +01:00
..
amd amd: update addrlib 2020-10-21 15:57:37 +00:00
android_stub mesa: Make the android_stub be a set of non-installed shared libraries. 2020-09-22 17:09:22 +00:00
broadcom v3dv: handle buffer to linear depth/stencil image copies in blit path 2020-10-22 08:00:02 +02:00
compiler nir/loop_analyze: adjust force unrolling to only include interesting modes 2020-10-22 12:07:45 +01:00
drm-shim drm-shim: Fix unused variable warnings from asserts in release build. 2020-08-28 22:45:08 +00:00
egl egl/android: HAVE_DRM_GRALLOC path fixes (v2) 2020-09-07 23:33:15 +02:00
etnaviv etnaviv: replace all dup() with os_dupfd_cloexec() 2020-06-18 02:09:56 +00:00
freedreno turnip: Add error path handling for descriptor pool init. 2020-10-20 22:16:59 +00:00
gallium gallivm/nir: handle nir_op_flt in lp_build_nir_llvm 2020-10-22 05:32:25 +00:00
gbm gallium: rename pipe_transfer_usage -> pipe_map_flags 2020-09-22 03:20:54 +00:00
getopt
glx driconf: add a way to override indirect-GL extensions 2020-10-22 07:47:28 +03:00
gtest gtest: Update to 1.10.0 2020-04-20 11:57:11 +00:00
hgl scons: Prune out unnecessary targets. 2020-03-30 13:38:01 +00:00
imgui
intel anv,iris: Use the data cache for UBO pulls on Gen12+ 2020-10-20 19:54:29 +00:00
loader driconf: Make the driver's declarations be structs instead of XML. 2020-10-02 23:59:52 +00:00
mapi glthread: handle glInterleavedArrays 2020-10-07 09:50:18 -04:00
mesa driconf: add a way to override indirect-GL extensions 2020-10-22 07:47:28 +03:00
panfrost panfrost: Fix stride for AFBC_FORMAT_MOD_BLOCK_SIZE_32x8. 2020-10-19 15:48:29 -07:00
util driconf: allow higher compat version for Brink 2020-10-22 07:47:28 +03:00
virtio virgl: update protocol headers 2020-08-21 18:38:44 +00:00
vulkan vulkan/wsi: fix possible random stalls in wsi_display_wait_for_event 2020-10-19 23:43:27 +00:00
meson.build meson: Only require libexpat when a part of the build needs it. 2020-10-20 18:16:26 +00:00
SConscript driconf: drop now unused translation facility 2020-06-22 21:50:12 +00:00