From fd1436440bd84d0b48fd7282b8f012ad382483ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tapani=20P=C3=A4lli?= Date: Thu, 12 Mar 2020 08:24:09 +0200 Subject: [PATCH] iris: allow compression conditionally for images on gen12 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit With this change, amount of resolves happening with deqp-gles31 (--deqp-case=*load_store*) drops ~50%. v2: use iris_image_view_get_format to get the format, get devinfo from context instead of passing it (Nanley) Signed-off-by: Tapani Pälli Reviewed-by: Lionel Landwerlin Reviewed-by: Nanley Chery Tested-by: Marge Bot Part-of: --- src/gallium/drivers/iris/iris_resolve.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/gallium/drivers/iris/iris_resolve.c b/src/gallium/drivers/iris/iris_resolve.c index cfcbcbfc31d..cbe2369c849 100644 --- a/src/gallium/drivers/iris/iris_resolve.c +++ b/src/gallium/drivers/iris/iris_resolve.c @@ -993,6 +993,24 @@ iris_image_view_aux_usage(struct iris_context *ice, const struct pipe_image_view *pview, const struct shader_info *info) { + if (!info) + return ISL_AUX_USAGE_NONE; + + struct iris_screen *screen = (void *) ice->ctx.screen; + const struct gen_device_info *devinfo = &screen->devinfo; + struct iris_resource *res = (void *) pview->resource; + + enum isl_format view_format = iris_image_view_get_format(ice, pview); + enum isl_aux_usage aux_usage = + iris_resource_texture_aux_usage(ice, res, view_format); + + bool uses_atomic_load_store = + ice->shaders.uncompiled[info->stage]->uses_atomic_load_store; + + if ((devinfo->gen == 12 && aux_usage == ISL_AUX_USAGE_CCS_E) && + !uses_atomic_load_store) + return ISL_AUX_USAGE_CCS_E; + return ISL_AUX_USAGE_NONE; }