Skip to content
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

Crash in PrefilterBindRequestMap::FilteredMap #2423

Closed
Jasper-Bekkers opened this issue Dec 22, 2020 · 2 comments
Closed

Crash in PrefilterBindRequestMap::FilteredMap #2423

Jasper-Bekkers opened this issue Dec 22, 2020 · 2 comments

Comments

@Jasper-Bekkers
Copy link

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++
@ncesario-lunarg
Copy link
Contributor

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?

@mark-lunarg
Copy link
Contributor

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants