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:
Minimal reproduction project:
SDFGI Test.zip
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
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