Skip to content

Commit 1d8a95e

Browse files
authored
Merge pull request #371 from cdavis5e/swapchain-mutable-format
Support the VK_KHR_swapchain_mutable_format extension.
2 parents 1518d0c + 528d3da commit 1d8a95e

File tree

3 files changed

+7
-1
lines changed

3 files changed

+7
-1
lines changed

Docs/MoltenVK_Runtime_UserGuide.md

+1
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,7 @@ In addition to the core *Vulkan* API, **MoltenVK** also supports the following
239239
- `VK_KHR_storage_buffer_storage_class`
240240
- `VK_KHR_surface`
241241
- `VK_KHR_swapchain`
242+
- `VK_KHR_swapchain_mutable_format`
242243
- `VK_EXT_shader_viewport_index_layer`
243244
- `VK_EXT_vertex_attribute_divisor`
244245
- `VK_MVK_moltenvk`

MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm

+5-1
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@
214214
_mtlLayerOrigDrawSize = _mtlLayer.updatedDrawableSizeMVK;
215215
VkExtent2D imgExtent = mvkVkExtent2DFromCGSize(_mtlLayerOrigDrawSize);
216216

217-
const VkImageCreateInfo imgInfo = {
217+
VkImageCreateInfo imgInfo = {
218218
.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
219219
.pNext = VK_NULL_HANDLE,
220220
.imageType = VK_IMAGE_TYPE_2D,
@@ -228,6 +228,10 @@
228228
.flags = 0,
229229
};
230230

231+
if (mvkAreFlagsEnabled(pCreateInfo->flags, VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR)) {
232+
mvkEnableFlag(imgInfo.flags, VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT|VK_IMAGE_CREATE_EXTENDED_USAGE_BIT);
233+
}
234+
231235
VkSurfaceCapabilitiesKHR srfcProps;
232236
MVKSurface* mvkSrfc = (MVKSurface*)pCreateInfo->surface;
233237
_device->getPhysicalDevice()->getSurfaceCapabilities(mvkSrfc, &srfcProps);

MoltenVK/MoltenVK/Layers/MVKExtensions.def

+1
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ MVK_EXTENSION(KHR_shader_float16_int8, KHR_SHADER_FLOAT16_INT8)
4848
MVK_EXTENSION(KHR_storage_buffer_storage_class, KHR_STORAGE_BUFFER_STORAGE_CLASS)
4949
MVK_EXTENSION(KHR_surface, KHR_SURFACE)
5050
MVK_EXTENSION(KHR_swapchain, KHR_SWAPCHAIN)
51+
MVK_EXTENSION(KHR_swapchain_mutable_format, KHR_SWAPCHAIN_MUTABLE_FORMAT)
5152
MVK_EXTENSION(EXT_shader_viewport_index_layer, EXT_SHADER_VIEWPORT_INDEX_LAYER)
5253
MVK_EXTENSION(EXT_vertex_attribute_divisor, EXT_VERTEX_ATTRIBUTE_DIVISOR)
5354
MVK_EXTENSION(MVK_ios_surface, MVK_IOS_SURFACE)

0 commit comments

Comments
 (0)