|
|
@@ -303,6 +303,10 @@ Id EmitLocalInvocationId(EmitContext& ctx) {
|
|
|
return ctx.OpLoad(ctx.U32[3], ctx.local_invocation_id);
|
|
|
}
|
|
|
|
|
|
+Id EmitLaneId(EmitContext& ctx) {
|
|
|
+ return ctx.OpLoad(ctx.U32[1], ctx.subgroup_local_invocation_id);
|
|
|
+}
|
|
|
+
|
|
|
Id EmitLoadLocal(EmitContext& ctx, Id word_offset) {
|
|
|
const Id pointer{ctx.OpAccessChain(ctx.private_u32, ctx.local_memory, word_offset)};
|
|
|
return ctx.OpLoad(ctx.U32[1], pointer);
|