From 77a5778836d75fe2ab8fd67c2e7453f950e33d1f Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Wed, 29 Mar 2023 14:22:30 -0700 Subject: [PATCH] freedreno: Move driconf settings into sub-struct Organize all one of them in a single place before adding more. Signed-off-by: Rob Clark Part-of: --- src/gallium/drivers/freedreno/a6xx/fd6_emit.cc | 2 +- src/gallium/drivers/freedreno/freedreno_screen.c | 2 +- src/gallium/drivers/freedreno/freedreno_screen.h | 16 +++++++++------- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_emit.cc b/src/gallium/drivers/freedreno/a6xx/fd6_emit.cc index 1ac6717..c7d7ab9 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_emit.cc +++ b/src/gallium/drivers/freedreno/a6xx/fd6_emit.cc @@ -194,7 +194,7 @@ compute_lrz_state(struct fd6_emit *emit) assert_dt * enable LRZ write. But this would cause early-z/lrz to discard * fragments from draw A which should be visible due to draw B. */ - if (reads_dest && zsa->writes_z && ctx->screen->conservative_lrz) { + if (reads_dest && zsa->writes_z && ctx->screen->driconf.conservative_lrz) { if (!zsa->perf_warn_blend && rsc->lrz_valid) { perf_debug_ctx(ctx, "Invalidating LRZ due to blend+depthwrite"); zsa->perf_warn_blend = true; diff --git a/src/gallium/drivers/freedreno/freedreno_screen.c b/src/gallium/drivers/freedreno/freedreno_screen.c index 112ff43..0df23c3 100644 --- a/src/gallium/drivers/freedreno/freedreno_screen.c +++ b/src/gallium/drivers/freedreno/freedreno_screen.c @@ -1108,7 +1108,7 @@ fd_screen_create(int fd, driParseConfigFiles(config->options, config->options_info, 0, "msm", NULL, fd_dev_name(screen->dev_id), NULL, 0, NULL, 0); - screen->conservative_lrz = + screen->driconf.conservative_lrz = !driQueryOptionb(config->options, "disable_conservative_lrz"); struct sysinfo si; diff --git a/src/gallium/drivers/freedreno/freedreno_screen.h b/src/gallium/drivers/freedreno/freedreno_screen.h index 022f682..23affe6 100644 --- a/src/gallium/drivers/freedreno/freedreno_screen.h +++ b/src/gallium/drivers/freedreno/freedreno_screen.h @@ -84,13 +84,15 @@ struct fd_screen { bool has_robustness; bool has_syncobj; - /* Conservative LRZ (default true) invalidates LRZ on draws with - * blend and depth-write enabled, because this can lead to incorrect - * rendering. Driconf can be used to disable conservative LRZ for - * games which do not have the problematic sequence of draws *and* - * suffer a performance loss with conservative LRZ. - */ - bool conservative_lrz; + struct { + /* Conservative LRZ (default true) invalidates LRZ on draws with + * blend and depth-write enabled, because this can lead to incorrect + * rendering. Driconf can be used to disable conservative LRZ for + * games which do not have the problematic sequence of draws *and* + * suffer a performance loss with conservative LRZ. + */ + bool conservative_lrz; + } driconf; const struct fd_dev_info *info; uint32_t ccu_offset_gmem; -- 2.7.4