nv50: Add shader disk caching

Adds shader disk caching for nv50 to reduce the need to every time compile
shaders. Shaders are saved into disk_shader_cache from nv50_screen structure.

It serializes the input nv50_ir_prog_info to compute the hash key and
also to do a byte compare between the original nv50_ir_prog_info and the one
saved in the cache. If keys match and also the byte compare returns they
are equal, shaders are same, and the compiled nv50_ir_prog_info_out from the
cache can be used instead of compiling input info.

Signed-off-by: Mark Menzynski <mmenzyns@redhat.com>
31 jobs for !6141 with enable-shader-cache
latest detached
Status Job ID Name Coverage
  Container+Docs
manual #4304223
aarch64 manual
arm_build
manual #4304225
manual
arm_test-base
manual #4304218
manual
x86_build-base
manual #4304222
manual
x86_build_old
manual #4304220
manual
x86_test-base
 
  Container 2
created #4304246
arm64_test
created #4304236
i386_build
created #4304227
kernel+rootfs_amd64
created #4304229
aarch64
kernel+rootfs_arm64
created #4304232
aarch64
kernel+rootfs_armhf
created #4304238
ppc64el_build
created #4304240
s390x_build
created #4304234
x86_build
created #4304242
x86_test-gl
created #4304244
x86_test-vk
 
  Meson X86 64
created #4304254
meson-android
created #4304255
meson-clang
created #4304252
meson-classic
created #4304257
meson-clover
created #4304259
meson-clover-old-llvm
created #4304250
meson-gallium
created #4304248
meson-testing
created #4304260
meson-vulkan
 
  Scons
created #4304262
allowed to fail
scons-win64
 
  Meson Misc
created #4304266
aarch64
meson-arm64
created #4304268
aarch64
meson-arm64-build-test
created #4304264
aarch64
meson-armhf
created #4304270
meson-i386
created #4304276
meson-mingw32-x86_64
created #4304274
kvm
meson-ppc64el
created #4304272
kvm
meson-s390x