crocus: check for depth+stencil before creating resource

This avoid leaking memory if we return early.

Fixes: 5f7df5df0d ("crocus: disable depth and d+s formats with memory objects")
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30305>
(cherry picked from commit 4ef0cbaf05)
This commit is contained in:
Dylan Baker 2024-07-22 13:46:56 -07:00 committed by Eric Engestrom
parent 3931961070
commit d54be8ef21
2 changed files with 5 additions and 5 deletions

View file

@ -1854,7 +1854,7 @@
"description": "crocus: check for depth+stencil before creating resource",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "5f7df5df0d8410925edcfb926509f6b17ef6b619",
"notes": null

View file

@ -841,6 +841,10 @@ crocus_resource_from_memobj(struct pipe_screen *pscreen,
struct pipe_memory_object *pmemobj,
uint64_t offset)
{
/* Disable Depth, and combined Depth+Stencil for now. */
if (util_format_has_depth(util_format_description(templ->format)))
return NULL;
struct crocus_screen *screen = (struct crocus_screen *)pscreen;
struct crocus_memory_object *memobj = (struct crocus_memory_object *)pmemobj;
struct crocus_resource *res = crocus_alloc_resource(pscreen, templ);
@ -848,10 +852,6 @@ crocus_resource_from_memobj(struct pipe_screen *pscreen,
if (!res)
return NULL;
/* Disable Depth, and combined Depth+Stencil for now. */
if (util_format_has_depth(util_format_description(templ->format)))
return NULL;
if (templ->flags & PIPE_RESOURCE_FLAG_TEXTURING_MORE_LIKELY) {
UNUSED const bool isl_surf_created_successfully =
crocus_resource_configure_main(screen, res, templ, DRM_FORMAT_MOD_INVALID, 0);