microsoft/compiler: For Vulkan environment, don't create resource handles upfront

Creating resource handles upfront works well while we have fixed-size resource
counts, but once we start talking about bindless, having arrays or even sets
of handles becomes prohibitive. It also precludes dynamic indexing for textures.

Instead, rely on the load_vulkan_descriptor instruction for UBO/SSBO, and undo
nir_lower_samplers so we continue to have deref chains for image/sampler accesses.
Then, emit handles at the end of a deref chain - the chain should only have
array offsets, so once we get to a type that's not an array anymore, we can
emit the handle.

Reviewed-by: Enrico Galli <enrico.galli@intel.com>
Part-of: <!10288>
35 jobs for !10288 with more-vulkan-shaders in 8 minutes and 11 seconds (queued for 4 seconds)
latest detached
Status Job ID Name Coverage
  Sanity
passed #9101346
sanity

00:00:09

 
  Container
passed #9101350
aarch64
arm_build

00:00:19

passed #9101352
windows shell 1809 mesa
windows_build_vs2019

00:00:09

passed #9101347
x86_build-base

00:00:14

passed #9101349
x86_test-base

00:00:13

 
  Container 2
passed #9101362
android_build

00:00:18

passed #9101357
i386_build

00:00:15

passed #9101367
kernel+rootfs_amd64

00:00:10

passed #9101369
aarch64
kernel+rootfs_arm64

00:01:10

passed #9101371
aarch64
kernel+rootfs_armhf

00:00:12

passed #9101358
ppc64el_build

00:00:17

passed #9101360
s390x_build

00:00:15

passed #9101355
x86_build

00:00:16

passed #9101364
x86_test-gl

00:00:15

passed #9101365
x86_test-vk

00:00:18

 
  Meson X86 64
passed #9101381
meson-clang

00:07:26

passed #9101383
meson-clover

00:02:09

passed #9101376
meson-clover-testing

00:01:36

passed #9101378
meson-gallium

00:04:33

passed #9101380
meson-release

00:03:05

passed #9101373
meson-testing

00:01:48

passed #9101375
meson-testing-asan

00:02:16

passed #9101385
meson-vulkan

00:01:38

 
  Build Misc
passed #9101386
arm_test

00:00:51

passed #9101388
meson-android

00:00:26

passed #9101392
aarch64
meson-arm64

00:01:20

passed #9101394
aarch64
meson-arm64-asan

00:03:38

passed #9101396
aarch64
meson-arm64-build-test

00:01:25

passed #9101390
aarch64
meson-armhf

00:01:39

passed #9101401
meson-i386

00:00:53

passed #9101406
meson-mingw32-x86_64

00:01:55

passed #9101404
meson-ppc64el

00:02:06

passed #9101402
kvm
meson-s390x

00:02:51

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

00:04:07

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

00:03:16