VK_EXT_image_compression_control

This commit is contained in:
Cam Mannett authored and Baldur Karlsson committed 2025-03-29 08:36:55 +00:00
1 parent eb35bbee68
commit 8d340d5fe4
10 files changed
+153 -11

No files matched your search

+1 -1
View File
@@ -64,6 +64,7 @@ Maintainers can update this file by updating vk.xml in this folder and running `
* `VK_EXT_headless_surface`
* `VK_EXT_host_query_reset`
* `VK_EXT_image_2d_view_of_3d`
* `VK_EXT_image_compression_control`
* `VK_EXT_image_robustness`
* `VK_EXT_image_view_min_lod`
* `VK_EXT_index_type_uint8`
@@ -285,7 +286,6 @@ The portability subset is only relevant on mac, which is not a supported platfor
* `VK_EXT_external_memory_metal`
* `VK_EXT_host_image_copy`
* `VK_EXT_image_compression_control_swapchain`
* `VK_EXT_image_compression_control`
* `VK_EXT_image_drm_format_modifier`
* `VK_EXT_image_sliced_view_of_3d`
* `VK_EXT_layer_settings`
+8
View File
@@ -1381,6 +1381,8 @@ DECLARE_REFLECTION_STRUCT(VkGraphicsPipelineCreateInfo);
DECLARE_REFLECTION_STRUCT(VkGraphicsPipelineLibraryCreateInfoEXT);
DECLARE_REFLECTION_STRUCT(VkHdrMetadataEXT);
DECLARE_REFLECTION_STRUCT(VkImageBlit2);
DECLARE_REFLECTION_STRUCT(VkImageCompressionControlEXT);
DECLARE_REFLECTION_STRUCT(VkImageCompressionPropertiesEXT);
DECLARE_REFLECTION_STRUCT(VkImageCopy2);
DECLARE_REFLECTION_STRUCT(VkImageCreateInfo);
DECLARE_REFLECTION_STRUCT(VkImageFormatListCreateInfo);
@@ -1481,6 +1483,7 @@ DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceGroupProperties);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceHostQueryResetFeatures);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceIDProperties);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceImage2DViewOf3DFeaturesEXT);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceImageCompressionControlFeaturesEXT);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceImageFormatInfo2);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceImagelessFramebufferFeatures);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceImageRobustnessFeatures);
@@ -1843,6 +1846,8 @@ DECLARE_DESERIALISE_TYPE(VkFramebufferCreateInfo);
DECLARE_DESERIALISE_TYPE(VkGraphicsPipelineCreateInfo);
DECLARE_DESERIALISE_TYPE(VkGraphicsPipelineLibraryCreateInfoEXT);
DECLARE_DESERIALISE_TYPE(VkImageBlit2);
DECLARE_DESERIALISE_TYPE(VkImageCompressionControlEXT);
DECLARE_DESERIALISE_TYPE(VkImageCompressionPropertiesEXT);
DECLARE_DESERIALISE_TYPE(VkImageCopy2);
DECLARE_DESERIALISE_TYPE(VkImageCreateInfo);
DECLARE_DESERIALISE_TYPE(VkImageFormatListCreateInfo);
@@ -1940,6 +1945,7 @@ DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceGroupProperties);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceHostQueryResetFeatures);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceIDProperties);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceImage2DViewOf3DFeaturesEXT);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceImageCompressionControlFeaturesEXT);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceImageFormatInfo2);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceImagelessFramebufferFeatures);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceImageRobustnessFeatures);
@@ -2434,6 +2440,8 @@ DECLARE_REFLECTION_ENUM(VkGeometryTypeKHR);
DECLARE_REFLECTION_ENUM(VkGraphicsPipelineLibraryFlagBitsEXT);
DECLARE_REFLECTION_ENUM(VkFrontFace);
DECLARE_REFLECTION_ENUM(VkImageAspectFlagBits);
DECLARE_REFLECTION_ENUM(VkImageCompressionFixedRateFlagBitsEXT);
DECLARE_REFLECTION_ENUM(VkImageCompressionFlagBitsEXT);
DECLARE_REFLECTION_ENUM(VkImageCreateFlagBits);
DECLARE_REFLECTION_ENUM(VkImageLayout);
DECLARE_REFLECTION_ENUM(VkImageTiling);
+4
View File
@@ -1152,6 +1152,10 @@ static const VkExtensionProperties supportedExtensions[] = {
VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME,
VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION,
},
{
VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME,
VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION,
},
{
VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME,
VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION,
+5
View File
@@ -3045,4 +3045,9 @@ public:
void vkGetRenderingAreaGranularityKHR(VkDevice device,
const VkRenderingAreaInfo *pRenderingAreaInfo,
VkExtent2D *pGranularity);
// VK_EXT_image_compression_control
void vkGetImageSubresourceLayout2EXT(VkDevice device, VkImage image,
const VkImageSubresource2 *pSubresource,
VkSubresourceLayout2 *pLayout);
};
+7 -2
View File
@@ -546,7 +546,8 @@
DeclExt(EXT_shader_subgroup_vote); \
DeclExt(KHR_shader_subgroup_uniform_control_flow); \
DeclExt(KHR_ray_tracing_maintenance1); \
DeclExt(KHR_maintenance5);
DeclExt(KHR_maintenance5); \
DeclExt(EXT_image_compression_control);
// for simplicity and since the check itself is platform agnostic,
// these aren't protected in platform defines
@@ -682,7 +683,8 @@
CheckExt(EXT_shader_subgroup_vote, VK11); \
CheckExt(KHR_shader_subgroup_uniform_control_flow, VKXX); \
CheckExt(KHR_ray_tracing_maintenance1, VKXX); \
CheckExt(KHR_maintenance5, VKXX);
CheckExt(KHR_maintenance5, VKXX); \
CheckExt(EXT_image_compression_control, VKXX);
#define HookInitVulkanInstanceExts_PhysDev() \
HookInitExtension(KHR_surface, GetPhysicalDeviceSurfaceSupportKHR); \
@@ -1053,6 +1055,7 @@
HookInitExtension(KHR_maintenance5, GetDeviceImageSubresourceLayoutKHR); \
HookInitExtension(KHR_maintenance5, GetImageSubresourceLayout2KHR); \
HookInitExtension(KHR_maintenance5, GetRenderingAreaGranularityKHR); \
HookInitExtension(EXT_image_compression_control, GetImageSubresourceLayout2EXT); \
HookInitExtension_Device_Win32(); \
HookInitExtension_Device_Linux(); \
HookInitExtension_Device_Android(); \
@@ -1968,6 +1971,8 @@
const VkImageSubresource2 *, pSubresource, VkSubresourceLayout2 *, pLayout); \
HookDefine3(void, vkGetRenderingAreaGranularityKHR, VkDevice, device, \
const VkRenderingAreaInfo *, pRenderingAreaInfo, VkExtent2D *, pGranularity); \
HookDefine4(void, vkGetImageSubresourceLayout2EXT, VkDevice, device, VkImage, image, \
const VkImageSubresource2 *, pSubresource, VkSubresourceLayout2 *, pLayout); \
HookDefine_Win32(); \
HookDefine_Linux(); \
HookDefine_Android(); \
+4 -3
View File
@@ -187,6 +187,8 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
VkGraphicsPipelineLibraryCreateInfoEXT); \
COPY_STRUCT(VK_STRUCTURE_TYPE_HDR_METADATA_EXT, VkHdrMetadataEXT) \
COPY_STRUCT(VK_STRUCTURE_TYPE_IMAGE_BLIT_2, VkImageBlit2); \
COPY_STRUCT(VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT, VkImageCompressionControlEXT); \
COPY_STRUCT(VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT, VkImageCompressionPropertiesEXT); \
COPY_STRUCT(VK_STRUCTURE_TYPE_IMAGE_COPY_2, VkImageCopy2); \
COPY_STRUCT(VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO, VkImageCreateInfo); \
COPY_STRUCT(VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO, VkImageFormatListCreateInfo); \
@@ -331,6 +333,8 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES, VkPhysicalDeviceIDProperties); \
COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT, \
VkPhysicalDeviceImage2DViewOf3DFeaturesEXT); \
COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT, \
VkPhysicalDeviceImageCompressionControlFeaturesEXT); \
COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2, \
VkPhysicalDeviceImageFormatInfo2); \
COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT, \
@@ -963,8 +967,6 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
case VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO: \
case VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA: \
case VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT: \
case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT: \
case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT: \
case VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA: \
case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: \
case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: \
@@ -1091,7 +1093,6 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES: \
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA: \
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA: \
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT: \
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT: \
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT: \
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM: \
+62 -5
View File
@@ -171,6 +171,8 @@ DECL_VKFLAG_EXT(VkGeometryInstance, KHR);
DECL_VKFLAG_EXT(VkShaderCreate, EXT);
DECL_VKFLAG_EXT(VkBufferUsage, 2);
DECL_VKFLAG_EXT(VkPipelineCreate, 2);
DECL_VKFLAG_EXT(VkImageCompression, EXT);
DECL_VKFLAG_EXT(VkImageCompressionFixedRate, EXT);
// serialise a member as flags - cast to the Bits enum for serialisation so the stringification
// picks up the bitfield and doesn't treat it as uint32_t. Then we rename the type back to the base
@@ -715,6 +717,12 @@ SERIALISE_VK_HANDLES();
PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT, \
VkPhysicalDeviceImage2DViewOf3DFeaturesEXT) \
\
/* VK_EXT_image_compression_control */ \
PNEXT_STRUCT(VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT, VkImageCompressionControlEXT) \
PNEXT_STRUCT(VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT, VkImageCompressionPropertiesEXT) \
PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT, \
VkPhysicalDeviceImageCompressionControlFeaturesEXT) \
\
/* VK_EXT_image_robustness */ \
PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES, \
VkPhysicalDeviceImageRobustnessFeatures) \
@@ -1671,11 +1679,6 @@ SERIALISE_VK_HANDLES();
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT) \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT) \
\
/* VK_EXT_image_compression_control */ \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT) \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT) \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT) \
\
/* VK_EXT_image_compression_control_swapchain */ \
PNEXT_UNSUPPORTED( \
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT) \
@@ -12954,6 +12957,57 @@ void Deserialise(const VkPhysicalDeviceMaintenance5Properties &el)
DeserialiseNext(el.pNext);
}
template <typename SerialiserType>
void DoSerialise(SerialiserType &ser, VkImageCompressionControlEXT &el)
{
RDCASSERT(ser.IsReading() || el.sType == VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT);
SerialiseNext(ser, el.sType, el.pNext);
SERIALISE_MEMBER_VKFLAGS(VkImageCompressionFlagsEXT, flags);
SERIALISE_MEMBER(compressionControlPlaneCount);
SERIALISE_MEMBER_ARRAY_VKFLAGS(VkImageCompressionFixedRateFlagsEXT, pFixedRateFlags,
compressionControlPlaneCount);
}
template <>
void Deserialise(const VkImageCompressionControlEXT &el)
{
DeserialiseNext(el.pNext);
delete[] el.pFixedRateFlags;
}
template <typename SerialiserType>
void DoSerialise(SerialiserType &ser, VkImageCompressionPropertiesEXT &el)
{
RDCASSERT(ser.IsReading() || el.sType == VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT);
SerialiseNext(ser, el.sType, el.pNext);
SERIALISE_MEMBER_VKFLAGS(VkImageCompressionFlagsEXT, imageCompressionFlags);
SERIALISE_MEMBER_VKFLAGS(VkImageCompressionFixedRateFlagsEXT, imageCompressionFixedRateFlags);
}
template <>
void Deserialise(const VkImageCompressionPropertiesEXT &el)
{
DeserialiseNext(el.pNext);
}
template <typename SerialiserType>
void DoSerialise(SerialiserType &ser, VkPhysicalDeviceImageCompressionControlFeaturesEXT &el)
{
RDCASSERT(ser.IsReading() ||
el.sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT);
SerialiseNext(ser, el.sType, el.pNext);
SERIALISE_MEMBER(imageCompressionControl);
}
template <>
void Deserialise(const VkPhysicalDeviceImageCompressionControlFeaturesEXT &el)
{
DeserialiseNext(el.pNext);
}
// pNext structs - always have deserialise for the next chain
INSTANTIATE_SERIALISE_TYPE(VkAccelerationStructureBuildGeometryInfoKHR);
INSTANTIATE_SERIALISE_TYPE(VkAccelerationStructureBuildSizesInfoKHR);
@@ -13083,6 +13137,8 @@ INSTANTIATE_SERIALISE_TYPE(VkGraphicsPipelineCreateInfo);
INSTANTIATE_SERIALISE_TYPE(VkGraphicsPipelineLibraryCreateInfoEXT);
INSTANTIATE_SERIALISE_TYPE(VkHdrMetadataEXT);
INSTANTIATE_SERIALISE_TYPE(VkImageBlit2);
INSTANTIATE_SERIALISE_TYPE(VkImageCompressionControlEXT);
INSTANTIATE_SERIALISE_TYPE(VkImageCompressionPropertiesEXT);
INSTANTIATE_SERIALISE_TYPE(VkImageCopy2);
INSTANTIATE_SERIALISE_TYPE(VkImageCreateInfo);
INSTANTIATE_SERIALISE_TYPE(VkImageFormatListCreateInfo);
@@ -13182,6 +13238,7 @@ INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceGroupProperties);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceHostQueryResetFeatures);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceIDProperties);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceImage2DViewOf3DFeaturesEXT);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceImageCompressionControlFeaturesEXT);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceImageFormatInfo2);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceImagelessFramebufferFeatures);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceImageRobustnessFeatures);
+47
View File
@@ -4320,3 +4320,50 @@ rdcstr DoStringise(const VkGeometryTypeKHR &el)
}
END_ENUM_STRINGISE();
}
template <>
rdcstr DoStringise(const VkImageCompressionFixedRateFlagBitsEXT &el)
{
BEGIN_BITFIELD_STRINGISE(VkImageCompressionFixedRateFlagBitsEXT);
{
STRINGISE_BITFIELD_VALUE(VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT)
STRINGISE_BITFIELD_BIT(VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT)
STRINGISE_BITFIELD_BIT(VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT)
STRINGISE_BITFIELD_BIT(VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT)
STRINGISE_BITFIELD_BIT(VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT)
STRINGISE_BITFIELD_BIT(VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT)
STRINGISE_BITFIELD_BIT(VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT)
STRINGISE_BITFIELD_BIT(VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT)
STRINGISE_BITFIELD_BIT(VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT)
STRINGISE_BITFIELD_BIT(VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT)
STRINGISE_BITFIELD_BIT(VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT)
STRINGISE_BITFIELD_BIT(VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT)
STRINGISE_BITFIELD_BIT(VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT)
STRINGISE_BITFIELD_BIT(VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT)
STRINGISE_BITFIELD_BIT(VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT)
STRINGISE_BITFIELD_BIT(VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT)
STRINGISE_BITFIELD_BIT(VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT)
STRINGISE_BITFIELD_BIT(VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT)
STRINGISE_BITFIELD_BIT(VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT)
STRINGISE_BITFIELD_BIT(VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT)
STRINGISE_BITFIELD_BIT(VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT)
STRINGISE_BITFIELD_BIT(VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT)
STRINGISE_BITFIELD_BIT(VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT)
STRINGISE_BITFIELD_BIT(VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT)
STRINGISE_BITFIELD_BIT(VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT)
}
END_BITFIELD_STRINGISE();
}
template <>
rdcstr DoStringise(const VkImageCompressionFlagBitsEXT &el)
{
BEGIN_BITFIELD_STRINGISE(VkImageCompressionFlagBitsEXT);
{
STRINGISE_BITFIELD_VALUE(VK_IMAGE_COMPRESSION_DEFAULT_EXT)
STRINGISE_BITFIELD_BIT(VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT)
STRINGISE_BITFIELD_BIT(VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT)
STRINGISE_BITFIELD_BIT(VK_IMAGE_COMPRESSION_DISABLED_EXT)
}
END_BITFIELD_STRINGISE();
}
@@ -3473,6 +3473,13 @@ bool WrappedVulkan::Serialise_vkCreateDevice(SerialiserType &ser, VkPhysicalDevi
m_Maintenance5 = ext->maintenance5 != VK_FALSE;
}
END_PHYS_EXT_CHECK();
BEGIN_PHYS_EXT_CHECK(VkPhysicalDeviceImageCompressionControlFeaturesEXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT);
{
CHECK_PHYS_EXT_FEATURE(imageCompressionControl);
}
END_PHYS_EXT_CHECK();
}
if(availFeatures.depthClamp)
@@ -1324,3 +1324,11 @@ void WrappedVulkan::vkGetRenderingAreaGranularityKHR(VkDevice device,
{
ObjDisp(device)->GetRenderingAreaGranularityKHR(Unwrap(device), pRenderingAreaInfo, pGranularity);
}
void WrappedVulkan::vkGetImageSubresourceLayout2EXT(VkDevice device, VkImage image,
const VkImageSubresource2 *pSubresource,
VkSubresourceLayout2 *pLayout)
{
ObjDisp(device)->GetImageSubresourceLayout2EXT(Unwrap(device), Unwrap(image), pSubresource,
pLayout);
}