pan/bit: Add run mode to the cmdline

This emulates the functionality of shader_runner (built for kbase) using
the bifrost testing infrastructure so it runs on mainline. Ideally this
will let us test shaders from the assembler.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4396>
This commit is contained in:
Alyssa Rosenzweig 2020-03-30 21:21:49 -04:00 committed by Marge Bot
parent cb56d5d9f8
commit b26214e907

View file

@ -106,6 +106,38 @@ test_vertex(char **argv)
bit_vertex(dev, compile_shader(argv, true));
}
static void
run(const char *filename)
{
FILE *fp = fopen(filename, "rb");
assert(fp);
fseek(fp, 0, SEEK_END);
unsigned filesize = ftell(fp);
rewind(fp);
unsigned char *code = malloc(filesize);
unsigned res = fread(code, 1, filesize, fp);
if (res != filesize) {
printf("Couldn't read full file\n");
}
fclose(fp);
void *memctx = NULL; /* TODO */
struct panfrost_device *dev = bit_initialize(memctx);
panfrost_program prog = {
.compiled = {
.data = code,
.size = filesize
},
};
bit_vertex(dev, prog);
free(code);
}
int
main(int argc, char **argv)
{
@ -120,6 +152,8 @@ main(int argc, char **argv)
disassemble(argv[2]);
else if (strcmp(argv[1], "test-vertex") == 0)
test_vertex(&argv[2]);
else if (strcmp(argv[1], "run") == 0)
run(argv[2]);
else
unreachable("Unknown command. Valid: compile/disasm");