Godot: Enabling SDFGI crashes Godot due to missing support in MoltenVK

Created on 1 Jul 2020  路  2Comments  路  Source: godotengine/godot

Godot version:
master - 0a8dbe7f75f2999e0f73af83dda3510c965f2b94

OS/device including version:
macOS Mojave 10.14.6
Radeon RX Vega 64 8GB
Vulkan backend

Issue description:
Enabling SDFGI led Godot to crash and exit with following error message in console:

ERROR: In Object of type 'PopupPanel': Attempt to connect nonexistent signal 'modal_closed' to callable 'ColorPickerButton::_modal_closed'. at: connect (core/object.cpp:1403) [mvk-error] VK_ERROR_FORMAT_NOT_SUPPORTED: VkFormat VK_FORMAT_R4G4B4A4_UNORM_PACK16 is not supported on this device. ERROR: - Message Id Number: 0 | Message Id Name: VK_ERROR_FORMAT_NOT_SUPPORTED: VkFormat VK_FORMAT_R4G4B4A4_UNORM_PACK16 is not supported on this device. Objects - 1 Object[0] - VK_OBJECT_TYPE_IMAGE_VIEW, Handle 140289098348304 at: _debug_messenger_callback (drivers/vulkan/vulkan_context.cpp:136) ERROR: Attempted to free invalid ID: 0 at: _free_internal (drivers/vulkan/rendering_device_vulkan.cpp:6853) handle_crash: Program crashed with signal 11 Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues [1] 1 libsystem_platform.dylib 0x00007fff67a23b5d _sigtramp + 29 [2] 2 ??? 0x0000000000000000 0x0 + 0 [3] 3 AMDRadeonX5000MTLDriver 0x00007fff317b47da -[GFX9_MtlComputeCmdEncoder dispatchThreadgroupsWithIndirectBuffer:indirectBufferOffset:threadsPerThreadgroup:] + 194 [4] MVKCmdDispatchIndirect::encode(MVKCommandEncoder*) [5] MVKCommandEncoder::encode(id<MTLCommandBuffer>) [6] MVKCommandBuffer::submit(MVKQueueCommandBufferSubmission*) [7] MVKQueueCommandBufferSubmission::execute() [8] MVKQueue::submit(unsigned int, VkSubmitInfo const*, VkFence_T*) [9] 9 libMoltenVK.dylib 0x000000010ec0f554 vkQueueSubmit + 68 [10] vkQueueSubmit (in godot.osx.tools.64) (trampoline.c:871) [11] VulkanContext::swap_buffers() (in godot.osx.tools.64) (vulkan_context.cpp:1295) [12] RenderingDeviceVulkan::swap_buffers() (in godot.osx.tools.64) (rendering_device_vulkan.cpp:6933) [13] RasterizerRD::end_frame(bool) (in godot.osx.tools.64) (rasterizer_rd.cpp:96) [14] RenderingServerRaster::draw(bool, double) (in godot.osx.tools.64) (rendering_server_raster.cpp:0) [15] RenderingServerWrapMT::draw(bool, double) (in godot.osx.tools.64) (rendering_server_wrap_mt.cpp:93) [16] Main::iteration() (in godot.osx.tools.64) (main.cpp:2217) [17] OS_OSX::run() (in godot.osx.tools.64) (os_osx.mm:317) [18] main (in godot.osx.tools.64) (godot_main_osx.mm:76) [19] 19 libdyld.dylib 0x00007fff678383d5 start + 1 [20] 20 ??? 0x0000000000000004 0x0 + 4 -- END OF BACKTRACE --

Steps to reproduce:

  1. Create minimal scene with 3d node
  2. Add World Environment
  3. Turn on SDFGI

Minimal reproduction project:
SDFGI Test.zip

bug crash macos rendering

Most helpful comment

@JohanAR I think Metal 3 is in macOS Catalina so I'm going to try this again on my other Mac which has Catalina installed to see if it's fixed there. Just got to get Molten VK set up there first

All 2 comments

Sounds like this MoltenVK issue is related: Support VK_FORMAT_B4G4R4A4_UNORM_PACK16 for PPSSPP running via Wine

Unfortunately unlikely. Metal does not support an equivalent to that format.

Metal on iOS (but not macOS) does support the VK_FORMAT_R4G4B4A4_UNORM_PACK16 format.

There's a reference to this issue: Support for image format swizzles, where one of the last comments says that Metal 3.0 has support for this feature, so I guess it will come to MoltenVK eventually.

@JohanAR I think Metal 3 is in macOS Catalina so I'm going to try this again on my other Mac which has Catalina installed to see if it's fixed there. Just got to get Molten VK set up there first

Was this page helpful?
0 / 5 - 0 ratings