zink: store compression rate info for formats

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31024>
This commit is contained in:
Mike Blumenkrantz
2024-09-04 12:22:25 -04:00
committed by Marge Bot
parent 33c1b940e0
commit 9696df4132
2 changed files with 20 additions and 0 deletions
+19
View File
@@ -2287,6 +2287,14 @@ retry:
mod_props.pDrmFormatModifierProperties = mods;
props.pNext = &mod_props;
}
VkImageCompressionPropertiesEXT comp;
if (screen->info.have_EXT_image_compression_control) {
comp.sType = VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT;
comp.pNext = props.pNext;
comp.imageCompressionFlags = 0;
comp.imageCompressionFixedRateFlags = 0;
props.pNext = &comp;
}
VkFormatProperties3 props3 = {0};
if (screen->info.have_KHR_format_feature_flags2 || screen->info.have_vulkan13) {
props3.sType = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3;
@@ -2310,6 +2318,17 @@ retry:
screen->format_props[i].bufferFeatures = props.formatProperties.bufferFeatures;
}
if (screen->info.have_EXT_image_compression_control) {
switch (comp.imageCompressionFlags) {
case VK_IMAGE_COMPRESSION_DISABLED_EXT:
screen->format_props[i].compressionRates = 0;
break;
default:
screen->format_props[i].compressionRates = comp.imageCompressionFixedRateFlags;
break;
}
}
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);
+1
View File
@@ -1380,6 +1380,7 @@ struct zink_format_props {
VkFormatFeatureFlags2 linearTilingFeatures;
VkFormatFeatureFlags2 optimalTilingFeatures;
VkFormatFeatureFlags2 bufferFeatures;
VkImageCompressionFixedRateFlagsEXT compressionRates;
};
struct zink_screen {