OSDN Git Service

nir/spirv: Use a C99-style initializer for structure fields
authorJason Ekstrand <jason.ekstrand@intel.com>
Tue, 29 Dec 2015 21:15:17 +0000 (13:15 -0800)
committerJason Ekstrand <jason.ekstrand@intel.com>
Tue, 29 Dec 2015 21:15:20 +0000 (13:15 -0800)
This ensures that all unknown fields get zero-initizlied so we don't have
undefined values floating around.

src/glsl/nir/spirv/spirv_to_nir.c

index 4a90f18..da58653 100644 (file)
@@ -587,16 +587,13 @@ vtn_handle_type(struct vtn_builder *b, SpvOp opcode,
 
       NIR_VLA(struct glsl_struct_field, fields, count);
       for (unsigned i = 0; i < num_fields; i++) {
-         /* TODO: Handle decorators */
          val->type->members[i] =
             vtn_value(b, w[i + 2], vtn_value_type_type)->type;
-         fields[i].type = val->type->members[i]->type;
-         fields[i].name = ralloc_asprintf(b, "field%d", i);
-         fields[i].location = -1;
-         fields[i].interpolation = 0;
-         fields[i].centroid = 0;
-         fields[i].sample = 0;
-         fields[i].matrix_layout = 2;
+         fields[i] = (struct glsl_struct_field) {
+            .type = val->type->members[i]->type,
+            .name = ralloc_asprintf(b, "field%d", i),
+            .location = -1,
+         };
       }
 
       struct member_decoration_ctx ctx = {