spirv: temporarily emit test kernels

SPIR-V cannot represent function pointers without extensions
that no vendor implements. For the time being, generate a test
kernel for each error, so that we can at least run SOME tests.

In the future we may be able to emulate function pointers in some
way, but that is not today.
This commit is contained in:
Robin Voetter
2023-04-09 01:27:02 +02:00
parent 719d47d823
commit efe7fae6af
2 changed files with 113 additions and 21 deletions

View File

@@ -187,8 +187,8 @@ fn orderGlobalsInto(
seen: *std.DynamicBitSetUnmanaged,
) !void {
const node = self.globals.nodes.items[@enumToInt(global_index)];
const deps = self.globals.dependencies.items[node.begin_dep .. node.end_dep];
const insts = self.globals.section.instructions.items[node.begin_inst .. node.end_inst];
const deps = self.globals.dependencies.items[node.begin_dep..node.end_dep];
const insts = self.globals.section.instructions.items[node.begin_inst..node.end_inst];
seen.set(@enumToInt(global_index));
@@ -725,7 +725,7 @@ pub fn allocGlobal(self: *Module) !Global.Index {
.begin_inst = undefined,
.end_inst = undefined,
.begin_dep = undefined,
.end_dep = undefined,
.end_dep = undefined,
});
return @intToEnum(Global.Index, @intCast(u32, self.globals.nodes.items.len - 1));
}