turnip: implement variableMultisampleRate

If subpass doesn't have depth/color attachments - samples count is
devised from VkPipelineMultisampleStateCreateInfo::rasterizationSamples.
Without variableMultisampleRate enabled all pipelines in such subpass
should have the same samples count; variableMultisampleRate allows
to have pipelines with different number of samples in one subpass,
given that it doesn't have depth/color attachments.

Blob doesn't have it enabled but there is no known reason for this.

Passes:
 dEQP-VK.pipeline.multisample.variable_rate.*

Fixes test:
 dEQP-VK.pipeline.framebuffer_attachment.no_attachments_ms

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Reviewed-by: Hyunjun Ko <zzoon@igalia.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <!9556>
61 jobs for !9556 with turnip/fix/msaa-state-should-depend-on-rasterizationSamples in 33 minutes and 39 seconds (queued for 5 seconds)
latest detached
Status Job ID Name Coverage
  Sanity
passed sanity #8615388

00:00:12

 
  Container
passed arm_build #8615393
aarch64

00:00:25

passed windows_build_vs2019 #8615395
windows shell 1809 mesa

00:00:08

passed x86_build-base #8615390

00:00:13

passed x86_test-base #8615392

00:00:13

 
  Container 2
passed android_build #8615410

00:00:13

passed i386_build #8615405

00:00:13

passed kernel+rootfs_amd64 #8615398

00:01:09

passed kernel+rootfs_arm64 #8615400
aarch64

00:01:00

passed kernel+rootfs_arm64-baremetal #8615415
aarch64

00:00:10

passed kernel+rootfs_armhf #8615402
aarch64

00:00:14

passed kernel+rootfs_armhf-baremetal #8615417
aarch64

00:00:12

passed ppc64el_build #8615407

00:00:30

passed s390x_build #8615408

00:00:17

passed x86_build #8615404

00:00:18

passed x86_test-gl #8615412

00:00:30

passed x86_test-vk #8615413

00:00:13

 
  Meson X86 64
passed meson-clang #8615428

00:03:39

passed meson-clover #8615429

00:02:47

passed meson-clover-testing #8615423

00:01:06

passed meson-gallium #8615424

00:06:05

passed meson-release #8615426

00:03:25

passed meson-testing #8615419

00:02:45

passed meson-testing-asan #8615421

00:04:12

passed meson-vulkan #8615431

00:01:20

 
  Build Misc
passed arm_test #8615433

00:01:04

passed meson-android #8615435

00:00:54

passed meson-arm64 #8615438
aarch64

00:01:31

passed meson-arm64-asan #8615440
aarch64

00:02:53

passed meson-arm64-build-test #8615442
aarch64

00:01:27

passed meson-armhf #8615436
aarch64

00:01:42

passed meson-i386 #8615444

00:02:10

passed meson-mingw32-x86_64 #8616742

00:01:56

passed meson-ppc64el #8615448
kvm

00:01:56

passed meson-s390x #8615446
kvm

00:03:46

failed meson-mingw32-x86_64 #8615450

00:02:40

 
  Freedreno
passed a306_gles2 #8615452
google-freedreno-db410c

00:05:51

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

00:10:02

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

00:09:51

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

00:09:58

passed a306_gles3_options #8615460
google-freedreno-db410c

00:03:46

passed a306-traces #8615462
google-freedreno-db410c

00:09:20

passed a530_gles2 #8615464
google-freedreno-db820c

00:06:41

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

00:06:31

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

00:08:35

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

00:07:10

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

00:08:29

passed a530_piglit_gl #8615473
google-freedreno-db820c

00:10:43

passed a530_piglit_shader #8615475
google-freedreno-db820c

00:09:39

passed a530-traces #8615477
google-freedreno-db820c

00:16:32

passed a630_gl #8615485
google-freedreno-cheza

00:02:41

passed a630_gles2 #8615479
google-freedreno-cheza

00:02:49

passed a630_gles3 #8615483
google-freedreno-cheza

00:06:07

passed a630_gles31 #8615481
google-freedreno-cheza

00:05:14

passed a630_gles_others #8615487
google-freedreno-cheza

00:03:49

passed a630_piglit_gl #8615495
google-freedreno-cheza

00:06:20

passed a630_piglit_shader #8615497
google-freedreno-cheza

00:05:14

passed a630-traces #8615499
google-freedreno-cheza

00:07:00

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

00:08:37

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

00:08:32

passed a630_vk_sysmem #8615493
google-freedreno-cheza

00:02:12