mesa: Implement and advertise GL_MESA_sampler_objects

This is the GLES3 sampler object API trivially backported to GLES2,
because it allows for simpler/better support in glamor and mutter.

This adds an error test for the cases where we don't have
OES_texture_border_clamp. The interactions with EXT_shadow_samplers,
EXT_texture_filter_anisotropic and EXT_texture_sRGB_decode are already
in place before this change.

Signed-off-by: Adam Jackson <ajax@redhat.com>
91 jobs for !2440 with gl-mesa-sampler-objects in 8 seconds (queued for 5 seconds)
latest detached
Status Job ID Name Coverage
  Sanity
passed #6500380
sanity

00:00:08

 
  Container
manual #6500385
aarch64 manual
arm_build
manual #6500387
manual
arm_test-base
manual #6500389
windows shell 1809 mesa manual
windows_build_vs2019
manual #6500381
manual
x86_build-base
manual #6500383
manual
x86_test-base
 
  Container 2
created #6500404
android_build
created #6500409
arm64_test
created #6500410
armhf_test
created #6500399
i386_build
created #6500391
kernel+rootfs_amd64
created #6500393
aarch64
kernel+rootfs_arm64
created #6500395
aarch64
kernel+rootfs_armhf
created #6500400
ppc64el_build
created #6500402
s390x_build
created #6500397
x86_build
created #6500405
x86_test-gl
created #6500407
x86_test-vk
 
  Meson X86 64
created #6500420
meson-clang
created #6500422
meson-clover
created #6500415
meson-clover-testing
created #6500417
meson-gallium
created #6500419
meson-release
created #6500412
meson-testing
created #6500414
meson-testing-asan
created #6500424
meson-vulkan
 
  Build Misc
created #6500425
meson-android
created #6500429
aarch64
meson-arm64
created #6500431
aarch64
meson-arm64-build-test
created #6500427
aarch64
meson-armhf
created #6500437
meson-i386
created #6500443
meson-mingw32-x86_64
created #6500441
kvm
meson-ppc64el
created #6500439
kvm
meson-s390x
created #6500433
windows docker 1809 mesa
meson-windows-vs2019
created #6500435
allowed to fail
scons-win64
 
  Amd
created #6500444
mesa-ci-aarch64-lava-collabora
radeonsi-stoney-gles2:amd64
created #6500448
mesa-ci-aarch64-lava-collabora
radeonsi-stoney-gles31:amd64
created #6500446
mesa-ci-aarch64-lava-collabora
radeonsi-stoney-gles3:amd64
created #6500450
mesa-ci-aarch64-lava-collabora
radeonsi-stoney-traces:amd64
created #6500452
radv-fossils
 
  Arm
created #6500464
mesa-ci-aarch64-lava-collabora
panfrost-g52-gles2:arm64
created #6500454
mesa-ci-aarch64-lava-collabora
panfrost-t720-gles2:arm64
created #6500456
mesa-ci-aarch64-lava-collabora
panfrost-t860-gles2:arm64
created #6500458
mesa-ci-aarch64-lava-collabora
panfrost-t860-gles3:arm64 1/2
created #6500460
mesa-ci-aarch64-lava-collabora
panfrost-t860-gles3:arm64 2/2
created #6500462
mesa-ci-aarch64-lava-collabora
panfrost-t860-traces:arm64
 
  Freedreno
created #6500490
google-freedreno-db410c
arm64_a306_gles2
created #6500492
google-freedreno-db410c
arm64_a306_gles3
created #6500494
google-freedreno-db410c
arm64_a306_gles3_options
created #6500496
google-freedreno-db820c
arm64_a530_gles2 1/2
created #6500499
google-freedreno-db820c
arm64_a530_gles2 2/2
created #6500501
google-freedreno-db820c
arm64_a530_gles3
created #6500504
google-freedreno-db820c
arm64_a530_gles31
created #6500506
google-freedreno-db820c
arm64_a530_piglit_shader
created #6500476
google-freedreno-cheza
arm64_a630_gl
created #6500469
google-freedreno-cheza
arm64_a630_gles2
created #6500473
google-freedreno-cheza
arm64_a630_gles3
created #6500471
google-freedreno-cheza
arm64_a630_gles31
created #6500478
google-freedreno-cheza
arm64_a630_gles_others
created #6500488
google-freedreno-cheza
arm64_a630_piglit_shader
created #6500467
google-freedreno-cheza
arm64-a630-traces
created #6500481
google-freedreno-cheza
arm64_a630_vk 1/2
created #6500483
google-freedreno-cheza
arm64_a630_vk 2/2
created #6500486
google-freedreno-cheza
arm64_a630_vk_sysmem
 
  Raspberrypi
created #6500508
igalia-rpi3
vc4-rpi3-gles2:armhf 1/4
created #6500511
igalia-rpi3
vc4-rpi3-gles2:armhf 2/4
created #6500513
igalia-rpi3
vc4-rpi3-gles2:armhf 3/4
created #6500515
igalia-rpi3
vc4-rpi3-gles2:armhf 4/4
 
  Software Renderer
created #6500527
lavapipe-vk
created #6500520
llvmpipe-gles2
created #6500517
llvmpipe-piglit-glslparser
created #6500516
llvmpipe-piglit-quick_gl
created #6500518
llvmpipe-piglit-quick_shader
created #6500519
llvmpipe-traces
created #6500526
softpipe-gl
created #6500521
softpipe-gles2
created #6500522
softpipe-gles3
created #6500523
softpipe-gles31 1/2
created #6500524
softpipe-gles31 2/2
created #6500525
softpipe-piglit-quick
 
  Layered Backends
created #6500528
windows docker 1809 mesa
test-d3d12-windows
created #6500534
virgl-gl30-on-gl
created #6500535
virgl-gl31-on-gl
created #6500536
virgl-gl32-on-gl
created #6500530
virgl-gles2-on-gl
created #6500532
virgl-gles31-on-gl 1/2
created #6500533
virgl-gles31-on-gl 2/2
created #6500531
virgl-gles3-on-gl
created #6500529
virgl-traces
 
  Deploy
manual #6500537
manual
test-docs-mr