zink: NV_linear_color_attachment

this fixes staging blits on nvidia

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16016>
This commit is contained in:
Mike Blumenkrantz 2022-04-18 16:58:47 -04:00 committed by Marge Bot
parent 373c8001d6
commit 7af76d1aae
2 changed files with 9 additions and 0 deletions

View file

@ -144,6 +144,9 @@ EXTENSIONS = [
features=True,
conditions=["$feats.vertexAttributeInstanceRateDivisor"]),
Extension("VK_EXT_calibrated_timestamps"),
Extension("VK_NV_linear_color_attachment",
alias="linear_color",
features=True),
Extension("VK_KHR_shader_clock",
alias="shader_clock",
features=True,

View file

@ -1661,8 +1661,14 @@ populate_format_props(struct zink_screen *screen)
mod_props.pDrmFormatModifierProperties = mods;
props.pNext = &mod_props;
}
VkFormatProperties3 props3 = {0};
props3.sType = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3;
props3.pNext = props.pNext;
props.pNext = &props3;
VKSCR(GetPhysicalDeviceFormatProperties2)(screen->pdev, format, &props);
screen->format_props[i] = props.formatProperties;
if (props3.linearTilingFeatures & VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV)
screen->format_props[i].linearTilingFeatures |= VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT;
if (screen->info.have_EXT_image_drm_format_modifier && mod_props.drmFormatModifierCount) {
screen->modifier_props[i].drmFormatModifierCount = mod_props.drmFormatModifierCount;
screen->modifier_props[i].pDrmFormatModifierProperties = ralloc_array(screen, VkDrmFormatModifierPropertiesEXT, mod_props.drmFormatModifierCount);