From bc1f715076192d49bcd9dd8e7abfe6c2ec2c2a57 Mon Sep 17 00:00:00 2001 From: Nanley Chery Date: Tue, 17 Sep 2019 16:16:04 -0700 Subject: [PATCH] iris: Support I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC With a resolution of 1600x1200, I measured FPS increases in: * glxgears 18.04% +/- 0.65% (n=691) * Nexuiz 3.58% +/- 0.09% (n=553) compared to the master branch at commit 3f614c6f7cb97ffc4db2d6c9e222e744871e33d3. Reviewed-by: Jordan Justen Part-of: --- src/gallium/drivers/iris/iris_resource.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/gallium/drivers/iris/iris_resource.c b/src/gallium/drivers/iris/iris_resource.c index d0f0b1fd461..d309f90a78b 100644 --- a/src/gallium/drivers/iris/iris_resource.c +++ b/src/gallium/drivers/iris/iris_resource.c @@ -60,6 +60,7 @@ enum modifier_priority { MODIFIER_PRIORITY_Y, MODIFIER_PRIORITY_Y_CCS, MODIFIER_PRIORITY_Y_GFX12_RC_CCS, + MODIFIER_PRIORITY_Y_GFX12_RC_CCS_CC, }; static const uint64_t priority_to_modifier[] = { @@ -69,6 +70,7 @@ static const uint64_t priority_to_modifier[] = { [MODIFIER_PRIORITY_Y] = I915_FORMAT_MOD_Y_TILED, [MODIFIER_PRIORITY_Y_CCS] = I915_FORMAT_MOD_Y_TILED_CCS, [MODIFIER_PRIORITY_Y_GFX12_RC_CCS] = I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS, + [MODIFIER_PRIORITY_Y_GFX12_RC_CCS_CC] = I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC, }; static bool @@ -87,6 +89,7 @@ modifier_is_supported(const struct gen_device_info *devinfo, break; case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS: case I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS: + case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC: if (devinfo->ver != 12) return false; break; @@ -111,6 +114,7 @@ modifier_is_supported(const struct gen_device_info *devinfo, return false; } break; + 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_RBC) @@ -144,6 +148,9 @@ select_best_modifier(struct gen_device_info *devinfo, enum pipe_format pfmt, continue; switch (modifiers[i]) { + case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC: + prio = MAX2(prio, MODIFIER_PRIORITY_Y_GFX12_RC_CCS_CC); + break; case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS: prio = MAX2(prio, MODIFIER_PRIORITY_Y_GFX12_RC_CCS); break; @@ -221,6 +228,7 @@ iris_query_dmabuf_modifiers(struct pipe_screen *pscreen, I915_FORMAT_MOD_Y_TILED_CCS, I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS, I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS, + I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC, }; int supported_mods = 0;