-
-
Notifications
You must be signed in to change notification settings - Fork 21.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix: Error output is not require, VK_QUEUE_TRANSFER_BIT
is optional.
#99413
Conversation
bffbcac
to
b0b2ae1
Compare
Note: it's not a critical error, everything works so far. The error message constantly appears in the Android editor as soon as a project is started. (also Logcat - Android Studio) Tested also on MacMini M1 Molten / Vulkan, godot/servers/rendering/rendering_device.cpp Lines 6142 to 6150 in fd4c29a
|
I'm afraid this seems like the wrong way to fix the problem and it just adds more complexity to code that shouldn't have it. If the issue is that the error message shows up, then I suggest making a PR to handle this...
...as a correct case instead and just make it return the empty Id without printing an error. To further support that, the code that calls this already handles the empty Id properly: godot/servers/rendering/rendering_device.cpp Lines 6142 to 6151 in fd4c29a
So to me it just looks like a case of an error message that shouldn't be printed. |
b0b2ae1
to
8e17024
Compare
VK_QUEUE_TRANSFER_BIT
unsupported on most Android devicesVK_QUEUE_TRANSFER_BIT
is optional.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Change looks good to me now.
For your consideration as well: now that we're properly requesting it like this and we're fully aware Android does not cover this case, it might be worth considering to add code to RenderingDevice when it requests the transfer family to attempt to get a compute queue instead if it fails to find it.
As it is now, the code will just fall back to the graphics queue. However, the existence of the compute bit implies the capability of transfer, so it should be possible to use asynchronous compute queues if they're supported.
I don't think a check like that needs to be part of this PR, and I think it's subject to some testing if it actually gives much of a benefit on Android devices.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested locally on Samsung Galaxy Z Fold4 (Android 14), it works as expected. I used to get an error on startup before this change.
Android devices with multiple
|
Thanks! |
Fixes #99412
A queue family with the requested bits could not be found.
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueueFlagBits.html