asahi: Fix disk cache disable with AGX_MESA_DEBUG
We go to initialize the disk cache before we've compiled any shaders so
agx_compiler_debug is 0 at this point. Don't try to read it, instead go through
sa safe getter that will do the right thing.
Fixes: 5e9538c12e
("agx: isolate compiler debug flags")
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22891>
This commit is contained in:
@@ -39,6 +39,12 @@ DEBUG_GET_ONCE_FLAGS_OPTION(agx_compiler_debug, "AGX_MESA_DEBUG",
|
|||||||
|
|
||||||
int agx_compiler_debug = 0;
|
int agx_compiler_debug = 0;
|
||||||
|
|
||||||
|
uint64_t
|
||||||
|
agx_get_compiler_debug(void)
|
||||||
|
{
|
||||||
|
return debug_get_option_agx_compiler_debug();
|
||||||
|
}
|
||||||
|
|
||||||
#define DBG(fmt, ...) \
|
#define DBG(fmt, ...) \
|
||||||
do { \
|
do { \
|
||||||
if (agx_compiler_debug & AGX_DBG_MSGS) \
|
if (agx_compiler_debug & AGX_DBG_MSGS) \
|
||||||
@@ -2360,7 +2366,7 @@ agx_compile_shader_nir(nir_shader *nir, struct agx_shader_key *key,
|
|||||||
struct util_dynarray *binary,
|
struct util_dynarray *binary,
|
||||||
struct agx_shader_info *out)
|
struct agx_shader_info *out)
|
||||||
{
|
{
|
||||||
agx_compiler_debug = debug_get_option_agx_compiler_debug();
|
agx_compiler_debug = agx_get_compiler_debug();
|
||||||
|
|
||||||
memset(out, 0, sizeof *out);
|
memset(out, 0, sizeof *out);
|
||||||
|
|
||||||
|
@@ -809,6 +809,8 @@ struct agx_occupancy {
|
|||||||
|
|
||||||
struct agx_occupancy agx_occupancy_for_register_count(unsigned halfregs);
|
struct agx_occupancy agx_occupancy_for_register_count(unsigned halfregs);
|
||||||
|
|
||||||
|
extern int agx_compiler_debug;
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
} /* extern C */
|
} /* extern C */
|
||||||
#endif
|
#endif
|
||||||
|
@@ -27,7 +27,7 @@ enum agx_compiler_dbg {
|
|||||||
};
|
};
|
||||||
/* clang-format on */
|
/* clang-format on */
|
||||||
|
|
||||||
extern int agx_compiler_debug;
|
uint64_t agx_get_compiler_debug(void);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
} /* extern C */
|
} /* extern C */
|
||||||
|
@@ -134,7 +134,7 @@ void
|
|||||||
agx_disk_cache_init(struct agx_screen *screen)
|
agx_disk_cache_init(struct agx_screen *screen)
|
||||||
{
|
{
|
||||||
#ifdef ENABLE_SHADER_CACHE
|
#ifdef ENABLE_SHADER_CACHE
|
||||||
if (agx_compiler_debug || screen->dev.debug)
|
if (agx_get_compiler_debug() || screen->dev.debug)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
const char *renderer = screen->pscreen.get_name(&screen->pscreen);
|
const char *renderer = screen->pscreen.get_name(&screen->pscreen);
|
||||||
|
Reference in New Issue
Block a user