Mesa (master): iris/resource: Fall back to no aux if creation fails

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue May 14 16:33:59 UTC 2019


Module: Mesa
Branch: master
Commit: 75a3947af468ce39b7c9e3ba92a705b21546ea02
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=75a3947af468ce39b7c9e3ba92a705b21546ea02

Author: Nanley Chery <nanley.g.chery at intel.com>
Date:   Wed May  1 14:42:58 2019 -0700

iris/resource: Fall back to no aux if creation fails

No surface requires an auxiliary surface to operate correctly. Fall back
to an uncompressed surface if mesa fails to create and allocate an
auxiliary surface. This enables adding more restrictions to ISL without
having to update iris.

Reviewed-by: Rafael Antognolli <rafael.antognolli at intel.com>

---

 src/gallium/drivers/iris/iris_resource.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/gallium/drivers/iris/iris_resource.c b/src/gallium/drivers/iris/iris_resource.c
index 971e7adda7e..ba7d9d62beb 100644
--- a/src/gallium/drivers/iris/iris_resource.c
+++ b/src/gallium/drivers/iris/iris_resource.c
@@ -351,6 +351,7 @@ iris_resource_alloc_aux(struct iris_screen *screen, struct iris_resource *res)
    switch (res->aux.usage) {
    case ISL_AUX_USAGE_NONE:
       res->aux.surf.size_B = 0;
+      ok = true;
       break;
    case ISL_AUX_USAGE_HIZ:
       initial_state = ISL_AUX_STATE_AUX_INVALID;
@@ -392,13 +393,14 @@ iris_resource_alloc_aux(struct iris_screen *screen, struct iris_resource *res)
       break;
    }
 
+   /* We should have a valid aux_surf. */
+   if (!ok)
+      return false;
+
    /* No work is needed for a zero-sized auxiliary buffer. */
    if (res->aux.surf.size_B == 0)
       return true;
 
-   /* Assert that ISL gave us a valid aux surf */
-   assert(ok);
-
    /* Create the aux_state for the auxiliary buffer. */
    res->aux.state = create_aux_state_map(res, initial_state);
    if (!res->aux.state)
@@ -684,7 +686,7 @@ iris_resource_create_with_modifiers(struct pipe_screen *pscreen,
       goto fail;
 
    if (!iris_resource_alloc_aux(screen, res))
-      goto fail;
+      iris_resource_disable_aux(res);
 
    return &res->base;
 




More information about the mesa-commit mailing list