KhronosGroup / KhronosGroup/Vulkan-ValidationLayers
Conflict with Nvidia NVPRESENT_ENABLE_SMOOTH_MOTION=1
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 1k
- Forks
- 505
- Avg merge
- 11h 25m
- Merged PRs (30d)
- 229
Description
Environment:
- OS: Linux
- GPU and driver version: RTX4060 580.105.08
- SDK or header version if building from repo: downloaded SDK 1.4.328.1
- Options enabled (synchronization, best practices, etc.):
export VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation
Describe the Issue
"Fake" errors when NVPRESENT_ENABLE_SMOOTH_MOTION=1 is set.
No errors:
source /home/danil/vulkan_sdk/1.4.328.1/setup-env.sh
export VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation
vkcube
Errors:
source /home/danil/vulkan_sdk/1.4.328.1/setup-env.sh
export VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation
export NVPRESENT_ENABLE_SMOOTH_MOTION=1
vkcube
Validation Warning: [ WARNING-CreateDevice-extension-not-found ] | MessageID = 0x297ec5be
vkCreateDevice(): pCreateInfo->ppEnabledExtensionNames[1] VK_NV_internal_nvpresent is not a known extension string. Please make sure the spelling is correct. (If working on a new extension, the validation code generation needs to be ran with the new vk.xml)
Validation Error: [ VUID-vkQueuePresentKHR-pSwapchains-01292 ] | MessageID = 0xf47d84fb
vkQueuePresentKHR(): pPresentInfo->pSwapchains[0] image on queue that cannot present to this surface.
The Vulkan spec states: Each element of pSwapchains member of pPresentInfo must be a swapchain that is created for a surface for which presentation is supported from queue as determined using a call to vkGetPhysicalDeviceSurfaceSupportKHR (https://vulkan.lunarg.com/doc/view/1.4.328.1/linux/antora/spec/latest/chapters/VK_KHR_surface/wsi.html#VUID-vkQueuePresentKHR-pSwapchains-01292)
Objects: 1
[0] VkSwapchainKHR 0x1a000000001a
and spam of many others errors - not sure if I need to include it all - I think it "fake errors"
I obviously tried not just vkcube - same behavior for other apps.
Expected behavior
Same behavior as without NVPRESENT_ENABLE_SMOOTH_MOTION.
Additional context
I think this should be somehow checked - even simple check for NVPRESENT_ENABLE_SMOOTH_MOTION variable if set then print some warning about errors may be not correct.
Note - NVPRESENT_ENABLE_SMOOTH_MOTION work only on RTX 40/50 series GPU.
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
Reproduce the report with vkcube using VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation, first without and then with NVPRESENT_ENABLE_SMOOTH_MOTION=1. Trace the validation-layer handling of the resulting extension and presentation messages. Done means the layer no longer produces misleading errors, or clearly warns users that these messages are expected with this Nvidia setting.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, linux
- Domain
- computer-graphics, testing
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100