Module: Mesa Branch: main Commit: 01f0cce00385f52311928da17982050fb587599a URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=01f0cce00385f52311928da17982050fb587599a
Author: Rob Clark <[email protected]> Date: Tue Oct 3 13:34:09 2023 -0700 iris: Add PIPE_CAP_HAS_CONST_BW support Signed-off-by: Rob Clark <[email protected]> Reviewed-by: Tapani Pälli <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25464> --- src/gallium/drivers/iris/iris_resource.c | 8 ++++++-- src/gallium/drivers/iris/iris_screen.c | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/iris/iris_resource.c b/src/gallium/drivers/iris/iris_resource.c index c8d20823d4f..f14b2e5b944 100644 --- a/src/gallium/drivers/iris/iris_resource.c +++ b/src/gallium/drivers/iris/iris_resource.c @@ -131,12 +131,14 @@ modifier_is_supported(const struct intel_device_info *devinfo, return false; } + bool no_ccs = INTEL_DEBUG(DEBUG_NO_CCS) || (bind & PIPE_BIND_CONST_BW); + /* Check remaining requirements. */ switch (modifier) { case I915_FORMAT_MOD_4_TILED_MTL_MC_CCS: case I915_FORMAT_MOD_4_TILED_DG2_MC_CCS: case I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS: - if (INTEL_DEBUG(DEBUG_NO_CCS)) + if (no_ccs) return false; if (pfmt != PIPE_FORMAT_BGRA8888_UNORM && @@ -159,7 +161,7 @@ modifier_is_supported(const struct intel_device_info *devinfo, case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC: case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS: case I915_FORMAT_MOD_Y_TILED_CCS: { - if (INTEL_DEBUG(DEBUG_NO_CCS)) + if (no_ccs) return false; enum isl_format rt_format = @@ -739,6 +741,8 @@ iris_resource_configure_main(const struct iris_screen *screen, if (res->mod_info && !isl_drm_modifier_has_aux(modifier)) usage |= ISL_SURF_USAGE_DISABLE_AUX_BIT; + else if (templ->bind & PIPE_BIND_CONST_BW) + usage |= ISL_SURF_USAGE_DISABLE_AUX_BIT; if (templ->usage == PIPE_USAGE_STAGING) usage |= ISL_SURF_USAGE_STAGING_BIT; diff --git a/src/gallium/drivers/iris/iris_screen.c b/src/gallium/drivers/iris/iris_screen.c index 42298daddc8..5c5364d9eca 100644 --- a/src/gallium/drivers/iris/iris_screen.c +++ b/src/gallium/drivers/iris/iris_screen.c @@ -301,6 +301,7 @@ iris_get_param(struct pipe_screen *pscreen, enum pipe_cap param) case PIPE_CAP_LEGACY_MATH_RULES: case PIPE_CAP_ALPHA_TO_COVERAGE_DITHER_CONTROL: case PIPE_CAP_MAP_UNSYNCHRONIZED_THREAD_SAFE: + case PIPE_CAP_HAS_CONST_BW: return true; case PIPE_CAP_UMA: return iris_bufmgr_vram_size(screen->bufmgr) == 0;
