diff --git a/MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp b/MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp index 518eb5fb..36709103 100644 --- a/MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp +++ b/MobileGL/MG_Backend/DirectGLES/DirectGLES.cpp @@ -28,9 +28,13 @@ // The draw path's attribute-values sync reads Archive->Link, so this TU needs it complete - // Managers.cpp already includes it for ProgramArchiveSource, which is the same reason. #include -#if MOBILEGL_BUILD_DISAGGREGATED +#if MOBILEGL_BUILD_RECORD_ARM // P5c (tx): §1's server-side per-level extent derivation, for GenerateMipmap's shape reads. #include +// The record arm's deaths and latches (MGPipeRecordFail / MGPipeRecordLatch), in every build. +#include +#endif +#if MOBILEGL_BUILD_DISAGGREGATED // Shared images: the registry the EGLImages are built from (SharedImageImpl below). #include // Device loss ends the session through MG_Pipe's latch seam (LatchIfDeviceLost). diff --git a/MobileGL/MG_Backend/DirectGLES/Managers.cpp b/MobileGL/MG_Backend/DirectGLES/Managers.cpp index 2db3c02c..44c065dc 100644 --- a/MobileGL/MG_Backend/DirectGLES/Managers.cpp +++ b/MobileGL/MG_Backend/DirectGLES/Managers.cpp @@ -18,11 +18,13 @@ // needs only the name - the deleter is captured where the archive is constructed - but the // program build reads through it, so the one translation unit that does needs the whole type. #include -#if MOBILEGL_BUILD_DISAGGREGATED +#if MOBILEGL_BUILD_RECORD_ARM // R-11's server-owned staging copy. Header-only and package v1's; see its own header block for // why GLESBufferResource does not simply gain a member. #include #include +#endif +#if MOBILEGL_BUILD_DISAGGREGATED #include // P5c (ct): object_death's producer (CONTRACT-P5C.md §5.2) - the death notice's split arm // emits the record through the client's emit helper instead of hopping a stack struct to the diff --git a/MobileGL/MG_Backend/DirectGLES/Managers.h b/MobileGL/MG_Backend/DirectGLES/Managers.h index c7cfd0b0..47039c62 100644 --- a/MobileGL/MG_Backend/DirectGLES/Managers.h +++ b/MobileGL/MG_Backend/DirectGLES/Managers.h @@ -30,6 +30,8 @@ // so a forward declaration would not do. Push-only, like everything else P4a adds to this // header, so the pull build's include graph is unchanged (D-P). #include +// P13 W5: the record arm's deaths (the slot tables' handle refusals below), in every build. +#include namespace MobileGL::MG_Backend::DirectGLES { String EmulateBaseInstanceInVertexShader(String source, GLenum shaderType); @@ -477,8 +479,8 @@ namespace MobileGL::MG_Backend::DirectGLES { if (MG_Pipe::MGPipeHandleIsNull(handle)) return nullptr; if (handle.Slot >= SlotTable::kMaxHandleSlot) { #if MOBILEGL_BUILD_RECORD_ARM - MG_Pipe::MGPipeSessionFail( // @Ph-declined (ID-P7-1): PH-2 stays Fatal, CONTRACT-P7 §12 - MG_Pipe::MGPipeFatalFamily::ProtocolCorruption, + MG_Pipe::MGPipeRecordFail( // @Ph-declined (ID-P7-1): PH-2 stays Fatal, CONTRACT-P7 §12 + MG_Pipe::MGFatalFamily::ProtocolCorruption, "MGPipe: Fatal{ProtocolCorruption, \"BackendSlotTable.HandleSlot\"} - " "GetOrCreateByHandle named slot %u, past this table's %u bound", handle.Slot, SlotTable::kMaxHandleSlot); @@ -489,8 +491,8 @@ namespace MobileGL::MG_Backend::DirectGLES { const Uint32 liveGen = m_slotTables.LiveGenAt(handle.Slot); if (liveGen != 0 && liveGen > handle.Gen) { #if MOBILEGL_BUILD_RECORD_ARM - MG_Pipe::MGPipeSessionFail( // @Ph-declined (ID-P7-1): PH-2 stays Fatal, CONTRACT-P7 §12 - MG_Pipe::MGPipeFatalFamily::ProtocolCorruption, + MG_Pipe::MGPipeRecordFail( // @Ph-declined (ID-P7-1): PH-2 stays Fatal, CONTRACT-P7 §12 + MG_Pipe::MGFatalFamily::ProtocolCorruption, "MGPipe: Fatal{ProtocolCorruption, \"BackendSlotTable.Generation\"} - " "GetOrCreateByHandle named generation %u at slot %u, behind live generation %u", handle.Gen, handle.Slot, liveGen); diff --git a/MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferManager.cpp b/MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferManager.cpp index 9f377d71..92f48ca8 100644 --- a/MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferManager.cpp +++ b/MobileGL/MG_Backend/DirectVulkan/Renderer/VkBufferManager.cpp @@ -12,7 +12,7 @@ #include "VulkanRenderer.h" #include "MG_Util/Metrics/PipeStats.h" -#if MOBILEGL_BUILD_DISAGGREGATED +#if MOBILEGL_BUILD_RECORD_ARM #include "MG_Pipe/MGPipeCallbacks.h" #include "MG_Pipe/PipeApply.h" #include diff --git a/MobileGL/MG_Backend/DirectVulkan/Renderer/VkTextureManager.cpp b/MobileGL/MG_Backend/DirectVulkan/Renderer/VkTextureManager.cpp index 0a733c35..7a4c68c2 100644 --- a/MobileGL/MG_Backend/DirectVulkan/Renderer/VkTextureManager.cpp +++ b/MobileGL/MG_Backend/DirectVulkan/Renderer/VkTextureManager.cpp @@ -18,16 +18,18 @@ #include "MG_Util/Metrics/PipeStats.h" #include -#if MOBILEGL_BUILD_DISAGGREGATED +#if MOBILEGL_BUILD_RECORD_ARM // P5f (fm): the handle-keyed texture arm's two sources - the applier's resource records // (shape) and the server's staged-texture store (texels). #include #include -// Shared images: a texture whose level 0 is a server-allocated AHardwareBuffer. -#include #include "../DirectVulkan.h" // P7 wave 2 package B3: rule I's tally for the silent exits on this file's wire arm. #include "WireDeclineTally.h" +#endif +#if MOBILEGL_BUILD_DISAGGREGATED +// Shared images: a texture whose level 0 is a server-allocated AHardwareBuffer. +#include #if defined(__ANDROID__) #include #endif diff --git a/MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp b/MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp index 863e3594..74fa315d 100644 --- a/MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp +++ b/MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp @@ -42,15 +42,12 @@ #include "MG_Util/SelfTest/PrimitivesGeneratedNoXfbProbe.h" #include "MG_Util/Texture/PixelStoreProcessor.h" #include -#if MOBILEGL_BUILD_DISAGGREGATED +#if MOBILEGL_BUILD_RECORD_ARM // P7 wave 0: the seam WireFramebuffer.inc's MagmaWireFatal and WireDraw.inc's // WireBufferLegacyFatal die through. Declared by MG_Pipe on purpose - see PipeSessionFail.h. #include // P5c (T5 / tx): the server's staged-texture shadow GenerateMipmap defines its chain on. #include -#include -// Shared images: the present side resolves the image it imports (WireSharedImage.inc). -#include // P5c (G6): the named-blit arm's endpoint resolution runs inside the frontend-keyed scope. #include // P7 wave 2 package B3: rule I's tally for WireDraw.inc's silent draw drops. @@ -59,6 +56,11 @@ #include "WireDepthResolveArm.h" #include "WireDepthResolveProbe.h" #endif +#if MOBILEGL_BUILD_DISAGGREGATED +#include +// Shared images: the present side resolves the image it imports (WireSharedImage.inc). +#include +#endif #include #include #include diff --git a/MobileGL/MG_Pipe/PipeApply.cpp b/MobileGL/MG_Pipe/PipeApply.cpp index ca6315e7..99b8e32c 100644 --- a/MobileGL/MG_Pipe/PipeApply.cpp +++ b/MobileGL/MG_Pipe/PipeApply.cpp @@ -49,9 +49,11 @@ #include #include #include -#include #include #endif +#if MOBILEGL_BUILD_RECORD_ARM +#include +#endif #include #include