diff --git a/CMakeLists.txt b/CMakeLists.txt index a6206c8..8410291 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -498,6 +498,10 @@ layer_test(memory_1_1 memory_1_1) layer_test(thread_1 thread_1) layer_test(thread_2 thread_2) layer_test(thread_3 thread_3) +layer_test(compute_bda_sc compute_bda_sc) +layer_test(compute_bda_pushconstant compute_bda_pushconstant) +layer_test(compute_bda_ubo compute_bda_ubo) +layer_test(compute_bda_ubo_ssbo compute_bda_ubo --ssbo) add_test(NAME layer_test_thread_3_replay_blackhole_stress_1 COMMAND ${CMAKE_CURRENT_BINARY_DIR}/lava-replay -V -B vulkan_thread_3.vk) set_tests_properties(layer_test_thread_3_replay_blackhole_stress_1 PROPERTIES FIXTURES_REQUIRED thread_3) add_test(NAME layer_test_thread_3_replay_blackhole_stress_2 COMMAND ${CMAKE_CURRENT_BINARY_DIR}/lava-replay -D -B vulkan_thread_3.vk) diff --git a/src/hardcode_read.cpp b/src/hardcode_read.cpp index 54972fb..e0cf3fb 100644 --- a/src/hardcode_read.cpp +++ b/src/hardcode_read.cpp @@ -1024,6 +1024,8 @@ void replay_pre_vkCmdPushConstants2KHR(lava_file_reader& reader, VkCommandBuffer assert(pPushConstantsInfo->pValues); assert(pPushConstantsInfo->size >= remap->count); translate_addresses(reader, remap->count, remap->pOffsets, const_cast(pPushConstantsInfo->pValues)); + // make sure we don't leak this to the driver, as this would break validation + purge_extension_parent(const_cast(pPushConstantsInfo), VK_STRUCTURE_TYPE_ADDRESS_REMAP_TRACETOOLTEST); } void replay_pre_vkCreateComputePipelines(lava_file_reader& reader, VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, @@ -1040,6 +1042,9 @@ void replay_pre_vkCreateComputePipelines(lava_file_reader& reader, VkDevice devi assert(pCreateInfos[i].stage.pSpecializationInfo->dataSize >= remap->count); translate_addresses(reader, remap->count, remap->pOffsets, const_cast(pCreateInfos[i].stage.pSpecializationInfo->pData)); + + // make sure we don't leak this to the driver, as this would break validation + purge_extension_parent(const_cast(&pCreateInfos[i].stage), VK_STRUCTURE_TYPE_ADDRESS_REMAP_TRACETOOLTEST); } } @@ -1058,6 +1063,9 @@ void replay_pre_vkCreateGraphicsPipelines(lava_file_reader& reader, VkDevice dev assert(pCreateInfos[i].pStages[stage].pSpecializationInfo->dataSize >= remap->count); translate_addresses(reader, remap->count, remap->pOffsets, const_cast(pCreateInfos[i].pStages[stage].pSpecializationInfo->pData)); + + // make sure we don't leak this to the driver, as this would break validation + purge_extension_parent(const_cast(&pCreateInfos[i].pStages[stage]), VK_STRUCTURE_TYPE_ADDRESS_REMAP_TRACETOOLTEST); } } } @@ -1077,6 +1085,9 @@ void replay_pre_vkCreateRayTracingPipelinesKHR(lava_file_reader& reader, VkDevic assert(pCreateInfos[i].pStages[stage].pSpecializationInfo->dataSize >= remap->count); translate_addresses(reader, remap->count, remap->pOffsets, const_cast(pCreateInfos[i].pStages[stage].pSpecializationInfo->pData)); + + // make sure we don't leak this to the driver, as this would break validation + purge_extension_parent(const_cast(&pCreateInfos[i].pStages[stage]), VK_STRUCTURE_TYPE_ADDRESS_REMAP_TRACETOOLTEST); } } }