mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-11-15 22:13:24 +09:00
[MG_Impl, MG_IntegrationTest, ci] (P7): the first perturbation block's falsifier is the DirectVulkan entry
- measured with one block removed at a time: without the re-applied block both server halves drop to 1 (DirectGLES 1 / DirectVulkan 1, both entries red); without the first block DirectVulkan drops to 1 (red) while DirectGLES stays at 2 (green), because the GLES backend reads the pack field twice after the neutral pack is installed (3 = the saved-pack read + 2 post-install) and DirectVulkan once (2 = 1 + 1) - so the >= 2 requirement falsifies the re-applied block on both backends and the first block on DirectVulkan; the CI step runs both backends and needs both, which it already does - the scenario, hook and CI comments now say exactly that, instead of "removing either block drops it to 1"
This commit is contained in:
@@ -380,7 +380,11 @@ void main() { o_color = vec4(0.25, 0.5, 0.75, 1.0); }
|
||||
// after the window's overwrite can turn the post-install read red, because there the
|
||||
// stored value IS the neutral pack. A control satisfied by ONE line is satisfied by
|
||||
// either block alone and so falsified neither. Measured at landing the server half
|
||||
// carries 3 (DirectGLES) / 2 (DirectVulkan); removing either block drops it to 1.
|
||||
// carries 3 (DirectGLES: the saved-pack read and TWO post-install reads) / 2
|
||||
// (DirectVulkan: one of each). Removing the re-applied block drops both backends to
|
||||
// 1; removing the first block drops DirectVulkan to 1 and leaves DirectGLES at 2, so
|
||||
// the first block's falsifier is the DirectVulkan entry - which is why the CI step
|
||||
// runs both backends and needs both.
|
||||
const std::size_t reads = CountReadReports(server, expected);
|
||||
EXPECT_GE(reads, std::size_t{2})
|
||||
<< "the server half carries " << reads << " `where=read` report(s) for " << expected
|
||||
|
||||
Reference in New Issue
Block a user