gallium/u_threaded: merge draws faster by merging indexbuf unreferencing

Instead of N times decrementing the index buffer refcount by 1, decrement
it by N once.

Reviewed-by: Rob Clark <robdclark@chromium.org>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <!11349>
144 jobs for !11349 with tc-merge-index-unrefs in 19 minutes and 6 seconds (queued for 8 seconds)
latest detached
Status Name Job ID Coverage
  Sanity
passed sanity #10865807

00:00:10

 
  Container
passed arm_build #10865810
aarch64

00:00:23

passed windows_build_vs2019 #10865811
windows shell 1809 mesa

00:00:10

passed x86_build-base #10865808

00:00:18

passed x86_test-base #10865809

00:00:23

 
  Container 2
passed android_build #10865816

00:00:20

passed i386_build #10865813

00:00:19

passed kernel+rootfs_amd64 #10865819

00:00:11

passed kernel+rootfs_arm64 #10865820
aarch64

00:00:12

passed kernel+rootfs_armhf #10865821
aarch64

00:00:13

passed ppc64el_build #10865814

00:00:24

passed s390x_build #10865815

00:00:18

passed x86_build #10865812

00:00:24

passed x86_test-gl #10865817

00:00:19

passed x86_test-vk #10865818

00:00:19

 
  Meson X86 64
passed meson-clang #10865827

00:10:53

passed meson-clover #10865828

00:03:17

passed meson-clover-testing #10865824

00:02:11

passed meson-gallium #10865825

00:07:38

passed meson-release #10865826

00:05:31

passed meson-testing #10865822

00:02:36

passed meson-testing-asan #10865823

00:04:59

passed meson-vulkan #10865829

00:01:44

 
  Build Misc
passed arm_test #10865830

00:00:21

passed meson-android #10865831

00:00:47

passed meson-arm64 #10865833
aarch64

00:02:46

passed meson-arm64-asan #10865834
aarch64

00:04:03

passed meson-arm64-build-test #10865835
aarch64

00:02:08

passed meson-armhf #10865832
aarch64

00:01:43

passed meson-i386 #10865837

00:03:23

passed meson-mingw32-x86_64 #10865840

00:02:27

passed meson-ppc64el #10865839

00:04:01

passed meson-s390x #10865838
kvm

00:04:50

passed meson-windows-vs2019 #10865836
windows docker 1809 mesa

00:05:16

 
  Amd
passed radeonsi-stoney-gles2:amd64 #10865841
mesa-ci-x86-64-lava-hp-11A-G6-EE-grunt

00:07:32

passed radeonsi-stoney-gles31:amd64 1/2 #10865844
mesa-ci-x86-64-lava-hp-11A-G6-EE-grunt

00:12:02

passed radeonsi-stoney-gles31:amd64 2/2 #10865845
mesa-ci-x86-64-lava-hp-11A-G6-EE-grunt

00:10:56

passed radeonsi-stoney-gles3:amd64 1/2 #10865842
mesa-ci-x86-64-lava-hp-11A-G6-EE-grunt

00:08:33

passed radeonsi-stoney-gles3:amd64 2/2 #10865843
mesa-ci-x86-64-lava-hp-11A-G6-EE-grunt

00:08:22

passed radeonsi-stoney-piglit-gl:amd64 #10865847
mesa-ci-x86-64-lava-hp-11A-G6-EE-grunt

00:09:25

passed radeonsi-stoney-traces:amd64 #10865846
mesa-ci-x86-64-lava-hp-11A-G6-EE-grunt

00:07:00

 
  Intel
passed iris-amly-egl #10865854
mesa-ci-x86-64-lava-asus-C433TA-AJ0005-rammus

00:06:13

passed iris-amly-gl #10865853
mesa-ci-x86-64-lava-asus-C433TA-AJ0005-rammus

00:08:47

passed iris-amly-gles2 #10865852
mesa-ci-x86-64-lava-asus-C433TA-AJ0005-rammus

00:05:36

passed iris-amly-piglit 1/3 #10865855
mesa-ci-x86-64-lava-asus-C433TA-AJ0005-rammus

00:13:37

passed iris-amly-piglit 2/3 #10865856
mesa-ci-x86-64-lava-asus-C433TA-AJ0005-rammus

00:13:30

passed iris-amly-piglit 3/3 #10865857
mesa-ci-x86-64-lava-asus-C433TA-AJ0005-rammus

00:15:28

