diff --git a/.pick_status.json b/.pick_status.json index b515c12c78d..049030bdc1f 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -2484,7 +2484,7 @@ "description": "zink: fix external_only reporting for dmabuf formats", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index b00438583ee..bbc5f562081 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -2590,10 +2590,9 @@ zink_query_dmabuf_modifiers(struct pipe_screen *pscreen, enum pipe_format format struct zink_screen *screen = zink_screen(pscreen); *count = screen->modifier_props[format].drmFormatModifierCount; for (int i = 0; i < MIN2(max, *count); i++) { - if (external_only) - external_only[i] = 0; - modifiers[i] = screen->modifier_props[format].pDrmFormatModifierProperties[i].drmFormatModifier; + if (external_only) + external_only[i] = !(screen->modifier_props[format].pDrmFormatModifierProperties[i].drmFormatModifierTilingFeatures & VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT); } }