mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-01 11:10:27 +01:00
asahi: gracefully handle allocating linear images
Frontends might try to allocate linear textures or images, we should gracefully return NULL so frontends can do fallback paths. Signed-off-by: Karol Herbst <git@karolherbst.de> Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25052>
This commit is contained in:
parent
01aa487c40
commit
3bc09aaf1a
1 changed files with 9 additions and 9 deletions
|
|
@ -499,8 +499,10 @@ agx_select_best_modifier(const struct agx_resource *pres)
|
|||
return DRM_FORMAT_MOD_APPLE_TWIDDLED;
|
||||
}
|
||||
|
||||
assert(agx_linear_allowed(pres));
|
||||
return DRM_FORMAT_MOD_LINEAR;
|
||||
if (agx_linear_allowed(pres))
|
||||
return DRM_FORMAT_MOD_LINEAR;
|
||||
else
|
||||
return DRM_FORMAT_MOD_INVALID;
|
||||
}
|
||||
|
||||
static struct pipe_resource *
|
||||
|
|
@ -521,16 +523,14 @@ agx_resource_create_with_modifiers(struct pipe_screen *screen,
|
|||
if (modifiers) {
|
||||
nresource->modifier =
|
||||
agx_select_modifier_from_list(nresource, modifiers, count);
|
||||
|
||||
/* There may not be a matching modifier, bail if so */
|
||||
if (nresource->modifier == DRM_FORMAT_MOD_INVALID) {
|
||||
free(nresource);
|
||||
return NULL;
|
||||
}
|
||||
} else {
|
||||
nresource->modifier = agx_select_best_modifier(nresource);
|
||||
}
|
||||
|
||||
assert(nresource->modifier != DRM_FORMAT_MOD_INVALID);
|
||||
/* There may not be a matching modifier, bail if so */
|
||||
if (nresource->modifier == DRM_FORMAT_MOD_INVALID) {
|
||||
free(nresource);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* If there's only 1 layer and there's no compression, there's no harm in
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue