mesa/src
Iago Toral Quiroga 152fc4fd28 v3dv: don't lower uadd_carry and usub_borrow
We can produce slightly better code for these in the backend, so
do that. For this we need to:

1. Fix our implementation of uadd_carry (which wasn't used) to return
   an integer instead of a boolean value.
2. Add an implementation of usub_borrow.

Notice these are only used in Vulkan. In GL these instructions are
always unconditionally lowered by the state tracker in GLSL IR so
we never get to see them in the backend.

Shader-db stats from a collection of Vulkan samples:

total instructions in shared programs: 122351 -> 122345 (<.01%)
instructions in affected programs: 196 -> 190 (-3.06%)
helped: 2
HURT: 0

total uniforms in shared programs: 18670 -> 18672 (0.01%)
uniforms in affected programs: 59 -> 61 (3.39%)
helped: 0
HURT: 2

total max-temps in shared programs: 13145 -> 13147 (0.02%)
max-temps in affected programs: 27 -> 29 (7.41%)
helped: 0
HURT: 2

total inst-and-stalls in shared programs: 123052 -> 123046 (<.01%)
inst-and-stalls in affected programs: 197 -> 191 (-3.05%)
helped: 2
HURT: 0

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17372>
2022-07-07 09:16:24 +00:00
..
amd radv: Implement VK_EXT_shader_module_identifier. 2022-07-06 16:27:21 +00:00
android_stub
asahi panfrost,asahi: Use util_sign_extend for unpacking 2022-07-06 11:23:18 +00:00
broadcom v3dv: don't lower uadd_carry and usub_borrow 2022-07-07 09:16:24 +00:00
c11 c11: reinstate the original license and authorship 2022-06-27 11:46:22 +00:00
compiler nir: fix documentation for uadd_carry and usub_borry opcodes 2022-07-07 09:16:24 +00:00
drm-shim drm-shim: Cleanup on device file close 2022-05-02 19:50:33 +00:00
egl egl/wayland: Don't try to access modifiers u_vector as dynarray 2022-06-23 16:12:15 +00:00
etnaviv etnaviv: drm: rename etna_drm_table_lock 2022-07-03 17:41:55 +00:00
freedreno ci: Uprev deqp to 1.3.3.0. 2022-07-05 17:02:33 +00:00
gallium virgl: Add support for passing the supported number of components from virgl 2022-07-06 13:12:38 +00:00
gbm gallium: Learn about kopper 2022-04-07 00:17:40 +00:00
getopt
glx glx/dri: Fix DRI drawable release at MakeCurrent time 2022-06-27 20:03:26 +00:00
gtest gtest: Fix maybe-uninitialized compiler warning 2022-06-29 21:02:18 +00:00
hgl
imagination pvr: Rename loop iterator variable. 2022-06-24 09:15:53 +00:00
imgui
intel intel/fs: make sure memory writes have landed for thread dispatch 2022-07-07 09:48:20 +03:00
loader gallium/dri: add missing PIPE_BIND_DRI_PRIME handling 2022-02-08 00:13:07 +00:00
mapi meson: Using get_argument_syntax as the --compiler_id option for gen_vs_module_defs.py 2022-06-16 19:59:58 +00:00
mesa mesa: remove incomplete texture warning 2022-07-06 15:35:46 +00:00
microsoft dzn: Add ABI helpers for D3D12 functions returning structs 2022-07-06 12:18:55 +00:00
nouveau nouveau: Drop C++03 compat code 2022-07-05 13:23:12 +00:00
panfrost panfrost,asahi: Use util_sign_extend for unpacking 2022-07-06 11:23:18 +00:00
tool meson/pps: Check if libdrm exists to compile pps 2022-06-22 11:52:36 +03:00
util util,nir: Move mask_sign_extend from opt_load_store_vectorize to util 2022-07-06 11:23:18 +00:00
virtio venus: implement VK_EXT_physical_device_drm 2022-07-07 02:46:45 +00:00
vulkan vulkan/device_select: remove get_pdevice_proc_addr 2022-07-06 23:53:25 +00:00
meson.build meson: Use cc.get_argument_syntax instead cc.get_id when possible. 2022-06-16 19:59:58 +00:00