panfrost: Use Midgard-specific reloads

v2: Be more explicit about sampler types. Prefer the term "load" to
"resolve" to match VK convention. Generate shaders for MRT 8x.  Blit
shader generation adds about 6ms to startup cost. We could cache thes.
shaders to disk if we needed to (or indeed, ship binaries).

v3: Fallback on u_blitter on Bifrost so Bifrost continues to work.
KHR_partial_update support is mostly no-oped on Bifrost now, but that's
okay for now - compositors are still functional.

v4: Specialize on multisample state as well to enable reloads of MSAA
textures. This requires 2x the shader variants, so I assume we're up to
12ms startup cost for generation. Annoying. Also fix interactions with
depth- or stencil-only clears of combined depth-stencil surfaces.

v5: Cache to the device (screen) instead of the context, reducing
duplicated work in apps that create many contexts (e.g. Chromium)

v6: Squash in KHR_partial_update cleanup to fix intermediate
regressions on a few tests.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <mesa/mesa!5824>
67 jobs for !5824 with blit8 in 33 minutes and 49 seconds (queued for 8 seconds)
detached
Status Job ID Name Coverage
  Container+Docs
passed #3647242
aarch64
arm_build

00:00:41

passed #3647244
arm_test-base

00:00:34

passed #3647237
x86_build-base

00:00:20

passed #3647240
x86_build_old

00:00:14

passed #3647239
x86_test-base

00:00:21

 
  Container 2
passed #3647261
arm64_test

00:00:24

passed #3647251
i386_build

00:00:20

passed #3647245
aarch64
kernel+rootfs_arm64

00:01:15

passed #3647247
aarch64
kernel+rootfs_armhf

00:00:27

passed #3647253
ppc64el_build

00:00:19

passed #3647255
s390x_build

00:00:31

passed #3647249
x86_build

00:00:28

passed #3647257
x86_test-gl

00:00:20

passed #3647259
x86_test-vk

00:00:31

 
  Meson X86 64
passed #3647269
meson-clang

00:10:11

passed #3647267
meson-classic

00:04:30

passed #3647271
meson-clover

00:06:20

passed #3647273
meson-clover-old-llvm

00:06:35

passed #3647265
meson-gallium

00:12:56

passed #3647263
meson-testing

00:07:24

passed #3647275
meson-vulkan

00:06:33

 
  Scons
passed #3647277
scons-win64

00:09:18

 
  Meson Misc
passed #3647281
aarch64
meson-arm64

00:02:04

passed #3647284
aarch64
meson-arm64-build-test

00:02:57

passed #3647279
aarch64
meson-armhf

00:02:15

passed #3647286
meson-i386

00:04:42

passed #3647289
meson-mingw32-x86_64

00:05:33

passed #3647288
kvm
meson-ppc64el

00:04:32

passed #3647287
kvm
meson-s390x

00:04:19

 
  Llvmpipe
passed #3647293
llvmpipe-gles2

00:03:13

passed #3647294
llvmpipe-traces

00:00:24

passed #3647291
piglit-glslparser

00:05:45

passed #3647290
piglit-quick_gl

00:09:40

passed #3647292
piglit-quick_shader

00:11:23

 
  Softpipe
passed #3647295
softpipe-gles2

00:02:12

passed #3647298
softpipe-gles31 1/4

00:03:53

passed #3647296
softpipe-gles3 1/2

00:03:51

passed #3647299
softpipe-gles31 2/4

00:05:35

passed #3647300
softpipe-gles31 3/4

00:05:40

passed #3647301
softpipe-gles31 4/4

00:04:26

passed #3647297
softpipe-gles3 2/2

00:05:36

 
  Freedreno
passed #3647306
google-freedreno-db410c
arm64_a306_gles2

00:06:33

passed #3647307
google-freedreno-db410c
arm64_a306_gles3

00:11:11

passed #3647308
google-freedreno-db410c
arm64_a306_gles3_options

00:04:17

passed #3647309
google-freedreno-db820c
arm64_a530_gles2

00:10:37

passed #3647310
google-freedreno-db820c
arm64_a530_gles3

00:03:23

passed #3647311
google-freedreno-db820c
arm64_a530_gles31

00:05:28

passed #3647302
google-freedreno-cheza
arm64_a630_gles2

00:04:30

passed #3647304
google-freedreno-cheza
arm64_a630_gles3

00:05:56

passed #3647303
google-freedreno-cheza
arm64_a630_gles31

00:04:57

passed #3647305
google-freedreno-cheza
arm64_a630_vk

00:04:28

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

00:28:34

passed #3647313
mesa-ci-aarch64-lava-collabora
panfrost-t760-gles2:armhf

00:06:28

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

00:05:55

passed #3647315
mesa-ci-aarch64-lava-collabora
panfrost-t860-gles3:arm64

00:05:11

 
  Radv
passed #3647316
radv-fossils

00:10:31

 
  Virgl
passed #3647324
virgl-gl30-on-gl

00:00:16

passed #3647325
virgl-gl31-on-gl

00:00:38

passed #3647326
virgl-gl32-on-gl

00:01:08

passed #3647317
virgl-gles2-on-gl

00:02:54

passed #3647320
virgl-gles31-on-gl 1/4

00:03:40

passed #3647321
virgl-gles31-on-gl 2/4

00:03:06

passed #3647322
virgl-gles31-on-gl 3/4

00:05:07

passed #3647323
virgl-gles31-on-gl 4/4

00:04:12

passed #3647318
virgl-gles3-on-gl 1/2

00:03:09

passed #3647319
virgl-gles3-on-gl 2/2

00:03:19

passed #3647327
virgl-traces

00:00:40