diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVReflection.h b/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVReflection.h
index f96f693..ad4ca40 100644
--- a/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVReflection.h
+++ b/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVReflection.h
@@ -216,10 +216,10 @@
 					type = &reflect.get_type(type->parent_type);
 
 				if (type->basetype == SPIRV_CROSS_NAMESPACE::SPIRType::Struct) {
+					uint32_t memberLoc = loc;
 					for (uint32_t idx = 0; idx < type->member_types.size(); idx++) {
 						// Each member may have a location decoration. If not, each member
-						// gets an incrementing location.
-						uint32_t memberLoc = addSat(loc, idx);
+						// gets an incrementing location based the base location for the struct.
 						uint32_t memberCmp = 0;
 						if (reflect.has_member_decoration(type->self, idx, spv::DecorationLocation)) {
 							memberLoc = reflect.get_member_decoration(type->self, idx, spv::DecorationLocation);
@@ -233,14 +233,17 @@
 						const SPIRV_CROSS_NAMESPACE::SPIRType& memberType = reflect.get_type(type->member_types[idx]);
 						if (memberType.columns > 1) {
 							for (uint32_t i = 0; i < memberType.columns; i++) {
-								outputs.push_back({memberType.basetype, memberType.vecsize, addSat(memberLoc, i), memberCmp, biType, patch, isUsed});
+								outputs.push_back({memberType.basetype, memberType.vecsize, memberLoc, memberCmp, biType, patch, isUsed});
+								memberLoc = addSat(memberLoc, 1);
 							}
 						} else if (!memberType.array.empty()) {
 							for (uint32_t i = 0; i < memberType.array[0]; i++) {
-								outputs.push_back({memberType.basetype, memberType.vecsize, addSat(memberLoc, i), memberCmp, biType, patch, isUsed});
+								outputs.push_back({memberType.basetype, memberType.vecsize, memberLoc, memberCmp, biType, patch, isUsed});
+								memberLoc = addSat(memberLoc, 1);
 							}
 						} else {
 							outputs.push_back({memberType.basetype, memberType.vecsize, memberLoc, memberCmp, biType, patch, isUsed});
+							memberLoc = addSat(memberLoc, 1);
 						}
 					}
 				} else if (type->columns > 1) {
