From 86ab28355c0bdddfe1f4ebb23296be1302e85eaf Mon Sep 17 00:00:00 2001 From: Swung0x48 Date: Wed, 7 Oct 2026 19:23:10 -0400 Subject: [PATCH] [Fix] (MG_IntegrationTest): the upload-between-draws entries get one private log per case and the sync-validation entry is inproc only, as the split gates require. --- MobileGL/MG_IntegrationTest/CMakeLists.txt | 54 +++++++++++----------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/MobileGL/MG_IntegrationTest/CMakeLists.txt b/MobileGL/MG_IntegrationTest/CMakeLists.txt index 1dfcaac5..4691cf08 100644 --- a/MobileGL/MG_IntegrationTest/CMakeLists.txt +++ b/MobileGL/MG_IntegrationTest/CMakeLists.txt @@ -4986,8 +4986,8 @@ endif() # second the new, with and without a chain growth (re-mint + preserve) in between. Magma orders its # upload batch behind the earlier draws with queue order and the batch's first barrier, not a CPU # drain. Public GL: the ambient `DirectGLES.` / `DirectVulkan.` monolith discovery runs it, the GLES -# split arms through the macro, Magma's three transports by hand, and two `.SyncValidation.` entries -# (monolith and inproc, where the server's Vulkan instance is this process) under the Khronos +# split arms through the macro, Magma's three transports by hand, and `.SyncValidation.` entries +# (inproc, where the server's Vulkan instance is this process) under the Khronos # synchronization validator, red on any SYNC-HAZARD line whatever the device's timing. Submit-time # validation is OFF by default in the layer, and without it a hazard across two queue submissions - # the only kind this case can have - is never reported (measured: the src-scope red-once stayed @@ -4995,19 +4995,27 @@ endif() target_sources(MobileGLIntegrationTest PRIVATE Scenarios/TextureUploadBetweenDrawsScenario.cpp) if (MOBILEGL_BUILD_DISAGGREGATED) mgl_itest_register_split_arms("TextureUploadBetweenDrawsScenario.*" "") + # One entry PER CASE: every entry needs its own MOBILEGL_LOG_FILE_PATH (SplitLogPaths). + set(MGL_ITEST_UPLOAD_BETWEEN_DRAWS_CASES + EachDrawSeesTheTexelsUploadedBeforeIt + AChainGrowthBetweenTheDrawsPreservesWhatTheFirstOneSampled) foreach(mglItestArm IN LISTS MGL_ITEST_MAGMA_ARMS) mgl_itest_magma_arm_shape(${mglItestArm}) mgl_itest_join_environment(MGL_ITEST_MAGMA_UPLOAD_ENVIRONMENT ${MGL_ITEST_MAGMA_SV_FLAVOUR_ENV} ${mglItestArmTransportEnv}) - gtest_discover_tests(MobileGLIntegrationTest - TEST_PREFIX "DirectVulkan.${mglItestArm}.UploadBetweenDraws." - TEST_FILTER "TextureUploadBetweenDrawsScenario.*" - DISCOVERY_TIMEOUT 30 - PROPERTIES LABELS "${mglItestMagmaLabels}" - TIMEOUT ${MGL_ITEST_TIMEOUT} - ${mglItestArmProperties} - ENVIRONMENT "${MGL_ITEST_MAGMA_UPLOAD_ENVIRONMENT}\;MOBILEGL_LOG_FILE_PATH=${CMAKE_CURRENT_BINARY_DIR}/magma-upload-between-draws${mglItestArmLogTag}.log") + foreach(uploadCase IN LISTS MGL_ITEST_UPLOAD_BETWEEN_DRAWS_CASES) + gtest_discover_tests(MobileGLIntegrationTest + TEST_PREFIX "DirectVulkan.${mglItestArm}.UploadBetweenDraws." + TEST_FILTER "TextureUploadBetweenDrawsScenario.${uploadCase}" + DISCOVERY_TIMEOUT 30 + PROPERTIES LABELS "${mglItestMagmaLabels}" + TIMEOUT ${MGL_ITEST_TIMEOUT} + ${mglItestArmProperties} + ENVIRONMENT "${MGL_ITEST_MAGMA_UPLOAD_ENVIRONMENT}\;MOBILEGL_LOG_FILE_PATH=${CMAKE_CURRENT_BINARY_DIR}/magma-upload-between-draws${mglItestArmLogTag}-${uploadCase}.log") + endforeach() endforeach() + # The synchronization-validation entries: inproc, where the server's Vulkan instance is this + # process (the monolith arm runs the same record-arm upload path and was checked by hand, P14). mgl_itest_magma_arm_shape(Split) mgl_itest_join_environment(MGL_ITEST_MAGMA_UPLOAD_ENVIRONMENT ${MGL_ITEST_MAGMA_SV_FLAVOUR_ENV} ${mglItestArmTransportEnv}) @@ -5018,22 +5026,16 @@ if (MOBILEGL_BUILD_DISAGGREGATED) "VK_KHRONOS_VALIDATION_SYNCVAL_SHADER_ACCESSES_HEURISTIC=true" "MGITEST_REQUIRE_VK_VALIDATION_LAYER=1") mgl_itest_join_environment(MGL_ITEST_SYNC_VALIDATION_ENVIRONMENT ${MGL_ITEST_SYNC_VALIDATION_ENV}) - gtest_discover_tests(MobileGLIntegrationTest - TEST_PREFIX "DirectVulkan.Split.SyncValidation." - TEST_FILTER "TextureUploadBetweenDrawsScenario.*" - DISCOVERY_TIMEOUT 30 - PROPERTIES LABELS "${mglItestMagmaLabels}" - TIMEOUT ${MGL_ITEST_TIMEOUT} - FAIL_REGULAR_EXPRESSION "SYNC-HAZARD" - ENVIRONMENT "${MGL_ITEST_MAGMA_UPLOAD_ENVIRONMENT}\;${MGL_ITEST_SYNC_VALIDATION_ENVIRONMENT}\;MOBILEGL_LOG_FILE_PATH=${CMAKE_CURRENT_BINARY_DIR}/magma-upload-between-draws-syncval.log") - gtest_discover_tests(MobileGLIntegrationTest - TEST_PREFIX "DirectVulkan.SyncValidation." - TEST_FILTER "TextureUploadBetweenDrawsScenario.*" - DISCOVERY_TIMEOUT 30 - PROPERTIES LABELS "${mglItestMagmaLabels}" - TIMEOUT ${MGL_ITEST_TIMEOUT} - FAIL_REGULAR_EXPRESSION "SYNC-HAZARD" - ENVIRONMENT "${MGL_ITEST_VULKAN_ENVIRONMENT}\;${MGL_ITEST_SYNC_VALIDATION_ENVIRONMENT}\;MOBILEGL_LOG_FILE_PATH=${CMAKE_CURRENT_BINARY_DIR}/magma-upload-between-draws-syncval-monolith.log") + foreach(uploadCase IN LISTS MGL_ITEST_UPLOAD_BETWEEN_DRAWS_CASES) + gtest_discover_tests(MobileGLIntegrationTest + TEST_PREFIX "DirectVulkan.Split.SyncValidation." + TEST_FILTER "TextureUploadBetweenDrawsScenario.${uploadCase}" + DISCOVERY_TIMEOUT 30 + PROPERTIES LABELS "${mglItestMagmaLabels}" + TIMEOUT ${MGL_ITEST_TIMEOUT} + FAIL_REGULAR_EXPRESSION "SYNC-HAZARD" + ENVIRONMENT "${MGL_ITEST_MAGMA_UPLOAD_ENVIRONMENT}\;${MGL_ITEST_SYNC_VALIDATION_ENVIRONMENT}\;MOBILEGL_LOG_FILE_PATH=${CMAKE_CURRENT_BINARY_DIR}/magma-upload-between-draws-syncval-${uploadCase}.log") + endforeach() endif() # =====================================================================================