nir: Fix serialize/deserialize of void samplers/images
authorJesse Natalie <jenatali@microsoft.com>
Fri, 1 May 2020 22:04:06 +0000 (15:04 -0700)
committerMarge Bot <eric+marge@anholt.net>
Mon, 17 Aug 2020 13:10:19 +0000 (13:10 +0000)
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6222>

src/compiler/glsl_types.cpp
src/compiler/nir/nir_serialize.c

index 051d8e8c38282ee8e95bae0f154672791a9088cf..e093034aa9f1c06edf67f3ea04509920df60e590 100644 (file)
@@ -917,6 +917,8 @@ glsl_type::get_sampler_instance(enum glsl_sampler_dim dim,
       case GLSL_SAMPLER_DIM_SUBPASS_MS:
          return error_type;
       }
+   case GLSL_TYPE_VOID:
+      return shadow ? samplerShadow_type : sampler_type;
    default:
       return error_type;
    }
@@ -2656,8 +2658,8 @@ union packed_type {
       unsigned dimensionality:4;
       unsigned shadow:1;
       unsigned array:1;
-      unsigned sampled_type:2;
-      unsigned _pad:19;
+      unsigned sampled_type:5;
+      unsigned _pad:16;
    } sampler;
    struct {
       unsigned base_type:5;
index b2b3afb151e7260e7b52d0a2827f674fd0e80f97..626b7d44a021ddaff019c1aa1a30e0528b1c1d75 100644 (file)
@@ -1442,7 +1442,7 @@ read_ssa_undef(read_ctx *ctx, union packed_instr header)
 union packed_tex_data {
    uint32_t u32;
    struct {
-      enum glsl_sampler_dim sampler_dim:4;
+      unsigned sampler_dim:4;
       unsigned dest_type:8;
       unsigned coord_components:3;
       unsigned is_array:1;