KhronosGroup / KhronosGroup/Vulkan-Tools
vkcube doesn't validate presentation support for physical devices
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 493
- Forks
- 202
- Avg merge
- 1h 37m
- Merged PRs (30d)
- 4
Description
vkcube's device selection is unfortunately a bit optimistic and it blindly assumes that all devices it can enumerate are usable from its context. This is not always the case, and hence it can end up failing to start properly.
This issue showed up when running vkcube in a VNC session (TigerVNC/tigervnc#1674). In that case, the hardware device cannot be use because DRI3 isn't available. But vkcube fails to fall back to the CPU device.
I am a complete newbie when it comes to Vulkan, so I have no idea how applications are supposed to pick devices.
The noticable difference between the VNC environment and a "regular" one (according to vulkaninfo), is that you only get presentable surfaces for working devices. So perhaps that is a good method?
What is the de facto method for picking devices? Is there something TigerVNC can do to help applications make the right choice?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing vkcube's physical-device selection and compare the devices it enumerates with the presentable surfaces reported by vulkaninfo in a VNC session. Confirm the expected selection behavior and define done as avoiding unusable devices while allowing fallback to a usable CPU device. No source file or test is named in the issue.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- computer-graphics, devtools
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100