From b90e55a5d5d6e30f5a48d80bbb9aef578003b522 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Fri, 12 Oct 2018 19:03:30 -0500 Subject: [PATCH] compiler/types: Serialize/deserialize subpass input types correctly They have glsl_sampler_dim enum values of 8 and 9 which don't work when you & them with 0x7. Fortunately, we have plenty of bits. Reviewed-by: Lionel Landwerlin --- src/compiler/glsl_types.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/compiler/glsl_types.cpp b/src/compiler/glsl_types.cpp index 00be0e00a9e..9d5451dbb7c 100644 --- a/src/compiler/glsl_types.cpp +++ b/src/compiler/glsl_types.cpp @@ -2311,14 +2311,14 @@ decode_type_from_blob(struct blob_reader *blob) explicit_stride, (u >> 10) & 0x1); } case GLSL_TYPE_SAMPLER: - return glsl_type::get_sampler_instance((enum glsl_sampler_dim) ((u >> 4) & 0x07), + return glsl_type::get_sampler_instance((enum glsl_sampler_dim) ((u >> 4) & 0x0f), (u >> 3) & 0x01, (u >> 2) & 0x01, (glsl_base_type) ((u >> 0) & 0x03)); case GLSL_TYPE_SUBROUTINE: return glsl_type::get_subroutine_instance(blob_read_string(blob)); case GLSL_TYPE_IMAGE: - return glsl_type::get_image_instance((enum glsl_sampler_dim) ((u >> 3) & 0x07), + return glsl_type::get_image_instance((enum glsl_sampler_dim) ((u >> 3) & 0x0f), (u >> 2) & 0x01, (glsl_base_type) ((u >> 0) & 0x03)); case GLSL_TYPE_ATOMIC_UINT: -- 2.30.2