KhronosGroup / KhronosGroup/Vulkan-ValidationLayers

Conflict with Nvidia NVPRESENT_ENABLE_SMOOTH_MOTION=1

Open
#11,147 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Enhancement
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.