tu: Implement non-aligned multisample GMEM STORE_OP_STORE

We have to a bit careful here when disabling draw states. This also
necessitates moving the actual recording of the stores to the end so
that we set the dirty flag correctly.

Closes: #4462
Part-of: <!12102>
59 jobs for !12102 with review/tu-ms-attachment-store in 16 minutes and 9 seconds (queued for 20 seconds)
latest detached
Status Name Job ID Coverage
  Sanity
passed sanity #12403795

00:00:09

 
  Container
passed debian/arm_build #12403800
aarch64

00:00:20

passed debian/x86_build-base #12403797

00:00:21

passed debian/x86_test-base #12403798

00:00:21

passed fedora/x86_build #12403802

00:00:21

passed windows_build_vs2019 #12403803
windows shell 1809 mesa

00:00:10

 
  Container 2
passed debian/android_build #12403812

00:00:16

passed debian/i386_build #12403808

00:00:26

passed debian/ppc64el_build #12403810

00:00:27

passed debian/s390x_build #12403811

00:00:26

passed debian/x86_build #12403806

00:00:27

passed debian/x86_test-gl #12403813

00:00:27

passed debian/x86_test-vk #12403814

00:00:17

passed kernel+rootfs_amd64 #12403815

00:00:20

passed kernel+rootfs_arm64 #12403816
aarch64

00:00:55

passed kernel+rootfs_armhf #12403817
aarch64

00:00:11

 
  Build X86 64
passed debian-clang #12403824

00:08:24

passed debian-clover #12403825

00:02:04

passed debian-clover-testing #12403820

00:01:36

passed debian-gallium #12403821

00:04:46

passed debian-release #12403822

00:02:48

passed debian-testing #12403818

00:02:09

passed debian-testing-asan #12403819

00:04:17

passed debian-vulkan #12403826

00:01:32

passed fedora-release #12403823

00:02:34

 
  Build Misc
passed debian-android #12403828

00:00:52

passed debian-arm64 #12403830
aarch64

00:01:22

passed debian-arm64-asan #12403831
aarch64

00:03:01

passed debian-arm64-build-test #12403832
aarch64

00:01:31

passed debian-armhf #12403829
aarch64

00:01:48

passed debian/arm_test #12403827

00:00:36

passed debian-i386 #12403833

00:01:36

passed debian-mingw32-x86_64 #12403834

00:02:06

 
  Freedreno
passed a306_gles2 #12403835
google-freedreno-db410c

00:04:52

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

00:08:41

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

00:08:55

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

00:08:52

passed a306_gles3_options #12403839
google-freedreno-db410c

00:03:44

passed a306-traces #12403840
google-freedreno-db410c

00:02:41

passed a530_gles2 #12403841
google-freedreno-db820c

00:05:42

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

00:05:53

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

00:08:25

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

00:05:51

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

00:07:05

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

00:08:06

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

00:09:06

passed a530-traces #12403848
google-freedreno-db820c

00:08:11

passed a630_egl #12403853
google-freedreno-cheza

00:02:05

passed a630_gl #12403852
google-freedreno-cheza

00:01:46

passed a630_gles2 #12403849
google-freedreno-cheza

00:01:32

passed a630_gles3 #12403851
google-freedreno-cheza

00:04:40

passed a630_gles31 #12403850
google-freedreno-cheza

00:09:21

passed a630_gles_others #12403854
google-freedreno-cheza

00:05:30

passed a630_piglit #12403858
google-freedreno-cheza

00:08:26

passed a630-traces #12403859
google-freedreno-cheza

00:04:36

passed a630-traces-restricted #12403860
google-freedreno-cheza

00:03:17

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

00:10:35

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

00:10:17

passed a630_vk_sysmem #12403857
google-freedreno-cheza

00:02:16