passed iris-amly-traces #10865859
mesa-ci-x86-64-lava-asus-C433TA-AJ0005-rammus

00:06:05

passed iris-apl-egl #10865851
mesa-ci-x86-64-lava-asus-C523NA-A20057-coral

00:08:01

passed iris-apl-gles2 #10865848
mesa-ci-x86-64-lava-asus-C523NA-A20057-coral

00:04:49

passed iris-apl-gles3 #10865849
mesa-ci-x86-64-lava-asus-C523NA-A20057-coral

00:06:20

passed iris-apl-gles31 #10865850
mesa-ci-x86-64-lava-asus-C523NA-A20057-coral

00:06:43

passed iris-apl-traces #10865858
mesa-ci-x86-64-lava-asus-C523NA-A20057-coral

00:08:24

 
  Arm
passed panfrost-g52-gles31:arm64 #10865869
mesa-ci-x86-64-lava-meson-g12b-a311d-khadas-vim3

00:11:43

passed panfrost-g52-gles3:arm64 1/2 #10865867
mesa-ci-x86-64-lava-meson-g12b-a311d-khadas-vim3

00:07:49

passed panfrost-g52-gles3:arm64 2/2 #10865868
mesa-ci-x86-64-lava-meson-g12b-a311d-khadas-vim3

00:09:46

passed panfrost-t720-gles2:arm64 #10865860
mesa-ci-x86-64-lava-sun50i-h6-pine-h64

00:08:58

passed panfrost-t760-gles2:armhf #10865861
mesa-ci-x86-64-lava-rk3288-veyron-jaq

00:06:12

passed panfrost-t760-traces:armhf #10865862
mesa-ci-x86-64-lava-rk3288-veyron-jaq

00:04:50

passed panfrost-t860-gles31:arm64 #10865865
mesa-ci-x86-64-lava-rk3399-gru-kevin

00:06:45

passed panfrost-t860-gles3:arm64 1/2 #10865863
mesa-ci-x86-64-lava-rk3399-gru-kevin

00:06:43

passed panfrost-t860-gles3:arm64 2/2 #10865864
mesa-ci-x86-64-lava-rk3399-gru-kevin

00:07:32

passed panfrost-t860-traces:arm64 #10865866
mesa-ci-x86-64-lava-rk3399-gru-kevin

00:04:41

 
  Broadcom
passed v3d-rpi4-egl:armhf #10865886
igalia-rpi4

00:06:48

passed v3d-rpi4-gles2:armhf #10865882
igalia-rpi4

00:07:03

passed v3d-rpi4-gles31:armhf 1/2 #10865876
igalia-rpi4

00:09:42

passed v3d-rpi4-gles31:armhf 2/2 #10865877
igalia-rpi4

00:10:04

passed v3d-rpi4-gles3:armhf 1/4 #10865878
igalia-rpi4

00:09:20

passed v3d-rpi4-gles3:armhf 2/4 #10865879
igalia-rpi4

00:09:45

passed v3d-rpi4-gles3:armhf 3/4 #10865880
igalia-rpi4

00:07:57

passed v3d-rpi4-gles3:armhf 4/4 #10865881
igalia-rpi4

00:08:34

passed v3d-rpi4-khr-gles2:armhf #10865885
igalia-rpi4

00:01:58

passed v3d-rpi4-khr-gles31:armhf #10865883
igalia-rpi4

00:02:56

passed v3d-rpi4-khr-gles3:armhf #10865884
igalia-rpi4

00:03:50

passed v3d-rpi4-piglit:armhf 1/3 #10865887
igalia-rpi4

00:11:04

passed v3d-rpi4-piglit:armhf 2/3 #10865888
igalia-rpi4

00:10:43

passed v3d-rpi4-piglit:armhf 3/3 #10865889
igalia-rpi4

00:10:51

passed vc4-rpi3-egl:armhf #10865875
igalia-rpi3

00:06:55

passed vc4-rpi3-gles2:armhf 1/4 #10865870
igalia-rpi3

00:04:23

passed vc4-rpi3-gles2:armhf 2/4 #10865871
igalia-rpi3

00:03:59

passed vc4-rpi3-gles2:armhf 3/4 #10865872
igalia-rpi3

00:04:29

passed vc4-rpi3-gles2:armhf 4/4 #10865873
igalia-rpi3

00:05:23

passed vc4-rpi3-khr-gles2:armhf #10865874
igalia-rpi3

