From bf5923a88fe5d4dc15da61ec639858c88d384b15 Mon Sep 17 00:00:00 2001 From: Hans-Kristian Arntzen Date: Mon, 8 Jul 2024 11:52:54 +0200 Subject: [PATCH] Enable image compression control. --- vulkan/context.cpp | 12 ++++++++++++ vulkan/context.hpp | 2 ++ 2 files changed, 14 insertions(+) diff --git a/vulkan/context.cpp b/vulkan/context.cpp index 544a6461..f990bcde 100644 --- a/vulkan/context.cpp +++ b/vulkan/context.cpp @@ -1417,6 +1417,18 @@ bool Context::create_device(VkPhysicalDevice gpu_, VkSurfaceKHR surface, ext.supports_push_descriptor = true; } + if (has_extension(VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME)) + { + enabled_extensions.push_back(VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME); + ADD_CHAIN(ext.image_compression_control_features, IMAGE_COMPRESSION_CONTROL_FEATURES_EXT); + } + + if (has_extension(VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME)) + { + enabled_extensions.push_back(VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME); + ADD_CHAIN(ext.image_compression_control_swapchain_features, IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT); + } + if (ext.device_api_core_version >= VK_API_VERSION_1_3) { ext.supports_store_op_none = true; diff --git a/vulkan/context.hpp b/vulkan/context.hpp index 6f2e8eb0..6025074d 100644 --- a/vulkan/context.hpp +++ b/vulkan/context.hpp @@ -101,6 +101,8 @@ struct DeviceFeatures VkPhysicalDeviceMeshShaderPropertiesEXT mesh_shader_properties = {}; VkPhysicalDeviceIndexTypeUint8FeaturesEXT index_type_uint8_features = {}; VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT rgba10x6_formats_features = {}; + VkPhysicalDeviceImageCompressionControlFeaturesEXT image_compression_control_features = {}; + VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT image_compression_control_swapchain_features = {}; // Vendor VkPhysicalDeviceComputeShaderDerivativesFeaturesNV compute_shader_derivative_features = {};