diff --git a/src/gallium/drivers/lima/lima_screen.c b/src/gallium/drivers/lima/lima_screen.c index 25eb28e2ffb..a5285d36eaa 100644 --- a/src/gallium/drivers/lima/lima_screen.c +++ b/src/gallium/drivers/lima/lima_screen.c @@ -501,6 +501,11 @@ static const uint64_t lima_available_modifiers[] = { DRM_FORMAT_MOD_LINEAR, }; +static bool lima_is_modifier_external_only(enum pipe_format format) +{ + return util_format_is_yuv(format); +} + static void lima_screen_query_dmabuf_modifiers(struct pipe_screen *pscreen, enum pipe_format format, int max, @@ -519,7 +524,7 @@ lima_screen_query_dmabuf_modifiers(struct pipe_screen *pscreen, for (int i = 0; i < *count; i++) { modifiers[i] = lima_available_modifiers[i]; if (external_only) - external_only[i] = false; + external_only[i] = lima_is_modifier_external_only(format); } } @@ -532,7 +537,7 @@ lima_screen_is_dmabuf_modifier_supported(struct pipe_screen *pscreen, for (int i = 0; i < ARRAY_SIZE(lima_available_modifiers); i++) { if (lima_available_modifiers[i] == modifier) { if (external_only) - *external_only = false; + *external_only = lima_is_modifier_external_only(format); return true; }