mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-11-07 01:53:24 +09:00
[Test] keep texture upload shape coverage on inproc with applied-frame stats boundaries
This commit is contained in:
@@ -752,7 +752,7 @@ include(GoogleTest)
|
||||
# Keep ordinary pixel/byte cases (including the other arena/regrow cases) on the
|
||||
# caller's transport. A separate label makes every exception inspectable.
|
||||
set(MGL_ITEST_MONOLITH_MECHANISM_FILTER
|
||||
"HandleRecycleScenario.*:CsoContentAddressingScenario.*:ResourceSubsystemControlScenario.*:ObjectSubsystemControlScenario.*:TextureUploadShapeScenario.*:PipeVerifyArmingScenario.*:PoisonOmissionScenario.*:StorageBufferRegrowScenario.NStorageDefinitionsCostNMapPersistentRoundtripsNotOnePerDraw:LargeArenaAdoptionScenario.AnAdoptionCostsExactlyOneMapPersistentRoundtrip")
|
||||
"HandleRecycleScenario.*:CsoContentAddressingScenario.*:ResourceSubsystemControlScenario.*:ObjectSubsystemControlScenario.*:PipeVerifyArmingScenario.*:PoisonOmissionScenario.*:StorageBufferRegrowScenario.NStorageDefinitionsCostNMapPersistentRoundtripsNotOnePerDraw:LargeArenaAdoptionScenario.AnAdoptionCostsExactlyOneMapPersistentRoundtrip")
|
||||
set(MGL_ITEST_GLES_VIEW_FILTER
|
||||
"TextureViewScenario.*:F1WireScenario.ComputeImageStoreThroughViewPreservesOtherRootLayer:F1WireScenario.TextureViewClearTargetsItsRootMipAndLayer")
|
||||
|
||||
@@ -1646,7 +1646,6 @@ gtest_discover_tests(MobileGLIntegrationTest
|
||||
#
|
||||
# Its own log path and its own single-case filter, for the per-lane-log reason above.
|
||||
mgl_itest_join_environment(MGL_ITEST_GLES_TEXTURE_UPLOAD_SHAPE_ENVIRONMENT
|
||||
"MOBILEGL_TRANSPORT=monolith"
|
||||
"MOBILEGL_BACKEND_TYPE=DirectGLES" "MGITEST_TEXTURE_UPLOAD_SHAPE_LANE=1"
|
||||
"MOBILEGL_PIPE_PUSH=0x1fff" "MOBILEGL_PIPE_STATS=1" "MOBILEGL_PIPE_STATS_PERIOD=1"
|
||||
"MOBILEGL_LOG_FILE_PATH=${CMAKE_CURRENT_BINARY_DIR}/texture-upload-shape-DirectGLES.log"
|
||||
@@ -1657,7 +1656,7 @@ gtest_discover_tests(MobileGLIntegrationTest
|
||||
TEST_FILTER "TextureUploadShapeScenario.TheEmittedUploadShapeIsRecordedAndTheTwoSidesAgree"
|
||||
DISCOVERY_TIMEOUT 30
|
||||
PROPERTIES
|
||||
LABELS "integration-gpu\;integration-monolith-control"
|
||||
LABELS integration-gpu
|
||||
TIMEOUT ${MGL_ITEST_TIMEOUT}
|
||||
ENVIRONMENT "${MGL_ITEST_GLES_TEXTURE_UPLOAD_SHAPE_ENVIRONMENT}"
|
||||
)
|
||||
|
||||
@@ -65,6 +65,7 @@
|
||||
#include "../Harness/HeadlessGL.h"
|
||||
#include "../Harness/PipeStatsWindow.h"
|
||||
#include "../Harness/ScenarioFixture.h"
|
||||
#include "../Harness/SplitRuntimePeek.h"
|
||||
|
||||
#ifdef GLAPI
|
||||
#undef GLAPI
|
||||
@@ -237,6 +238,13 @@ void main() { oColor = texture(uTex, vUv); }
|
||||
DrawSampled(m_contiguous);
|
||||
BindDefaultFramebuffer();
|
||||
Gl().EndFrame();
|
||||
// The server closes/resets the stats window inside Present. Under
|
||||
// run-ahead its client return is earlier: do not let this workload's
|
||||
// client emissions enter the setup window that has not retired yet.
|
||||
if (const auto runtime = PeekSplitRuntime(); runtime.transportResolved) {
|
||||
ASSERT_TRUE(runtime.sessionActive);
|
||||
ASSERT_TRUE(WaitForSplitAppliedForTesting(runtime.emitSeq));
|
||||
}
|
||||
|
||||
// ---- the counted window ----
|
||||
Image lastScattered;
|
||||
@@ -274,6 +282,10 @@ void main() { oColor = texture(uTex, vUv); }
|
||||
}
|
||||
ASSERT_EQ(FirstGLError(), GLenum(GL_NO_ERROR)) << "the upload workload left a GL error behind";
|
||||
Gl().EndFrame(); // the swap that emits the window covering exactly the work above
|
||||
if (const auto runtime = PeekSplitRuntime(); runtime.transportResolved) {
|
||||
ASSERT_TRUE(runtime.sessionActive);
|
||||
ASSERT_TRUE(WaitForSplitAppliedForTesting(runtime.emitSeq));
|
||||
}
|
||||
|
||||
const PipeStatsWindow::Window window = PipeStatsWindow::LastFromLaneLog();
|
||||
ASSERT_TRUE(window.found)
|
||||
|
||||
Reference in New Issue
Block a user