mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 15:10:10 +01:00
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@intel.com>
This commit is contained in:
parent
1423b78633
commit
75a3947af4
1 changed files with 6 additions and 4 deletions
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue