LunarG / vktrace

Vulkan vktrace / vkreplay
Other
6 stars 8 forks source link

vktrace/vkreplay problems tracing and replaying CreateDescriptorSetLayout with pNext #10

Open TonyBarbour opened 5 years ago

TonyBarbour commented 5 years ago

Issue LunarG/VulkanTools#802 will need to be fixed or worked around to get to this issue (replace features with nullptr in call to CheckDescriptorIndexingSupportAndInitFramework in the test). The test will get errors, but the replay will reproduce this problem.

Trying to trace and replay the LVT GpuValidationArrayOOB, the test attempts to to create a descriptor set layout with a VkDescriptorSetLayoutBindingFlagsCreateInfoEXT array of size one in the VkDescriptorSetLayoutCreateInfo pNext. Tracing seems to go ok, but on playback, in vkreplay_interpret_pnext_pointers there is an access violation at: // Convert pointers in pNext structures switch (((VkApplicationInfo)(((VkApplicationInfo)struct_ptr)->pNext))->sType)

Disabling descriptor_indexing in the test, causes the pNext pointer in CreateDescriptorSetLayout's CreateInfo to be NULL, and replaying the resultant trace seems to be fine.

Notes about tracing and replay this test: Comment out the "if" block that calls VkRenderFramework::DeviceCanDraw() to avoid making two traces Make sure that VK_LAYER_PATH is set to find validation layers when running vkreplay