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:
committed by
Marge Bot
parent
33c1b940e0
commit
9696df4132
@@ -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 = ∁
|
||||
}
|
||||
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);
|
||||
|
||||
@@ -1380,6 +1380,7 @@ struct zink_format_props {
|
||||
VkFormatFeatureFlags2 linearTilingFeatures;
|
||||
VkFormatFeatureFlags2 optimalTilingFeatures;
|
||||
VkFormatFeatureFlags2 bufferFeatures;
|
||||
VkImageCompressionFixedRateFlagsEXT compressionRates;
|
||||
};
|
||||
|
||||
struct zink_screen {
|
||||
|
||||
Reference in New Issue
Block a user