Just tested it with the ARB_gl_spirv tests where I found this:

Tested-by: Alejandro PiƱeiro <apinhe...@igalia.com>


On 15/1/19 12:08, Sergii Romantsov wrote:
During conversion type-length was lost due to math.

CC: Jason Ekstrand <jason.ekstr...@intel.com>
Fixes: 44227453ec03 (nir: Switch to using 1-bit Booleans for almost everything)
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109353
Signed-off-by: Sergii Romantsov <sergii.romant...@globallogic.com>
---
  src/compiler/spirv/spirv_to_nir.c | 9 ++++++---
  1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/compiler/spirv/spirv_to_nir.c 
b/src/compiler/spirv/spirv_to_nir.c
index e3dc619..faad771 100644
--- a/src/compiler/spirv/spirv_to_nir.c
+++ b/src/compiler/spirv/spirv_to_nir.c
@@ -1042,14 +1042,16 @@ vtn_type_layout_std430(struct vtn_builder *b, struct 
vtn_type *type,
  {
     switch (type->base_type) {
     case vtn_base_type_scalar: {
-      uint32_t comp_size = glsl_get_bit_size(type->type) / 8;
+      uint32_t comp_size = glsl_type_is_boolean(type->type)
+         ? 1 : glsl_get_bit_size(type->type) / 8;
        *size_out = comp_size;
        *align_out = comp_size;
        return type;
     }
case vtn_base_type_vector: {
-      uint32_t comp_size = glsl_get_bit_size(type->type) / 8;
+      uint32_t comp_size = glsl_type_is_boolean(type->type)
+         ? 1 : glsl_get_bit_size(type->type) / 8;
        unsigned align_comps = type->length == 3 ? 4 : type->length;
        *size_out = comp_size * type->length,
        *align_out = comp_size * align_comps;
@@ -1168,7 +1170,8 @@ vtn_handle_type(struct vtn_builder *b, SpvOp opcode,
        val->type->base_type = vtn_base_type_vector;
        val->type->type = glsl_vector_type(glsl_get_base_type(base->type), 
elems);
        val->type->length = elems;
-      val->type->stride = glsl_get_bit_size(base->type) / 8;
+      val->type->stride = glsl_type_is_boolean(val->type->type)
+         ? 1 : glsl_get_bit_size(base->type) / 8;
        val->type->array_element = base;
        break;
     }
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to