From bf1929e4792ab5d6416b8a707bf2a8c2e694bc62 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Tue, 24 Mar 2020 13:48:06 -0400 Subject: [PATCH] pan/bit: Open up the device As a start and a sanity check. Signed-off-by: Alyssa Rosenzweig Part-of: --- src/panfrost/bifrost/cmdline.c | 10 ++++++++++ src/panfrost/bifrost/test/bi_submit.c | 17 +++++++++++++++++ src/panfrost/bifrost/test/bit.h | 3 +++ src/panfrost/meson.build | 1 + 4 files changed, 31 insertions(+) diff --git a/src/panfrost/bifrost/cmdline.c b/src/panfrost/bifrost/cmdline.c index 30120d3..f2a0848 100644 --- a/src/panfrost/bifrost/cmdline.c +++ b/src/panfrost/bifrost/cmdline.c @@ -30,6 +30,7 @@ #include "compiler/nir_types.h" #include "util/u_dynarray.h" #include "bifrost_compile.h" +#include "test/bit.h" static void compile_shader(char **argv) @@ -91,6 +92,13 @@ disassemble(const char *filename) free(code); } +static void +test(void) +{ + void *memctx = NULL; /* TODO */ + bit_initialize(memctx); +} + int main(int argc, char **argv) { @@ -103,6 +111,8 @@ 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"); diff --git a/src/panfrost/bifrost/test/bi_submit.c b/src/panfrost/bifrost/test/bi_submit.c index fcc4459..b098f2a 100644 --- a/src/panfrost/bifrost/test/bi_submit.c +++ b/src/panfrost/bifrost/test/bi_submit.c @@ -37,3 +37,20 @@ bit_bo_create(struct panfrost_device *dev, size_t size) 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; +} diff --git a/src/panfrost/bifrost/test/bit.h b/src/panfrost/bifrost/test/bit.h index d5751f8..6838da7 100644 --- a/src/panfrost/bifrost/test/bit.h +++ b/src/panfrost/bifrost/test/bit.h @@ -31,6 +31,9 @@ #include "panfrost/encoder/pan_device.h" #include "panfrost/encoder/pan_bo.h" +struct panfrost_device * +bit_initialize(void *memctx); + #endif diff --git a/src/panfrost/meson.build b/src/panfrost/meson.build index e94a334..44b483e 100644 --- a/src/panfrost/meson.build +++ b/src/panfrost/meson.build @@ -62,6 +62,7 @@ bifrost_compiler = executable( libpanfrost_bifrost, libpanfrost_decode, libpanfrost_encoder, + libpanfrost_midgard, # references disassemble_midgard... ], build_by_default : true ) -- 2.7.4