00:02:01

 
  Freedreno
passed a306_gles2 #10865890
google-freedreno-db410c

00:04:55

passed a306_gles3 1/3 #10865891
google-freedreno-db410c

00:09:10

passed a306_gles3 2/3 #10865892
google-freedreno-db410c

00:08:54

passed a306_gles3 3/3 #10865893
google-freedreno-db410c

00:09:09

passed a306_gles3_options #10865894
google-freedreno-db410c

00:03:55

passed a306-traces #10865895
google-freedreno-db410c

00:03:03

passed a530_gles2 #10865896
google-freedreno-db820c

00:05:54

passed a530_gles31 1/2 #10865899
google-freedreno-db820c

00:05:41

passed a530_gles3 1/2 #10865897
google-freedreno-db820c

00:08:43

passed a530_gles31 2/2 #10865900
google-freedreno-db820c

00:06:20

passed a530_gles3 2/2 #10865898
google-freedreno-db820c

00:07:20

passed a530_piglit_shader 1/2 #10865901
google-freedreno-db820c

00:08:03

passed a530_piglit_shader 2/2 #10865902
google-freedreno-db820c

00:08:10

passed a530-traces #10865903
google-freedreno-db820c

00:08:10

passed a630_egl #10865908
google-freedreno-cheza

00:02:21

passed a630_gl #10865907
google-freedreno-cheza

00:01:50

passed a630_gles2 #10865904
google-freedreno-cheza

00:01:46

passed a630_gles3 #10865906
google-freedreno-cheza

00:05:08

passed a630_gles31 #10865905
google-freedreno-cheza

00:04:09

passed a630_gles_others #10865909
google-freedreno-cheza

00:03:01

passed a630_piglit #10865913
google-freedreno-cheza

00:08:52

passed a630-traces #10865914
google-freedreno-cheza

00:04:16

passed a630_vk 1/2 #10865910
google-freedreno-cheza

00:10:09

passed a630_vk 2/2 #10865911
google-freedreno-cheza

00:10:02

passed a630_vk_sysmem #10865912
google-freedreno-cheza

00:02:16

 
  Software Renderer
passed lavapipe-nir-stress #10865937

00:01:13

passed lavapipe-vk #10865936

00:07:11

passed llvmpipe-egl #10865925

00:01:59

passed llvmpipe-gl #10865923

00:03:08

passed llvmpipe-gles2 #10865920

00:01:59

passed llvmpipe-gles3 #10865921

00:05:37

passed llvmpipe-gles31 #10865922

00:09:21

passed llvmpipe-khr-gles2 #10865924

00:00:32

passed llvmpipe-piglit-cl #10865915

00:02:37

passed llvmpipe-piglit-glslparser #10865917

00:05:18

passed llvmpipe-piglit-quick_gl #10865916

00:07:48

passed llvmpipe-piglit-quick_shader #10865918

00:07:21

passed llvmpipe-traces #10865919

00:02:14

passed softpipe-asan-gles31 #10865933

00:03:38

passed softpipe-gl #10865935

00:00:36

passed softpipe-gles2 #10865926

00:01:47

passed softpipe-gles3 #10865927

00:04:00

passed softpipe-gles31 1/2 #10865928

00:03:39

passed softpipe-gles31 2/2 #10865929

00:03:04

passed softpipe-khr-gles2 #10865930

00:01:41

passed softpipe-khr-gles3 #10865931

00:00:34

passed softpipe-khr-gles31 #10865932

00:00:32

passed softpipe-piglit-quick #10865934

00:04:34

 
  Layered Backends
passed test-d3d12-windows #10865950
windows docker 1809 mesa

00:03:32

passed virgl-gl30-on-gl #10865942

00:00:38

passed virgl-gl31-on-gl #10865943

00:00:59

passed virgl-gl32-on-gl #10865944

00:01:16

passed virgl-gles2-on-gl #10865938

00:01:33

passed virgl-gles31-on-gl 1/2 #10865940

00:04:30

passed virgl-gles31-on-gl 2/2 #10865941

00:03:39

passed virgl-gles3-on-gl #10865939

00:02:16

passed virgl-traces #10865945
kvm

00:05:28

passed zink-lvp-gl #10865949

00:01:44

passed zink-lvp-gles2 #10865947

00:02:04

passed zink-lvp-gles3 #10865948

00:02:30

passed zink-piglit-quick_gl #10865946

00:04:04