util/primconvert: Handle indirect and multi-draw

Indirect handling was completely missing.  And even though we have to
emulate multi-draw, this pushes it out of the fast/hot path in the
driver's draw_vbo()

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <!9742>
107 jobs for !9742 with gallium/draw-helpers in 17 minutes and 11 seconds (queued for 9 seconds)
latest detached
Status Job ID Name Coverage
  Sanity
passed #8359544
sanity

00:00:09

 
  Container
passed #8359550
aarch64
arm_build

00:00:14

passed #8359552
arm_test-base

00:00:14

passed #8359555
windows shell 1809 mesa
windows_build_vs2019

00:00:08

passed #8359546
x86_build-base

00:00:14

passed #8359548
x86_test-base

00:00:15

 
  Container 2
passed #8359570
android_build

00:00:10

passed #8359575
arm64_test

00:00:11

passed #8359577
armhf_test

00:00:17

passed #8359565
i386_build

00:00:16

passed #8359558
kernel+rootfs_amd64

00:00:12

passed #8359560
aarch64
kernel+rootfs_arm64

00:00:11

passed #8359561
aarch64
kernel+rootfs_armhf

00:00:11

passed #8359567
ppc64el_build

00:00:15

passed #8359568
s390x_build

00:00:17

passed #8359563
x86_build

00:00:16

passed #8359572
x86_test-gl

00:00:17

passed #8359573
x86_test-vk

00:00:11

 
  Meson X86 64
passed #8359586
meson-clang

00:05:06

passed #8359588
meson-clover

00:02:05

passed #8359582
meson-clover-testing

00:01:51

passed #8359583
meson-gallium

00:06:44

passed #8359585
meson-release

00:03:45

passed #8359579
meson-testing

00:01:47

passed #8359580
meson-testing-asan

00:07:27

passed #8359589
meson-vulkan

00:01:42

 
  Build Misc
passed #8359591
meson-android

00:00:35

passed #8359595
aarch64
meson-arm64

00:02:24

passed #8359597
aarch64
meson-arm64-asan

00:02:51

passed #8359599
aarch64
meson-arm64-build-test

00:01:21

passed #8359593
aarch64
meson-armhf

00:01:32

passed #8359604
meson-i386

00:01:20

passed #8359610
meson-mingw32-x86_64

00:01:49

passed #8359608
kvm
meson-ppc64el

00:02:19

passed #8359606
kvm
meson-s390x

00:03:32

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

00:04:47

 
  Amd
passed #8359612
mesa-ci-aarch64-lava-collabora
radeonsi-stoney-gles31:amd64

00:08:25

passed #8359614
mesa-ci-aarch64-lava-collabora
radeonsi-stoney-traces:amd64

00:10:00

 
  Arm
passed #8359626
mesa-ci-aarch64-lava-collabora
panfrost-g52-gles2:arm64

00:03:34

passed #8359628
mesa-ci-aarch64-lava-collabora
panfrost-g52-gles3:arm64

00:06:13

passed #8359617
mesa-ci-aarch64-lava-collabora
panfrost-t720-gles2:arm64

00:12:57

passed #8359619
mesa-ci-aarch64-lava-collabora
panfrost-t860-gles2:arm64

00:05:32

passed #8359621
mesa-ci-aarch64-lava-collabora
panfrost-t860-gles3:arm64 1/2

00:07:22

passed #8359623
mesa-ci-aarch64-lava-collabora
panfrost-t860-gles3:arm64 2/2

00:08:44

passed #8359624
mesa-ci-aarch64-lava-collabora
panfrost-t860-traces:arm64

00:14:14

 
  Broadcom
passed #8359650
igalia-rpi4
v3d-rpi4-gles2:armhf

00:07:34

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

00:05:35

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

00:06:01

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

00:05:31

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

00:05:06

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

00:05:40

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

00:05:03

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

00:04:33

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

00:04:16

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

00:04:05

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

00:04:12

 
  Freedreno
passed #8359652
google-freedreno-db410c
a306_gles2

00:04:38

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

00:08:51

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

00:08:52

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

00:08:50

passed #8359660
google-freedreno-db410c
a306_gles3_options

00:02:34

passed #8359662
google-freedreno-db820c
a530_gles2

00:05:56

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

00:05:31

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

00:08:26

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

00:05:44

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

00:06:52

passed #8359668
google-freedreno-db820c
a530_piglit_gl

00:09:13

passed #8359669
google-freedreno-db820c
a530_piglit_shader

00:08:10

passed #8359673
google-freedreno-cheza
a630_gl

00:01:19

passed #8359670
google-freedreno-cheza
a630_gles2

00:01:35

passed #8359672
google-freedreno-cheza
a630_gles3

00:04:42

passed #8359671
google-freedreno-cheza
a630_gles31

00:03:57

passed #8359675
google-freedreno-cheza
a630_gles_asan

00:03:45

passed #8359674
google-freedreno-cheza
a630_gles_others

00:02:36

passed #8359679
google-freedreno-cheza
a630_piglit_gl

00:06:21

passed #8359680
google-freedreno-cheza
a630_piglit_shader

00:05:07

passed #8359681
google-freedreno-cheza
a630-traces

00:07:00

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

00:06:47

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

00:08:13

passed #8359678
google-freedreno-cheza
a630_vk_sysmem

00:02:10

 
  Software Renderer
passed #8359695
lavapipe-vk

00:08:17

passed #8359687
llvmpipe-gles2

00:01:24

passed #8359682
llvmpipe-piglit-cl

00:02:37

passed #8359684
llvmpipe-piglit-glslparser

00:04:24

passed #8359683
llvmpipe-piglit-quick_gl

00:06:29

passed #8359685
llvmpipe-piglit-quick_shader

00:06:25

passed #8359686
llvmpipe-traces

00:02:14

passed #8359692
softpipe-asan-gles31

00:02:23

passed #8359694
softpipe-gl

00:01:20

passed #8359688
softpipe-gles2

00:01:53

passed #8359689
softpipe-gles3

00:06:27

passed #8359690
softpipe-gles31 1/2

00:06:23

passed #8359691
softpipe-gles31 2/2

00:05:24

passed #8359693
softpipe-piglit-quick

00:10:02

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

00:03:56

passed #8359700
virgl-gl30-on-gl

00:00:29

passed #8359701
virgl-gl31-on-gl

00:01:54

passed #8359702
virgl-gl32-on-gl

00:01:45

passed #8359696
virgl-gles2-on-gl

00:02:35

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

00:05:34

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

00:06:10

passed #8359697
virgl-gles3-on-gl

00:05:53

passed #8359703
virgl-traces

00:00:45

passed #8359707
zink-lvp-gl

00:01:16

passed #8359705
zink-lvp-gles2

00:02:46

passed #8359706
zink-lvp-gles3

00:02:31

passed #8359704
zink-piglit-quick_gl

00:05:03