spirv/nir: add offset at vtn_variable
authorAlejandro Piñeiro <apinheiro@igalia.com>
Sun, 5 Nov 2017 11:00:19 +0000 (12:00 +0100)
committerAlejandro Piñeiro <apinheiro@igalia.com>
Tue, 3 Jul 2018 10:37:32 +0000 (12:37 +0200)
Also initialize it on var_decoration_cb

This is equivalent to nir_variable.offset, used to store the location
an atomic counter is stored at.

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
src/compiler/spirv/vtn_private.h
src/compiler/spirv/vtn_variables.c

index 21ddacd8d2e74f5df9949f081f62638fb270dbbd..b5199bda6334ab86f74a890d687cbf4eaa7f7a68 100644 (file)
@@ -465,6 +465,7 @@ struct vtn_variable {
    unsigned descriptor_set;
    unsigned binding;
    bool explicit_binding;
+   unsigned offset;
    unsigned input_attachment_index;
    bool patch;
 
index 6a2144ceabb4d005e03fb48603d615fdb4e78ad3..c56d74d683bd93487ba9837440f084abb98926b8 100644 (file)
@@ -1346,6 +1346,9 @@ var_decoration_cb(struct vtn_builder *b, struct vtn_value *val, int member,
    case SpvDecorationPatch:
       vtn_var->patch = true;
       break;
+   case SpvDecorationOffset:
+      vtn_var->offset = dec->literals[0];
+      break;
    default:
       break;
    }