Fix visual glitches on MoltenVK (macOS, iOS)

This commit is contained in:
Wojtek Figat
2023-06-11 00:49:48 +02:00
parent ec67d04a0a
commit 0eadf2de1e

View File

@@ -526,6 +526,8 @@ RenderPassVulkan::RenderPassVulkan(GPUDeviceVulkan* device, const RenderTargetLa
attachment.samples = (VkSampleCountFlagBits)layout.MSAA;
#if PLATFORM_ANDROID
attachment.loadOp = VK_ATTACHMENT_LOAD_OP_LOAD; // TODO: Adreno 640 has glitches when blend is disabled and rt data not loaded
#elif PLATFORM_MAC || PLATFORM_IOS
attachment.loadOp = VK_ATTACHMENT_LOAD_OP_LOAD; // MoltenVK seams to have glitches
#else
attachment.loadOp = layout.BlendEnable ? VK_ATTACHMENT_LOAD_OP_LOAD : VK_ATTACHMENT_LOAD_OP_DONT_CARE;
#endif
@@ -1683,7 +1685,11 @@ bool GPUDeviceVulkan::Init()
auto& limits = Limits;
limits.HasCompute = GetShaderProfile() == ShaderProfile::Vulkan_SM5 && PhysicalDeviceLimits.maxComputeWorkGroupCount[0] >= GPU_MAX_CS_DISPATCH_THREAD_GROUPS && PhysicalDeviceLimits.maxComputeWorkGroupCount[1] >= GPU_MAX_CS_DISPATCH_THREAD_GROUPS;
#if PLATFORM_MAC || PLATFORM_IOS
limits.HasTessellation = false; // MoltenVK has artifacts when using tess
#else
limits.HasTessellation = !!PhysicalDeviceFeatures.tessellationShader && PhysicalDeviceLimits.maxBoundDescriptorSets > (uint32_t)DescriptorSet::Domain;
#endif
#if PLATFORM_ANDROID || PLATFORM_IOS
limits.HasGeometryShaders = false; // Don't even try GS on mobile
#else