Skip to content

Commit 2826b25

Browse files
committed
emit_spv: emit ArrayStride "properly" (i hope?)
1 parent 10035b8 commit 2826b25

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

src/shady/emit/spirv/emit_spv_type.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#include "emit_spv.h"
2+
#include "type.h"
23

34
#include "portability.h"
45
#include "log.h"
@@ -210,6 +211,13 @@ SpvId emit_type(Emitter* emitter, const Type* type) {
210211
case Type_JoinPointType_TAG: error("These must be lowered beforehand")
211212
}
212213

214+
if (is_data_type(type)) {
215+
if (type->tag == PtrType_TAG && type->payload.ptr_type.address_space == AsGlobal) {
216+
TypeMemLayout elem_mem_layout = get_mem_layout(emitter->arena, type->payload.ptr_type.pointed_type);
217+
spvb_decorate(emitter->file_builder, new, SpvDecorationArrayStride, 1, (uint32_t[]) {elem_mem_layout.size_in_bytes});
218+
}
219+
}
220+
213221
insert_dict_and_get_result(struct Node*, SpvId, emitter->node_ids, type, new);
214222
return new;
215223
}

0 commit comments

Comments
 (0)