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
Describe the Issue
Crash when omitting descriptor set. Obviously this is an application bug that we're fixing, so I'm reporting the crash here for posterity.
Environment:
OS: Windows
GPU: 2080 Ti
SDK or header version if building from repo: 1.2.162
Options enabled (synchronization, best practices, etc.):
Additional context
"Validation Error: [ VUID-vkCmdTraceRaysKHR-None-02699 ] Object 0: handle = 0x972a7400000000d1, type = VK_OBJECT_TYPE_DESCRIPTOR_SET; | MessageID = 0xbcd2c25b | VkDescriptorSet 0x972a7400000000d1[] encountered the following validation error at vkCmdTraceRaysKHR() time: Descriptor in binding #5 index 0 is being used in draw but has never been updated via vkUpdateDescriptorSets() or a similar call. The Vulkan spec states: Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command (https://vulkan.lunarg.com/doc/view/1.2.162.0/windows/1.2-extensions/vkspec.html#VUID-vkCmdTraceRaysKHR-None-02699)"
"Validation Error: [ UNASSIGNED-CoreValidation-DrawState-DescriptorSetNotBound ] Object 0: handle = 0x1d8f4bf1678, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0xcde11083 | VkPipeline 0xedbd50000000010[] uses set #5 but that set is not bound."
> VkLayer_khronos_validation.dll!cvdescriptorset::PrefilterBindRequestMap::FilteredMap(const CMD_BUFFER_STATE & cb_state, const PIPELINE_STATE & pipeline) Line 2953 C++
VkLayer_khronos_validation.dll!ValidationStateTracker::UpdateDrawState(CMD_BUFFER_STATE * cb_state, CMD_TYPE cmd_type, const VkPipelineBindPoint bind_point, const char * function) Line 1199 C++
VkLayer_khronos_validation.dll!ValidationStateTracker::UpdateStateCmdDrawDispatchType(CMD_BUFFER_STATE * cb_state, CMD_TYPE cmd_type, VkPipelineBindPoint bind_point, const char * function) Line 5871 C++
VkLayer_khronos_validation.dll!CoreChecks::PostCallRecordCmdTraceRaysKHR(VkCommandBuffer_T * commandBuffer, const VkStridedDeviceAddressRegionKHR * pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR * pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR * pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR * pCallableShaderBindingTable, unsigned int width, unsigned int height, unsigned int depth) Line 1018 C++
VkLayer_khronos_validation.dll!vulkan_layer_chassis::CmdTraceRaysKHR(VkCommandBuffer_T * commandBuffer, const VkStridedDeviceAddressRegionKHR * pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR * pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR * pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR * pCallableShaderBindingTable, unsigned int width, unsigned int height, unsigned int depth) Line 10779 C++
The text was updated successfully, but these errors were encountered:
Thanks for the issue @Jasper-Bekkers! If the crash in the validation layer is happening after a validation error was reported (looks like that's what's happening if I understand correctly?), that could be expected: all validation checks assume there have not been any prior validation failures. Is it possible that's what is happening here?
Thanks @Jasper-Bekkers, this situation is not unlike passing in an invalid object handle -- we might be able to guard against a crash in this particular location, but it would just move on a bit and crash somewhere else or ultimately crash in the driver.
Describe the Issue
Crash when omitting descriptor set. Obviously this is an application bug that we're fixing, so I'm reporting the crash here for posterity.
Environment:
Additional context
The text was updated successfully, but these errors were encountered: