mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-11-15 22:13:24 +09:00
[CI] (P13 W5 S4): an include-closure probe keeps the record core clear of MG_Remote and the wire serializer.
This commit is contained in:
@@ -2386,13 +2386,13 @@ jobs:
|
||||
run: sudo apt-get update && sudo apt-get install -y clang-20 libx11-dev
|
||||
|
||||
- name: Include-closure check and self-test
|
||||
# --expect-probes 4 (contract-v2.md 7.6): an exit code cannot tell four probes from none,
|
||||
# --expect-probes 5 (contract-v2.md 7.6; P13 W5 adds record-core): an exit code cannot tell five probes from none,
|
||||
# so a --probe typo or a manifest edit that selected nothing would run zero probes and
|
||||
# exit 0 - the second half of the finding that added the flag. The count is the length of
|
||||
# scripts/check_include_closure.py's PROBES list and changing one means changing the other.
|
||||
#
|
||||
# Use the compiler selected for this runner's installed toolchain.
|
||||
run: python3 scripts/check_include_closure.py --mode both --compiler "${MOBILEGL_CI_CXX}" --self-test --require-all --expect-probes 4
|
||||
run: python3 scripts/check_include_closure.py --mode both --compiler "${MOBILEGL_CI_CXX}" --self-test --require-all --expect-probes 5
|
||||
|
||||
benchmark:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
@@ -23,6 +23,7 @@ and P7 have to be able to sever. So the arbiter here is the preprocessor's own
|
||||
Config.h, MG_Backend/, BufferState/,
|
||||
ProgramState/Shader* (+ <= 2 `glslang::`)
|
||||
wire-header MG_Remote/Transport/ITransport.h MobileGL/Includes.h
|
||||
record-core MG_Impl/Pipe/Verb/VerbPort.h (+ the record core) MG_Remote/ 3rdparty/flatbuffers/
|
||||
|
||||
The forbidden sets deliberately say nothing about glslang, spirv-cross or vulkan:
|
||||
MobileGL/Includes.h pulls all three unconditionally (:53,:56,:59,:80-84,:130) and both
|
||||
@@ -53,7 +54,7 @@ four probes from none. The campaign gate spells `--compiler clang++`: there is n
|
||||
|
||||
python3 scripts/check_include_closure.py --mode text --self-test
|
||||
python3 scripts/check_include_closure.py --mode both --compiler clang++ --self-test
|
||||
python3 scripts/check_include_closure.py --mode both --self-test --require-all --expect-probes 4
|
||||
python3 scripts/check_include_closure.py --mode both --self-test --require-all --expect-probes 5
|
||||
"""
|
||||
|
||||
import argparse
|
||||
@@ -142,6 +143,32 @@ PROBES = [
|
||||
"Why": "WireLog.h:9-24 states the rule: nothing about a byte pipe needs the GL "
|
||||
"frontend's umbrella header. Green today - it is the gate's own canary.",
|
||||
},
|
||||
{
|
||||
"Name": "record-core",
|
||||
"Header": "MobileGL/MG_Impl/Pipe/Verb/VerbPort.h",
|
||||
"Tu": "#include <MG_Impl/Pipe/Verb/VerbPort.h>\n"
|
||||
"#include <MG_Impl/Pipe/Verb/GpuWriteSet.h>\n"
|
||||
"#include <MG_Backend/Record/RecordVerbSink.h>\n"
|
||||
"#include <MG_Backend/Record/StagedTextureStore.h>\n"
|
||||
"#include <MG_Backend/Record/ApplyRoleBackend.h>\n"
|
||||
"#include <MG_State/GLState/BufferState/PersistentMapTracker.h>\n"
|
||||
"#include <MG_Pipe/PipeVerbSink.h>\n"
|
||||
"#include <MG_Pipe/PipeSessionFail.h>\n"
|
||||
"#include <MG_Pipe/PipeClientSeam.h>\n"
|
||||
"#include <MG_Pipe/PipeFatalFamily.h>\n",
|
||||
"Forbidden": [
|
||||
"MobileGL/MG_Remote/",
|
||||
"3rdparty/flatbuffers/",
|
||||
],
|
||||
"Allow": [],
|
||||
"TextLimits": {},
|
||||
"Why": "P13 W5: the record arm runs in a library without a transport (the FCL-embedded "
|
||||
"build), so the record core - the verb port, the record verb sink, the staged "
|
||||
"stores, the persistent-map tracker and the MG_Pipe seams they die and latch "
|
||||
"through - may not reach MG_Remote or the wire's serializer even under an #if; "
|
||||
"the seams (PipeSessionFail.h, PipeClientSeam.h, ApplyRoleBackend.h) are the "
|
||||
"only way across.",
|
||||
},
|
||||
]
|
||||
|
||||
# Deleting a probe must be red, not quietly green.
|
||||
|
||||
Reference in New Issue
Block a user