diff --git a/src/asahi/lib/agx_device.c b/src/asahi/lib/agx_device.c index f423778ec59..be94cc6d14a 100644 --- a/src/asahi/lib/agx_device.c +++ b/src/asahi/lib/agx_device.c @@ -30,6 +30,33 @@ #define ASAHI_BIND_READ 0 #define ASAHI_BIND_WRITE 0 +/* clang-format off */ +static const struct debug_named_value agx_debug_options[] = { + {"trace", AGX_DBG_TRACE, "Trace the command stream"}, + {"no16", AGX_DBG_NO16, "Disable 16-bit support"}, + {"perf", AGX_DBG_PERF, "Print performance warnings"}, +#ifndef NDEBUG + {"dirty", AGX_DBG_DIRTY, "Disable dirty tracking"}, +#endif + {"compblit", AGX_DBG_COMPBLIT, "Enable compute blitter"}, + {"precompile",AGX_DBG_PRECOMPILE,"Precompile shaders for shader-db"}, + {"nocompress",AGX_DBG_NOCOMPRESS,"Disable lossless compression"}, + {"nocluster", AGX_DBG_NOCLUSTER,"Disable vertex clustering"}, + {"sync", AGX_DBG_SYNC, "Synchronously wait for all submissions"}, + {"stats", AGX_DBG_STATS, "Show command execution statistics"}, + {"resource", AGX_DBG_RESOURCE, "Log resource operations"}, + {"batch", AGX_DBG_BATCH, "Log batches"}, + {"nowc", AGX_DBG_NOWC, "Disable write-combining"}, + {"synctvb", AGX_DBG_SYNCTVB, "Synchronous TVB growth"}, + {"smalltile", AGX_DBG_SMALLTILE,"Force 16x16 tiles"}, + {"feedback", AGX_DBG_FEEDBACK, "Debug feedback loops"}, + {"nomsaa", AGX_DBG_NOMSAA, "Force disable MSAA"}, + {"noshadow", AGX_DBG_NOSHADOW, "Force disable resource shadowing"}, + {"scratch", AGX_DBG_SCRATCH, "Debug scratch memory usage"}, + DEBUG_NAMED_VALUE_END +}; +/* clang-format on */ + void agx_bo_free(struct agx_device *dev, struct agx_bo *bo) { @@ -309,6 +336,9 @@ agx_get_params(struct agx_device *dev, void *buf, size_t size) bool agx_open_device(void *memctx, struct agx_device *dev) { + dev->debug = + debug_get_flags_option("ASAHI_MESA_DEBUG", agx_debug_options, 0); + ssize_t params_size = -1; /* TODO: Linux UAPI */ diff --git a/src/gallium/drivers/asahi/agx_pipe.c b/src/gallium/drivers/asahi/agx_pipe.c index b0f63daed74..cac5adf9b6f 100644 --- a/src/gallium/drivers/asahi/agx_pipe.c +++ b/src/gallium/drivers/asahi/agx_pipe.c @@ -57,33 +57,6 @@ #define DRM_FORMAT_MOD_APPLE_TWIDDLED_COMPRESSED (3) #endif -/* clang-format off */ -static const struct debug_named_value agx_debug_options[] = { - {"trace", AGX_DBG_TRACE, "Trace the command stream"}, - {"no16", AGX_DBG_NO16, "Disable 16-bit support"}, - {"perf", AGX_DBG_PERF, "Print performance warnings"}, -#ifndef NDEBUG - {"dirty", AGX_DBG_DIRTY, "Disable dirty tracking"}, -#endif - {"compblit", AGX_DBG_COMPBLIT, "Enable compute blitter"}, - {"precompile",AGX_DBG_PRECOMPILE,"Precompile shaders for shader-db"}, - {"nocompress",AGX_DBG_NOCOMPRESS,"Disable lossless compression"}, - {"nocluster", AGX_DBG_NOCLUSTER,"Disable vertex clustering"}, - {"sync", AGX_DBG_SYNC, "Synchronously wait for all submissions"}, - {"stats", AGX_DBG_STATS, "Show command execution statistics"}, - {"resource", AGX_DBG_RESOURCE, "Log resource operations"}, - {"batch", AGX_DBG_BATCH, "Log batches"}, - {"nowc", AGX_DBG_NOWC, "Disable write-combining"}, - {"synctvb", AGX_DBG_SYNCTVB, "Synchronous TVB growth"}, - {"smalltile", AGX_DBG_SMALLTILE,"Force 16x16 tiles"}, - {"feedback", AGX_DBG_FEEDBACK, "Debug feedback loops"}, - {"nomsaa", AGX_DBG_NOMSAA, "Force disable MSAA"}, - {"noshadow", AGX_DBG_NOSHADOW, "Force disable resource shadowing"}, - {"scratch", AGX_DBG_SCRATCH, "Debug scratch memory usage"}, - DEBUG_NAMED_VALUE_END -}; -/* clang-format on */ - uint64_t agx_best_modifiers[] = { DRM_FORMAT_MOD_APPLE_TWIDDLED_COMPRESSED, DRM_FORMAT_MOD_APPLE_TWIDDLED, @@ -2215,10 +2188,6 @@ agx_screen_create(int fd, struct renderonly *ro, screen = &agx_screen->pscreen; - /* Set debug before opening */ - agx_screen->dev.debug = - debug_get_flags_option("ASAHI_MESA_DEBUG", agx_debug_options, 0); - /* parse driconf configuration now for device specific overrides */ driParseConfigFiles(config->options, config->options_info, 0, "asahi", NULL, NULL, NULL, 0, NULL, 0);