You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When Godot is launched on a GPU where physical_device_properties.limits.maxBoundDescriptorSets = 4, Godot will crash, first spamming the error:
ERROR: Attempting to bind a descriptor set (4) greater than what the hardware supports (4).
at: draw_list_bind_uniform_set (servers/rendering/rendering_device.cpp:3937)
and then more errors that are consequence of that.
This regression was introduced in PR #92797
commit a657ea4 by introducing INSTANCE_DATA_UNIFORM_SET = 4.
I'm afraid the minimum guaranteed value is physical_device_properties.limits.maxBoundDescriptorSets = 4 (very common in mobile) therefore this PR should either disable itself or be refactored to not use slot >= 4.
@DarioSamo tells me that this work was done because Push Constants were saturated.
However my next PR will involve TheForge's changes that move data out of push constants into UBOs. Perhaps this issue could be solved by leveraging such solution?
Steps to reproduce
Run Godot in a GPU where physical_device_properties.limits.maxBoundDescriptorSets = 4, like most Android phones.
Alternatively edit Godot to force it to think maxBoundDescriptorSets = 4:
In rendering_device_driver_vulkan.cpp
Error RenderingDeviceDriverVulkan::initialize(uint32_t p_device_index, uint32_t p_frame_count) {
context_device = context_driver->device_get(p_device_index);
physical_device = context_driver->physical_device_get(p_device_index);
vkGetPhysicalDeviceProperties(physical_device, &physical_device_properties);
physical_device_properties.limits.maxBoundDescriptorSets = 4; // This line is new.
Minimal reproduction project (MRP)
N / A
Godot crashes right away (see steps to reproduce).
The text was updated successfully, but these errors were encountered:
Tested versions
System information
Godot v4.4.dev (e4e024a) - Ubuntu 20.04.6 LTS (Focal Fossa) on X11 - X11 display driver, Multi-window, 2 monitors - Vulkan (Mobile) - dedicated AMD Radeon RX 6800 XT (RADV NAVI21) - AMD Ryzen 9 5900X 12-Core Processor (24 threads)
Issue description
When Godot is launched on a GPU where
physical_device_properties.limits.maxBoundDescriptorSets = 4
, Godot will crash, first spamming the error:and then more errors that are consequence of that.
This regression was introduced in PR #92797
commit a657ea4 by introducing
INSTANCE_DATA_UNIFORM_SET = 4
.I'm afraid the minimum guaranteed value is
physical_device_properties.limits.maxBoundDescriptorSets = 4
(very common in mobile) therefore this PR should either disable itself or be refactored to not use slot >= 4.@DarioSamo tells me that this work was done because Push Constants were saturated.
However my next PR will involve TheForge's changes that move data out of push constants into UBOs. Perhaps this issue could be solved by leveraging such solution?
Steps to reproduce
physical_device_properties.limits.maxBoundDescriptorSets = 4
, like most Android phones.maxBoundDescriptorSets = 4
:In rendering_device_driver_vulkan.cpp
Minimal reproduction project (MRP)
N / A
Godot crashes right away (see steps to reproduce).
The text was updated successfully, but these errors were encountered: