@forgeax/engine-render 0.1.26 → 0.1.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/README.md +215 -0
  2. package/dist/assembly/dynamic-geometry-host.d.ts +31 -0
  3. package/dist/assembly/dynamic-geometry-host.d.ts.map +1 -0
  4. package/dist/assembly/host-contract.d.ts +11 -0
  5. package/dist/assembly/host-contract.d.ts.map +1 -1
  6. package/dist/assembly/renderer-facade.d.ts.map +1 -1
  7. package/dist/assembly/webgpu-renderer.d.ts.map +1 -1
  8. package/dist/authoring.mjs +2 -2
  9. package/dist/{chunk-FJ6P52EE.mjs → chunk-ILQ5MEZF.mjs} +3 -17
  10. package/dist/chunk-ILQ5MEZF.mjs.map +1 -0
  11. package/dist/{chunk-HKXTW355.mjs → chunk-IQMKJLNU.mjs} +3 -3
  12. package/dist/{chunk-HKXTW355.mjs.map → chunk-IQMKJLNU.mjs.map} +1 -1
  13. package/dist/{chunk-KM2NOX2I.mjs → chunk-J52NMQKR.mjs} +462 -6
  14. package/dist/chunk-J52NMQKR.mjs.map +1 -0
  15. package/dist/{chunk-ZZ4YQ474.mjs → chunk-J6KACNOH.mjs} +2 -2
  16. package/dist/{chunk-ZZ4YQ474.mjs.map → chunk-J6KACNOH.mjs.map} +1 -1
  17. package/dist/{chunk-ADHHVYLW.mjs → chunk-JAASCMXA.mjs} +3 -3
  18. package/dist/{chunk-ADHHVYLW.mjs.map → chunk-JAASCMXA.mjs.map} +1 -1
  19. package/dist/{chunk-TMIASV2N.mjs → chunk-MBU4ZVE7.mjs} +20 -12
  20. package/dist/chunk-MBU4ZVE7.mjs.map +1 -0
  21. package/dist/{chunk-E34VL5VI.mjs → chunk-MYJ5RPJO.mjs} +3 -3
  22. package/dist/{chunk-E34VL5VI.mjs.map → chunk-MYJ5RPJO.mjs.map} +1 -1
  23. package/dist/{chunk-JDWARUOI.mjs → chunk-RBDBZ5R7.mjs} +17 -3
  24. package/dist/chunk-RBDBZ5R7.mjs.map +1 -0
  25. package/dist/{chunk-YUQXSEHG.mjs → chunk-VSL23LZE.mjs} +26 -12
  26. package/dist/chunk-VSL23LZE.mjs.map +1 -0
  27. package/dist/construct-renderer.mjs +862 -106
  28. package/dist/construct-renderer.mjs.map +1 -1
  29. package/dist/device/gpu-residency.d.ts +10 -5
  30. package/dist/device/gpu-residency.d.ts.map +1 -1
  31. package/dist/device/mesh-residency-lifetime.d.ts +21 -0
  32. package/dist/device/mesh-residency-lifetime.d.ts.map +1 -0
  33. package/dist/dynamic-geometry.d.ts +125 -0
  34. package/dist/dynamic-geometry.d.ts.map +1 -0
  35. package/dist/index.d.ts +3 -0
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.mjs +7 -6
  38. package/dist/index.mjs.map +1 -1
  39. package/dist/internal.mjs +7 -7
  40. package/dist/record/frame.d.ts +1 -1
  41. package/dist/record/frame.d.ts.map +1 -1
  42. package/dist/record/main-pass-geometry.d.ts.map +1 -1
  43. package/dist/record/render-context.d.ts +2 -0
  44. package/dist/record/render-context.d.ts.map +1 -1
  45. package/dist/record/typed-frame-graph.d.ts.map +1 -1
  46. package/dist/render-contract.d.ts +12 -0
  47. package/dist/render-contract.d.ts.map +1 -1
  48. package/dist/render-system-extract-tail.d.ts.map +1 -1
  49. package/dist/render-system-extract.d.ts +6 -0
  50. package/dist/render-system-extract.d.ts.map +1 -1
  51. package/dist/render-system.d.ts +7 -0
  52. package/dist/render-system.d.ts.map +1 -1
  53. package/dist/temporal/index.mjs +4 -4
  54. package/package.json +20 -20
  55. package/src/__tests__/dynamic-geometry-host.unit.test.ts +1123 -0
  56. package/src/__tests__/dynamic-geometry.unit.test.ts +233 -0
  57. package/src/__tests__/factory-contract.integration.test.ts +6 -14
  58. package/src/__tests__/mesh-submission-lifetime.unit.test.ts +53 -0
  59. package/src/__tests__/renderer-factory-material-contract.unit.test.ts +1 -1
  60. package/src/assembly/dynamic-geometry-host.ts +839 -0
  61. package/src/assembly/host-contract.ts +26 -0
  62. package/src/assembly/renderer-facade.ts +17 -0
  63. package/src/assembly/webgpu-renderer.ts +49 -2
  64. package/src/components/sprite-animation.ts +1 -1
  65. package/src/device/gpu-residency.ts +62 -62
  66. package/src/device/mesh-residency-lifetime.ts +73 -0
  67. package/src/dynamic-geometry.ts +736 -0
  68. package/src/index.ts +16 -0
  69. package/src/record/__tests__/standard-pbr-ubo-layout.unit.test.ts +68 -1
  70. package/src/record/frame.ts +2 -0
  71. package/src/record/main-pass-geometry.ts +13 -4
  72. package/src/record/main-pass-sprite-draws.ts +2 -0
  73. package/src/record/render-context.ts +2 -0
  74. package/src/record/typed-frame-graph.ts +2 -9
  75. package/src/render-contract.ts +24 -0
  76. package/src/render-system-extract-tail.ts +3 -2
  77. package/src/render-system-extract.ts +30 -1
  78. package/src/render-system.ts +42 -0
  79. package/dist/chunk-FJ6P52EE.mjs.map +0 -1
  80. package/dist/chunk-JDWARUOI.mjs.map +0 -1
  81. package/dist/chunk-KM2NOX2I.mjs.map +0 -1
  82. package/dist/chunk-TMIASV2N.mjs.map +0 -1
  83. package/dist/chunk-YUQXSEHG.mjs.map +0 -1
@@ -1,3 +1,4 @@
1
+ import { type MeshResidencyLease } from './mesh-residency-lifetime';
1
2
  import { type MipmapEncoderWork, type MipmapShaderModuleFactory } from '@forgeax/engine-assets-runtime';
2
3
  import type { World } from '@forgeax/engine-ecs';
3
4
  import { type VertexLayoutProjection } from '@forgeax/engine-geometry';
@@ -128,6 +129,12 @@ export declare class GpuResidencyCache {
128
129
  private readonly cubemapGpuHandles;
129
130
  private readonly cubemapIdempotentMap;
130
131
  private readonly meshGpuHandles;
132
+ private readonly meshLifetimes;
133
+ private readonly retiredMeshes;
134
+ private meshLifetime;
135
+ /** All resident entries conservatively cover main, shadow and cached GPU-driven draws. */
136
+ trackMeshSubmission(completed: Promise<unknown>): void;
137
+ private retireMeshEntry;
131
138
  /**
132
139
  * Compose a cache key from the raw handle slot and its owning World. The
133
140
  * draw-time world index is only a position in one frame's `worlds[]`; it is
@@ -286,11 +293,9 @@ export declare class GpuResidencyCache {
286
293
  * as the canonical "mesh asset has GPU residency" probe.
287
294
  */
288
295
  getMeshGpuHandles(handle: Handle<'MeshAsset', 'shared'>, worldId?: World | number): MeshGpuHandles | undefined;
289
- /**
290
- * Drop one mutable shared mesh's GPU copy after ECS publishes `markChanged`.
291
- * The next record pass resolves the same POD and rebuilds residency through
292
- * the normal pull path, so ECS remains the payload authority.
293
- */
296
+ /** Candidate leases retain the concrete allocation even after cache invalidation. */
297
+ retainMeshResidency(handle: Handle<'MeshAsset', 'shared'>, worldId?: World | number): MeshResidencyLease | undefined;
298
+ /** In-place author changes immediately miss the cache; old submissions keep their allocation. */
294
299
  invalidateMesh(handle: number, worldId?: World | number): void;
295
300
  /**
296
301
  * Pull-model residency: build the GPU resource for `handle` from the
@@ -1 +1 @@
1
- {"version":3,"file":"gpu-residency.d.ts","sourceRoot":"","sources":["../../src/device/gpu-residency.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gpu-residency.d.ts","sourceRoot":"","sources":["../../src/device/gpu-residency.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /** A lease captures one GPU allocation, never a reusable World handle slot. */
2
+ export interface MeshResidencyLease {
3
+ track(completed: Promise<unknown>): void;
4
+ release(evict: boolean): Promise<void> | undefined;
5
+ }
6
+ /** Shared candidates and queue submissions have one allocation lifetime owner. */
7
+ export declare class MeshResidencyLifetime {
8
+ private destroy;
9
+ private leases;
10
+ private retired;
11
+ private eviction;
12
+ private readonly submissions;
13
+ private readonly waiters;
14
+ constructor(destroy: (() => void) | undefined);
15
+ get owners(): number;
16
+ retain(evict: () => void): MeshResidencyLease;
17
+ track(completed: Promise<unknown>): void;
18
+ retire(): void;
19
+ private flush;
20
+ }
21
+ //# sourceMappingURL=mesh-residency-lifetime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mesh-residency-lifetime.d.ts","sourceRoot":"","sources":["../../src/device/mesh-residency-lifetime.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACzC,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;CACpD;AAED,kFAAkF;AAClF,qBAAa,qBAAqB;IAOpB,OAAO,CAAC,OAAO;IAN3B,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+B;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;gBAE7B,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS;IAErD,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,IAAI,GAAG,kBAAkB;IAsB7C,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI;IAUxC,MAAM,IAAI,IAAI;IAKd,OAAO,CAAC,KAAK;CAed"}
@@ -0,0 +1,125 @@
1
+ import type { Handle, MeshAsset } from '@forgeax/engine-types';
2
+ import { type Result } from '@forgeax/engine-types';
3
+ /** A standard MeshAsset candidate prepared for one attached World generation. */
4
+ export interface DynamicGeometryPrepareInput {
5
+ readonly world: object;
6
+ /** Live ECS entity carrying MeshFilter + MeshRenderer on the attached World. */
7
+ readonly entity?: number;
8
+ /** Optional derived-physics entity whose fixed-step publication gates draw. */
9
+ readonly physicsEntity?: number;
10
+ readonly mesh: MeshAsset;
11
+ /** Existing World.sharedRefs handle whose standard GPU residency is prepared. */
12
+ readonly meshHandle?: Handle<'MeshAsset', 'shared'>;
13
+ readonly revision: number;
14
+ /** Material identity is a consumer fact; MaterialAsset stays in the World. */
15
+ readonly materialIdentity?: string;
16
+ /** Topology changes invalidate motion/history consumers. */
17
+ readonly topologyRevision?: number;
18
+ /** Captured by the Renderer host from the World FixedTime resource. */
19
+ readonly fixedStep?: number;
20
+ }
21
+ /** Explicit ECS/fixed-step ordering proof used by Renderer admission. */
22
+ export interface DynamicGeometryOrdering {
23
+ readonly world: object;
24
+ readonly fixedStep: number;
25
+ }
26
+ export type DynamicGeometryCandidateState = 'prepared' | 'accepted' | 'published' | 'cancelled' | 'retired';
27
+ export interface DynamicGeometryCandidate {
28
+ readonly candidateId: string;
29
+ readonly generation: number;
30
+ readonly owner: object;
31
+ readonly world: object;
32
+ readonly entity?: number;
33
+ readonly physicsEntity?: number;
34
+ /** False when the pure lifecycle was used without a shared MeshAsset handle. */
35
+ readonly gpuReady: boolean;
36
+ /** CPU/GPU geometry bytes reserved by this candidate budget. */
37
+ readonly meshBytes: number;
38
+ readonly revision: number;
39
+ readonly topologyRevision: number;
40
+ readonly materialIdentity?: string;
41
+ readonly meshHandle?: Handle<'MeshAsset', 'shared'>;
42
+ readonly fixedStep?: number;
43
+ readonly mesh: MeshAsset;
44
+ readonly state: DynamicGeometryCandidateState;
45
+ }
46
+ /** Receipt that ties candidate publication to the sole Renderer FrameReceipt. */
47
+ export interface DynamicGeometryReceipt {
48
+ readonly candidateId: string;
49
+ readonly generation: number;
50
+ readonly revision: number;
51
+ readonly topologyRevision: number;
52
+ readonly fixedStep?: number;
53
+ readonly frameId: number;
54
+ readonly deviceGeneration: number;
55
+ readonly frame: {
56
+ readonly frameId: number;
57
+ readonly deviceGeneration: number;
58
+ readonly completed?: Promise<unknown>;
59
+ };
60
+ /** Whether the Renderer record stage consumed this candidate for this frame. */
61
+ readonly recordStageConsumed: boolean;
62
+ /** Actual frame fixed step; may be newer than the preparation step. */
63
+ readonly publicationFixedStep?: number;
64
+ }
65
+ export interface DynamicGeometryInspection {
66
+ readonly generation: number;
67
+ readonly prepared: number;
68
+ readonly accepted: number;
69
+ readonly published: number;
70
+ readonly retired: number;
71
+ readonly latestRevision?: number;
72
+ readonly latestFrameId?: number;
73
+ readonly historyInvalidations: number;
74
+ readonly invalidated: number;
75
+ readonly meshBytes: number;
76
+ readonly maxMeshBytes: number;
77
+ }
78
+ export type DynamicGeometryErrorCode = 'dynamic-geometry-disposed' | 'dynamic-geometry-world-not-attached' | 'dynamic-geometry-invalid' | 'dynamic-geometry-gpu-failed' | 'dynamic-geometry-gpu-not-ready' | 'dynamic-geometry-budget-exceeded' | 'dynamic-geometry-stale' | 'dynamic-geometry-generation-mismatch' | 'dynamic-geometry-candidate-not-found' | 'dynamic-geometry-candidate-state' | 'dynamic-geometry-receipt-mismatch' | 'dynamic-geometry-ordering-required';
79
+ export interface DynamicGeometryErrorDetail {
80
+ readonly code: DynamicGeometryErrorCode;
81
+ readonly candidateId?: string;
82
+ readonly revision?: number;
83
+ readonly generation?: number;
84
+ readonly actual?: unknown;
85
+ }
86
+ export declare class DynamicGeometryError extends Error {
87
+ readonly code: DynamicGeometryErrorCode;
88
+ readonly expected: string;
89
+ readonly hint: string;
90
+ readonly detail: DynamicGeometryErrorDetail;
91
+ constructor(code: DynamicGeometryErrorCode, expected: string, hint: string, detail?: Omit<DynamicGeometryErrorDetail, 'code'>);
92
+ }
93
+ /**
94
+ * A public candidate is a credential, not a mutable state object. Keep the
95
+ * owner/world check in `current` cheap, then compare every scalar admission
96
+ * fact before a caller can cancel, retire, or inspect another record by
97
+ * copying its candidate id. The renderer-owned MeshAsset copy remains the
98
+ * content source for the actual draw.
99
+ */
100
+ export declare function sameCandidateCredential(candidate: DynamicGeometryCandidate, committed: DynamicGeometryCandidate): boolean;
101
+ /**
102
+ * Renderer-owned lifecycle for standard MeshAsset candidates. It deliberately
103
+ * has no device, buffer, queue, or frame clock; the host supplies generation
104
+ * and FrameReceipt facts at the boundaries below.
105
+ */
106
+ export interface DynamicGeometryLifecycle {
107
+ prepare(input: DynamicGeometryPrepareInput, generation: number): Result<DynamicGeometryCandidate, DynamicGeometryError>;
108
+ accept(candidate: DynamicGeometryCandidate, ordering?: DynamicGeometryOrdering): Result<DynamicGeometryCandidate, DynamicGeometryError>;
109
+ cancel(candidate: DynamicGeometryCandidate, completion?: Promise<unknown>): Result<void, DynamicGeometryError>;
110
+ retire(candidate: DynamicGeometryCandidate): Result<void, DynamicGeometryError>;
111
+ /** Release the count/byte budget after receipt-bound GPU cleanup completes. */
112
+ finalizeRetirement(candidate: DynamicGeometryCandidate): Result<void, DynamicGeometryError>;
113
+ receipt(candidate: DynamicGeometryCandidate): DynamicGeometryReceipt | undefined;
114
+ publishFrame(frame: {
115
+ readonly frameId: number;
116
+ readonly deviceGeneration: number;
117
+ readonly completed?: Promise<unknown>;
118
+ }, worlds?: readonly object[], fixedStep?: number, canPublish?: (candidate: DynamicGeometryCandidate) => boolean): readonly DynamicGeometryReceipt[];
119
+ invalidateWorld(world: object, completion?: Promise<unknown>): void;
120
+ invalidateGeneration(generation: number): void;
121
+ inspect(): DynamicGeometryInspection;
122
+ dispose(): void;
123
+ }
124
+ export declare function createDynamicGeometryLifecycle(maxCandidates?: number, maxMeshBytes?: number): DynamicGeometryLifecycle;
125
+ //# sourceMappingURL=dynamic-geometry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic-geometry.d.ts","sourceRoot":"","sources":["../src/dynamic-geometry.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -28,6 +28,8 @@ export { SortKey } from './components/sort-key';
28
28
  export type { SpotLightAuthoring, SpotLightProjector } from './components/spot-light';
29
29
  export { SpotLight } from './components/spot-light';
30
30
  export { Visibility, type VisibilityState, VisibilityStateValue, visibilityStateFromU32, } from './components/visibility';
31
+ export type { DynamicGeometryCandidate, DynamicGeometryCandidateState, DynamicGeometryErrorCode, DynamicGeometryErrorDetail, DynamicGeometryInspection, DynamicGeometryLifecycle, DynamicGeometryOrdering, DynamicGeometryPrepareInput, DynamicGeometryReceipt, } from './dynamic-geometry';
32
+ export { createDynamicGeometryLifecycle, DynamicGeometryError, } from './dynamic-geometry';
31
33
  export type { EnvironmentInspection, EnvironmentInspectionFailure, EnvironmentInspectionGeneration, EnvironmentInspectionStatus, } from './environment/inspection';
32
34
  export type { ReflectionProbeBudgetExceededDetail, RenderError, RenderErrorCode, RenderIntentInvalidDetail, RenderTargetCapabilityMissingDetail, RenderTargetDescriptorInvalidDetail, RenderTargetOperationFailedDetail, RenderTargetStateInvalidDetail, SceneDataUnavailableDetail, SceneDataUnavailableReason, } from './errors/render';
33
35
  export { AtmosphereInvalidParameterError, EnvironmentGenerationFailedError, EnvironmentSourceConflictError, FogCardinalityError, OwnerStageFailedError, SceneDataUnavailableError, TaaCapsInsufficientError, } from './errors/render';
@@ -73,6 +75,7 @@ export { SHADOW_ATLAS_DEFAULT_FACE_SIZE, SHADOW_ATLAS_DEFAULT_LAYERS, ShadowAtla
73
75
  export type { SsrAdmissionBudget, SsrAdmissionFailure, SsrAdmissionIdentity, SsrAdmissionInput, SsrAdmissionResult, SsrAdmissionWork, SsrDependenciesInspection, SsrFormatReceipt, SsrReflectionFallbackReceipt, SsrTemporalReceipt, } from './ssr/admission';
74
76
  export { admitSsrM0, projectSsrDependencies, resolveSsrAdmissionGeneration, SSR_FORMAT_PROFILE, SSR_FORMAT_STAGES, zeroSsrAdmissionWork, } from './ssr/admission';
75
77
  export { composeSsrReflection, type SsrCompositionInput, type SsrCompositionInputError, type SsrCompositionResult, type SsrReflectionColor, } from './ssr/composition';
78
+ export { getActiveCamera, setActiveCamera } from './systems/active-camera';
76
79
  export type { RenderTarget, RenderTargetAdmissionLimits, RenderTargetDepthFormat, RenderTargetDescriptor, RenderTargetFormat, RenderTargetMipLevels, RenderTargetReadbackData, RenderTargetReadbackRequest, RenderTargetReadbackTicket, RenderTargetSampleCount, RenderTargetShape, RenderTargetTextureAspect, RenderTargetTextureSource, RenderTargetTextureSourceOptions, } from './targets/contracts';
77
80
  export type { TemporalInspection, TemporalResourceInspection } from './temporal/inspection';
78
81
  export { SCENE_DATA_TEMPORAL_V1_DESCRIPTOR, SCENE_DATA_TEMPORAL_V1_SCHEMA, type SceneDataLane, type SceneDataSchemaId, type SceneDataTarget, type SceneDataTemporalV1Descriptor, } from './temporal/scene-data';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -1,10 +1,11 @@
1
- export { DEFAULT_REFLECTION_PROBE_LIMITS, LOD_OCCLUSION_INSPECTION_MAX_BYTES, LOD_OCCLUSION_INSPECTION_SCHEMA, ReflectionProbeProjection, SSR_FORMAT_PROFILE, SSR_FORMAT_STAGES, admitPointsLines, admitReflectionProbe, admitSsrM0, advanceProbeFilter, boxProjectReflectionDirection, buildCubeCameraFaceViews, buildReflectionProbeTable, commitProbeFilterStep, consumeLodOcclusionInspection, createProbeFilterState, estimateReflectionProbeBytes, inspectLodOcclusion, inspectPointShadow, inspectReflectionFallback, inspectVolumetricFog, probeFilterIsSteady, projectSsrDependencies, reflectionProbeTableBytes, resolveSsrAdmissionGeneration, selectReflectionProbe, serializeLodOcclusionInspection, validateReflectionProbeInput, zeroSsrAdmissionWork } from './chunk-KM2NOX2I.mjs';
2
- import { Atmosphere, Camera, DirectionalLight, Instances, Layer, LightProbe, MeshFilter, MeshRenderer, PointLight, PointLightShadow, Points, Lines, PostProcessParams, RectAreaLight, SceneInstance, SkyboxBackground, Skylight, SortKey, SpotLight, Visibility } from './chunk-ADHHVYLW.mjs';
3
- export { ANTIALIAS_FXAA, ANTIALIAS_MSAA, ANTIALIAS_NONE, ANTIALIAS_TAA, Atmosphere, BLOOM_DISABLED, BLOOM_ENABLED, CAMERA_PROJECTION_ORTHOGRAPHIC, CAMERA_PROJECTION_PERSPECTIVE, CUBE_CAMERA_FACE_ORDER, CUBE_CAMERA_UPDATE_CONTINUOUS, CUBE_CAMERA_UPDATE_ONCE, CUBE_CAMERA_UPDATE_ON_DEMAND, Camera, CubeCamera, DirectionalLight, DirectionalShadowFilterValue, Fog, Instances, Layer, LightProbe, Lines, MeshFilter, MeshRenderer, MotionBlur, PointLight, PointLightShadow, PointShapeValue, Points, PostProcessParams, REFLECTION_PROBE_UPDATE_CONTINUOUS, REFLECTION_PROBE_UPDATE_ONCE, REFLECTION_PROBE_UPDATE_ON_CHANGE, RectAreaLight, ReflectionProbe, SKYBOX_MODE_CUBEMAP, SceneInstance, SkyboxBackground, Skylight, SortKey, SpotLight, TONEMAP_ACES_FILMIC, TONEMAP_AGX, TONEMAP_CINEON, TONEMAP_LINEAR, TONEMAP_NEUTRAL, TONEMAP_NONE, TONEMAP_REINHARD, TONEMAP_REINHARD_EXTENDED, Visibility, VisibilityStateValue, VolumetricFog, cameraProjectionFromF32, computeInvRangeSquared, cubeCameraUpdateIntentFromF32, cubeCameraUpdateIntentToF32, degToCos, directionalShadowQualityFromF32, extractVolumetricFog, hasVolumetricFogCapability, orthographic, perspective, pointShapeFromU32, projectMeshMaterialBindingObservation, reflectionProbeUpdateIntentFromF32, reflectionProbeUpdateIntentToF32, resolveIntegratedVolumeConsumer, resolveSelectedVolumetricLight, resolveVisibility, resolveVolumetricFogLightPair, summarizeMeshMaterialBindings, validateDirection, validateDirectionalLightData, validateLightProbeData, validatePointLightData, validatePointLightShadowData, validateRectAreaLightData, validateSpotLightData, validateVolumetricFog, visibilityStateFromU32 } from './chunk-ADHHVYLW.mjs';
4
- import { SpriteAnimation, SpriteInstances, SpriteRegionOverride, TileLayer, Tilemap } from './chunk-JDWARUOI.mjs';
5
- export { DEFAULT_STANDARD_PROFILE, REFLECTION_PROBE_IBL_STAGES, SCENE_DATA_TEMPORAL_V1_DESCRIPTOR, SCENE_DATA_TEMPORAL_V1_SCHEMA, beginProbeIblUpdate, createIblKernelCache, createProbeIblOutput, createSceneDataCatalog, publishProbeIblOutput, resetIblKernelCaches } from './chunk-E34VL5VI.mjs';
1
+ export { DEFAULT_REFLECTION_PROBE_LIMITS, DynamicGeometryError, LOD_OCCLUSION_INSPECTION_MAX_BYTES, LOD_OCCLUSION_INSPECTION_SCHEMA, ReflectionProbeProjection, SSR_FORMAT_PROFILE, SSR_FORMAT_STAGES, admitPointsLines, admitReflectionProbe, admitSsrM0, advanceProbeFilter, boxProjectReflectionDirection, buildCubeCameraFaceViews, buildReflectionProbeTable, commitProbeFilterStep, consumeLodOcclusionInspection, createDynamicGeometryLifecycle, createProbeFilterState, estimateReflectionProbeBytes, inspectLodOcclusion, inspectPointShadow, inspectReflectionFallback, inspectVolumetricFog, probeFilterIsSteady, projectSsrDependencies, reflectionProbeTableBytes, resolveSsrAdmissionGeneration, selectReflectionProbe, serializeLodOcclusionInspection, validateReflectionProbeInput, zeroSsrAdmissionWork } from './chunk-J52NMQKR.mjs';
2
+ import { Atmosphere, Camera, DirectionalLight, Instances, Layer, LightProbe, MeshFilter, MeshRenderer, PointLight, PointLightShadow, Points, Lines, PostProcessParams, RectAreaLight, SceneInstance, SkyboxBackground, Skylight, SortKey, SpotLight, Visibility } from './chunk-JAASCMXA.mjs';
3
+ export { ANTIALIAS_FXAA, ANTIALIAS_MSAA, ANTIALIAS_NONE, ANTIALIAS_TAA, Atmosphere, BLOOM_DISABLED, BLOOM_ENABLED, CAMERA_PROJECTION_ORTHOGRAPHIC, CAMERA_PROJECTION_PERSPECTIVE, CUBE_CAMERA_FACE_ORDER, CUBE_CAMERA_UPDATE_CONTINUOUS, CUBE_CAMERA_UPDATE_ONCE, CUBE_CAMERA_UPDATE_ON_DEMAND, Camera, CubeCamera, DirectionalLight, DirectionalShadowFilterValue, Fog, Instances, Layer, LightProbe, Lines, MeshFilter, MeshRenderer, MotionBlur, PointLight, PointLightShadow, PointShapeValue, Points, PostProcessParams, REFLECTION_PROBE_UPDATE_CONTINUOUS, REFLECTION_PROBE_UPDATE_ONCE, REFLECTION_PROBE_UPDATE_ON_CHANGE, RectAreaLight, ReflectionProbe, SKYBOX_MODE_CUBEMAP, SceneInstance, SkyboxBackground, Skylight, SortKey, SpotLight, TONEMAP_ACES_FILMIC, TONEMAP_AGX, TONEMAP_CINEON, TONEMAP_LINEAR, TONEMAP_NEUTRAL, TONEMAP_NONE, TONEMAP_REINHARD, TONEMAP_REINHARD_EXTENDED, Visibility, VisibilityStateValue, VolumetricFog, cameraProjectionFromF32, computeInvRangeSquared, cubeCameraUpdateIntentFromF32, cubeCameraUpdateIntentToF32, degToCos, directionalShadowQualityFromF32, extractVolumetricFog, hasVolumetricFogCapability, orthographic, perspective, pointShapeFromU32, projectMeshMaterialBindingObservation, reflectionProbeUpdateIntentFromF32, reflectionProbeUpdateIntentToF32, resolveIntegratedVolumeConsumer, resolveSelectedVolumetricLight, resolveVisibility, resolveVolumetricFogLightPair, summarizeMeshMaterialBindings, validateDirection, validateDirectionalLightData, validateLightProbeData, validatePointLightData, validatePointLightShadowData, validateRectAreaLightData, validateSpotLightData, validateVolumetricFog, visibilityStateFromU32 } from './chunk-JAASCMXA.mjs';
4
+ import { SpriteAnimation, SpriteInstances, SpriteRegionOverride, TileLayer, Tilemap } from './chunk-RBDBZ5R7.mjs';
5
+ export { getActiveCamera, setActiveCamera } from './chunk-RBDBZ5R7.mjs';
6
+ export { DEFAULT_STANDARD_PROFILE, REFLECTION_PROBE_IBL_STAGES, SCENE_DATA_TEMPORAL_V1_DESCRIPTOR, SCENE_DATA_TEMPORAL_V1_SCHEMA, beginProbeIblUpdate, createIblKernelCache, createProbeIblOutput, createSceneDataCatalog, publishProbeIblOutput, resetIblKernelCaches } from './chunk-MYJ5RPJO.mjs';
6
7
  export { MaterialTransmissionContractError, Materials, srgb } from './chunk-GF523LHF.mjs';
7
- export { AtmosphereInvalidParameterError, EnvironmentGenerationFailedError, EnvironmentSourceConflictError, FogCardinalityError, OwnerStageFailedError, RENDER_PHASE_CATALOG, SHADOW_ATLAS_DEFAULT_FACE_SIZE, SHADOW_ATLAS_DEFAULT_LAYERS, SceneDataUnavailableError, ShadowAtlas, TaaCapsInsufficientError } from './chunk-ZZ4YQ474.mjs';
8
+ export { AtmosphereInvalidParameterError, EnvironmentGenerationFailedError, EnvironmentSourceConflictError, FogCardinalityError, OwnerStageFailedError, RENDER_PHASE_CATALOG, SHADOW_ATLAS_DEFAULT_FACE_SIZE, SHADOW_ATLAS_DEFAULT_LAYERS, SceneDataUnavailableError, ShadowAtlas, TaaCapsInsufficientError } from './chunk-J6KACNOH.mjs';
8
9
  import { validateCookedMaterialRecord } from '@forgeax/engine-pack';
9
10
  import { ok, err, MATERIAL_TEXTURE_SLOTS } from '@forgeax/engine-types';
10
11
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/assets/asset-decoders.ts","../src/plugin.ts","../src/scene/visibility/gpu-frame-timing.ts","../src/ssr/composition.ts"],"names":["record","invalid","err","ok"],"mappings":"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","file":"index.mjs","sourcesContent":["import { validateCookedMaterialRecord } from '@forgeax/engine-pack';\nimport {\n type AssetDecoderContribution,\n type AssetKind,\n type AssetLoadError,\n err,\n MATERIAL_TEXTURE_SLOTS,\n type MaterialAsset,\n type MaterialChildAsset,\n type MaterialRootAsset,\n ok,\n type RenderPipelineAsset,\n type SamplerAsset,\n} from '@forgeax/engine-types';\n\nfunction invalid(guid: string, expected: string, reason: string) {\n return err({\n code: 'asset-package-invalid' as const,\n expected,\n hint: 'recook the render asset and publish its complete cooked payload',\n detail: { guid, reason },\n });\n}\n\nfunction record(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction validMaterial(value: unknown): value is MaterialAsset {\n if (!record(value) || value.kind !== 'material') return false;\n if (value.cooked !== undefined && !validateCookedMaterialRecord(value.cooked).ok) {\n return false;\n }\n if (value.passes !== undefined && !Array.isArray(value.passes)) return false;\n if (value.parameters !== undefined && !Array.isArray(value.parameters)) return false;\n if (\n value.parent !== undefined &&\n ['colorSpace', 'passes', 'parameters'].some((field) => Object.hasOwn(value, field))\n ) {\n return false;\n }\n return value.values === undefined || record(value.values);\n}\n\nfunction resolveMaterialWireRef(\n value: unknown,\n refs: readonly string[],\n field: string,\n guid: string,\n): ReturnType<typeof ok<string | number>> | ReturnType<typeof err<AssetLoadError>> {\n if (typeof value !== 'number') return ok(value as string | number);\n if (!Number.isSafeInteger(value) || value < 0 || refs[value] === undefined) {\n return err<AssetLoadError>({\n code: 'asset-package-invalid',\n expected: `${field} to reference a GUID through the material Pack refs[] table`,\n hint: 'recook the material so every texture or sampler ref has a matching refs[] entry',\n detail: { guid, reason: `${field} refs[${value}] is out of bounds` },\n });\n }\n return ok(refs[value] as string);\n}\n\nfunction resolveMaterialWireRefs(\n value: MaterialAsset,\n refs: readonly string[],\n guid: string,\n): ReturnType<typeof ok<MaterialAsset>> | ReturnType<typeof err<AssetLoadError>> {\n if (refs.length === 0) return ok(value);\n\n let changed = false;\n const wire = value as unknown as { readonly parent?: unknown };\n let parent = wire.parent;\n if (typeof parent === 'number') {\n const resolved = resolveMaterialWireRef(parent, refs, 'parent', guid);\n if (!resolved.ok) return resolved;\n parent = resolved.value;\n changed = true;\n }\n\n if (value.values === undefined) {\n if (!changed) return ok(value);\n if (parent !== undefined) {\n const child = value as MaterialChildAsset;\n return ok({ ...child, parent: parent as unknown as MaterialChildAsset['parent'] });\n }\n return ok(value);\n }\n\n const textureFields = new Set(\n value.parameters === undefined\n ? MATERIAL_TEXTURE_SLOTS\n : value.parameters\n .filter((parameter) => parameter.type === 'texture' || parameter.type === 'texture_cube')\n .map((parameter) => parameter.name),\n );\n const values = { ...value.values };\n for (const [field, raw] of Object.entries(values)) {\n if (typeof raw === 'number' && textureFields.has(field)) {\n const resolved = resolveMaterialWireRef(raw, refs, field, guid);\n if (!resolved.ok) return resolved;\n values[field] = resolved.value as NonNullable<MaterialAsset['values']>[string];\n changed = true;\n continue;\n }\n if (!record(raw)) continue;\n const rawRecord = raw as unknown as Record<string, unknown>;\n let rewritten: Record<string, unknown> | undefined;\n for (const key of ['texture', 'sampler'] as const) {\n if (!(key in rawRecord)) continue;\n const resolved = resolveMaterialWireRef(rawRecord[key], refs, `${field}.${key}`, guid);\n if (!resolved.ok) return resolved;\n if (resolved.value !== rawRecord[key]) {\n rewritten ??= { ...rawRecord };\n rewritten[key] = resolved.value;\n changed = true;\n }\n }\n if (rewritten !== undefined) {\n values[field] = rewritten as unknown as NonNullable<MaterialAsset['values']>[string];\n }\n }\n if (!changed) return ok(value);\n if (parent !== undefined) {\n const child = value as MaterialChildAsset;\n return ok({\n ...child,\n parent: parent as unknown as MaterialChildAsset['parent'],\n values,\n });\n }\n return ok({ ...value, values } as MaterialRootAsset);\n}\n\nexport const materialContribution: AssetDecoderContribution<MaterialAsset, 'material'> = {\n kind: { kind: 'material' } as AssetKind<MaterialAsset, 'material'>,\n consumer: 'Render MaterialScene',\n decoder: {\n async decode({ envelope }) {\n if (!validMaterial(envelope.payload)) {\n return invalid(\n envelope.guid,\n 'a material payload with cooked passes, parameters, and values',\n 'material owner validation failed',\n );\n }\n return resolveMaterialWireRefs(envelope.payload, envelope.refs, envelope.guid);\n },\n },\n};\n\nexport const samplerContribution: AssetDecoderContribution<SamplerAsset, 'sampler'> = {\n kind: { kind: 'sampler' } as AssetKind<SamplerAsset, 'sampler'>,\n consumer: 'Render DeviceScope',\n decoder: {\n async decode({ envelope }) {\n return envelope.payload.kind === 'sampler'\n ? ok(envelope.payload)\n : invalid(envelope.guid, 'a sampler payload', 'sampler owner validation failed');\n },\n },\n};\n\nexport const renderPipelineContribution: AssetDecoderContribution<\n RenderPipelineAsset,\n 'render-pipeline'\n> = {\n kind: { kind: 'render-pipeline' } as AssetKind<RenderPipelineAsset, 'render-pipeline'>,\n consumer: 'Render Pipeline',\n decoder: {\n async decode({ envelope }) {\n const payload = envelope.payload;\n return payload.kind === 'render-pipeline' && payload.pipelineId.trim().length > 0\n ? ok(payload)\n : invalid(\n envelope.guid,\n 'a render-pipeline payload with a pipelineId',\n 'render-pipeline owner validation failed',\n );\n },\n },\n};\n","import type { Component, World } from '@forgeax/engine-ecs';\nimport type { Plugin } from '@forgeax/engine-plugin';\nimport { Atmosphere } from './components/atmosphere';\nimport { Camera } from './components/camera';\nimport { DirectionalLight } from './components/directional-light';\nimport { Instances } from './components/instances';\nimport { Layer } from './components/layer';\nimport { LightProbe } from './components/light-probe';\nimport { Lines } from './components/lines';\nimport { MeshFilter } from './components/mesh-filter';\nimport { MeshRenderer } from './components/mesh-renderer';\nimport { PointLight } from './components/point-light';\nimport { PointLightShadow } from './components/point-light-shadow';\nimport { Points } from './components/points';\nimport { PostProcessParams } from './components/post-process-params';\nimport { RectAreaLight } from './components/rect-area-light';\nimport { SceneInstance } from './components/scene-instance';\nimport { SkyboxBackground } from './components/skybox-background';\nimport { Skylight } from './components/skylight';\nimport { SortKey } from './components/sort-key';\nimport { SpotLight } from './components/spot-light';\nimport { SpriteAnimation } from './components/sprite-animation';\nimport { SpriteInstances } from './components/sprite-instances';\nimport { SpriteRegionOverride } from './components/sprite-region-override';\nimport { TileLayer } from './components/tile-layer';\nimport { Tilemap } from './components/tilemap';\nimport { Visibility } from './components/visibility';\n\nconst RENDER_COMPONENTS: readonly Component[] = [\n Atmosphere,\n Camera,\n DirectionalLight,\n Instances,\n Layer,\n LightProbe,\n MeshFilter,\n MeshRenderer,\n PointLight,\n PointLightShadow,\n Points,\n Lines,\n PostProcessParams,\n RectAreaLight,\n SceneInstance,\n SkyboxBackground,\n Skylight,\n SortKey,\n SpotLight,\n SpriteAnimation,\n SpriteInstances,\n SpriteRegionOverride,\n TileLayer,\n Tilemap,\n Visibility,\n];\n\nfunction registerRenderComponents(world: World): () => void {\n const leases = RENDER_COMPONENTS.map((component) =>\n world.components.register(component).unwrap(),\n );\n return () => {\n for (let index = leases.length - 1; index >= 0; index -= 1) leases[index]?.dispose();\n };\n}\n\n/** Install the built-in render ECS vocabulary in one World. */\nexport function renderComponentsPlugin(): Plugin {\n return {\n name: 'render-components',\n inject: ['world'],\n apply(ctx) {\n ctx.effect(() => registerRenderComponents(ctx.world), 'render/components');\n },\n };\n}\n","/** Renderer-owned timestamp facts spanning one graph and one queue submit. */\n\nexport interface GpuFrameTimingProtocol {\n readonly firstMarker: 'frame.first-pass';\n readonly terminalMarker: 'occlusion.resolve-copy';\n readonly sameGraph: true;\n readonly sameSubmit: true;\n}\n\nexport interface GpuFrameTiming {\n readonly frameId: number;\n readonly deviceGeneration: number;\n readonly protocol: GpuFrameTimingProtocol;\n aborted: boolean;\n submitId: number | undefined;\n}\n\nexport interface GpuFrameTimingRecord {\n readonly firstPassTimestampNs: number;\n readonly occlusionResolveTimestampNs: number;\n readonly submitted: boolean;\n readonly graphGeneration: number;\n readonly submitId: number;\n}\n\nexport interface GpuFrameTimingSample {\n readonly frameId: number;\n readonly deviceGeneration: number;\n readonly durationUs: number;\n readonly protocol: GpuFrameTimingProtocol;\n readonly graphGeneration: number;\n readonly submitId: number;\n}\n\nexport interface GpuFrameTimingSummary {\n readonly medianUs: number;\n readonly p95Us: number;\n readonly samples: number;\n}\n\nconst PROTOCOL: GpuFrameTimingProtocol = Object.freeze({\n firstMarker: 'frame.first-pass',\n terminalMarker: 'occlusion.resolve-copy',\n sameGraph: true,\n sameSubmit: true,\n});\n\nexport function createGpuFrameTiming(input: {\n readonly frameId: number;\n readonly deviceGeneration: number;\n}): GpuFrameTiming {\n return { ...input, protocol: PROTOCOL, aborted: false, submitId: undefined };\n}\n\nexport function recordGpuFrameTiming(\n timing: GpuFrameTiming,\n record: GpuFrameTimingRecord,\n): GpuFrameTimingSample {\n if (!record.submitted) {\n timing.aborted = true;\n throw new Error('GPU frame timing requires a submitted frame');\n }\n if (timing.aborted) throw new Error('GPU frame timing cannot cross a failed submit');\n if (timing.submitId !== undefined && timing.submitId !== record.submitId) {\n throw new Error('GPU frame timing markers must share one submit');\n }\n if (\n !Number.isFinite(record.firstPassTimestampNs) ||\n !Number.isFinite(record.occlusionResolveTimestampNs)\n ) {\n throw new Error('GPU frame timing requires finite timestamps');\n }\n if (record.occlusionResolveTimestampNs < record.firstPassTimestampNs) {\n throw new Error('GPU frame timing terminal marker precedes first marker');\n }\n timing.submitId = record.submitId;\n return Object.freeze({\n frameId: timing.frameId,\n deviceGeneration: timing.deviceGeneration,\n durationUs: (record.occlusionResolveTimestampNs - record.firstPassTimestampNs) / 1_000,\n protocol: PROTOCOL,\n graphGeneration: record.graphGeneration,\n submitId: record.submitId,\n });\n}\n\nfunction nearestRank(values: readonly number[], percentile: number): number {\n const sorted = [...values].sort((left, right) => left - right);\n return sorted[Math.max(0, Math.ceil(percentile * sorted.length) - 1)] ?? 0;\n}\n\nexport function summarizeGpuFrameTiming(\n samples: readonly GpuFrameTimingSample[],\n): GpuFrameTimingSummary {\n const values = samples.map((sample) => sample.durationUs);\n return Object.freeze({\n medianUs: nearestRank(values, 0.5),\n p95Us: nearestRank(values, 0.95),\n samples: values.length,\n });\n}\n","import { err, ok, type Result } from '@forgeax/engine-types';\n\n/** Linear HDR RGB used by the M0 composition contract. */\nexport type SsrReflectionColor = readonly [number, number, number];\n\nexport interface SsrCompositionInput {\n /** Screen-hit confidence. The parent SSR consumer supplies 0..1. */\n readonly c: number;\n /** The Standard BRDF specular lobe before SSR replacement. */\n readonly baseSpecular: SsrReflectionColor;\n /** The same-source BRDF-projected screen contribution. */\n readonly screenSpecular: SsrReflectionColor;\n /** The committed producer-owned environment contribution. */\n readonly fallbackSpecular: SsrReflectionColor;\n}\n\nexport interface SsrCompositionInputError {\n readonly code: 'ssr-composition-input-invalid';\n readonly expected: string;\n readonly hint: string;\n readonly detail: Readonly<{\n readonly field: 'c' | 'baseSpecular' | 'screenSpecular' | 'fallbackSpecular';\n }>;\n}\n\nexport type SsrCompositionResult = Result<SsrReflectionColor, SsrCompositionInputError>;\n\nfunction finiteColor(value: SsrReflectionColor): boolean {\n return value.length === 3 && value.every(Number.isFinite);\n}\n\nfunction invalid(\n field: SsrCompositionInputError['detail']['field'],\n expected: string,\n): SsrCompositionResult {\n return err({\n code: 'ssr-composition-input-invalid',\n expected,\n hint: 'preserve linear HDR and the bounded SSR confidence before composing',\n detail: Object.freeze({ field }),\n });\n}\n\n/**\n * Apply the M0 reflection replacement contract without owning an SSR pass.\n *\n * `c=0` returns the base Standard specular lobe. `c=1` replaces only that\n * lobe with the same-source screen contribution, subtracting the committed\n * environment contribution once. Hi-Z traversal, history and graph wiring\n * remain owned by the parent SSR feature.\n */\nexport function composeSsrReflection(input: SsrCompositionInput): SsrCompositionResult {\n if (!Number.isFinite(input.c) || input.c < 0 || input.c > 1) {\n return invalid('c', 'a finite confidence in the inclusive range 0..1');\n }\n for (const [field, value] of [\n ['baseSpecular', input.baseSpecular],\n ['screenSpecular', input.screenSpecular],\n ['fallbackSpecular', input.fallbackSpecular],\n ] as const) {\n if (!finiteColor(value)) {\n return invalid(field, 'three finite linear HDR RGB channels');\n }\n }\n const c = input.c;\n return ok(\n Object.freeze([\n input.baseSpecular[0] + c * (input.screenSpecular[0] - input.fallbackSpecular[0]),\n input.baseSpecular[1] + c * (input.screenSpecular[1] - input.fallbackSpecular[1]),\n input.baseSpecular[2] + c * (input.screenSpecular[2] - input.fallbackSpecular[2]),\n ]) as SsrReflectionColor,\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/assets/asset-decoders.ts","../src/plugin.ts","../src/scene/visibility/gpu-frame-timing.ts","../src/ssr/composition.ts"],"names":["record","invalid","err","ok"],"mappings":"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","file":"index.mjs","sourcesContent":["import { validateCookedMaterialRecord } from '@forgeax/engine-pack';\nimport {\n type AssetDecoderContribution,\n type AssetKind,\n type AssetLoadError,\n err,\n MATERIAL_TEXTURE_SLOTS,\n type MaterialAsset,\n type MaterialChildAsset,\n type MaterialRootAsset,\n ok,\n type RenderPipelineAsset,\n type SamplerAsset,\n} from '@forgeax/engine-types';\n\nfunction invalid(guid: string, expected: string, reason: string) {\n return err({\n code: 'asset-package-invalid' as const,\n expected,\n hint: 'recook the render asset and publish its complete cooked payload',\n detail: { guid, reason },\n });\n}\n\nfunction record(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction validMaterial(value: unknown): value is MaterialAsset {\n if (!record(value) || value.kind !== 'material') return false;\n if (value.cooked !== undefined && !validateCookedMaterialRecord(value.cooked).ok) {\n return false;\n }\n if (value.passes !== undefined && !Array.isArray(value.passes)) return false;\n if (value.parameters !== undefined && !Array.isArray(value.parameters)) return false;\n if (\n value.parent !== undefined &&\n ['colorSpace', 'passes', 'parameters'].some((field) => Object.hasOwn(value, field))\n ) {\n return false;\n }\n return value.values === undefined || record(value.values);\n}\n\nfunction resolveMaterialWireRef(\n value: unknown,\n refs: readonly string[],\n field: string,\n guid: string,\n): ReturnType<typeof ok<string | number>> | ReturnType<typeof err<AssetLoadError>> {\n if (typeof value !== 'number') return ok(value as string | number);\n if (!Number.isSafeInteger(value) || value < 0 || refs[value] === undefined) {\n return err<AssetLoadError>({\n code: 'asset-package-invalid',\n expected: `${field} to reference a GUID through the material Pack refs[] table`,\n hint: 'recook the material so every texture or sampler ref has a matching refs[] entry',\n detail: { guid, reason: `${field} refs[${value}] is out of bounds` },\n });\n }\n return ok(refs[value] as string);\n}\n\nfunction resolveMaterialWireRefs(\n value: MaterialAsset,\n refs: readonly string[],\n guid: string,\n): ReturnType<typeof ok<MaterialAsset>> | ReturnType<typeof err<AssetLoadError>> {\n if (refs.length === 0) return ok(value);\n\n let changed = false;\n const wire = value as unknown as { readonly parent?: unknown };\n let parent = wire.parent;\n if (typeof parent === 'number') {\n const resolved = resolveMaterialWireRef(parent, refs, 'parent', guid);\n if (!resolved.ok) return resolved;\n parent = resolved.value;\n changed = true;\n }\n\n if (value.values === undefined) {\n if (!changed) return ok(value);\n if (parent !== undefined) {\n const child = value as MaterialChildAsset;\n return ok({ ...child, parent: parent as unknown as MaterialChildAsset['parent'] });\n }\n return ok(value);\n }\n\n const textureFields = new Set(\n value.parameters === undefined\n ? MATERIAL_TEXTURE_SLOTS\n : value.parameters\n .filter((parameter) => parameter.type === 'texture' || parameter.type === 'texture_cube')\n .map((parameter) => parameter.name),\n );\n const values = { ...value.values };\n for (const [field, raw] of Object.entries(values)) {\n if (typeof raw === 'number' && textureFields.has(field)) {\n const resolved = resolveMaterialWireRef(raw, refs, field, guid);\n if (!resolved.ok) return resolved;\n values[field] = resolved.value as NonNullable<MaterialAsset['values']>[string];\n changed = true;\n continue;\n }\n if (!record(raw)) continue;\n const rawRecord = raw as unknown as Record<string, unknown>;\n let rewritten: Record<string, unknown> | undefined;\n for (const key of ['texture', 'sampler'] as const) {\n if (!(key in rawRecord)) continue;\n const resolved = resolveMaterialWireRef(rawRecord[key], refs, `${field}.${key}`, guid);\n if (!resolved.ok) return resolved;\n if (resolved.value !== rawRecord[key]) {\n rewritten ??= { ...rawRecord };\n rewritten[key] = resolved.value;\n changed = true;\n }\n }\n if (rewritten !== undefined) {\n values[field] = rewritten as unknown as NonNullable<MaterialAsset['values']>[string];\n }\n }\n if (!changed) return ok(value);\n if (parent !== undefined) {\n const child = value as MaterialChildAsset;\n return ok({\n ...child,\n parent: parent as unknown as MaterialChildAsset['parent'],\n values,\n });\n }\n return ok({ ...value, values } as MaterialRootAsset);\n}\n\nexport const materialContribution: AssetDecoderContribution<MaterialAsset, 'material'> = {\n kind: { kind: 'material' } as AssetKind<MaterialAsset, 'material'>,\n consumer: 'Render MaterialScene',\n decoder: {\n async decode({ envelope }) {\n if (!validMaterial(envelope.payload)) {\n return invalid(\n envelope.guid,\n 'a material payload with cooked passes, parameters, and values',\n 'material owner validation failed',\n );\n }\n return resolveMaterialWireRefs(envelope.payload, envelope.refs, envelope.guid);\n },\n },\n};\n\nexport const samplerContribution: AssetDecoderContribution<SamplerAsset, 'sampler'> = {\n kind: { kind: 'sampler' } as AssetKind<SamplerAsset, 'sampler'>,\n consumer: 'Render DeviceScope',\n decoder: {\n async decode({ envelope }) {\n return envelope.payload.kind === 'sampler'\n ? ok(envelope.payload)\n : invalid(envelope.guid, 'a sampler payload', 'sampler owner validation failed');\n },\n },\n};\n\nexport const renderPipelineContribution: AssetDecoderContribution<\n RenderPipelineAsset,\n 'render-pipeline'\n> = {\n kind: { kind: 'render-pipeline' } as AssetKind<RenderPipelineAsset, 'render-pipeline'>,\n consumer: 'Render Pipeline',\n decoder: {\n async decode({ envelope }) {\n const payload = envelope.payload;\n return payload.kind === 'render-pipeline' && payload.pipelineId.trim().length > 0\n ? ok(payload)\n : invalid(\n envelope.guid,\n 'a render-pipeline payload with a pipelineId',\n 'render-pipeline owner validation failed',\n );\n },\n },\n};\n","import type { Component, World } from '@forgeax/engine-ecs';\nimport type { Plugin } from '@forgeax/engine-plugin';\nimport { Atmosphere } from './components/atmosphere';\nimport { Camera } from './components/camera';\nimport { DirectionalLight } from './components/directional-light';\nimport { Instances } from './components/instances';\nimport { Layer } from './components/layer';\nimport { LightProbe } from './components/light-probe';\nimport { Lines } from './components/lines';\nimport { MeshFilter } from './components/mesh-filter';\nimport { MeshRenderer } from './components/mesh-renderer';\nimport { PointLight } from './components/point-light';\nimport { PointLightShadow } from './components/point-light-shadow';\nimport { Points } from './components/points';\nimport { PostProcessParams } from './components/post-process-params';\nimport { RectAreaLight } from './components/rect-area-light';\nimport { SceneInstance } from './components/scene-instance';\nimport { SkyboxBackground } from './components/skybox-background';\nimport { Skylight } from './components/skylight';\nimport { SortKey } from './components/sort-key';\nimport { SpotLight } from './components/spot-light';\nimport { SpriteAnimation } from './components/sprite-animation';\nimport { SpriteInstances } from './components/sprite-instances';\nimport { SpriteRegionOverride } from './components/sprite-region-override';\nimport { TileLayer } from './components/tile-layer';\nimport { Tilemap } from './components/tilemap';\nimport { Visibility } from './components/visibility';\n\nconst RENDER_COMPONENTS: readonly Component[] = [\n Atmosphere,\n Camera,\n DirectionalLight,\n Instances,\n Layer,\n LightProbe,\n MeshFilter,\n MeshRenderer,\n PointLight,\n PointLightShadow,\n Points,\n Lines,\n PostProcessParams,\n RectAreaLight,\n SceneInstance,\n SkyboxBackground,\n Skylight,\n SortKey,\n SpotLight,\n SpriteAnimation,\n SpriteInstances,\n SpriteRegionOverride,\n TileLayer,\n Tilemap,\n Visibility,\n];\n\nfunction registerRenderComponents(world: World): () => void {\n const leases = RENDER_COMPONENTS.map((component) =>\n world.components.register(component).unwrap(),\n );\n return () => {\n for (let index = leases.length - 1; index >= 0; index -= 1) leases[index]?.dispose();\n };\n}\n\n/** Install the built-in render ECS vocabulary in one World. */\nexport function renderComponentsPlugin(): Plugin {\n return {\n name: 'render-components',\n inject: ['world'],\n apply(ctx) {\n ctx.effect(() => registerRenderComponents(ctx.world), 'render/components');\n },\n };\n}\n","/** Renderer-owned timestamp facts spanning one graph and one queue submit. */\n\nexport interface GpuFrameTimingProtocol {\n readonly firstMarker: 'frame.first-pass';\n readonly terminalMarker: 'occlusion.resolve-copy';\n readonly sameGraph: true;\n readonly sameSubmit: true;\n}\n\nexport interface GpuFrameTiming {\n readonly frameId: number;\n readonly deviceGeneration: number;\n readonly protocol: GpuFrameTimingProtocol;\n aborted: boolean;\n submitId: number | undefined;\n}\n\nexport interface GpuFrameTimingRecord {\n readonly firstPassTimestampNs: number;\n readonly occlusionResolveTimestampNs: number;\n readonly submitted: boolean;\n readonly graphGeneration: number;\n readonly submitId: number;\n}\n\nexport interface GpuFrameTimingSample {\n readonly frameId: number;\n readonly deviceGeneration: number;\n readonly durationUs: number;\n readonly protocol: GpuFrameTimingProtocol;\n readonly graphGeneration: number;\n readonly submitId: number;\n}\n\nexport interface GpuFrameTimingSummary {\n readonly medianUs: number;\n readonly p95Us: number;\n readonly samples: number;\n}\n\nconst PROTOCOL: GpuFrameTimingProtocol = Object.freeze({\n firstMarker: 'frame.first-pass',\n terminalMarker: 'occlusion.resolve-copy',\n sameGraph: true,\n sameSubmit: true,\n});\n\nexport function createGpuFrameTiming(input: {\n readonly frameId: number;\n readonly deviceGeneration: number;\n}): GpuFrameTiming {\n return { ...input, protocol: PROTOCOL, aborted: false, submitId: undefined };\n}\n\nexport function recordGpuFrameTiming(\n timing: GpuFrameTiming,\n record: GpuFrameTimingRecord,\n): GpuFrameTimingSample {\n if (!record.submitted) {\n timing.aborted = true;\n throw new Error('GPU frame timing requires a submitted frame');\n }\n if (timing.aborted) throw new Error('GPU frame timing cannot cross a failed submit');\n if (timing.submitId !== undefined && timing.submitId !== record.submitId) {\n throw new Error('GPU frame timing markers must share one submit');\n }\n if (\n !Number.isFinite(record.firstPassTimestampNs) ||\n !Number.isFinite(record.occlusionResolveTimestampNs)\n ) {\n throw new Error('GPU frame timing requires finite timestamps');\n }\n if (record.occlusionResolveTimestampNs < record.firstPassTimestampNs) {\n throw new Error('GPU frame timing terminal marker precedes first marker');\n }\n timing.submitId = record.submitId;\n return Object.freeze({\n frameId: timing.frameId,\n deviceGeneration: timing.deviceGeneration,\n durationUs: (record.occlusionResolveTimestampNs - record.firstPassTimestampNs) / 1_000,\n protocol: PROTOCOL,\n graphGeneration: record.graphGeneration,\n submitId: record.submitId,\n });\n}\n\nfunction nearestRank(values: readonly number[], percentile: number): number {\n const sorted = [...values].sort((left, right) => left - right);\n return sorted[Math.max(0, Math.ceil(percentile * sorted.length) - 1)] ?? 0;\n}\n\nexport function summarizeGpuFrameTiming(\n samples: readonly GpuFrameTimingSample[],\n): GpuFrameTimingSummary {\n const values = samples.map((sample) => sample.durationUs);\n return Object.freeze({\n medianUs: nearestRank(values, 0.5),\n p95Us: nearestRank(values, 0.95),\n samples: values.length,\n });\n}\n","import { err, ok, type Result } from '@forgeax/engine-types';\n\n/** Linear HDR RGB used by the M0 composition contract. */\nexport type SsrReflectionColor = readonly [number, number, number];\n\nexport interface SsrCompositionInput {\n /** Screen-hit confidence. The parent SSR consumer supplies 0..1. */\n readonly c: number;\n /** The Standard BRDF specular lobe before SSR replacement. */\n readonly baseSpecular: SsrReflectionColor;\n /** The same-source BRDF-projected screen contribution. */\n readonly screenSpecular: SsrReflectionColor;\n /** The committed producer-owned environment contribution. */\n readonly fallbackSpecular: SsrReflectionColor;\n}\n\nexport interface SsrCompositionInputError {\n readonly code: 'ssr-composition-input-invalid';\n readonly expected: string;\n readonly hint: string;\n readonly detail: Readonly<{\n readonly field: 'c' | 'baseSpecular' | 'screenSpecular' | 'fallbackSpecular';\n }>;\n}\n\nexport type SsrCompositionResult = Result<SsrReflectionColor, SsrCompositionInputError>;\n\nfunction finiteColor(value: SsrReflectionColor): boolean {\n return value.length === 3 && value.every(Number.isFinite);\n}\n\nfunction invalid(\n field: SsrCompositionInputError['detail']['field'],\n expected: string,\n): SsrCompositionResult {\n return err({\n code: 'ssr-composition-input-invalid',\n expected,\n hint: 'preserve linear HDR and the bounded SSR confidence before composing',\n detail: Object.freeze({ field }),\n });\n}\n\n/**\n * Apply the M0 reflection replacement contract without owning an SSR pass.\n *\n * `c=0` returns the base Standard specular lobe. `c=1` replaces only that\n * lobe with the same-source screen contribution, subtracting the committed\n * environment contribution once. Hi-Z traversal, history and graph wiring\n * remain owned by the parent SSR feature.\n */\nexport function composeSsrReflection(input: SsrCompositionInput): SsrCompositionResult {\n if (!Number.isFinite(input.c) || input.c < 0 || input.c > 1) {\n return invalid('c', 'a finite confidence in the inclusive range 0..1');\n }\n for (const [field, value] of [\n ['baseSpecular', input.baseSpecular],\n ['screenSpecular', input.screenSpecular],\n ['fallbackSpecular', input.fallbackSpecular],\n ] as const) {\n if (!finiteColor(value)) {\n return invalid(field, 'three finite linear HDR RGB channels');\n }\n }\n const c = input.c;\n return ok(\n Object.freeze([\n input.baseSpecular[0] + c * (input.screenSpecular[0] - input.fallbackSpecular[0]),\n input.baseSpecular[1] + c * (input.screenSpecular[1] - input.fallbackSpecular[1]),\n input.baseSpecular[2] + c * (input.screenSpecular[2] - input.fallbackSpecular[2]),\n ]) as SsrReflectionColor,\n );\n}\n"]}
package/dist/internal.mjs CHANGED
@@ -1,11 +1,11 @@
1
- export { PROBE_MAX_CONTRIBUTORS, admitProbeContributors, blendLightProbes, buildRectAreaWorldFrame, createExtendedLightingState, projectExtendedLightingInspection, promoteExtendedLightingCandidate, recordExtendedLightingFailure, rectAreaFacesPoint, scaledProbeWeight, setOcclusionRuntimeTestHooks } from './chunk-YUQXSEHG.mjs';
2
- import './chunk-FJ6P52EE.mjs';
3
- export { createVisibilityBudget } from './chunk-ADHHVYLW.mjs';
4
- import './chunk-JDWARUOI.mjs';
1
+ export { PROBE_MAX_CONTRIBUTORS, admitProbeContributors, blendLightProbes, buildRectAreaWorldFrame, createExtendedLightingState, projectExtendedLightingInspection, promoteExtendedLightingCandidate, recordExtendedLightingFailure, rectAreaFacesPoint, scaledProbeWeight, setOcclusionRuntimeTestHooks } from './chunk-VSL23LZE.mjs';
2
+ import './chunk-ILQ5MEZF.mjs';
3
+ export { createVisibilityBudget } from './chunk-JAASCMXA.mjs';
4
+ import './chunk-RBDBZ5R7.mjs';
5
5
  export { TemporalFrameCoordinator } from './chunk-GE3SDD72.mjs';
6
- import { EXTENDED_LIGHTING_TOPOLOGY } from './chunk-HKXTW355.mjs';
7
- export { DeviceScope, EXTENDED_LIGHTING_REQUIRED_SAMPLED_TEXTURES, deriveExtendedLightingCapability, extendedLightingSampledTextureCapacityAvailable, validateGraphTargetCaptureReadback } from './chunk-HKXTW355.mjs';
8
- export { createLightResourceUnavailable } from './chunk-ZZ4YQ474.mjs';
6
+ import { EXTENDED_LIGHTING_TOPOLOGY } from './chunk-IQMKJLNU.mjs';
7
+ export { DeviceScope, EXTENDED_LIGHTING_REQUIRED_SAMPLED_TEXTURES, deriveExtendedLightingCapability, extendedLightingSampledTextureCapacityAvailable, validateGraphTargetCaptureReadback } from './chunk-IQMKJLNU.mjs';
8
+ export { createLightResourceUnavailable } from './chunk-J6KACNOH.mjs';
9
9
  export { resolveTilesetRuntime } from '@forgeax/engine-assets-runtime';
10
10
  import '@forgeax/engine-shader';
11
11
  import '@forgeax/engine-types';
@@ -80,7 +80,7 @@ export declare function recordFrame(internals: RenderSystemInternals, world: Wor
80
80
  readonly activeEntityRevision?: number;
81
81
  readonly telemetryCandidateCount?: number;
82
82
  readonly occlusion?: OcclusionFrameProjection;
83
- }, renderReadLeases?: readonly RenderReadLease[], featureGraphCandidate?: RenderFeatureGraphCandidate, pointsLinesOwner?: import('./render-context').PointsLinesRecordOwner, cubeCapture?: CubeCaptureFrameInput, environmentSignature?: string, fogSignature?: string, environmentReady?: boolean, transmissionDemand?: TransmissionDemand, volumetricFog?: ExtractedVolumetricFog, timingCapture?: GpuTimingCapture): boolean;
83
+ }, renderReadLeases?: readonly RenderReadLease[], featureGraphCandidate?: RenderFeatureGraphCandidate, pointsLinesOwner?: import('./render-context').PointsLinesRecordOwner, cubeCapture?: CubeCaptureFrameInput, environmentSignature?: string, fogSignature?: string, environmentReady?: boolean, transmissionDemand?: TransmissionDemand, volumetricFog?: ExtractedVolumetricFog, timingCapture?: GpuTimingCapture, onRenderableDraw?: (entry: ValidatedRenderable) => void): boolean;
84
84
  /**
85
85
  * feat-20260704 M3/w18: validate renderable handles + collect the render plan,
86
86
  * extracted verbatim from `recordFrame`. Empty `renderables` input or all-
@@ -1 +1 @@
1
- {"version":3,"file":"frame.d.ts","sourceRoot":"","sources":["../../src/record/frame.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frame.d.ts","sourceRoot":"","sources":["../../src/record/frame.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"main-pass-geometry.d.ts","sourceRoot":"","sources":["../../src/record/main-pass-geometry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main-pass-geometry.d.ts","sourceRoot":"","sources":["../../src/record/main-pass-geometry.ts"],"names":[],"mappings":"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"}
@@ -383,6 +383,8 @@ export interface _StandardForwardSceneView {
383
383
  readonly materialSlotCount: number;
384
384
  readonly pointsLines: PointsLinesRecordOwner | undefined;
385
385
  readonly materialBgAssemblyCache: Map<string, MaterialBgAssemblyCacheEntry>;
386
+ /** Record-stage proof callback; invoked only after a real draw command is encoded. */
387
+ readonly onRenderableDraw?: (entry: ValidatedRenderable) => void;
386
388
  readonly reflectionProbes?: ReflectionProbeRecordState;
387
389
  materialUboPayloadCache?: {
388
390
  readonly materialSlots: readonly MaterialSnapshot[];