mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-01 07:30:09 +01:00
zink: reject resource-imports with modifiers
Zink doesn't support forwarding DRM modifiers yet, so whenever those are used, we end up ignoring them. That's not going to do the right thing in most cases, so let's reject them instead. Sinced686835171, the dri2 code tries to create a 0x0 surface without any format when trying to import. This makes this go from rendering-issues to asserting in debug builds, making things even worse. Fixes:d686835171("gallium/dri2: Support I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS import") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3654 Reviewed-by: Daniel Stone <daniels@collabora.com> Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7214>
This commit is contained in:
parent
068b4bf76c
commit
3c0ba7b180
1 changed files with 6 additions and 0 deletions
|
|
@ -36,6 +36,8 @@
|
|||
|
||||
#include "frontend/sw_winsys.h"
|
||||
|
||||
#include "drm-uapi/drm_fourcc.h"
|
||||
|
||||
static void
|
||||
zink_resource_destroy(struct pipe_screen *pscreen,
|
||||
struct pipe_resource *pres)
|
||||
|
|
@ -339,6 +341,7 @@ zink_resource_get_handle(struct pipe_screen *pscreen,
|
|||
if (result != VK_SUCCESS)
|
||||
return false;
|
||||
whandle->handle = fd;
|
||||
whandle->modifier = DRM_FORMAT_MOD_INVALID;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
@ -349,6 +352,9 @@ zink_resource_from_handle(struct pipe_screen *pscreen,
|
|||
struct winsys_handle *whandle,
|
||||
unsigned usage)
|
||||
{
|
||||
if (whandle->modifier != DRM_FORMAT_MOD_INVALID)
|
||||
return NULL;
|
||||
|
||||
return resource_create(pscreen, templ, whandle, usage);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue