As a start and a sanity check.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4382>
#include "compiler/nir_types.h"
#include "util/u_dynarray.h"
#include "bifrost_compile.h"
+#include "test/bit.h"
static void
compile_shader(char **argv)
free(code);
}
+static void
+test(void)
+{
+ void *memctx = NULL; /* TODO */
+ bit_initialize(memctx);
+}
+
int
main(int argc, char **argv)
{
compile_shader(&argv[2]);
else if (strcmp(argv[1], "disasm") == 0)
disassemble(argv[2]);
+ else if (strcmp(argv[1], "test") == 0)
+ test();
else
unreachable("Unknown command. Valid: compile/disasm");
pandecode_inject_mmap(bo->gpu, bo->cpu, bo->size, NULL);
return bo;
}
+
+struct panfrost_device *
+bit_initialize(void *memctx)
+{
+ int fd = drmOpenWithType("panfrost", NULL, DRM_NODE_RENDER);
+
+ if (fd < 0)
+ unreachable("No panfrost device found. Try chmod?");
+
+ struct panfrost_device *dev = rzalloc(memctx, struct panfrost_device);
+ panfrost_open_device(memctx, fd, dev);
+
+ pandecode_initialize(true);
+ printf("%X\n", dev->gpu_id);
+
+ return dev;
+}
#include "panfrost/encoder/pan_device.h"
#include "panfrost/encoder/pan_bo.h"
+struct panfrost_device *
+bit_initialize(void *memctx);
+
#endif
libpanfrost_bifrost,
libpanfrost_decode,
libpanfrost_encoder,
+ libpanfrost_midgard, # references disassemble_midgard...
],
build_by_default : true
)