From aed62466ff5bb38ae39010888bc4859afbe1cf94 Mon Sep 17 00:00:00 2001 From: Mike Schuchardt Date: Fri, 26 Jul 2019 07:56:30 -0700 Subject: cube: Workaround macOS cube issue Latest version of MoltenVK behaves in an apparently non-conformant way by not allowing some linear images to be mapped to memory with VK_MEMORY_PROPERTY_HOST_COHERENT_BIT. This change sidesteps the issue by forcing the use of staging buffer for loading textures. --- cube/cube.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'cube/cube.cpp') diff --git a/cube/cube.cpp b/cube/cube.cpp index 04447fcd..a6f600c0 100644 --- a/cube/cube.cpp +++ b/cube/cube.cpp @@ -899,6 +899,12 @@ void Demo::init(int argc, char **argv) { presentMode = vk::PresentModeKHR::eFifo; frameCount = UINT32_MAX; use_xlib = false; + +#if defined(VK_USE_PLATFORM_MACOS_MVK) + // MoltenVK may not allow host coherent mapping to linear tiled images + // Force the use of a staging buffer to be safe + use_staging_buffer = true; +#endif for (int i = 1; i < argc; i++) { if (strcmp(argv[i], "--use_staging") == 0) { -- cgit v1.2.3