diff --git a/docs/validation/p2-gpu-visibility-2026-09-23/README.md b/docs/validation/p2-gpu-visibility-2026-09-23/README.md new file mode 100644 index 0000000..4a479fd --- /dev/null +++ b/docs/validation/p2-gpu-visibility-2026-09-23/README.md @@ -0,0 +1,34 @@ +# P2 GPU visibility: Linux validation, 2026-09-23 + +The P2 implementation adds selectable GPU frustum and two-pass HZB occlusion for opaque static meshes, prepared mesh LODs, renderer and Editor diagnostics, and a standalone Player option. Direct rendering remains the default and comparison path. The code built and tested here is at `9990234` (following `3be3d0d` for device-local GPU outputs); the later working-tree changes while gathering this record were documentation only. + +## Builds and functional tests + +| Environment | Check | Result | +| --- | --- | --- | +| Ubuntu Linux, Clang 21, Debug, RTX 2080 Ti | `cmake --build --preset linux-debug -j6`; `ctest --test-dir build/linux-debug --output-on-failure -j6` | Build passed; 57/57 tests passed, including 15 P2 cases. `render_window_lifecycle` reported its pre-existing compositor skip. | +| Ubuntu Linux, Clang 21, Release, RTX 2080 Ti | `cmake --build build/p2-release -j6`; `ctest --test-dir build/p2-release --output-on-failure -j6` | Build passed; 57/57 tests passed, with the same window skip. | +| Linux lavapipe software Vulkan | `VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/lvp_icd.json ctest --test-dir build/p2-release -L p2 --output-on-failure -j2` | 15/15 P2 cases passed; the frustum and occlusion examples each reported an active GPU path, both prepared LOD levels, and zero Vulkan validation errors. | +| Release shader bundle | `spirv-val --target-env vulkan1.3` on all nine generated `.spv` files | All passed. | + +The 15 P2 cases include empty and dense scenes, fixed-bin capacity, camera cut, resize, near-plane handling, multiple views, projection change, teleports, shadow and transparent passes, LOD selection and an open sequence. This is functional coverage, not a performance claim. + +The complete [Debug CTest log](ctest-linux-debug.txt), [Release CTest log](ctest-linux-release.txt) and [lavapipe P2 log](ctest-lavapipe-p2.txt) retain every test name and the explicit window skip. The [shader validation record](shader-validation.txt) lists hashes and `spirv-val` results for the Release bundle. + +## Independent exported Player checks + +The [export report](report.json) records a Release export through the real Editor for both checked-in playable projects. Their packages were copied outside the SDK into a Unicode path, source project directories were hidden, and each package passed CPU validation plus 120 headless frames on the RTX 2080 Ti with Khronos validation active and zero errors. The 3D export includes the imported Blender asset. Package file hashes are retained in the [2D manifest](collect-2d-manifest.json) and [3D manifest](collect-3d-manifest.json). The [2D](collect-2d-profile.json) and [3D](collect-3d-profile.json) 120-frame profiles preserve device and frame counters. + +Each relocated Player was then launched for six frames in **both** `--visibility gpu-frustum` and `--visibility gpu-occlusion`. All four [GPU-mode runs](p2-exported-gpu-visibility.json) completed with `gpu_visibility_active=true` in every profile sample and zero Vulkan validation errors. The raw profiles are [2D frustum](collect-2d-gpu-frustum-profile.json), [2D occlusion](collect-2d-gpu-occlusion-profile.json), [3D frustum](collect-3d-gpu-frustum-profile.json) and [3D occlusion](collect-3d-gpu-occlusion-profile.json). The Player also validated both shader bundles with `--validate --visibility MODE` before rendering. + +The [capture comparison](capture-comparison.json) uses the same six-frame static camera for Direct and GPU modes. The 2D captures match pixel-for-pixel. In 3D, GPU frustum and GPU occlusion match pixel-for-pixel; each differs from Direct at only 7 of 921,600 pixels (maximum RGB channel delta 41), all at rasterized geometry edges. The result is deterministic across repeated runs and frame counts. A diagnostic with just the floor mesh and camera retains three edge pixels, isolating the difference from gameplay timing, occlusion decisions and draw ordering. Direct pretransforms vertices on the CPU in `renderer.cpp`; GPU modes transform them in `gpu_scene.slang`. Their floating-point rounding can change triangle coverage at subpixel boundaries. This is a bounded visual difference on this device, not evidence of lost geometry, and exact pixel counts should not be expected across GPU drivers. + +![3D Direct capture after six frames](collect-3d-direct-6.png) + +![3D GPU occlusion capture after six frames](collect-3d-gpu-occlusion.png) + +## Performance evidence and limits + +The [first benchmark](../../studies/20-p2-gpu-visibility-benchmark-2026-09-23.md) exposed a slow GPU `MainCull` pass. The [optimization study](../../studies/21-p2-gpu-visibility-optimization-2026-09-23.md) keeps raw samples from baseline, device-local-only and device-local-plus-atomic variants and explains the measured improvement. Those are synthetic Debug/validation workloads on one RTX 2080 Ti, not Player frame rates or a promise that GPU culling wins in every scene. Open scenes pay extra HZB work. Direct remains the default until broader Release/game-content profiling supports another choice. + +This record does not establish physical Windows GPU performance, other hardware/driver combinations, native Wayland restore, or automatic LOD mesh generation. The lavapipe run broadens functional driver coverage but is not a hardware speed measurement. Native Windows CI and later GPU families require their own evidence. diff --git a/docs/validation/p2-gpu-visibility-2026-09-23/capture-comparison.json b/docs/validation/p2-gpu-visibility-2026-09-23/capture-comparison.json new file mode 100644 index 0000000..109d42f --- /dev/null +++ b/docs/validation/p2-gpu-visibility-2026-09-23/capture-comparison.json @@ -0,0 +1,138 @@ +{ + "collect-2d": { + "direct_vs_gpu_frustum": { + "size": [ + 1280, + 720 + ], + "changed_pixels": 0, + "total_pixels": 921600, + "max_channel_delta": 0, + "coordinates_and_max_channel_delta": [] + }, + "direct_vs_gpu_occlusion": { + "size": [ + 1280, + 720 + ], + "changed_pixels": 0, + "total_pixels": 921600, + "max_channel_delta": 0, + "coordinates_and_max_channel_delta": [] + }, + "gpu_frustum_vs_gpu_occlusion": { + "size": [ + 1280, + 720 + ], + "changed_pixels": 0, + "total_pixels": 921600, + "max_channel_delta": 0, + "coordinates_and_max_channel_delta": [] + } + }, + "collect-3d": { + "direct_vs_gpu_frustum": { + "size": [ + 1280, + 720 + ], + "changed_pixels": 7, + "total_pixels": 921600, + "max_channel_delta": 41, + "coordinates_and_max_channel_delta": [ + [ + 939, + 361, + 41 + ], + [ + 647, + 366, + 11 + ], + [ + 468, + 465, + 6 + ], + [ + 588, + 517, + 6 + ], + [ + 700, + 566, + 6 + ], + [ + 827, + 624, + 11 + ], + [ + 848, + 627, + 15 + ] + ] + }, + "direct_vs_gpu_occlusion": { + "size": [ + 1280, + 720 + ], + "changed_pixels": 7, + "total_pixels": 921600, + "max_channel_delta": 41, + "coordinates_and_max_channel_delta": [ + [ + 939, + 361, + 41 + ], + [ + 647, + 366, + 11 + ], + [ + 468, + 465, + 6 + ], + [ + 588, + 517, + 6 + ], + [ + 700, + 566, + 6 + ], + [ + 827, + 624, + 11 + ], + [ + 848, + 627, + 15 + ] + ] + }, + "gpu_frustum_vs_gpu_occlusion": { + "size": [ + 1280, + 720 + ], + "changed_pixels": 0, + "total_pixels": 921600, + "max_channel_delta": 0, + "coordinates_and_max_channel_delta": [] + } + } +} diff --git a/docs/validation/p2-gpu-visibility-2026-09-23/collect-2d-direct-6.png b/docs/validation/p2-gpu-visibility-2026-09-23/collect-2d-direct-6.png new file mode 100644 index 0000000..a2cd9d6 Binary files /dev/null and b/docs/validation/p2-gpu-visibility-2026-09-23/collect-2d-direct-6.png differ diff --git a/docs/validation/p2-gpu-visibility-2026-09-23/collect-2d-gpu-frustum-profile.json b/docs/validation/p2-gpu-visibility-2026-09-23/collect-2d-gpu-frustum-profile.json new file mode 100644 index 0000000..df74bad --- /dev/null +++ b/docs/validation/p2-gpu-visibility-2026-09-23/collect-2d-gpu-frustum-profile.json @@ -0,0 +1,198 @@ +{ + "completed_frames": 6, + "device": "NVIDIA GeForce RTX 2080 Ti", + "dimension": 2, + "fixed_delta_seconds": 0.016666666666666666, + "format": "faset.player-profile", + "height": 720, + "percentile_method": "nearest_rank_all_completed_frames_no_warmup_exclusion", + "presentation_mode": "offscreen", + "requested_frames": 6, + "resource_notes": "gpu_allocated_bytes sums live Vulkan memory allocations, including alignment, excluding driver internals. texture_count includes the white fallback texture.", + "samples": [ + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 1, + "gpu_allocated_bytes": 15750704, + "gpu_ms": 0.583936, + "gpu_visibility_active": true, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 10.370041, + "renderer_cpu_ms": 10.363859, + "renderer_readback_cpu_ms": 3.834413, + "simulation_ms": 0.262835, + "snapshot_ms": 0.214305, + "texture_count": 1, + "tick": 1, + "vertices": 66, + "wall_ms": 10.973259 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 2, + "gpu_allocated_bytes": 15750704, + "gpu_ms": 0.571552, + "gpu_visibility_active": true, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.686664, + "renderer_cpu_ms": 3.678208, + "renderer_readback_cpu_ms": 0.613398, + "simulation_ms": 0.23866, + "snapshot_ms": 0.193525, + "texture_count": 1, + "tick": 2, + "vertices": 66, + "wall_ms": 4.128828 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 3, + "gpu_allocated_bytes": 15750704, + "gpu_ms": 0.5704, + "gpu_visibility_active": true, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.985278, + "renderer_cpu_ms": 3.978084, + "renderer_readback_cpu_ms": 0.584382, + "simulation_ms": 0.4082, + "snapshot_ms": 0.21229, + "texture_count": 1, + "tick": 3, + "vertices": 66, + "wall_ms": 4.63867 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 4, + "gpu_allocated_bytes": 15750704, + "gpu_ms": 0.570496, + "gpu_visibility_active": true, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.324371, + "renderer_cpu_ms": 3.316877, + "renderer_readback_cpu_ms": 1.097139, + "simulation_ms": 0.404904, + "snapshot_ms": 0.192392, + "texture_count": 1, + "tick": 4, + "vertices": 66, + "wall_ms": 3.933279 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 5, + "gpu_allocated_bytes": 15750704, + "gpu_ms": 0.57696, + "gpu_visibility_active": true, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 5.0101, + "renderer_cpu_ms": 5.000393, + "renderer_readback_cpu_ms": 0.68915, + "simulation_ms": 0.191871, + "snapshot_ms": 0.222941, + "texture_count": 1, + "tick": 5, + "vertices": 66, + "wall_ms": 5.437566 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 6, + "gpu_allocated_bytes": 15750704, + "gpu_ms": 0.616, + "gpu_visibility_active": true, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.787518, + "renderer_cpu_ms": 2.780405, + "renderer_readback_cpu_ms": 0.68932, + "simulation_ms": 0.254069, + "snapshot_ms": 0.198174, + "texture_count": 1, + "tick": 6, + "vertices": 66, + "wall_ms": 3.251403 + } + ], + "simulation_mode": "synthetic_fixed_timestep", + "startup_ms": { + "main_to_first_frame": 659.174505, + "renderer_initialization": 644.33295, + "scene_read": 0.541101, + "world_initialization": 0.882825 + }, + "summary_ms": { + "gpu": { + "max": 0.616, + "min": 0.5704, + "p50": 0.571552, + "p95": 0.616, + "samples": 6 + }, + "render_call": { + "max": 10.370041, + "min": 2.787518, + "p50": 3.686664, + "p95": 10.370041, + "samples": 6 + }, + "renderer_cpu": { + "max": 10.363859, + "min": 2.780405, + "p50": 3.678208, + "p95": 10.363859, + "samples": 6 + }, + "renderer_readback_cpu": { + "max": 3.834413, + "min": 0.584382, + "p50": 0.68915, + "p95": 3.834413, + "samples": 6 + }, + "simulation": { + "max": 0.4082, + "min": 0.191871, + "p50": 0.254069, + "p95": 0.4082, + "samples": 6 + }, + "snapshot": { + "max": 0.222941, + "min": 0.192392, + "p50": 0.198174, + "p95": 0.222941, + "samples": 6 + }, + "wall": { + "max": 10.973259, + "min": 3.251403, + "p50": 4.128828, + "p95": 10.973259, + "samples": 6 + } + }, + "timing_notes": "Durations use steady_clock wall time, not thread CPU usage. render_call/renderer_cpu include GPU waits, readback and window presentation. renderer_readback_cpu measures map/copy/unmap wall time within that call. GPU timestamps cover submitted rendering, not CPU work. A missing/zero GPU timestamp is null. Frame durations exclude profile bookkeeping and final capture/profile file writes. Startup begins at Player application entry after platform argument normalization, excluding OS loader/launcher.", + "validation_enabled": true, + "validation_errors": 0, + "version": 1, + "visibility_mode": "gpu-frustum", + "width": 1280 +} diff --git a/docs/validation/p2-gpu-visibility-2026-09-23/collect-2d-gpu-frustum.png b/docs/validation/p2-gpu-visibility-2026-09-23/collect-2d-gpu-frustum.png new file mode 100644 index 0000000..a2cd9d6 Binary files /dev/null and b/docs/validation/p2-gpu-visibility-2026-09-23/collect-2d-gpu-frustum.png differ diff --git a/docs/validation/p2-gpu-visibility-2026-09-23/collect-2d-gpu-occlusion-profile.json b/docs/validation/p2-gpu-visibility-2026-09-23/collect-2d-gpu-occlusion-profile.json new file mode 100644 index 0000000..3bad1c5 --- /dev/null +++ b/docs/validation/p2-gpu-visibility-2026-09-23/collect-2d-gpu-occlusion-profile.json @@ -0,0 +1,198 @@ +{ + "completed_frames": 6, + "device": "NVIDIA GeForce RTX 2080 Ti", + "dimension": 2, + "fixed_delta_seconds": 0.016666666666666666, + "format": "faset.player-profile", + "height": 720, + "percentile_method": "nearest_rank_all_completed_frames_no_warmup_exclusion", + "presentation_mode": "offscreen", + "requested_frames": 6, + "resource_notes": "gpu_allocated_bytes sums live Vulkan memory allocations, including alignment, excluding driver internals. texture_count includes the white fallback texture.", + "samples": [ + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 1, + "gpu_allocated_bytes": 38124080, + "gpu_ms": 0.757824, + "gpu_visibility_active": true, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 16.535401, + "renderer_cpu_ms": 16.528628, + "renderer_readback_cpu_ms": 3.846085, + "simulation_ms": 0.27565, + "snapshot_ms": 0.228551, + "texture_count": 1, + "tick": 1, + "vertices": 66, + "wall_ms": 17.199143 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 2, + "gpu_allocated_bytes": 38124080, + "gpu_ms": 0.676832, + "gpu_visibility_active": true, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.418728, + "renderer_cpu_ms": 3.406727, + "renderer_readback_cpu_ms": 0.717063, + "simulation_ms": 0.239893, + "snapshot_ms": 0.26525, + "texture_count": 1, + "tick": 2, + "vertices": 66, + "wall_ms": 3.936004 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 3, + "gpu_allocated_bytes": 38124080, + "gpu_ms": 0.715808, + "gpu_visibility_active": true, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.096992, + "renderer_cpu_ms": 3.087514, + "renderer_readback_cpu_ms": 0.62547, + "simulation_ms": 0.245012, + "snapshot_ms": 0.21197, + "texture_count": 1, + "tick": 3, + "vertices": 66, + "wall_ms": 3.565927 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 4, + "gpu_allocated_bytes": 38124080, + "gpu_ms": 0.687936, + "gpu_visibility_active": true, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.784262, + "renderer_cpu_ms": 2.775977, + "renderer_readback_cpu_ms": 0.665536, + "simulation_ms": 0.21729, + "snapshot_ms": 0.19633, + "texture_count": 1, + "tick": 4, + "vertices": 66, + "wall_ms": 3.208973 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 5, + "gpu_allocated_bytes": 38124080, + "gpu_ms": 0.675488, + "gpu_visibility_active": true, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.720792, + "renderer_cpu_ms": 2.709341, + "renderer_readback_cpu_ms": 0.654685, + "simulation_ms": 0.170141, + "snapshot_ms": 0.137158, + "texture_count": 1, + "tick": 5, + "vertices": 66, + "wall_ms": 3.040926 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 6, + "gpu_allocated_bytes": 38124080, + "gpu_ms": 0.67584, + "gpu_visibility_active": true, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.505646, + "renderer_cpu_ms": 2.498283, + "renderer_readback_cpu_ms": 0.559014, + "simulation_ms": 0.229363, + "snapshot_ms": 0.224584, + "texture_count": 1, + "tick": 6, + "vertices": 66, + "wall_ms": 2.971696 + } + ], + "simulation_mode": "synthetic_fixed_timestep", + "startup_ms": { + "main_to_first_frame": 352.01617, + "renderer_initialization": 331.461939, + "scene_read": 0.514401, + "world_initialization": 0.607015 + }, + "summary_ms": { + "gpu": { + "max": 0.757824, + "min": 0.675488, + "p50": 0.676832, + "p95": 0.757824, + "samples": 6 + }, + "render_call": { + "max": 16.535401, + "min": 2.505646, + "p50": 2.784262, + "p95": 16.535401, + "samples": 6 + }, + "renderer_cpu": { + "max": 16.528628, + "min": 2.498283, + "p50": 2.775977, + "p95": 16.528628, + "samples": 6 + }, + "renderer_readback_cpu": { + "max": 3.846085, + "min": 0.559014, + "p50": 0.654685, + "p95": 3.846085, + "samples": 6 + }, + "simulation": { + "max": 0.27565, + "min": 0.170141, + "p50": 0.229363, + "p95": 0.27565, + "samples": 6 + }, + "snapshot": { + "max": 0.26525, + "min": 0.137158, + "p50": 0.21197, + "p95": 0.26525, + "samples": 6 + }, + "wall": { + "max": 17.199143, + "min": 2.971696, + "p50": 3.208973, + "p95": 17.199143, + "samples": 6 + } + }, + "timing_notes": "Durations use steady_clock wall time, not thread CPU usage. render_call/renderer_cpu include GPU waits, readback and window presentation. renderer_readback_cpu measures map/copy/unmap wall time within that call. GPU timestamps cover submitted rendering, not CPU work. A missing/zero GPU timestamp is null. Frame durations exclude profile bookkeeping and final capture/profile file writes. Startup begins at Player application entry after platform argument normalization, excluding OS loader/launcher.", + "validation_enabled": true, + "validation_errors": 0, + "version": 1, + "visibility_mode": "gpu-occlusion", + "width": 1280 +} diff --git a/docs/validation/p2-gpu-visibility-2026-09-23/collect-2d-gpu-occlusion.png b/docs/validation/p2-gpu-visibility-2026-09-23/collect-2d-gpu-occlusion.png new file mode 100644 index 0000000..a2cd9d6 Binary files /dev/null and b/docs/validation/p2-gpu-visibility-2026-09-23/collect-2d-gpu-occlusion.png differ diff --git a/docs/validation/p2-gpu-visibility-2026-09-23/collect-2d-manifest.json b/docs/validation/p2-gpu-visibility-2026-09-23/collect-2d-manifest.json new file mode 100644 index 0000000..0633936 --- /dev/null +++ b/docs/validation/p2-gpu-visibility-2026-09-23/collect-2d-manifest.json @@ -0,0 +1,195 @@ +{ + "asset_generations": {}, + "build_fingerprint": "5c54fc6e20ba827fe1befee8b6194b5df360f053927cbdc83bcf32a654f32899", + "configuration": "Release", + "executable": "faset_player", + "files": [ + { + "path": "scene.fscene", + "sha256": "0d7b221abc1cae5e9f1d04357c684ac6993f5878d634b4b950eec66dd8e55b2a", + "size": 6214 + }, + { + "path": "faset_player", + "sha256": "cfd9e4edf524cd8963329aad68f8a97c67413c0ab6c5616e2377a199ca28e419", + "size": 5972792 + }, + { + "path": "shaders/vertexMain.spv", + "sha256": "1ad2631c35d654f48166321ae43d4165043e1b919b14f1dc61caf97b1ada0898", + "size": 1224 + }, + { + "path": "shaders/fragmentMain.spv", + "sha256": "f5c4f289917ecab5d00d543c053aac1d10e6cca311fd172daf06d315160a3505", + "size": 7436 + }, + { + "path": "shaders/shadowMain.spv", + "sha256": "7643b4d688492b5ee923b9606f0b0e70343ca05fa67673838206119a6f86d8d8", + "size": 784 + }, + { + "path": "shaders/vertexMain.reflection.json", + "sha256": "c584f3b957ebf194a292451362a98590f85ff3cfbfd8f917b1c1265039381777", + "size": 2639 + }, + { + "path": "shaders/fragmentMain.reflection.json", + "sha256": "72ebf8d32452830650416dc4717d89a4324e97ece7028dfb97c66803c8dce71f", + "size": 2649 + }, + { + "path": "shaders/shadowMain.reflection.json", + "sha256": "e3fd0889cd2f569d410f5d7558a4091d9f57f247a1dcf1788462f67525340819", + "size": 2645 + }, + { + "path": "shaders/gpuVertexMain.spv", + "sha256": "041c1e5f0db4007c51e01ed5db6e0fbf4db09b8dcbcb085c0c73612cdc682fe3", + "size": 5008 + }, + { + "path": "shaders/gpuShadowMain.spv", + "sha256": "9078577943bf9c51220d5341434834eb4a28cf0f0f6203bad2b96e1b0e11b360", + "size": 2484 + }, + { + "path": "shaders/gpuCullMain.spv", + "sha256": "7691360ec55f41d40d43652f506b051cef8b3a3ddcdcc7db61a7d4d97f9e87d8", + "size": 16180 + }, + { + "path": "shaders/gpuHzbMain.spv", + "sha256": "08682362ee2120ed19d260e613285071747c3e436bb09bb6238e46f9cedc2308", + "size": 4140 + }, + { + "path": "shaders/gpuPostCullMain.spv", + "sha256": "62cb72e356346e1511c6d640a3cecb4a6e5283795338299b357edae5f7f52be4", + "size": 12460 + }, + { + "path": "shaders/gpuVertexMain.reflection.json", + "sha256": "3726c09d38e68cf0b6e317daaddb7b5b3e1bb0b073afd0eff43b8f1125378cd9", + "size": 3092 + }, + { + "path": "shaders/gpuShadowMain.reflection.json", + "sha256": "7fbe869421b61f0261729eac26ebda2a484d423583d3a5b739ba59bbf3afbe12", + "size": 2749 + }, + { + "path": "shaders/gpuCullMain.reflection.json", + "sha256": "996fe5c7e31c6b8f316d8f290b3be0ae7063eb46c500a661e8715e9b822a2598", + "size": 3587 + }, + { + "path": "shaders/gpuHzbMain.reflection.json", + "sha256": "589818f670881c64f3aba726ee3bc82fe4b9d835a347f99134e0e157dc4a112e", + "size": 2050 + }, + { + "path": "shaders/gpuPostCullMain.reflection.json", + "sha256": "eed140bbe09c7d14935b688c770261ac0e81677c0974aa811c88ed67ea779b95", + "size": 3591 + }, + { + "path": "Notices/sdl3/LICENSE.txt", + "sha256": "97f35b302b361680ec1e891e95d2d52097bb95abff361434916d99dc1305f127", + "size": 884 + }, + { + "path": "Notices/entt/LICENSE", + "sha256": "0785027ce472d7c61f05fba664a1d3ba6639c1593ced351ad9e4bed868765d99", + "size": 1097 + }, + { + "path": "Notices/box2d/LICENSE", + "sha256": "68a3e676d7e94093b102d5cba0d4e04af812040d6f230c3db67a6664574e43d2", + "size": 1067 + }, + { + "path": "Notices/box3d/LICENSE", + "sha256": "da5e31a26bf3cfd5ba5c96d6823e480128c81e76c107ef9d3ee5d94789184b90", + "size": 1067 + }, + { + "path": "Notices/json/LICENSE.MIT", + "sha256": "46a65cffd1ea955132d95a8dd921640714a8d6b537d2e4e482d31145ae95b603", + "size": 1076 + }, + { + "path": "Notices/stb/LICENSE", + "sha256": "bebfe904b14301657e4e5d655c811d51fd31b97c455b9cc2d8600d6bac6cff63", + "size": 2510 + }, + { + "path": "Notices/dependencies.json", + "sha256": "a54639ad2d9ad13c2e5f1ec90d6775f5dfc493656789b78c7e44debe2a378fdc", + "size": 2206 + }, + { + "path": "Notices/Faset-NOTICE.txt", + "sha256": "30c2e7e80f5153b31ab57675e07246aef9165965d64e36022b426a26449ece3f", + "size": 204 + }, + { + "path": "README.txt", + "sha256": "82bf72bc542643f6c4090e0a5de69b0014ca3fa17c6f9dfb12cc41e44c8b8db6", + "size": 262 + } + ], + "format": "faset.export", + "generation": "e10bfc78-962f-45ef-a570-1237628cc7ec", + "lua_enabled": false, + "lua_fingerprint": "", + "platform": "linux", + "prerequisites": [ + "Linux x86_64", + "Vulkan 1.3 driver", + "Compatible glibc and libstdc++ runtime" + ], + "renderer_profile": { + "api": "Vulkan 1.3", + "materials": [ + "base-color factor and texture", + "metallic and roughness factors" + ], + "required_features": [ + "dynamicRendering", + "synchronization2" + ], + "shadow_map": { + "resolution": 1024, + "world_extent": 40 + }, + "texture_sampling": "linear clamp, one mip level", + "unsupported_material_features": [ + "normal maps", + "metallic-roughness maps", + "emissive and occlusion maps", + "alpha mode selection", + "unlit mode", + "per-material face culling" + ] + }, + "scene_hash": "fdfa1c49cf78a1cf52cd41b201c35bb0b5f852c90b7626b2a7f17da3e2e3e24c", + "simulation": { + "fixed_delta": 0.016666666666666666, + "gravity": [ + 0, + -9.81, + 0 + ], + "max_catch_up_ticks": 4, + "physics_substeps": 4 + }, + "units": { + "angle": "radian", + "coordinates": "right-handed Y-up", + "distance": "metre" + }, + "validation_log": "{\"dimension\":2,\"validated\":true}\n", + "version": 1 +} diff --git a/docs/validation/p2-gpu-visibility-2026-09-23/collect-2d-profile.json b/docs/validation/p2-gpu-visibility-2026-09-23/collect-2d-profile.json new file mode 100644 index 0000000..610f6a2 --- /dev/null +++ b/docs/validation/p2-gpu-visibility-2026-09-23/collect-2d-profile.json @@ -0,0 +1,2478 @@ +{ + "completed_frames": 120, + "device": "NVIDIA GeForce RTX 2080 Ti", + "dimension": 2, + "fixed_delta_seconds": 0.016666666666666666, + "format": "faset.player-profile", + "height": 720, + "percentile_method": "nearest_rank_all_completed_frames_no_warmup_exclusion", + "presentation_mode": "offscreen", + "requested_frames": 120, + "resource_notes": "gpu_allocated_bytes sums live Vulkan memory allocations, including alignment, excluding driver internals. texture_count includes the white fallback texture.", + "samples": [ + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 1, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.57312, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 8.92785, + "renderer_cpu_ms": 8.922791, + "renderer_readback_cpu_ms": 3.279947, + "simulation_ms": 0.270461, + "snapshot_ms": 0.510693, + "texture_count": 1, + "tick": 1, + "vertices": 66, + "wall_ms": 9.833829 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 2, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.564736, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.314415, + "renderer_cpu_ms": 2.307944, + "renderer_readback_cpu_ms": 0.561849, + "simulation_ms": 0.246685, + "snapshot_ms": 0.237829, + "texture_count": 1, + "tick": 2, + "vertices": 66, + "wall_ms": 2.811974 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 3, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.562112, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.11515, + "renderer_cpu_ms": 2.110641, + "renderer_readback_cpu_ms": 0.515943, + "simulation_ms": 0.232469, + "snapshot_ms": 0.187013, + "texture_count": 1, + "tick": 3, + "vertices": 66, + "wall_ms": 2.546082 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 4, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.57776, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 1.84525, + "renderer_cpu_ms": 1.840121, + "renderer_readback_cpu_ms": 0.560056, + "simulation_ms": 0.232939, + "snapshot_ms": 0.205548, + "texture_count": 1, + "tick": 4, + "vertices": 66, + "wall_ms": 2.292564 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 5, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.563264, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.250932, + "renderer_cpu_ms": 3.244009, + "renderer_readback_cpu_ms": 1.073074, + "simulation_ms": 0.217049, + "snapshot_ms": 0.188937, + "texture_count": 1, + "tick": 5, + "vertices": 66, + "wall_ms": 3.666616 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 6, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.563744, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 4.047444, + "renderer_cpu_ms": 4.040842, + "renderer_readback_cpu_ms": 0.693068, + "simulation_ms": 0.248589, + "snapshot_ms": 0.250562, + "texture_count": 1, + "tick": 6, + "vertices": 66, + "wall_ms": 4.558679 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 7, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.56032, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.574907, + "renderer_cpu_ms": 2.570378, + "renderer_readback_cpu_ms": 0.714117, + "simulation_ms": 0.229914, + "snapshot_ms": 0.231296, + "texture_count": 1, + "tick": 7, + "vertices": 66, + "wall_ms": 3.050184 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 8, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559424, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 4.916754, + "renderer_cpu_ms": 4.910192, + "renderer_readback_cpu_ms": 0.602136, + "simulation_ms": 0.259459, + "snapshot_ms": 0.210698, + "texture_count": 1, + "tick": 8, + "vertices": 66, + "wall_ms": 5.401128 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 9, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.5616, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.219817, + "renderer_cpu_ms": 2.214908, + "renderer_readback_cpu_ms": 0.569054, + "simulation_ms": 0.222039, + "snapshot_ms": 0.193896, + "texture_count": 1, + "tick": 9, + "vertices": 66, + "wall_ms": 2.645971 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 10, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.56048, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.550922, + "renderer_cpu_ms": 2.544069, + "renderer_readback_cpu_ms": 0.883206, + "simulation_ms": 0.371741, + "snapshot_ms": 0.141297, + "texture_count": 1, + "tick": 10, + "vertices": 66, + "wall_ms": 3.076934 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 11, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.561216, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.727842, + "renderer_cpu_ms": 3.720307, + "renderer_readback_cpu_ms": 0.724417, + "simulation_ms": 0.219504, + "snapshot_ms": 0.175842, + "texture_count": 1, + "tick": 11, + "vertices": 66, + "wall_ms": 4.135671 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 12, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559744, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.376162, + "renderer_cpu_ms": 2.372405, + "renderer_readback_cpu_ms": 0.498961, + "simulation_ms": 0.205908, + "snapshot_ms": 0.159571, + "texture_count": 1, + "tick": 12, + "vertices": 66, + "wall_ms": 2.755157 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 13, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.560288, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.0678, + "renderer_cpu_ms": 2.062079, + "renderer_readback_cpu_ms": 0.5854240000000001, + "simulation_ms": 0.200578, + "snapshot_ms": 0.177054, + "texture_count": 1, + "tick": 13, + "vertices": 66, + "wall_ms": 2.457525 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 14, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.560192, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.023116, + "renderer_cpu_ms": 2.016744, + "renderer_readback_cpu_ms": 0.583971, + "simulation_ms": 0.162797, + "snapshot_ms": 0.183596, + "texture_count": 1, + "tick": 14, + "vertices": 66, + "wall_ms": 2.378707 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 15, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.560288, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.27974, + "renderer_cpu_ms": 2.27442, + "renderer_readback_cpu_ms": 0.628395, + "simulation_ms": 0.24396, + "snapshot_ms": 0.195409, + "texture_count": 1, + "tick": 15, + "vertices": 66, + "wall_ms": 2.732424 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 16, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559744, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.356856, + "renderer_cpu_ms": 2.349362, + "renderer_readback_cpu_ms": 0.860975, + "simulation_ms": 0.223521, + "snapshot_ms": 0.200529, + "texture_count": 1, + "tick": 16, + "vertices": 66, + "wall_ms": 2.793419 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 17, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559968, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.538064, + "renderer_cpu_ms": 3.532232, + "renderer_readback_cpu_ms": 1.09725, + "simulation_ms": 0.242267, + "snapshot_ms": 0.184869, + "texture_count": 1, + "tick": 17, + "vertices": 66, + "wall_ms": 3.978505 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 18, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.55936, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.137171, + "renderer_cpu_ms": 2.130488, + "renderer_readback_cpu_ms": 0.644906, + "simulation_ms": 0.22281, + "snapshot_ms": 0.199937, + "texture_count": 1, + "tick": 18, + "vertices": 66, + "wall_ms": 2.57146 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 19, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559904, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.621686, + "renderer_cpu_ms": 2.612718, + "renderer_readback_cpu_ms": 1.121556, + "simulation_ms": 0.321327, + "snapshot_ms": 0.407779, + "texture_count": 1, + "tick": 19, + "vertices": 66, + "wall_ms": 3.364507 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 20, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.560736, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.811613, + "renderer_cpu_ms": 2.805822, + "renderer_readback_cpu_ms": 0.680273, + "simulation_ms": 0.231697, + "snapshot_ms": 0.310376, + "texture_count": 1, + "tick": 20, + "vertices": 66, + "wall_ms": 3.3667 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 21, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.560256, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.948512, + "renderer_cpu_ms": 2.943312, + "renderer_readback_cpu_ms": 1.117809, + "simulation_ms": 0.3288, + "snapshot_ms": 0.200288, + "texture_count": 1, + "tick": 21, + "vertices": 66, + "wall_ms": 3.489883 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 22, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.560128, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.43332, + "renderer_cpu_ms": 2.426798, + "renderer_readback_cpu_ms": 0.682387, + "simulation_ms": 0.227148, + "snapshot_ms": 0.19619, + "texture_count": 1, + "tick": 22, + "vertices": 66, + "wall_ms": 2.868942 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 23, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.56416, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.649855, + "renderer_cpu_ms": 3.642821, + "renderer_readback_cpu_ms": 1.231012, + "simulation_ms": 0.231727, + "snapshot_ms": 0.203043, + "texture_count": 1, + "tick": 23, + "vertices": 66, + "wall_ms": 4.096818 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 24, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.55984, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.13295, + "renderer_cpu_ms": 3.126046, + "renderer_readback_cpu_ms": 0.701914, + "simulation_ms": 0.233661, + "snapshot_ms": 0.197923, + "texture_count": 1, + "tick": 24, + "vertices": 66, + "wall_ms": 3.57821 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 25, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.566368, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.012893, + "renderer_cpu_ms": 3.00564, + "renderer_readback_cpu_ms": 0.70476, + "simulation_ms": 1.263263, + "snapshot_ms": 0.232749, + "texture_count": 1, + "tick": 25, + "vertices": 66, + "wall_ms": 4.522581 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 26, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.560064, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.399246, + "renderer_cpu_ms": 2.391812, + "renderer_readback_cpu_ms": 0.666608, + "simulation_ms": 0.251304, + "snapshot_ms": 0.222791, + "texture_count": 1, + "tick": 26, + "vertices": 66, + "wall_ms": 2.887136 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 27, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.560064, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.322391, + "renderer_cpu_ms": 2.315919, + "renderer_readback_cpu_ms": 0.697004, + "simulation_ms": 0.253357, + "snapshot_ms": 0.225626, + "texture_count": 1, + "tick": 27, + "vertices": 66, + "wall_ms": 2.815902 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 28, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.560256, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.165384, + "renderer_cpu_ms": 2.158391, + "renderer_readback_cpu_ms": 0.616713, + "simulation_ms": 0.225706, + "snapshot_ms": 0.165903, + "texture_count": 1, + "tick": 28, + "vertices": 66, + "wall_ms": 2.57143 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 29, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.567936, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.067329, + "renderer_cpu_ms": 2.06264, + "renderer_readback_cpu_ms": 0.526523, + "simulation_ms": 0.262074, + "snapshot_ms": 0.220476, + "texture_count": 1, + "tick": 29, + "vertices": 66, + "wall_ms": 2.562904 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 30, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.571968, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 1.925893, + "renderer_cpu_ms": 1.921835, + "renderer_readback_cpu_ms": 0.461981, + "simulation_ms": 0.159621, + "snapshot_ms": 0.162035, + "texture_count": 1, + "tick": 30, + "vertices": 66, + "wall_ms": 2.258029 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 31, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559968, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 1.914471, + "renderer_cpu_ms": 1.910574, + "renderer_readback_cpu_ms": 0.522125, + "simulation_ms": 0.200538, + "snapshot_ms": 0.161675, + "texture_count": 1, + "tick": 31, + "vertices": 66, + "wall_ms": 2.286082 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 32, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.56096, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 1.857965, + "renderer_cpu_ms": 1.850971, + "renderer_readback_cpu_ms": 0.50381, + "simulation_ms": 0.162206, + "snapshot_ms": 0.148761, + "texture_count": 1, + "tick": 32, + "vertices": 66, + "wall_ms": 2.178599 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 33, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559936, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 1.99336, + "renderer_cpu_ms": 1.988882, + "renderer_readback_cpu_ms": 0.52473, + "simulation_ms": 0.181272, + "snapshot_ms": 0.139303, + "texture_count": 1, + "tick": 33, + "vertices": 66, + "wall_ms": 2.326348 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 34, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.5592, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 1.767093, + "renderer_cpu_ms": 1.762985, + "renderer_readback_cpu_ms": 0.499512, + "simulation_ms": 0.213794, + "snapshot_ms": 0.180761, + "texture_count": 1, + "tick": 34, + "vertices": 66, + "wall_ms": 2.171876 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 35, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.565856, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 4.207687, + "renderer_cpu_ms": 4.203449, + "renderer_readback_cpu_ms": 0.520231, + "simulation_ms": 0.198093, + "snapshot_ms": 0.183597, + "texture_count": 1, + "tick": 35, + "vertices": 66, + "wall_ms": 4.598193 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 36, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559424, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.50768, + "renderer_cpu_ms": 2.50252, + "renderer_readback_cpu_ms": 0.500293, + "simulation_ms": 0.213633, + "snapshot_ms": 0.193775, + "texture_count": 1, + "tick": 36, + "vertices": 66, + "wall_ms": 2.924566 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 37, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559392, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 4.104092, + "renderer_cpu_ms": 4.09754, + "renderer_readback_cpu_ms": 0.713957, + "simulation_ms": 0.202352, + "snapshot_ms": 0.199466, + "texture_count": 1, + "tick": 37, + "vertices": 66, + "wall_ms": 4.515337 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 38, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.560736, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 8.195068, + "renderer_cpu_ms": 8.189278, + "renderer_readback_cpu_ms": 0.56721, + "simulation_ms": 0.222139, + "snapshot_ms": 0.207882, + "texture_count": 1, + "tick": 38, + "vertices": 66, + "wall_ms": 8.635048 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 39, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.568032, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.611786, + "renderer_cpu_ms": 2.605195, + "renderer_readback_cpu_ms": 0.63575, + "simulation_ms": 0.282804, + "snapshot_ms": 0.203915, + "texture_count": 1, + "tick": 39, + "vertices": 66, + "wall_ms": 3.110116 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 40, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559648, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 7.19898, + "renderer_cpu_ms": 7.193349, + "renderer_readback_cpu_ms": 0.588349, + "simulation_ms": 0.234983, + "snapshot_ms": 0.209706, + "texture_count": 1, + "tick": 40, + "vertices": 66, + "wall_ms": 7.65528 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 41, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559648, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 8.816481, + "renderer_cpu_ms": 8.810119, + "renderer_readback_cpu_ms": 1.155289, + "simulation_ms": 0.223732, + "snapshot_ms": 0.190499, + "texture_count": 1, + "tick": 41, + "vertices": 66, + "wall_ms": 9.239549 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 42, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.565536, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.955541, + "renderer_cpu_ms": 3.948839, + "renderer_readback_cpu_ms": 0.610111, + "simulation_ms": 0.2755, + "snapshot_ms": 0.740767, + "texture_count": 1, + "tick": 42, + "vertices": 66, + "wall_ms": 4.985554 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 43, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.55968, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.353416, + "renderer_cpu_ms": 3.344208, + "renderer_readback_cpu_ms": 1.873734, + "simulation_ms": 0.230585, + "snapshot_ms": 0.204065, + "texture_count": 1, + "tick": 43, + "vertices": 66, + "wall_ms": 3.800659 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 44, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.560608, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.253541, + "renderer_cpu_ms": 2.248762, + "renderer_readback_cpu_ms": 0.637653, + "simulation_ms": 0.228952, + "snapshot_ms": 0.264879, + "texture_count": 1, + "tick": 44, + "vertices": 66, + "wall_ms": 2.763152 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 45, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559584, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.611366, + "renderer_cpu_ms": 2.605264, + "renderer_readback_cpu_ms": 1.190756, + "simulation_ms": 0.161565, + "snapshot_ms": 0.164019, + "texture_count": 1, + "tick": 45, + "vertices": 66, + "wall_ms": 2.94736 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 46, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.566176, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.484343, + "renderer_cpu_ms": 3.478982, + "renderer_readback_cpu_ms": 1.30405, + "simulation_ms": 0.182625, + "snapshot_ms": 0.195468, + "texture_count": 1, + "tick": 46, + "vertices": 66, + "wall_ms": 3.872796 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 47, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.560032, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.165996, + "renderer_cpu_ms": 2.159383, + "renderer_readback_cpu_ms": 0.656809, + "simulation_ms": 0.144863, + "snapshot_ms": 0.204025, + "texture_count": 1, + "tick": 47, + "vertices": 66, + "wall_ms": 2.525213 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 48, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.560608, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.014069, + "renderer_cpu_ms": 2.008879, + "renderer_readback_cpu_ms": 0.506205, + "simulation_ms": 0.213011, + "snapshot_ms": 0.189959, + "texture_count": 1, + "tick": 48, + "vertices": 66, + "wall_ms": 2.42787 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 49, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559808, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.079212, + "renderer_cpu_ms": 2.072759, + "renderer_readback_cpu_ms": 0.602116, + "simulation_ms": 0.152418, + "snapshot_ms": 0.163949, + "texture_count": 1, + "tick": 49, + "vertices": 66, + "wall_ms": 2.405818 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 50, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.55696, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.093816, + "renderer_cpu_ms": 3.089027, + "renderer_readback_cpu_ms": 0.627624, + "simulation_ms": 0.253789, + "snapshot_ms": 0.19642, + "texture_count": 1, + "tick": 50, + "vertices": 66, + "wall_ms": 3.555898 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 51, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.567232, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.245282, + "renderer_cpu_ms": 3.239931, + "renderer_readback_cpu_ms": 0.510554, + "simulation_ms": 0.222129, + "snapshot_ms": 0.192624, + "texture_count": 1, + "tick": 51, + "vertices": 66, + "wall_ms": 3.669402 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 52, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559552, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.737754, + "renderer_cpu_ms": 2.732654, + "renderer_readback_cpu_ms": 0.65224, + "simulation_ms": 0.208924, + "snapshot_ms": 0.230344, + "texture_count": 1, + "tick": 52, + "vertices": 66, + "wall_ms": 3.187542 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 53, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.560448, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.337139, + "renderer_cpu_ms": 2.331238, + "renderer_readback_cpu_ms": 0.671156, + "simulation_ms": 0.153931, + "snapshot_ms": 0.178015, + "texture_count": 1, + "tick": 53, + "vertices": 66, + "wall_ms": 2.682521 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 54, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559904, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.266055, + "renderer_cpu_ms": 2.258791, + "renderer_readback_cpu_ms": 0.640208, + "simulation_ms": 0.164059, + "snapshot_ms": 0.13775, + "texture_count": 1, + "tick": 54, + "vertices": 66, + "wall_ms": 2.58138 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 55, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.561248, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.129046, + "renderer_cpu_ms": 2.122724, + "renderer_readback_cpu_ms": 0.72121, + "simulation_ms": 0.167205, + "snapshot_ms": 0.161625, + "texture_count": 1, + "tick": 55, + "vertices": 66, + "wall_ms": 2.469498 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 56, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559872, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 1.919851, + "renderer_cpu_ms": 1.91379, + "renderer_readback_cpu_ms": 0.557962, + "simulation_ms": 0.241525, + "snapshot_ms": 0.194417, + "texture_count": 1, + "tick": 56, + "vertices": 66, + "wall_ms": 2.367826 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 57, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.560256, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.470266, + "renderer_cpu_ms": 3.462692, + "renderer_readback_cpu_ms": 2.156067, + "simulation_ms": 0.202653, + "snapshot_ms": 0.152387, + "texture_count": 1, + "tick": 57, + "vertices": 66, + "wall_ms": 3.851736 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 58, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559776, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.41229, + "renderer_cpu_ms": 2.406961, + "renderer_readback_cpu_ms": 0.641169, + "simulation_ms": 0.243369, + "snapshot_ms": 0.210327, + "texture_count": 1, + "tick": 58, + "vertices": 66, + "wall_ms": 2.880784 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 59, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559648, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.733456, + "renderer_cpu_ms": 2.725952, + "renderer_readback_cpu_ms": 0.690403, + "simulation_ms": 0.204326, + "snapshot_ms": 0.195058, + "texture_count": 1, + "tick": 59, + "vertices": 66, + "wall_ms": 3.14907 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 60, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.561472, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.114094, + "renderer_cpu_ms": 3.103304, + "renderer_readback_cpu_ms": 0.886733, + "simulation_ms": 0.216669, + "snapshot_ms": 0.422467, + "texture_count": 1, + "tick": 60, + "vertices": 66, + "wall_ms": 3.766766 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 61, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.566112, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.388886, + "renderer_cpu_ms": 2.382624, + "renderer_readback_cpu_ms": 0.648924, + "simulation_ms": 0.214144, + "snapshot_ms": 0.574704, + "texture_count": 1, + "tick": 61, + "vertices": 66, + "wall_ms": 3.191891 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 62, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559968, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.745128, + "renderer_cpu_ms": 2.737744, + "renderer_readback_cpu_ms": 0.980139, + "simulation_ms": 0.325334, + "snapshot_ms": 0.216438, + "texture_count": 1, + "tick": 62, + "vertices": 66, + "wall_ms": 3.299875 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 63, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.560928, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.357818, + "renderer_cpu_ms": 2.352197, + "renderer_readback_cpu_ms": 0.762809, + "simulation_ms": 0.240193, + "snapshot_ms": 0.225666, + "texture_count": 1, + "tick": 63, + "vertices": 66, + "wall_ms": 2.8361 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 64, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.56816, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.119027, + "renderer_cpu_ms": 2.114519, + "renderer_readback_cpu_ms": 0.533056, + "simulation_ms": 0.210798, + "snapshot_ms": 0.205998, + "texture_count": 1, + "tick": 64, + "vertices": 66, + "wall_ms": 2.546814 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 65, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.560448, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.170495, + "renderer_cpu_ms": 2.164824, + "renderer_readback_cpu_ms": 0.635228, + "simulation_ms": 0.239702, + "snapshot_ms": 0.200078, + "texture_count": 1, + "tick": 65, + "vertices": 66, + "wall_ms": 2.620453 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 66, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.56672, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.064995, + "renderer_cpu_ms": 2.060056, + "renderer_readback_cpu_ms": 0.6200599999999999, + "simulation_ms": 0.231777, + "snapshot_ms": 0.21191, + "texture_count": 1, + "tick": 66, + "vertices": 66, + "wall_ms": 2.521386 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 67, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559808, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.100302, + "renderer_cpu_ms": 2.093389, + "renderer_readback_cpu_ms": 0.603127, + "simulation_ms": 0.205868, + "snapshot_ms": 0.209726, + "texture_count": 1, + "tick": 67, + "vertices": 66, + "wall_ms": 2.526445 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 68, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559872, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.725702, + "renderer_cpu_ms": 2.716885, + "renderer_readback_cpu_ms": 0.754343, + "simulation_ms": 0.266343, + "snapshot_ms": 0.320144, + "texture_count": 1, + "tick": 68, + "vertices": 66, + "wall_ms": 3.324712 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 69, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.577856, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.262437, + "renderer_cpu_ms": 2.257729, + "renderer_readback_cpu_ms": 0.716772, + "simulation_ms": 0.195359, + "snapshot_ms": 0.178817, + "texture_count": 1, + "tick": 69, + "vertices": 66, + "wall_ms": 2.647974 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 70, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.560032, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 1.831084, + "renderer_cpu_ms": 1.826405, + "renderer_readback_cpu_ms": 0.555137, + "simulation_ms": 0.144652, + "snapshot_ms": 0.164411, + "texture_count": 1, + "tick": 70, + "vertices": 66, + "wall_ms": 2.15226 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 71, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.568544, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.131741, + "renderer_cpu_ms": 2.127293, + "renderer_readback_cpu_ms": 0.531232, + "simulation_ms": 0.173687, + "snapshot_ms": 0.143551, + "texture_count": 1, + "tick": 71, + "vertices": 66, + "wall_ms": 2.459941 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 72, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.5696, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.021774, + "renderer_cpu_ms": 2.017236, + "renderer_readback_cpu_ms": 0.65171, + "simulation_ms": 0.146917, + "snapshot_ms": 0.133873, + "texture_count": 1, + "tick": 72, + "vertices": 66, + "wall_ms": 2.312292 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 73, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.56096, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 1.841824, + "renderer_cpu_ms": 1.836775, + "renderer_readback_cpu_ms": 0.526714, + "simulation_ms": 0.14834, + "snapshot_ms": 0.161665, + "texture_count": 1, + "tick": 73, + "vertices": 66, + "wall_ms": 2.163301 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 74, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.5712, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 1.787301, + "renderer_cpu_ms": 1.783243, + "renderer_readback_cpu_ms": 0.558344, + "simulation_ms": 0.172135, + "snapshot_ms": 0.134434, + "texture_count": 1, + "tick": 74, + "vertices": 66, + "wall_ms": 2.105101 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 75, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.566624, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 1.771472, + "renderer_cpu_ms": 1.767805, + "renderer_readback_cpu_ms": 0.496627, + "simulation_ms": 0.157086, + "snapshot_ms": 0.145545, + "texture_count": 1, + "tick": 75, + "vertices": 66, + "wall_ms": 2.085394 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 76, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559488, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.863601, + "renderer_cpu_ms": 2.856989, + "renderer_readback_cpu_ms": 0.73656, + "simulation_ms": 0.142439, + "snapshot_ms": 0.13285, + "texture_count": 1, + "tick": 76, + "vertices": 66, + "wall_ms": 3.148448 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 77, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.560064, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.4495, + "renderer_cpu_ms": 2.442206, + "renderer_readback_cpu_ms": 0.753701, + "simulation_ms": 0.229183, + "snapshot_ms": 0.194106, + "texture_count": 1, + "tick": 77, + "vertices": 66, + "wall_ms": 2.883389 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 78, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559872, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.911231, + "renderer_cpu_ms": 2.906533, + "renderer_readback_cpu_ms": 0.567781, + "simulation_ms": 0.217661, + "snapshot_ms": 0.1642, + "texture_count": 1, + "tick": 78, + "vertices": 66, + "wall_ms": 3.30787 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 79, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.560192, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.245311, + "renderer_cpu_ms": 3.240692, + "renderer_readback_cpu_ms": 0.595183, + "simulation_ms": 0.199988, + "snapshot_ms": 0.200117, + "texture_count": 1, + "tick": 79, + "vertices": 66, + "wall_ms": 3.655014 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 80, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559968, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.701856, + "renderer_cpu_ms": 2.697769, + "renderer_readback_cpu_ms": 0.520972, + "simulation_ms": 0.204185, + "snapshot_ms": 0.183246, + "texture_count": 1, + "tick": 80, + "vertices": 66, + "wall_ms": 3.100639 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 81, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559488, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.803097, + "renderer_cpu_ms": 2.796866, + "renderer_readback_cpu_ms": 0.575094, + "simulation_ms": 0.193795, + "snapshot_ms": 0.183396, + "texture_count": 1, + "tick": 81, + "vertices": 66, + "wall_ms": 3.190027 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 82, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559456, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 4.37885, + "renderer_cpu_ms": 4.374151, + "renderer_readback_cpu_ms": 0.508719, + "simulation_ms": 0.232619, + "snapshot_ms": 0.204726, + "texture_count": 1, + "tick": 82, + "vertices": 66, + "wall_ms": 4.827436 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 83, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.56, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.304366, + "renderer_cpu_ms": 2.298285, + "renderer_readback_cpu_ms": 0.58286, + "simulation_ms": 0.200108, + "snapshot_ms": 0.507407, + "texture_count": 1, + "tick": 83, + "vertices": 66, + "wall_ms": 3.021149 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 84, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.560064, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 4.469641, + "renderer_cpu_ms": 4.464411, + "renderer_readback_cpu_ms": 0.476489, + "simulation_ms": 0.210266, + "snapshot_ms": 0.207001, + "texture_count": 1, + "tick": 84, + "vertices": 66, + "wall_ms": 4.899331 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 85, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559136, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.71451, + "renderer_cpu_ms": 2.709632, + "renderer_readback_cpu_ms": 0.693218, + "simulation_ms": 0.203022, + "snapshot_ms": 0.202322, + "texture_count": 1, + "tick": 85, + "vertices": 66, + "wall_ms": 3.129954 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 86, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.55952, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 5.542745, + "renderer_cpu_ms": 5.538237, + "renderer_readback_cpu_ms": 3.480115, + "simulation_ms": 0.221578, + "snapshot_ms": 0.192453, + "texture_count": 1, + "tick": 86, + "vertices": 66, + "wall_ms": 5.96917 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 87, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.55968, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.423932, + "renderer_cpu_ms": 2.419374, + "renderer_readback_cpu_ms": 0.587298, + "simulation_ms": 0.209495, + "snapshot_ms": 0.187624, + "texture_count": 1, + "tick": 87, + "vertices": 66, + "wall_ms": 2.829928 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 88, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.565568, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.554344, + "renderer_cpu_ms": 3.548023, + "renderer_readback_cpu_ms": 0.586096, + "simulation_ms": 0.20698, + "snapshot_ms": 0.205208, + "texture_count": 1, + "tick": 88, + "vertices": 66, + "wall_ms": 3.976961 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 89, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559584, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.253701, + "renderer_cpu_ms": 2.24803, + "renderer_readback_cpu_ms": 0.856997, + "simulation_ms": 0.237298, + "snapshot_ms": 0.196941, + "texture_count": 1, + "tick": 89, + "vertices": 66, + "wall_ms": 2.698109 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 90, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.567232, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.813713, + "renderer_cpu_ms": 3.808033, + "renderer_readback_cpu_ms": 0.585093, + "simulation_ms": 0.203984, + "snapshot_ms": 0.237308, + "texture_count": 1, + "tick": 90, + "vertices": 66, + "wall_ms": 4.264985 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 91, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559392, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.480429, + "renderer_cpu_ms": 2.475149, + "renderer_readback_cpu_ms": 0.654535, + "simulation_ms": 3.279176, + "snapshot_ms": 0.19127, + "texture_count": 1, + "tick": 91, + "vertices": 66, + "wall_ms": 5.961936 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 92, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559968, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.093976, + "renderer_cpu_ms": 3.088436, + "renderer_readback_cpu_ms": 1.227345, + "simulation_ms": 0.234102, + "snapshot_ms": 0.192763, + "texture_count": 1, + "tick": 92, + "vertices": 66, + "wall_ms": 3.534828 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 93, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.57728, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 1.846283, + "renderer_cpu_ms": 1.842366, + "renderer_readback_cpu_ms": 0.486728, + "simulation_ms": 0.208172, + "snapshot_ms": 0.186973, + "texture_count": 1, + "tick": 93, + "vertices": 66, + "wall_ms": 2.251817 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 94, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.560416, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.802105, + "renderer_cpu_ms": 2.796906, + "renderer_readback_cpu_ms": 0.573873, + "simulation_ms": 0.194227, + "snapshot_ms": 0.137419, + "texture_count": 1, + "tick": 94, + "vertices": 66, + "wall_ms": 3.144772 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 95, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.561184, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.208286, + "renderer_cpu_ms": 2.20037, + "renderer_readback_cpu_ms": 0.75319, + "simulation_ms": 0.154842, + "snapshot_ms": 0.219634, + "texture_count": 1, + "tick": 95, + "vertices": 66, + "wall_ms": 2.595577 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 96, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.563648, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 1.975586, + "renderer_cpu_ms": 1.971429, + "renderer_readback_cpu_ms": 0.533968, + "simulation_ms": 4.035202, + "snapshot_ms": 0.221748, + "texture_count": 1, + "tick": 96, + "vertices": 66, + "wall_ms": 6.244388 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 97, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559648, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 6.46199, + "renderer_cpu_ms": 6.454435, + "renderer_readback_cpu_ms": 2.200511, + "simulation_ms": 0.20137, + "snapshot_ms": 0.20136, + "texture_count": 1, + "tick": 97, + "vertices": 66, + "wall_ms": 6.874959 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 98, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.56144, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.119835, + "renderer_cpu_ms": 3.114635, + "renderer_readback_cpu_ms": 1.483368, + "simulation_ms": 0.208614, + "snapshot_ms": 0.207411, + "texture_count": 1, + "tick": 98, + "vertices": 66, + "wall_ms": 3.548403 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 99, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.560768, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 4.706137, + "renderer_cpu_ms": 4.698923, + "renderer_readback_cpu_ms": 0.578171, + "simulation_ms": 0.213914, + "snapshot_ms": 0.198013, + "texture_count": 1, + "tick": 99, + "vertices": 66, + "wall_ms": 5.128935 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 100, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.581792, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.467815, + "renderer_cpu_ms": 2.462866, + "renderer_readback_cpu_ms": 0.72111, + "simulation_ms": 0.188175, + "snapshot_ms": 0.136838, + "texture_count": 1, + "tick": 100, + "vertices": 66, + "wall_ms": 2.803929 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 101, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559424, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.28507, + "renderer_cpu_ms": 2.280001, + "renderer_readback_cpu_ms": 0.631702, + "simulation_ms": 0.202011, + "snapshot_ms": 0.189948, + "texture_count": 1, + "tick": 101, + "vertices": 66, + "wall_ms": 2.689333 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 102, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.561504, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.148923, + "renderer_cpu_ms": 2.143664, + "renderer_readback_cpu_ms": 0.566498, + "simulation_ms": 0.277564, + "snapshot_ms": 0.254059, + "texture_count": 1, + "tick": 102, + "vertices": 66, + "wall_ms": 2.691727 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 103, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559904, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 4.768124, + "renderer_cpu_ms": 4.761361, + "renderer_readback_cpu_ms": 0.667709, + "simulation_ms": 0.200017, + "snapshot_ms": 0.198274, + "texture_count": 1, + "tick": 103, + "vertices": 66, + "wall_ms": 5.176234 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 104, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.563136, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 1.952914, + "renderer_cpu_ms": 1.948916, + "renderer_readback_cpu_ms": 0.567801, + "simulation_ms": 0.202953, + "snapshot_ms": 0.152628, + "texture_count": 1, + "tick": 104, + "vertices": 66, + "wall_ms": 2.321349 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 105, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.560064, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 1.92491, + "renderer_cpu_ms": 1.91904, + "renderer_readback_cpu_ms": 0.599982, + "simulation_ms": 0.158599, + "snapshot_ms": 0.142719, + "texture_count": 1, + "tick": 105, + "vertices": 66, + "wall_ms": 2.236358 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 106, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.561056, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.045785, + "renderer_cpu_ms": 3.038872, + "renderer_readback_cpu_ms": 1.573909, + "simulation_ms": 0.162196, + "snapshot_ms": 0.150163, + "texture_count": 1, + "tick": 106, + "vertices": 66, + "wall_ms": 3.369877 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 107, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.560512, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 4.102368, + "renderer_cpu_ms": 2.338852, + "renderer_readback_cpu_ms": 0.665065, + "simulation_ms": 0.245122, + "snapshot_ms": 0.139002, + "texture_count": 1, + "tick": 107, + "vertices": 66, + "wall_ms": 4.497323 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 108, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.56416, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.042482, + "renderer_cpu_ms": 2.037303, + "renderer_readback_cpu_ms": 0.640919, + "simulation_ms": 0.148199, + "snapshot_ms": 0.140435, + "texture_count": 1, + "tick": 108, + "vertices": 66, + "wall_ms": 2.340164 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 109, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.562432, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.289128, + "renderer_cpu_ms": 2.282125, + "renderer_readback_cpu_ms": 0.69441, + "simulation_ms": 0.240784, + "snapshot_ms": 0.451391, + "texture_count": 1, + "tick": 109, + "vertices": 66, + "wall_ms": 2.993166 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 110, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.562304, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.587832, + "renderer_cpu_ms": 2.582401, + "renderer_readback_cpu_ms": 0.627133, + "simulation_ms": 0.227449, + "snapshot_ms": 0.195669, + "texture_count": 1, + "tick": 110, + "vertices": 66, + "wall_ms": 3.022131 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 111, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.573792, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.099, + "renderer_cpu_ms": 2.094701, + "renderer_readback_cpu_ms": 0.583971, + "simulation_ms": 0.222369, + "snapshot_ms": 0.13762, + "texture_count": 1, + "tick": 111, + "vertices": 66, + "wall_ms": 2.470651 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 112, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.563264, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.083511, + "renderer_cpu_ms": 2.075054, + "renderer_readback_cpu_ms": 0.813604, + "simulation_ms": 0.141437, + "snapshot_ms": 0.135486, + "texture_count": 1, + "tick": 112, + "vertices": 66, + "wall_ms": 2.369891 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 113, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.561152, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 1.894623, + "renderer_cpu_ms": 1.888392, + "renderer_readback_cpu_ms": 0.648172, + "simulation_ms": 0.260031, + "snapshot_ms": 0.198895, + "texture_count": 1, + "tick": 113, + "vertices": 66, + "wall_ms": 2.366193 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 114, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559872, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 1.997708, + "renderer_cpu_ms": 1.992418, + "renderer_readback_cpu_ms": 0.540629, + "simulation_ms": 0.220757, + "snapshot_ms": 0.182454, + "texture_count": 1, + "tick": 114, + "vertices": 66, + "wall_ms": 2.414014 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 115, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.560416, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 1.897018, + "renderer_cpu_ms": 1.891749, + "renderer_readback_cpu_ms": 0.520832, + "simulation_ms": 0.152798, + "snapshot_ms": 0.163859, + "texture_count": 1, + "tick": 115, + "vertices": 66, + "wall_ms": 2.226299 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 116, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.561376, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.124427, + "renderer_cpu_ms": 2.120099, + "renderer_readback_cpu_ms": 0.634396, + "simulation_ms": 0.150894, + "snapshot_ms": 0.136778, + "texture_count": 1, + "tick": 116, + "vertices": 66, + "wall_ms": 2.423301 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 117, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.559904, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 1.848537, + "renderer_cpu_ms": 1.843507, + "renderer_readback_cpu_ms": 0.489243, + "simulation_ms": 0.151967, + "snapshot_ms": 0.137449, + "texture_count": 1, + "tick": 117, + "vertices": 66, + "wall_ms": 2.152871 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 118, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.567488, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 1.962973, + "renderer_cpu_ms": 1.957923, + "renderer_readback_cpu_ms": 0.527125, + "simulation_ms": 0.143922, + "snapshot_ms": 0.134734, + "texture_count": 1, + "tick": 118, + "vertices": 66, + "wall_ms": 2.251617 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 119, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.56128, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 1.897239, + "renderer_cpu_ms": 1.892119, + "renderer_readback_cpu_ms": 0.581246, + "simulation_ms": 0.187844, + "snapshot_ms": 0.143781, + "texture_count": 1, + "tick": 119, + "vertices": 66, + "wall_ms": 2.238593 + }, + { + "draw_calls": 11, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 120, + "gpu_allocated_bytes": 15750288, + "gpu_ms": 0.558144, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 1.872843, + "renderer_cpu_ms": 1.869636, + "renderer_readback_cpu_ms": 0.574514, + "simulation_ms": 0.159621, + "snapshot_ms": 0.133512, + "texture_count": 1, + "tick": 120, + "vertices": 66, + "wall_ms": 2.178489 + } + ], + "simulation_mode": "synthetic_fixed_timestep", + "startup_ms": { + "main_to_first_frame": 398.146816, + "renderer_initialization": 385.858437, + "scene_read": 0.611413, + "world_initialization": 0.670625 + }, + "summary_ms": { + "gpu": { + "max": 0.581792, + "min": 0.55696, + "p50": 0.56032, + "p95": 0.571968, + "samples": 120 + }, + "render_call": { + "max": 8.92785, + "min": 1.767093, + "p50": 2.388886, + "p95": 4.916754, + "samples": 120 + }, + "renderer_cpu": { + "max": 8.922791, + "min": 1.762985, + "p50": 2.372405, + "p95": 4.910192, + "samples": 120 + }, + "renderer_readback_cpu": { + "max": 3.480115, + "min": 0.461981, + "p50": 0.631702, + "p95": 1.483368, + "samples": 120 + }, + "simulation": { + "max": 4.035202, + "min": 0.141437, + "p50": 0.213794, + "p95": 0.321327, + "samples": 120 + }, + "snapshot": { + "max": 0.740767, + "min": 0.13285, + "p50": 0.194106, + "p95": 0.407779, + "samples": 120 + }, + "wall": { + "max": 9.833829, + "min": 2.085394, + "p50": 2.880784, + "p95": 5.96917, + "samples": 120 + } + }, + "timing_notes": "Durations use steady_clock wall time, not thread CPU usage. render_call/renderer_cpu include GPU waits, readback and window presentation. renderer_readback_cpu measures map/copy/unmap wall time within that call. GPU timestamps cover submitted rendering, not CPU work. A missing/zero GPU timestamp is null. Frame durations exclude profile bookkeeping and final capture/profile file writes. Startup begins at Player application entry after platform argument normalization, excluding OS loader/launcher.", + "validation_enabled": true, + "validation_errors": 0, + "version": 1, + "visibility_mode": "direct", + "width": 1280 +} diff --git a/docs/validation/p2-gpu-visibility-2026-09-23/collect-2d-run.json b/docs/validation/p2-gpu-visibility-2026-09-23/collect-2d-run.json new file mode 100644 index 0000000..1239835 --- /dev/null +++ b/docs/validation/p2-gpu-visibility-2026-09-23/collect-2d-run.json @@ -0,0 +1,18 @@ +{ + "arguments": [ + "/tmp/faset-playable-exports-u_8rjufs/Faset Café 世界/collect-2d/faset_player", + "--headless", + "--frames", + "120", + "--capture", + "/tmp/faset-playable-exports-u_8rjufs/Faset Café 世界/collect-2d/verification.ppm", + "--profile", + "/tmp/faset-playable-exports-u_8rjufs/Faset Café 世界/collect-2d/profile.json" + ], + "cwd": "/tmp/faset-playable-exports-u_8rjufs/empty-working-directory", + "seconds": 0.9394604200206231, + "exit_code": 0, + "timed_out": false, + "stdout": "New round: collect the three gold cubes, then reach the green exit. E resets.\n{\"device\":\"NVIDIA GeForce RTX 2080 Ti\",\"dimension\":2,\"frames\":120,\"gpu_visibility_active\":false,\"ticks\":120,\"validation_errors\":0,\"visibility_mode\":\"direct\"}\n", + "stderr": "" +} diff --git a/docs/validation/p2-gpu-visibility-2026-09-23/collect-2d-validate.json b/docs/validation/p2-gpu-visibility-2026-09-23/collect-2d-validate.json new file mode 100644 index 0000000..982a949 --- /dev/null +++ b/docs/validation/p2-gpu-visibility-2026-09-23/collect-2d-validate.json @@ -0,0 +1,12 @@ +{ + "arguments": [ + "/tmp/faset-playable-exports-u_8rjufs/Faset Café 世界/collect-2d/faset_player", + "--validate" + ], + "cwd": "/tmp/faset-playable-exports-u_8rjufs/empty-working-directory", + "seconds": 0.011183144990354776, + "exit_code": 0, + "timed_out": false, + "stdout": "{\"dimension\":2,\"validated\":true}\n", + "stderr": "" +} diff --git a/docs/validation/p2-gpu-visibility-2026-09-23/collect-3d-direct-6.png b/docs/validation/p2-gpu-visibility-2026-09-23/collect-3d-direct-6.png new file mode 100644 index 0000000..c37645d Binary files /dev/null and b/docs/validation/p2-gpu-visibility-2026-09-23/collect-3d-direct-6.png differ diff --git a/docs/validation/p2-gpu-visibility-2026-09-23/collect-3d-gpu-frustum-profile.json b/docs/validation/p2-gpu-visibility-2026-09-23/collect-3d-gpu-frustum-profile.json new file mode 100644 index 0000000..d3fea7b --- /dev/null +++ b/docs/validation/p2-gpu-visibility-2026-09-23/collect-3d-gpu-frustum-profile.json @@ -0,0 +1,198 @@ +{ + "completed_frames": 6, + "device": "NVIDIA GeForce RTX 2080 Ti", + "dimension": 3, + "fixed_delta_seconds": 0.016666666666666666, + "format": "faset.player-profile", + "height": 720, + "percentile_method": "nearest_rank_all_completed_frames_no_warmup_exclusion", + "presentation_mode": "offscreen", + "requested_frames": 6, + "resource_notes": "gpu_allocated_bytes sums live Vulkan memory allocations, including alignment, excluding driver internals. texture_count includes the white fallback texture.", + "samples": [ + { + "draw_calls": 20, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 1, + "gpu_allocated_bytes": 15798512, + "gpu_ms": 0.61888, + "gpu_visibility_active": true, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 14.210575, + "renderer_cpu_ms": 14.203583, + "renderer_readback_cpu_ms": 6.924622, + "simulation_ms": 0.255843, + "snapshot_ms": 1.021316, + "texture_count": 1, + "tick": 1, + "vertices": 720, + "wall_ms": 15.597061 + }, + { + "draw_calls": 20, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 2, + "gpu_allocated_bytes": 15798512, + "gpu_ms": 0.608416, + "gpu_visibility_active": true, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 5.125658, + "renderer_cpu_ms": 5.116, + "renderer_readback_cpu_ms": 0.658192, + "simulation_ms": 0.28099, + "snapshot_ms": 0.235524, + "texture_count": 1, + "tick": 2, + "vertices": 720, + "wall_ms": 5.652933 + }, + { + "draw_calls": 20, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 3, + "gpu_allocated_bytes": 15798512, + "gpu_ms": 0.60528, + "gpu_visibility_active": true, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 4.80823, + "renderer_cpu_ms": 4.797389, + "renderer_readback_cpu_ms": 0.641901, + "simulation_ms": 0.297551, + "snapshot_ms": 0.276121, + "texture_count": 1, + "tick": 3, + "vertices": 720, + "wall_ms": 5.392282 + }, + { + "draw_calls": 20, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 4, + "gpu_allocated_bytes": 15798512, + "gpu_ms": 0.605824, + "gpu_visibility_active": true, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 5.855645, + "renderer_cpu_ms": 5.846038, + "renderer_readback_cpu_ms": 0.696824, + "simulation_ms": 0.32371, + "snapshot_ms": 0.245643, + "texture_count": 1, + "tick": 4, + "vertices": 720, + "wall_ms": 6.438234 + }, + { + "draw_calls": 20, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 5, + "gpu_allocated_bytes": 15798512, + "gpu_ms": 0.607584, + "gpu_visibility_active": true, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 4.411862, + "renderer_cpu_ms": 4.402855, + "renderer_readback_cpu_ms": 0.724306, + "simulation_ms": 0.290087, + "snapshot_ms": 0.231477, + "texture_count": 1, + "tick": 5, + "vertices": 720, + "wall_ms": 4.943475 + }, + { + "draw_calls": 20, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 6, + "gpu_allocated_bytes": 15798512, + "gpu_ms": 0.606208, + "gpu_visibility_active": true, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.279987, + "renderer_cpu_ms": 3.266321, + "renderer_readback_cpu_ms": 0.664774, + "simulation_ms": 0.318361, + "snapshot_ms": 0.250953, + "texture_count": 1, + "tick": 6, + "vertices": 720, + "wall_ms": 3.862496 + } + ], + "simulation_mode": "synthetic_fixed_timestep", + "startup_ms": { + "main_to_first_frame": 343.895332, + "renderer_initialization": 323.914923, + "scene_read": 0.505263, + "world_initialization": 1.141073 + }, + "summary_ms": { + "gpu": { + "max": 0.61888, + "min": 0.60528, + "p50": 0.606208, + "p95": 0.61888, + "samples": 6 + }, + "render_call": { + "max": 14.210575, + "min": 3.279987, + "p50": 4.80823, + "p95": 14.210575, + "samples": 6 + }, + "renderer_cpu": { + "max": 14.203583, + "min": 3.266321, + "p50": 4.797389, + "p95": 14.203583, + "samples": 6 + }, + "renderer_readback_cpu": { + "max": 6.924622, + "min": 0.641901, + "p50": 0.664774, + "p95": 6.924622, + "samples": 6 + }, + "simulation": { + "max": 0.32371, + "min": 0.255843, + "p50": 0.290087, + "p95": 0.32371, + "samples": 6 + }, + "snapshot": { + "max": 1.021316, + "min": 0.231477, + "p50": 0.245643, + "p95": 1.021316, + "samples": 6 + }, + "wall": { + "max": 15.597061, + "min": 3.862496, + "p50": 5.392282, + "p95": 15.597061, + "samples": 6 + } + }, + "timing_notes": "Durations use steady_clock wall time, not thread CPU usage. render_call/renderer_cpu include GPU waits, readback and window presentation. renderer_readback_cpu measures map/copy/unmap wall time within that call. GPU timestamps cover submitted rendering, not CPU work. A missing/zero GPU timestamp is null. Frame durations exclude profile bookkeeping and final capture/profile file writes. Startup begins at Player application entry after platform argument normalization, excluding OS loader/launcher.", + "validation_enabled": true, + "validation_errors": 0, + "version": 1, + "visibility_mode": "gpu-frustum", + "width": 1280 +} diff --git a/docs/validation/p2-gpu-visibility-2026-09-23/collect-3d-gpu-frustum.png b/docs/validation/p2-gpu-visibility-2026-09-23/collect-3d-gpu-frustum.png new file mode 100644 index 0000000..7701a62 Binary files /dev/null and b/docs/validation/p2-gpu-visibility-2026-09-23/collect-3d-gpu-frustum.png differ diff --git a/docs/validation/p2-gpu-visibility-2026-09-23/collect-3d-gpu-occlusion-profile.json b/docs/validation/p2-gpu-visibility-2026-09-23/collect-3d-gpu-occlusion-profile.json new file mode 100644 index 0000000..5d59cea --- /dev/null +++ b/docs/validation/p2-gpu-visibility-2026-09-23/collect-3d-gpu-occlusion-profile.json @@ -0,0 +1,198 @@ +{ + "completed_frames": 6, + "device": "NVIDIA GeForce RTX 2080 Ti", + "dimension": 3, + "fixed_delta_seconds": 0.016666666666666666, + "format": "faset.player-profile", + "height": 720, + "percentile_method": "nearest_rank_all_completed_frames_no_warmup_exclusion", + "presentation_mode": "offscreen", + "requested_frames": 6, + "resource_notes": "gpu_allocated_bytes sums live Vulkan memory allocations, including alignment, excluding driver internals. texture_count includes the white fallback texture.", + "samples": [ + { + "draw_calls": 24, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 1, + "gpu_allocated_bytes": 38171888, + "gpu_ms": 0.771968, + "gpu_visibility_active": true, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 11.369366, + "renderer_cpu_ms": 11.362463, + "renderer_readback_cpu_ms": 3.603508, + "simulation_ms": 0.338388, + "snapshot_ms": 0.880631, + "texture_count": 1, + "tick": 1, + "vertices": 720, + "wall_ms": 12.728099 + }, + { + "draw_calls": 24, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 2, + "gpu_allocated_bytes": 38171888, + "gpu_ms": 0.724864, + "gpu_visibility_active": true, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.184266, + "renderer_cpu_ms": 3.170179, + "renderer_readback_cpu_ms": 0.641099, + "simulation_ms": 0.223501, + "snapshot_ms": 0.269128, + "texture_count": 1, + "tick": 2, + "vertices": 720, + "wall_ms": 3.687185 + }, + { + "draw_calls": 24, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 3, + "gpu_allocated_bytes": 38171888, + "gpu_ms": 0.721568, + "gpu_visibility_active": true, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.179287, + "renderer_cpu_ms": 3.170631, + "renderer_readback_cpu_ms": 0.509361, + "simulation_ms": 0.307731, + "snapshot_ms": 0.283124, + "texture_count": 1, + "tick": 3, + "vertices": 720, + "wall_ms": 3.785811 + }, + { + "draw_calls": 24, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 4, + "gpu_allocated_bytes": 38171888, + "gpu_ms": 0.722336, + "gpu_visibility_active": true, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 5.69337, + "renderer_cpu_ms": 5.685525, + "renderer_readback_cpu_ms": 0.436172, + "simulation_ms": 0.289446, + "snapshot_ms": 0.252797, + "texture_count": 1, + "tick": 4, + "vertices": 720, + "wall_ms": 6.245241 + }, + { + "draw_calls": 24, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 5, + "gpu_allocated_bytes": 38171888, + "gpu_ms": 0.73584, + "gpu_visibility_active": true, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 5.95359, + "renderer_cpu_ms": 5.941097, + "renderer_readback_cpu_ms": 0.531442, + "simulation_ms": 0.274438, + "snapshot_ms": 0.223482, + "texture_count": 1, + "tick": 5, + "vertices": 720, + "wall_ms": 6.460516 + }, + { + "draw_calls": 24, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 6, + "gpu_allocated_bytes": 38171888, + "gpu_ms": 0.72576, + "gpu_visibility_active": true, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 5.297592, + "renderer_cpu_ms": 5.082367, + "renderer_readback_cpu_ms": 0.648092, + "simulation_ms": 0.275159, + "snapshot_ms": 0.235665, + "texture_count": 1, + "tick": 6, + "vertices": 720, + "wall_ms": 5.82136 + } + ], + "simulation_mode": "synthetic_fixed_timestep", + "startup_ms": { + "main_to_first_frame": 367.40061, + "renderer_initialization": 351.144686, + "scene_read": 0.607135, + "world_initialization": 0.946856 + }, + "summary_ms": { + "gpu": { + "max": 0.771968, + "min": 0.721568, + "p50": 0.724864, + "p95": 0.771968, + "samples": 6 + }, + "render_call": { + "max": 11.369366, + "min": 3.179287, + "p50": 5.297592, + "p95": 11.369366, + "samples": 6 + }, + "renderer_cpu": { + "max": 11.362463, + "min": 3.170179, + "p50": 5.082367, + "p95": 11.362463, + "samples": 6 + }, + "renderer_readback_cpu": { + "max": 3.603508, + "min": 0.436172, + "p50": 0.531442, + "p95": 3.603508, + "samples": 6 + }, + "simulation": { + "max": 0.338388, + "min": 0.223501, + "p50": 0.275159, + "p95": 0.338388, + "samples": 6 + }, + "snapshot": { + "max": 0.880631, + "min": 0.223482, + "p50": 0.252797, + "p95": 0.880631, + "samples": 6 + }, + "wall": { + "max": 12.728099, + "min": 3.687185, + "p50": 5.82136, + "p95": 12.728099, + "samples": 6 + } + }, + "timing_notes": "Durations use steady_clock wall time, not thread CPU usage. render_call/renderer_cpu include GPU waits, readback and window presentation. renderer_readback_cpu measures map/copy/unmap wall time within that call. GPU timestamps cover submitted rendering, not CPU work. A missing/zero GPU timestamp is null. Frame durations exclude profile bookkeeping and final capture/profile file writes. Startup begins at Player application entry after platform argument normalization, excluding OS loader/launcher.", + "validation_enabled": true, + "validation_errors": 0, + "version": 1, + "visibility_mode": "gpu-occlusion", + "width": 1280 +} diff --git a/docs/validation/p2-gpu-visibility-2026-09-23/collect-3d-gpu-occlusion.png b/docs/validation/p2-gpu-visibility-2026-09-23/collect-3d-gpu-occlusion.png new file mode 100644 index 0000000..7701a62 Binary files /dev/null and b/docs/validation/p2-gpu-visibility-2026-09-23/collect-3d-gpu-occlusion.png differ diff --git a/docs/validation/p2-gpu-visibility-2026-09-23/collect-3d-import.json b/docs/validation/p2-gpu-visibility-2026-09-23/collect-3d-import.json new file mode 100644 index 0000000..25b15f6 --- /dev/null +++ b/docs/validation/p2-gpu-visibility-2026-09-23/collect-3d-import.json @@ -0,0 +1,18 @@ +{ + "arguments": [ + "/home/emil/Desktop/.worktrees/Faset_Engine-p2/build/p2-release/faset_editor", + "--engine", + "/home/emil/Desktop/.worktrees/Faset_Engine-p2", + "--project", + "/home/emil/Desktop/.worktrees/Faset_Engine-p2/.cache/p2-playable-exports-retry/Faset Café 世界/collect-3d", + "--command", + "{\"name\": \"faset_import\", \"arguments\": {\"path\": \"Assets/exit-arch/manifest.json\"}}", + "--wait" + ], + "cwd": "/home/emil/Desktop/.worktrees/Faset_Engine-p2", + "seconds": 0.03160038799978793, + "exit_code": 0, + "timed_out": false, + "stdout": "{\n \"error\": \"\",\n \"id\": \"import-816d050c-4c54-482b-a60e-997cfd3863f5\",\n \"kind\": \"import\",\n \"progress\": 1.0,\n \"request\": {\n \"allow_removed_outputs\": false,\n \"path\": \"Assets/exit-arch/manifest.json\",\n \"settings\": null\n },\n \"result\": {\n \"asset_id\": \"5832763b-3ed0-44d6-9088-0b524f196a91\",\n \"cache_hit\": false,\n \"diagnostics\": [],\n \"generation\": \"4a5bfcc1437a7b4d65c388da2beace0308cceda8e16503d08ce676260f21d5c2\",\n \"manifest\": {\n \"asset_id\": \"5832763b-3ed0-44d6-9088-0b524f196a91\",\n \"files\": [\n {\n \"path\": \"meshes/mesh-fc069a07a87e0f831fd92efdbc4efa1f-0.fmesh\",\n \"sha256\": \"98b38aca7d2786c58a2265ba4d1f2255123f03d31d947e239232cf55bfdc2c97\",\n \"size\": 928\n },\n {\n \"path\": \"meshes/mesh-0961e2a3f92977836a3aa80cab09277e-0.fmesh\",\n \"sha256\": \"98b38aca7d2786c58a2265ba4d1f2255123f03d31d947e239232cf55bfdc2c97\",\n \"size\": 928\n },\n {\n \"path\": \"meshes/mesh-93b5b3e52cb6bb120fefb80e2d8e222b-0.fmesh\",\n \"sha256\": \"3875c16ea628d4126373ebfe07816621fbad3961596a2fcd112f1eec0e378071\",\n \"size\": 928\n }\n ],\n \"generation\": \"4a5bfcc1437a7b4d65c388da2beace0308cceda8e16503d08ce676260f21d5c2\",\n \"importer\": \"faset-gltf-1/cgltf-1.15\",\n \"input_key\": {\n \"bundle_sha256\": \"7a13347adc89761fb02ebeab3c58ba87f319cd62f53ec87a3bb61bcd066ffa55\",\n \"dependencies\": {},\n \"importer\": \"faset-gltf-1/cgltf-1.15\",\n \"settings\": {},\n \"source\": \"ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3\",\n \"target_profile\": \"desktop-static-pbr-v1\",\n \"toolchain\": {\n \"cgltf\": \"360db1a95480fe102ae9c69b27c5d101167ff5ba\",\n \"stb\": \"2c980bb59875b0d32144a71867fbdebb2f77cd20\"\n }\n },\n \"kind\": \"scene\",\n \"materials\": [\n {\n \"alpha_cutoff\": 0.5,\n \"alpha_mode\": \"OPAQUE\",\n \"base_color\": [\n 0.2199999988079071,\n 0.28999999165534973,\n 0.3400000035762787,\n 1.0\n ],\n \"base_color_texture\": -1,\n \"double_sided\": true,\n \"emissive\": [\n 0.0,\n 0.0,\n 0.0\n ],\n \"emissive_texture\": -1,\n \"format\": \"faset.material\",\n \"id\": \"material-bb63b094febbf90bb7049c9bcf7587bc\",\n \"metallic\": 0.07999999821186066,\n \"metallic_roughness_texture\": -1,\n \"name\": \"Weathered stone\",\n \"normal_texture\": -1,\n \"occlusion_texture\": -1,\n \"roughness\": 0.800000011920929,\n \"unlit\": false,\n \"version\": 1\n }\n ],\n \"meshes\": [\n {\n \"id\": \"mesh-fc069a07a87e0f831fd92efdbc4efa1f\",\n \"name\": \"Cube.001\",\n \"primitives\": [\n {\n \"material\": 0,\n \"path\": \"meshes/mesh-fc069a07a87e0f831fd92efdbc4efa1f-0.fmesh\"\n }\n ]\n },\n {\n \"id\": \"mesh-0961e2a3f92977836a3aa80cab09277e\",\n \"name\": \"Cube.002\",\n \"primitives\": [\n {\n \"material\": 0,\n \"path\": \"meshes/mesh-0961e2a3f92977836a3aa80cab09277e-0.fmesh\"\n }\n ]\n },\n {\n \"id\": \"mesh-93b5b3e52cb6bb120fefb80e2d8e222b\",\n \"name\": \"Cube.003\",\n \"primitives\": [\n {\n \"material\": 0,\n \"path\": \"meshes/mesh-93b5b3e52cb6bb120fefb80e2d8e222b-0.fmesh\"\n }\n ]\n }\n ],\n \"nodes\": [\n {\n \"id\": \"node-cec6e8cea80cf5a98ba3263a0156bee4\",\n \"local_transform\": [\n 1.0,\n 0.0,\n 0.0,\n 0.0,\n 0.0,\n 1.0,\n 0.0,\n 0.0,\n 0.0,\n 0.0,\n 1.0,\n 0.0,\n 0.0,\n 1.4500000476837158,\n 1.2999999523162842,\n 1.0\n ],\n \"mesh\": 0,\n \"name\": \"Left post\",\n \"parent_id\": \"\",\n \"stable_source_id\": true\n },\n {\n \"id\": \"node-5f8a90a6c4d27020d20bd4fa81d1d958\",\n \"local_transform\": [\n 1.0,\n 0.0,\n 0.0,\n 0.0,\n 0.0,\n 1.0,\n 0.0,\n 0.0,\n 0.0,\n 0.0,\n 1.0,\n 0.0,\n 0.0,\n 1.4500000476837158,\n -1.2999999523162842,\n 1.0\n ],\n \"mesh\": 1,\n \"name\": \"Right post\",\n \"parent_id\": \"\",\n \"stable_source_id\": true\n },\n {\n \"id\": \"node-482463e486a8d1fd741340c653cd128f\",\n \"local_transform\": [\n 1.0,\n 0.0,\n 0.0,\n 0.0,\n 0.0,\n 1.0,\n 0.0,\n 0.0,\n 0.0,\n 0.0,\n 1.0,\n 0.0,\n 0.0,\n 3.0,\n 0.0,\n 1.0\n ],\n \"mesh\": 2,\n \"name\": \"Lintel\",\n \"parent_id\": \"\",\n \"stable_source_id\": true\n }\n ],\n \"outputs\": [\n \"node-cec6e8cea80cf5a98ba3263a0156bee4\",\n \"node-5f8a90a6c4d27020d20bd4fa81d1d958\",\n \"node-482463e486a8d1fd741340c653cd128f\",\n \"mesh-fc069a07a87e0f831fd92efdbc4efa1f\",\n \"mesh-0961e2a3f92977836a3aa80cab09277e\",\n \"mesh-93b5b3e52cb6bb120fefb80e2d8e222b\",\n \"material-bb63b094febbf90bb7049c9bcf7587bc\"\n ],\n \"payload_source\": \"/home/emil/Desktop/.worktrees/Faset_Engine-p2/.cache/p2-playable-exports-retry/Faset Café 世界/collect-3d/Assets/exit-arch/payload/ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3.glb\",\n \"schema_version\": 1,\n \"settings\": {},\n \"source\": \"/home/emil/Desktop/.worktrees/Faset_Engine-p2/.cache/p2-playable-exports-retry/Faset Café 世界/collect-3d/Assets/exit-arch/manifest.json\",\n \"source_sha256\": \"ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3\",\n \"textures\": []\n },\n \"previous_generation\": \"\",\n \"removed_output_ids\": []\n },\n \"stage\": \"complete\",\n \"state\": \"succeeded\"\n}\n", + "stderr": "" +} diff --git a/docs/validation/p2-gpu-visibility-2026-09-23/collect-3d-manifest.json b/docs/validation/p2-gpu-visibility-2026-09-23/collect-3d-manifest.json new file mode 100644 index 0000000..5d52e75 --- /dev/null +++ b/docs/validation/p2-gpu-visibility-2026-09-23/collect-3d-manifest.json @@ -0,0 +1,222 @@ +{ + "asset_generations": { + "5832763b-3ed0-44d6-9088-0b524f196a91": "4a5bfcc1437a7b4d65c388da2beace0308cceda8e16503d08ce676260f21d5c2" + }, + "build_fingerprint": "337f590d99812f1509c9373117bda21a3ff7eb3e192f60a3752828d813e74b25", + "configuration": "Release", + "executable": "faset_player", + "files": [ + { + "path": "scene.fscene", + "sha256": "21c364140669ec82c6886102667b255df5ccdf0ec77e0ca64060f84dd7b86632", + "size": 8639 + }, + { + "path": "faset_player", + "sha256": "716d250a863ccc9fc13304a1f7775b9c820c186d5b0a21e6c9a88bd98798abbf", + "size": 5977808 + }, + { + "path": "shaders/vertexMain.spv", + "sha256": "1ad2631c35d654f48166321ae43d4165043e1b919b14f1dc61caf97b1ada0898", + "size": 1224 + }, + { + "path": "shaders/fragmentMain.spv", + "sha256": "f5c4f289917ecab5d00d543c053aac1d10e6cca311fd172daf06d315160a3505", + "size": 7436 + }, + { + "path": "shaders/shadowMain.spv", + "sha256": "7643b4d688492b5ee923b9606f0b0e70343ca05fa67673838206119a6f86d8d8", + "size": 784 + }, + { + "path": "shaders/vertexMain.reflection.json", + "sha256": "c584f3b957ebf194a292451362a98590f85ff3cfbfd8f917b1c1265039381777", + "size": 2639 + }, + { + "path": "shaders/fragmentMain.reflection.json", + "sha256": "72ebf8d32452830650416dc4717d89a4324e97ece7028dfb97c66803c8dce71f", + "size": 2649 + }, + { + "path": "shaders/shadowMain.reflection.json", + "sha256": "e3fd0889cd2f569d410f5d7558a4091d9f57f247a1dcf1788462f67525340819", + "size": 2645 + }, + { + "path": "shaders/gpuVertexMain.spv", + "sha256": "041c1e5f0db4007c51e01ed5db6e0fbf4db09b8dcbcb085c0c73612cdc682fe3", + "size": 5008 + }, + { + "path": "shaders/gpuShadowMain.spv", + "sha256": "9078577943bf9c51220d5341434834eb4a28cf0f0f6203bad2b96e1b0e11b360", + "size": 2484 + }, + { + "path": "shaders/gpuCullMain.spv", + "sha256": "7691360ec55f41d40d43652f506b051cef8b3a3ddcdcc7db61a7d4d97f9e87d8", + "size": 16180 + }, + { + "path": "shaders/gpuHzbMain.spv", + "sha256": "08682362ee2120ed19d260e613285071747c3e436bb09bb6238e46f9cedc2308", + "size": 4140 + }, + { + "path": "shaders/gpuPostCullMain.spv", + "sha256": "62cb72e356346e1511c6d640a3cecb4a6e5283795338299b357edae5f7f52be4", + "size": 12460 + }, + { + "path": "shaders/gpuVertexMain.reflection.json", + "sha256": "3726c09d38e68cf0b6e317daaddb7b5b3e1bb0b073afd0eff43b8f1125378cd9", + "size": 3092 + }, + { + "path": "shaders/gpuShadowMain.reflection.json", + "sha256": "7fbe869421b61f0261729eac26ebda2a484d423583d3a5b739ba59bbf3afbe12", + "size": 2749 + }, + { + "path": "shaders/gpuCullMain.reflection.json", + "sha256": "996fe5c7e31c6b8f316d8f290b3be0ae7063eb46c500a661e8715e9b822a2598", + "size": 3587 + }, + { + "path": "shaders/gpuHzbMain.reflection.json", + "sha256": "589818f670881c64f3aba726ee3bc82fe4b9d835a347f99134e0e157dc4a112e", + "size": 2050 + }, + { + "path": "shaders/gpuPostCullMain.reflection.json", + "sha256": "eed140bbe09c7d14935b688c770261ac0e81677c0974aa811c88ed67ea779b95", + "size": 3591 + }, + { + "path": "assets/5832763b-3ed0-44d6-9088-0b524f196a91/generations/4a5bfcc1437a7b4d65c388da2beace0308cceda8e16503d08ce676260f21d5c2/meshes/mesh-fc069a07a87e0f831fd92efdbc4efa1f-0.fmesh", + "sha256": "98b38aca7d2786c58a2265ba4d1f2255123f03d31d947e239232cf55bfdc2c97", + "size": 928 + }, + { + "path": "assets/5832763b-3ed0-44d6-9088-0b524f196a91/generations/4a5bfcc1437a7b4d65c388da2beace0308cceda8e16503d08ce676260f21d5c2/meshes/mesh-0961e2a3f92977836a3aa80cab09277e-0.fmesh", + "sha256": "98b38aca7d2786c58a2265ba4d1f2255123f03d31d947e239232cf55bfdc2c97", + "size": 928 + }, + { + "path": "assets/5832763b-3ed0-44d6-9088-0b524f196a91/generations/4a5bfcc1437a7b4d65c388da2beace0308cceda8e16503d08ce676260f21d5c2/meshes/mesh-93b5b3e52cb6bb120fefb80e2d8e222b-0.fmesh", + "sha256": "3875c16ea628d4126373ebfe07816621fbad3961596a2fcd112f1eec0e378071", + "size": 928 + }, + { + "path": "assets/5832763b-3ed0-44d6-9088-0b524f196a91/generations/4a5bfcc1437a7b4d65c388da2beace0308cceda8e16503d08ce676260f21d5c2/manifest.json", + "sha256": "ee3f68794c6dc44ab492b1ba4640aa74e4de79a5ec10aed8dcdd45a03afc508e", + "size": 4532 + }, + { + "path": "assets/5832763b-3ed0-44d6-9088-0b524f196a91/current.json", + "sha256": "b0732959808ce61ef5a3223fba2d9ad8c17a3ea7873d4a81c00aadee6c51032e", + "size": 134 + }, + { + "path": "Notices/sdl3/LICENSE.txt", + "sha256": "97f35b302b361680ec1e891e95d2d52097bb95abff361434916d99dc1305f127", + "size": 884 + }, + { + "path": "Notices/entt/LICENSE", + "sha256": "0785027ce472d7c61f05fba664a1d3ba6639c1593ced351ad9e4bed868765d99", + "size": 1097 + }, + { + "path": "Notices/box2d/LICENSE", + "sha256": "68a3e676d7e94093b102d5cba0d4e04af812040d6f230c3db67a6664574e43d2", + "size": 1067 + }, + { + "path": "Notices/box3d/LICENSE", + "sha256": "da5e31a26bf3cfd5ba5c96d6823e480128c81e76c107ef9d3ee5d94789184b90", + "size": 1067 + }, + { + "path": "Notices/json/LICENSE.MIT", + "sha256": "46a65cffd1ea955132d95a8dd921640714a8d6b537d2e4e482d31145ae95b603", + "size": 1076 + }, + { + "path": "Notices/stb/LICENSE", + "sha256": "bebfe904b14301657e4e5d655c811d51fd31b97c455b9cc2d8600d6bac6cff63", + "size": 2510 + }, + { + "path": "Notices/dependencies.json", + "sha256": "a54639ad2d9ad13c2e5f1ec90d6775f5dfc493656789b78c7e44debe2a378fdc", + "size": 2206 + }, + { + "path": "Notices/Faset-NOTICE.txt", + "sha256": "30c2e7e80f5153b31ab57675e07246aef9165965d64e36022b426a26449ece3f", + "size": 204 + }, + { + "path": "README.txt", + "sha256": "82bf72bc542643f6c4090e0a5de69b0014ca3fa17c6f9dfb12cc41e44c8b8db6", + "size": 262 + } + ], + "format": "faset.export", + "generation": "013fe953-8787-45ac-963f-ffbd9ac5f636", + "lua_enabled": false, + "lua_fingerprint": "", + "platform": "linux", + "prerequisites": [ + "Linux x86_64", + "Vulkan 1.3 driver", + "Compatible glibc and libstdc++ runtime" + ], + "renderer_profile": { + "api": "Vulkan 1.3", + "materials": [ + "base-color factor and texture", + "metallic and roughness factors" + ], + "required_features": [ + "dynamicRendering", + "synchronization2" + ], + "shadow_map": { + "resolution": 1024, + "world_extent": 40 + }, + "texture_sampling": "linear clamp, one mip level", + "unsupported_material_features": [ + "normal maps", + "metallic-roughness maps", + "emissive and occlusion maps", + "alpha mode selection", + "unlit mode", + "per-material face culling" + ] + }, + "scene_hash": "ee12794145c14ba5b599c5d9ae21648cccdfa91c47ee7742549f60d5fe7bc3e0", + "simulation": { + "fixed_delta": 0.016666666666666666, + "gravity": [ + 0, + -9.81, + 0 + ], + "max_catch_up_ticks": 4, + "physics_substeps": 4 + }, + "units": { + "angle": "radian", + "coordinates": "right-handed Y-up", + "distance": "metre" + }, + "validation_log": "warning: material material-bb63b094febbf90bb7049c9bcf7587bc has features beyond the initial base-color/PBR renderer\n{\"dimension\":3,\"validated\":true}\n", + "version": 1 +} diff --git a/docs/validation/p2-gpu-visibility-2026-09-23/collect-3d-profile.json b/docs/validation/p2-gpu-visibility-2026-09-23/collect-3d-profile.json new file mode 100644 index 0000000..999108c --- /dev/null +++ b/docs/validation/p2-gpu-visibility-2026-09-23/collect-3d-profile.json @@ -0,0 +1,2478 @@ +{ + "completed_frames": 120, + "device": "NVIDIA GeForce RTX 2080 Ti", + "dimension": 3, + "fixed_delta_seconds": 0.016666666666666666, + "format": "faset.player-profile", + "height": 720, + "percentile_method": "nearest_rank_all_completed_frames_no_warmup_exclusion", + "presentation_mode": "offscreen", + "requested_frames": 120, + "resource_notes": "gpu_allocated_bytes sums live Vulkan memory allocations, including alignment, excluding driver internals. texture_count includes the white fallback texture.", + "samples": [ + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 1, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.583552, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 9.67501, + "renderer_cpu_ms": 9.668939, + "renderer_readback_cpu_ms": 3.413839, + "simulation_ms": 0.434179, + "snapshot_ms": 1.61648, + "texture_count": 1, + "tick": 1, + "vertices": 576, + "wall_ms": 12.017098 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 2, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.572288, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.226811, + "renderer_cpu_ms": 2.220418, + "renderer_readback_cpu_ms": 0.588119, + "simulation_ms": 0.27065, + "snapshot_ms": 0.278977, + "texture_count": 1, + "tick": 2, + "vertices": 576, + "wall_ms": 2.785995 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 3, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.57312, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.521396, + "renderer_cpu_ms": 2.512039, + "renderer_readback_cpu_ms": 0.851637, + "simulation_ms": 0.37113, + "snapshot_ms": 0.253478, + "texture_count": 1, + "tick": 3, + "vertices": 576, + "wall_ms": 3.157166 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 4, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.573504, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.658154, + "renderer_cpu_ms": 2.647995, + "renderer_readback_cpu_ms": 0.782336, + "simulation_ms": 0.32881, + "snapshot_ms": 1.118851, + "texture_count": 1, + "tick": 4, + "vertices": 576, + "wall_ms": 4.120372 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 5, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.580032, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.733677, + "renderer_cpu_ms": 2.726733, + "renderer_readback_cpu_ms": 0.940634, + "simulation_ms": 0.322348, + "snapshot_ms": 0.248449, + "texture_count": 1, + "tick": 5, + "vertices": 576, + "wall_ms": 3.317308 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 6, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.572064, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.979316, + "renderer_cpu_ms": 3.972153, + "renderer_readback_cpu_ms": 2.172328, + "simulation_ms": 0.301709, + "snapshot_ms": 0.236997, + "texture_count": 1, + "tick": 6, + "vertices": 576, + "wall_ms": 4.530165 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 7, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.577376, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 6.113732, + "renderer_cpu_ms": 6.107551, + "renderer_readback_cpu_ms": 0.570476, + "simulation_ms": 0.319232, + "snapshot_ms": 0.993104, + "texture_count": 1, + "tick": 7, + "vertices": 576, + "wall_ms": 7.438571 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 8, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.578688, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 7.685887, + "renderer_cpu_ms": 7.677783, + "renderer_readback_cpu_ms": 4.2832, + "simulation_ms": 0.276472, + "snapshot_ms": 0.238249, + "texture_count": 1, + "tick": 8, + "vertices": 576, + "wall_ms": 8.210657 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 9, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.573792, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.607148, + "renderer_cpu_ms": 2.598582, + "renderer_readback_cpu_ms": 0.923902, + "simulation_ms": 0.298052, + "snapshot_ms": 0.309293, + "texture_count": 1, + "tick": 9, + "vertices": 576, + "wall_ms": 3.227549 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 10, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.57392, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.535092, + "renderer_cpu_ms": 2.524442, + "renderer_readback_cpu_ms": 0.716121, + "simulation_ms": 0.392781, + "snapshot_ms": 0.250973, + "texture_count": 1, + "tick": 10, + "vertices": 576, + "wall_ms": 3.193685 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 11, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.576, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 7.079244, + "renderer_cpu_ms": 7.071639, + "renderer_readback_cpu_ms": 0.563282, + "simulation_ms": 0.289596, + "snapshot_ms": 0.274057, + "texture_count": 1, + "tick": 11, + "vertices": 576, + "wall_ms": 7.657604 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 12, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.572992, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.88376, + "renderer_cpu_ms": 2.876295, + "renderer_readback_cpu_ms": 0.965602, + "simulation_ms": 0.235404, + "snapshot_ms": 0.195639, + "texture_count": 1, + "tick": 12, + "vertices": 576, + "wall_ms": 3.327497 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 13, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.581056, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 6.248336, + "renderer_cpu_ms": 6.240572, + "renderer_readback_cpu_ms": 0.65234, + "simulation_ms": 1.883623, + "snapshot_ms": 0.281872, + "texture_count": 1, + "tick": 13, + "vertices": 576, + "wall_ms": 8.426726 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 14, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.588096, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.403584, + "renderer_cpu_ms": 2.396561, + "renderer_readback_cpu_ms": 0.698076, + "simulation_ms": 0.312089, + "snapshot_ms": 0.272414, + "texture_count": 1, + "tick": 14, + "vertices": 576, + "wall_ms": 2.999708 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 15, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.572576, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.612829, + "renderer_cpu_ms": 2.601788, + "renderer_readback_cpu_ms": 0.553053, + "simulation_ms": 0.322668, + "snapshot_ms": 0.263006, + "texture_count": 1, + "tick": 15, + "vertices": 576, + "wall_ms": 3.211678 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 16, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.57312, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.224646, + "renderer_cpu_ms": 2.216812, + "renderer_readback_cpu_ms": 0.600022, + "simulation_ms": 0.209926, + "snapshot_ms": 0.178897, + "texture_count": 1, + "tick": 16, + "vertices": 576, + "wall_ms": 2.625442 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 17, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.573344, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.252439, + "renderer_cpu_ms": 2.246417, + "renderer_readback_cpu_ms": 0.605322, + "simulation_ms": 0.337417, + "snapshot_ms": 0.187985, + "texture_count": 1, + "tick": 17, + "vertices": 576, + "wall_ms": 2.788791 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 18, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.571936, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.12587, + "renderer_cpu_ms": 2.119187, + "renderer_readback_cpu_ms": 0.636241, + "simulation_ms": 0.22255, + "snapshot_ms": 0.204896, + "texture_count": 1, + "tick": 18, + "vertices": 576, + "wall_ms": 2.565178 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 19, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.572704, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.328573, + "renderer_cpu_ms": 2.321699, + "renderer_readback_cpu_ms": 0.518828, + "simulation_ms": 0.284617, + "snapshot_ms": 0.264309, + "texture_count": 1, + "tick": 19, + "vertices": 576, + "wall_ms": 2.887367 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 20, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.5712, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.872539, + "renderer_cpu_ms": 2.864473, + "renderer_readback_cpu_ms": 0.682918, + "simulation_ms": 0.345392, + "snapshot_ms": 0.289907, + "texture_count": 1, + "tick": 20, + "vertices": 576, + "wall_ms": 3.520722 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 21, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.586432, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.240813, + "renderer_cpu_ms": 3.231856, + "renderer_readback_cpu_ms": 0.785341, + "simulation_ms": 0.345021, + "snapshot_ms": 0.19081, + "texture_count": 1, + "tick": 21, + "vertices": 576, + "wall_ms": 3.788676 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 22, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.571744, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.536124, + "renderer_cpu_ms": 2.52855, + "renderer_readback_cpu_ms": 0.90675, + "simulation_ms": 0.311548, + "snapshot_ms": 0.290938, + "texture_count": 1, + "tick": 22, + "vertices": 576, + "wall_ms": 3.151795 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 23, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.571328, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.778952, + "renderer_cpu_ms": 2.77263, + "renderer_readback_cpu_ms": 0.691183, + "simulation_ms": 0.266473, + "snapshot_ms": 0.267965, + "texture_count": 1, + "tick": 23, + "vertices": 576, + "wall_ms": 3.325503 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 24, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.57376, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.906418, + "renderer_cpu_ms": 3.897572, + "renderer_readback_cpu_ms": 0.741568, + "simulation_ms": 0.229823, + "snapshot_ms": 0.263457, + "texture_count": 1, + "tick": 24, + "vertices": 576, + "wall_ms": 4.413615 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 25, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.593664, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 4.89304, + "renderer_cpu_ms": 4.884614, + "renderer_readback_cpu_ms": 0.661919, + "simulation_ms": 0.32868, + "snapshot_ms": 0.272274, + "texture_count": 1, + "tick": 25, + "vertices": 576, + "wall_ms": 5.507089 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 26, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.576768, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.002627, + "renderer_cpu_ms": 1.996827, + "renderer_readback_cpu_ms": 0.529869, + "simulation_ms": 0.272124, + "snapshot_ms": 0.20696, + "texture_count": 1, + "tick": 26, + "vertices": 576, + "wall_ms": 2.495877 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 27, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.599488, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.151448, + "renderer_cpu_ms": 2.145167, + "renderer_readback_cpu_ms": 0.541211, + "simulation_ms": 0.310015, + "snapshot_ms": 0.262726, + "texture_count": 1, + "tick": 27, + "vertices": 576, + "wall_ms": 2.735961 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 28, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.576096, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.521126, + "renderer_cpu_ms": 2.514233, + "renderer_readback_cpu_ms": 0.655928, + "simulation_ms": 0.212901, + "snapshot_ms": 0.179368, + "texture_count": 1, + "tick": 28, + "vertices": 576, + "wall_ms": 2.925579 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 29, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.572352, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.439622, + "renderer_cpu_ms": 2.431577, + "renderer_readback_cpu_ms": 0.683359, + "simulation_ms": 0.297712, + "snapshot_ms": 0.297892, + "texture_count": 1, + "tick": 29, + "vertices": 576, + "wall_ms": 3.047298 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 30, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.573408, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.69314, + "renderer_cpu_ms": 2.684934, + "renderer_readback_cpu_ms": 0.583951, + "simulation_ms": 0.320364, + "snapshot_ms": 0.297391, + "texture_count": 1, + "tick": 30, + "vertices": 576, + "wall_ms": 3.321405 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 31, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.572992, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 10.33747, + "renderer_cpu_ms": 10.330636, + "renderer_readback_cpu_ms": 0.692817, + "simulation_ms": 0.231006, + "snapshot_ms": 0.199256, + "texture_count": 1, + "tick": 31, + "vertices": 576, + "wall_ms": 10.779975 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 32, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.571968, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 15.27347, + "renderer_cpu_ms": 15.265616, + "renderer_readback_cpu_ms": 0.686214, + "simulation_ms": 0.303803, + "snapshot_ms": 0.282182, + "texture_count": 1, + "tick": 32, + "vertices": 576, + "wall_ms": 15.872521 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 33, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.572256, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 13.335966, + "renderer_cpu_ms": 13.328772, + "renderer_readback_cpu_ms": 0.572039, + "simulation_ms": 0.299946, + "snapshot_ms": 0.264739, + "texture_count": 1, + "tick": 33, + "vertices": 576, + "wall_ms": 13.914086 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 34, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.572832, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 4.396503, + "renderer_cpu_ms": 4.389681, + "renderer_readback_cpu_ms": 0.613848, + "simulation_ms": 0.297942, + "snapshot_ms": 0.251815, + "texture_count": 1, + "tick": 34, + "vertices": 576, + "wall_ms": 4.958864 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 35, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.572128, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.267818, + "renderer_cpu_ms": 2.262558, + "renderer_readback_cpu_ms": 0.553905, + "simulation_ms": 9.318287, + "snapshot_ms": 0.258127, + "texture_count": 1, + "tick": 35, + "vertices": 576, + "wall_ms": 11.855694 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 36, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.572992, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 7.553839, + "renderer_cpu_ms": 7.544702, + "renderer_readback_cpu_ms": 0.692837, + "simulation_ms": 0.252907, + "snapshot_ms": 0.276632, + "texture_count": 1, + "tick": 36, + "vertices": 576, + "wall_ms": 8.093136 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 37, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.571808, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 6.096991, + "renderer_cpu_ms": 6.088975, + "renderer_readback_cpu_ms": 0.722182, + "simulation_ms": 0.293514, + "snapshot_ms": 0.287652, + "texture_count": 1, + "tick": 37, + "vertices": 576, + "wall_ms": 6.692434 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 38, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.571456, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 4.721065, + "renderer_cpu_ms": 4.715375, + "renderer_readback_cpu_ms": 0.518387, + "simulation_ms": 0.277694, + "snapshot_ms": 0.294465, + "texture_count": 1, + "tick": 38, + "vertices": 576, + "wall_ms": 5.305047 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 39, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.57088, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.145968, + "renderer_cpu_ms": 2.139555, + "renderer_readback_cpu_ms": 0.602677, + "simulation_ms": 0.699549, + "snapshot_ms": 0.287553, + "texture_count": 1, + "tick": 39, + "vertices": 576, + "wall_ms": 3.143439 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 40, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.576256, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.210599, + "renderer_cpu_ms": 2.20514, + "renderer_readback_cpu_ms": 0.6309, + "simulation_ms": 0.267806, + "snapshot_ms": 0.247126, + "texture_count": 1, + "tick": 40, + "vertices": 576, + "wall_ms": 2.737183 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 41, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.572672, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.113698, + "renderer_cpu_ms": 2.108167, + "renderer_readback_cpu_ms": 0.552682, + "simulation_ms": 0.26498, + "snapshot_ms": 0.19646, + "texture_count": 1, + "tick": 41, + "vertices": 576, + "wall_ms": 2.587101 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 42, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.585024, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.087888, + "renderer_cpu_ms": 2.081146, + "renderer_readback_cpu_ms": 0.541301, + "simulation_ms": 0.269728, + "snapshot_ms": 0.546421, + "texture_count": 1, + "tick": 42, + "vertices": 576, + "wall_ms": 2.913195 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 43, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.57456, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.281844, + "renderer_cpu_ms": 2.274691, + "renderer_readback_cpu_ms": 0.643344, + "simulation_ms": 0.265451, + "snapshot_ms": 0.269689, + "texture_count": 1, + "tick": 43, + "vertices": 576, + "wall_ms": 2.827985 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 44, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.57232, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 6.495141, + "renderer_cpu_ms": 6.488349, + "renderer_readback_cpu_ms": 4.786889, + "simulation_ms": 0.267013, + "snapshot_ms": 0.355501, + "texture_count": 1, + "tick": 44, + "vertices": 576, + "wall_ms": 7.128827 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 45, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.575488, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.111159, + "renderer_cpu_ms": 3.103865, + "renderer_readback_cpu_ms": 0.680924, + "simulation_ms": 2.487122, + "snapshot_ms": 0.416425, + "texture_count": 1, + "tick": 45, + "vertices": 576, + "wall_ms": 6.025897 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 46, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.57312, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.957689, + "renderer_cpu_ms": 2.951086, + "renderer_readback_cpu_ms": 0.998654, + "simulation_ms": 0.267846, + "snapshot_ms": 0.280349, + "texture_count": 1, + "tick": 46, + "vertices": 576, + "wall_ms": 3.517986 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 47, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.579776, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.367646, + "renderer_cpu_ms": 2.360453, + "renderer_readback_cpu_ms": 0.716151, + "simulation_ms": 0.267214, + "snapshot_ms": 0.247376, + "texture_count": 1, + "tick": 47, + "vertices": 576, + "wall_ms": 2.894219 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 48, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.572608, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.301157, + "renderer_cpu_ms": 3.29263, + "renderer_readback_cpu_ms": 0.680484, + "simulation_ms": 0.281531, + "snapshot_ms": 0.247757, + "texture_count": 1, + "tick": 48, + "vertices": 576, + "wall_ms": 3.84334 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 49, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.582496, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.572753, + "renderer_cpu_ms": 2.56586, + "renderer_readback_cpu_ms": 0.969599, + "simulation_ms": 0.271021, + "snapshot_ms": 0.208343, + "texture_count": 1, + "tick": 49, + "vertices": 576, + "wall_ms": 3.062907 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 50, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.57264, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.447637, + "renderer_cpu_ms": 2.439281, + "renderer_readback_cpu_ms": 0.637883, + "simulation_ms": 0.318702, + "snapshot_ms": 0.303051, + "texture_count": 1, + "tick": 50, + "vertices": 576, + "wall_ms": 3.079368 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 51, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.572224, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.349979, + "renderer_cpu_ms": 3.343436, + "renderer_readback_cpu_ms": 1.237985, + "simulation_ms": 0.321467, + "snapshot_ms": 0.314313, + "texture_count": 1, + "tick": 51, + "vertices": 576, + "wall_ms": 3.998974 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 52, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.58704, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 4.380883, + "renderer_cpu_ms": 4.372999, + "renderer_readback_cpu_ms": 0.81103, + "simulation_ms": 0.282092, + "snapshot_ms": 0.273235, + "texture_count": 1, + "tick": 52, + "vertices": 576, + "wall_ms": 4.945689 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 53, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.577728, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 4.592393, + "renderer_cpu_ms": 4.583866, + "renderer_readback_cpu_ms": 1.055811, + "simulation_ms": 0.299565, + "snapshot_ms": 0.314182, + "texture_count": 1, + "tick": 53, + "vertices": 576, + "wall_ms": 5.218283 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 54, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.571552, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.456223, + "renderer_cpu_ms": 2.449721, + "renderer_readback_cpu_ms": 0.661046, + "simulation_ms": 0.351063, + "snapshot_ms": 0.277333, + "texture_count": 1, + "tick": 54, + "vertices": 576, + "wall_ms": 3.099536 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 55, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.580576, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.209765, + "renderer_cpu_ms": 3.192231, + "renderer_readback_cpu_ms": 0.966824, + "simulation_ms": 0.350491, + "snapshot_ms": 0.267255, + "texture_count": 1, + "tick": 55, + "vertices": 576, + "wall_ms": 3.842749 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 56, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.575936, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.564267, + "renderer_cpu_ms": 2.55542, + "renderer_readback_cpu_ms": 0.814506, + "simulation_ms": 0.288985, + "snapshot_ms": 0.279838, + "texture_count": 1, + "tick": 56, + "vertices": 576, + "wall_ms": 3.151194 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 57, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.575264, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 7.575189, + "renderer_cpu_ms": 7.566954, + "renderer_readback_cpu_ms": 5.034867, + "simulation_ms": 0.260912, + "snapshot_ms": 0.264169, + "texture_count": 1, + "tick": 57, + "vertices": 576, + "wall_ms": 8.113604 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 58, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.573184, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.009366, + "renderer_cpu_ms": 3.003025, + "renderer_readback_cpu_ms": 0.735487, + "simulation_ms": 0.550459, + "snapshot_ms": 0.283084, + "texture_count": 1, + "tick": 58, + "vertices": 576, + "wall_ms": 3.855362 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 59, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.57616, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.033653, + "renderer_cpu_ms": 3.026659, + "renderer_readback_cpu_ms": 0.682818, + "simulation_ms": 0.336064, + "snapshot_ms": 0.253699, + "texture_count": 1, + "tick": 59, + "vertices": 576, + "wall_ms": 3.640748 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 60, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.587488, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.713318, + "renderer_cpu_ms": 2.705423, + "renderer_readback_cpu_ms": 0.740627, + "simulation_ms": 0.98576, + "snapshot_ms": 0.281651, + "texture_count": 1, + "tick": 60, + "vertices": 576, + "wall_ms": 3.992961 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 61, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.573152, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.752122, + "renderer_cpu_ms": 2.743886, + "renderer_readback_cpu_ms": 0.718786, + "simulation_ms": 0.541701, + "snapshot_ms": 0.268256, + "texture_count": 1, + "tick": 61, + "vertices": 576, + "wall_ms": 3.57321 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 62, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.579744, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 4.511981, + "renderer_cpu_ms": 4.504647, + "renderer_readback_cpu_ms": 0.745616, + "simulation_ms": 0.288334, + "snapshot_ms": 0.536412, + "texture_count": 1, + "tick": 62, + "vertices": 576, + "wall_ms": 5.348849 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 63, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.581088, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.663304, + "renderer_cpu_ms": 2.65607, + "renderer_readback_cpu_ms": 0.872907, + "simulation_ms": 0.706412, + "snapshot_ms": 0.266603, + "texture_count": 1, + "tick": 63, + "vertices": 576, + "wall_ms": 3.650105 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 64, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.576832, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.645079, + "renderer_cpu_ms": 2.639629, + "renderer_readback_cpu_ms": 0.87452, + "simulation_ms": 0.270149, + "snapshot_ms": 0.359839, + "texture_count": 1, + "tick": 64, + "vertices": 576, + "wall_ms": 3.286279 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 65, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.572384, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.762541, + "renderer_cpu_ms": 2.754596, + "renderer_readback_cpu_ms": 0.709088, + "simulation_ms": 0.378043, + "snapshot_ms": 0.34962, + "texture_count": 1, + "tick": 65, + "vertices": 576, + "wall_ms": 3.501926 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 66, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.581536, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.715643, + "renderer_cpu_ms": 2.709702, + "renderer_readback_cpu_ms": 1.014694, + "simulation_ms": 0.26337699999999997, + "snapshot_ms": 0.338819, + "texture_count": 1, + "tick": 66, + "vertices": 576, + "wall_ms": 3.328589 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 67, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.586944, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.871457, + "renderer_cpu_ms": 2.863822, + "renderer_readback_cpu_ms": 0.648613, + "simulation_ms": 0.330453, + "snapshot_ms": 0.288023, + "texture_count": 1, + "tick": 67, + "vertices": 576, + "wall_ms": 3.500894 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 68, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.600128, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.988117, + "renderer_cpu_ms": 2.981594, + "renderer_readback_cpu_ms": 1.070779, + "simulation_ms": 0.270791, + "snapshot_ms": 0.365048, + "texture_count": 1, + "tick": 68, + "vertices": 576, + "wall_ms": 3.635218 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 69, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.57216, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.481742, + "renderer_cpu_ms": 2.474748, + "renderer_readback_cpu_ms": 0.753121, + "simulation_ms": 0.27569, + "snapshot_ms": 0.244251, + "texture_count": 1, + "tick": 69, + "vertices": 576, + "wall_ms": 3.011651 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 70, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.571904, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.663013, + "renderer_cpu_ms": 2.656931, + "renderer_readback_cpu_ms": 0.571498, + "simulation_ms": 0.275239, + "snapshot_ms": 0.249841, + "texture_count": 1, + "tick": 70, + "vertices": 576, + "wall_ms": 3.200216 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 71, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.57776, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.436306, + "renderer_cpu_ms": 2.429954, + "renderer_readback_cpu_ms": 0.761737, + "simulation_ms": 0.320294, + "snapshot_ms": 0.53538, + "texture_count": 1, + "tick": 71, + "vertices": 576, + "wall_ms": 3.301658 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 72, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.573984, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.589992, + "renderer_cpu_ms": 3.584061, + "renderer_readback_cpu_ms": 0.662009, + "simulation_ms": 0.262606, + "snapshot_ms": 0.235023, + "texture_count": 1, + "tick": 72, + "vertices": 576, + "wall_ms": 4.097379 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 73, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.571488, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 6.826287, + "renderer_cpu_ms": 6.818341, + "renderer_readback_cpu_ms": 0.637863, + "simulation_ms": 0.260521, + "snapshot_ms": 0.235194, + "texture_count": 1, + "tick": 73, + "vertices": 576, + "wall_ms": 7.332963 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 74, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.57856, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 8.219264, + "renderer_cpu_ms": 8.212883, + "renderer_readback_cpu_ms": 1.015646, + "simulation_ms": 0.256263, + "snapshot_ms": 0.237919, + "texture_count": 1, + "tick": 74, + "vertices": 576, + "wall_ms": 8.723746 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 75, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.574912, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 7.373428, + "renderer_cpu_ms": 7.366015, + "renderer_readback_cpu_ms": 0.751557, + "simulation_ms": 1.079266, + "snapshot_ms": 0.259329, + "texture_count": 1, + "tick": 75, + "vertices": 576, + "wall_ms": 8.724006 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 76, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.579936, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 4.201435, + "renderer_cpu_ms": 4.194642, + "renderer_readback_cpu_ms": 0.60946, + "simulation_ms": 0.278656, + "snapshot_ms": 0.248799, + "texture_count": 1, + "tick": 76, + "vertices": 576, + "wall_ms": 4.741023 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 77, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.572928, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 4.060089, + "renderer_cpu_ms": 4.053866, + "renderer_readback_cpu_ms": 0.650147, + "simulation_ms": 3.527244, + "snapshot_ms": 0.423138, + "texture_count": 1, + "tick": 77, + "vertices": 576, + "wall_ms": 8.022463 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 78, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.586016, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.087177, + "renderer_cpu_ms": 2.079483, + "renderer_readback_cpu_ms": 0.546912, + "simulation_ms": 3.527134, + "snapshot_ms": 1.747266, + "texture_count": 1, + "tick": 78, + "vertices": 576, + "wall_ms": 7.375883 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 79, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.5824, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 7.923436, + "renderer_cpu_ms": 7.91502, + "renderer_readback_cpu_ms": 0.662169, + "simulation_ms": 0.330393, + "snapshot_ms": 0.260792, + "texture_count": 1, + "tick": 79, + "vertices": 576, + "wall_ms": 8.52503 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 80, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.572704, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.8097, + "renderer_cpu_ms": 2.802096, + "renderer_readback_cpu_ms": 0.598729, + "simulation_ms": 0.725739, + "snapshot_ms": 0.472572, + "texture_count": 1, + "tick": 80, + "vertices": 576, + "wall_ms": 4.020474 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 81, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.579456, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.202624, + "renderer_cpu_ms": 2.195341, + "renderer_readback_cpu_ms": 0.547483, + "simulation_ms": 0.315826, + "snapshot_ms": 0.457563, + "texture_count": 1, + "tick": 81, + "vertices": 576, + "wall_ms": 2.986463 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 82, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.577696, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.12573, + "renderer_cpu_ms": 2.12037, + "renderer_readback_cpu_ms": 0.623796, + "simulation_ms": 0.606033, + "snapshot_ms": 0.412959, + "texture_count": 1, + "tick": 82, + "vertices": 576, + "wall_ms": 3.157816 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 83, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.578624, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.050327, + "renderer_cpu_ms": 2.044176, + "renderer_readback_cpu_ms": 0.580936, + "simulation_ms": 0.249079, + "snapshot_ms": 0.433488, + "texture_count": 1, + "tick": 83, + "vertices": 576, + "wall_ms": 2.743335 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 84, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.580576, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.471652, + "renderer_cpu_ms": 2.463917, + "renderer_readback_cpu_ms": 0.931146, + "simulation_ms": 0.221939, + "snapshot_ms": 0.182284, + "texture_count": 1, + "tick": 84, + "vertices": 576, + "wall_ms": 2.886916 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 85, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.575936, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 5.15845, + "renderer_cpu_ms": 5.153521, + "renderer_readback_cpu_ms": 0.640218, + "simulation_ms": 0.2702, + "snapshot_ms": 0.254841, + "texture_count": 1, + "tick": 85, + "vertices": 576, + "wall_ms": 5.693409 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 86, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.578176, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.886952, + "renderer_cpu_ms": 3.880911, + "renderer_readback_cpu_ms": 2.359841, + "simulation_ms": 0.221067, + "snapshot_ms": 0.201691, + "texture_count": 1, + "tick": 86, + "vertices": 576, + "wall_ms": 4.320139 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 87, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.574432, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 4.342691, + "renderer_cpu_ms": 4.328565, + "renderer_readback_cpu_ms": 0.63636, + "simulation_ms": 0.274287, + "snapshot_ms": 0.209004, + "texture_count": 1, + "tick": 87, + "vertices": 576, + "wall_ms": 4.836543 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 88, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.57376, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.879869, + "renderer_cpu_ms": 3.873577, + "renderer_readback_cpu_ms": 0.633455, + "simulation_ms": 0.263327, + "snapshot_ms": 0.183075, + "texture_count": 1, + "tick": 88, + "vertices": 576, + "wall_ms": 4.353542 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 89, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.571808, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.255946, + "renderer_cpu_ms": 2.24784, + "renderer_readback_cpu_ms": 0.704448, + "simulation_ms": 0.225876, + "snapshot_ms": 0.204295, + "texture_count": 1, + "tick": 89, + "vertices": 576, + "wall_ms": 2.69824 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 90, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.579296, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.367316, + "renderer_cpu_ms": 2.35907, + "renderer_readback_cpu_ms": 0.721321, + "simulation_ms": 0.356663, + "snapshot_ms": 0.264308, + "texture_count": 1, + "tick": 90, + "vertices": 576, + "wall_ms": 3.000821 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 91, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.576992, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.471031, + "renderer_cpu_ms": 2.464349, + "renderer_readback_cpu_ms": 0.697206, + "simulation_ms": 0.272714, + "snapshot_ms": 0.276832, + "texture_count": 1, + "tick": 91, + "vertices": 576, + "wall_ms": 3.033111 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 92, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.574176, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.251417, + "renderer_cpu_ms": 2.244224, + "renderer_readback_cpu_ms": 0.654064, + "simulation_ms": 0.296219, + "snapshot_ms": 0.258918, + "texture_count": 1, + "tick": 92, + "vertices": 576, + "wall_ms": 2.818316 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 93, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.572064, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.116919, + "renderer_cpu_ms": 3.108524, + "renderer_readback_cpu_ms": 0.734535, + "simulation_ms": 0.274248, + "snapshot_ms": 0.247336, + "texture_count": 1, + "tick": 93, + "vertices": 576, + "wall_ms": 3.651307 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 94, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.603104, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.736962, + "renderer_cpu_ms": 2.729429, + "renderer_readback_cpu_ms": 0.693859, + "simulation_ms": 0.28646, + "snapshot_ms": 0.250733, + "texture_count": 1, + "tick": 94, + "vertices": 576, + "wall_ms": 3.286569 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 95, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.587136, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.19475, + "renderer_cpu_ms": 2.188568, + "renderer_readback_cpu_ms": 0.556369, + "simulation_ms": 0.283906, + "snapshot_ms": 0.268907, + "texture_count": 1, + "tick": 95, + "vertices": 576, + "wall_ms": 2.759545 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 96, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.588224, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 1.981578, + "renderer_cpu_ms": 1.975626, + "renderer_readback_cpu_ms": 0.525611, + "simulation_ms": 0.241165, + "snapshot_ms": 0.193625, + "texture_count": 1, + "tick": 96, + "vertices": 576, + "wall_ms": 2.427319 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 97, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.582784, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 1.987259, + "renderer_cpu_ms": 1.983651, + "renderer_readback_cpu_ms": 0.497759, + "simulation_ms": 0.207792, + "snapshot_ms": 0.183587, + "texture_count": 1, + "tick": 97, + "vertices": 576, + "wall_ms": 2.389648 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 98, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.573664, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.415326, + "renderer_cpu_ms": 2.407502, + "renderer_readback_cpu_ms": 0.5358, + "simulation_ms": 0.229232, + "snapshot_ms": 0.188215, + "texture_count": 1, + "tick": 98, + "vertices": 576, + "wall_ms": 2.843223 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 99, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.574496, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.32192, + "renderer_cpu_ms": 2.316129, + "renderer_readback_cpu_ms": 0.493391, + "simulation_ms": 0.304434, + "snapshot_ms": 0.214414, + "texture_count": 1, + "tick": 99, + "vertices": 576, + "wall_ms": 2.855687 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 100, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.573536, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.005714, + "renderer_cpu_ms": 2.001025, + "renderer_readback_cpu_ms": 0.59376, + "simulation_ms": 0.305817, + "snapshot_ms": 0.215356, + "texture_count": 1, + "tick": 100, + "vertices": 576, + "wall_ms": 2.537507 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 101, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.579744, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.020652, + "renderer_cpu_ms": 2.014239, + "renderer_readback_cpu_ms": 0.517917, + "simulation_ms": 0.275801, + "snapshot_ms": 0.257896, + "texture_count": 1, + "tick": 101, + "vertices": 576, + "wall_ms": 2.563716 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 102, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.572928, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.095342, + "renderer_cpu_ms": 2.089752, + "renderer_readback_cpu_ms": 0.565607, + "simulation_ms": 0.568453, + "snapshot_ms": 0.255842, + "texture_count": 1, + "tick": 102, + "vertices": 576, + "wall_ms": 2.929957 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 103, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.57472, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.312743, + "renderer_cpu_ms": 2.304316, + "renderer_readback_cpu_ms": 0.673911, + "simulation_ms": 0.279988, + "snapshot_ms": 0.273166, + "texture_count": 1, + "tick": 103, + "vertices": 576, + "wall_ms": 2.875945 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 104, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.57376, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.649718, + "renderer_cpu_ms": 2.642214, + "renderer_readback_cpu_ms": 0.707565, + "simulation_ms": 0.296319, + "snapshot_ms": 0.250162, + "texture_count": 1, + "tick": 104, + "vertices": 576, + "wall_ms": 3.208582 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 105, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.583104, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.794852, + "renderer_cpu_ms": 2.787759, + "renderer_readback_cpu_ms": 0.890309, + "simulation_ms": 0.42907, + "snapshot_ms": 0.271782, + "texture_count": 1, + "tick": 105, + "vertices": 576, + "wall_ms": 3.508758 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 106, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.581536, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.187476, + "renderer_cpu_ms": 2.180714, + "renderer_readback_cpu_ms": 0.58305, + "simulation_ms": 0.278486, + "snapshot_ms": 0.370689, + "texture_count": 1, + "tick": 106, + "vertices": 576, + "wall_ms": 2.849975 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 107, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.582912, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.317472, + "renderer_cpu_ms": 2.31178, + "renderer_readback_cpu_ms": 0.605132, + "simulation_ms": 0.272163, + "snapshot_ms": 0.313772, + "texture_count": 1, + "tick": 107, + "vertices": 576, + "wall_ms": 2.914288 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 108, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.581472, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.797954, + "renderer_cpu_ms": 3.787945, + "renderer_readback_cpu_ms": 0.934933, + "simulation_ms": 0.205918, + "snapshot_ms": 0.309474, + "texture_count": 1, + "tick": 108, + "vertices": 576, + "wall_ms": 4.324347 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 109, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.580896, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.421163, + "renderer_cpu_ms": 3.413198, + "renderer_readback_cpu_ms": 1.15022, + "simulation_ms": 0.326216, + "snapshot_ms": 0.258928, + "texture_count": 1, + "tick": 109, + "vertices": 576, + "wall_ms": 4.020514 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 110, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.577632, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.139672, + "renderer_cpu_ms": 3.13301, + "renderer_readback_cpu_ms": 0.583911, + "simulation_ms": 0.278635, + "snapshot_ms": 0.268597, + "texture_count": 1, + "tick": 110, + "vertices": 576, + "wall_ms": 3.700721 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 111, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.571776, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 1.95597, + "renderer_cpu_ms": 1.95115, + "renderer_readback_cpu_ms": 0.518558, + "simulation_ms": 0.304204, + "snapshot_ms": 0.249591, + "texture_count": 1, + "tick": 111, + "vertices": 576, + "wall_ms": 2.520635 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 112, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.57168, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.043365, + "renderer_cpu_ms": 2.036531, + "renderer_readback_cpu_ms": 0.539949, + "simulation_ms": 0.246145, + "snapshot_ms": 0.237087, + "texture_count": 1, + "tick": 112, + "vertices": 576, + "wall_ms": 2.535814 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 113, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.573216, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.022315, + "renderer_cpu_ms": 2.017626, + "renderer_readback_cpu_ms": 0.526934, + "simulation_ms": 0.282543, + "snapshot_ms": 0.236206, + "texture_count": 1, + "tick": 113, + "vertices": 576, + "wall_ms": 2.550892 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 114, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.571648, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 7.339675, + "renderer_cpu_ms": 7.334154, + "renderer_readback_cpu_ms": 1.449484, + "simulation_ms": 0.251735, + "snapshot_ms": 0.267054, + "texture_count": 1, + "tick": 114, + "vertices": 576, + "wall_ms": 7.868022 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 115, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.57296, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 3.140805, + "renderer_cpu_ms": 3.134212, + "renderer_readback_cpu_ms": 0.688309, + "simulation_ms": 0.312069, + "snapshot_ms": 0.261313, + "texture_count": 1, + "tick": 115, + "vertices": 576, + "wall_ms": 3.723313 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 116, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.584032, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.225909, + "renderer_cpu_ms": 2.219316, + "renderer_readback_cpu_ms": 0.613958, + "simulation_ms": 0.712645, + "snapshot_ms": 0.288885, + "texture_count": 1, + "tick": 116, + "vertices": 576, + "wall_ms": 3.239581 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 117, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.58096, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.534361, + "renderer_cpu_ms": 2.528409, + "renderer_readback_cpu_ms": 0.613096, + "simulation_ms": 2.193257, + "snapshot_ms": 0.368045, + "texture_count": 1, + "tick": 117, + "vertices": 576, + "wall_ms": 5.109268 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 118, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.573408, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 9.40469, + "renderer_cpu_ms": 9.396144, + "renderer_readback_cpu_ms": 2.411539, + "simulation_ms": 0.259489, + "snapshot_ms": 0.285959, + "texture_count": 1, + "tick": 118, + "vertices": 576, + "wall_ms": 9.960939 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 119, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.575456, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 8.90094, + "renderer_cpu_ms": 8.894248, + "renderer_readback_cpu_ms": 3.140864, + "simulation_ms": 0.292121, + "snapshot_ms": 2.595406, + "texture_count": 1, + "tick": 119, + "vertices": 576, + "wall_ms": 11.802233 + }, + { + "draw_calls": 31, + "dropped_simulation_seconds": 0.0, + "fixed_ticks": 1, + "frame": 120, + "gpu_allocated_bytes": 15787008, + "gpu_ms": 0.576512, + "gpu_visibility_active": false, + "interpolation_alpha": 0.0, + "physics_debug": false, + "render_call_ms": 2.721985, + "renderer_cpu_ms": 2.714661, + "renderer_readback_cpu_ms": 0.589452, + "simulation_ms": 0.255693, + "snapshot_ms": 0.505744, + "texture_count": 1, + "tick": 120, + "vertices": 576, + "wall_ms": 3.497057 + } + ], + "simulation_mode": "synthetic_fixed_timestep", + "startup_ms": { + "main_to_first_frame": 701.578493, + "renderer_initialization": 687.012757, + "scene_read": 0.575256, + "world_initialization": 0.912781 + }, + "summary_ms": { + "gpu": { + "max": 0.603104, + "min": 0.57088, + "p50": 0.57456, + "p95": 0.587488, + "samples": 120 + }, + "render_call": { + "max": 15.27347, + "min": 1.95597, + "p50": 2.713318, + "p95": 8.219264, + "samples": 120 + }, + "renderer_cpu": { + "max": 15.265616, + "min": 1.95115, + "p50": 2.705423, + "p95": 8.212883, + "samples": 120 + }, + "renderer_readback_cpu": { + "max": 5.034867, + "min": 0.493391, + "p50": 0.680484, + "p95": 2.359841, + "samples": 120 + }, + "simulation": { + "max": 9.318287, + "min": 0.205918, + "p50": 0.288985, + "p95": 1.079266, + "samples": 120 + }, + "snapshot": { + "max": 2.595406, + "min": 0.178897, + "p50": 0.267054, + "p95": 0.536412, + "samples": 120 + }, + "wall": { + "max": 15.872521, + "min": 2.389648, + "p50": 3.497057, + "p95": 9.960939, + "samples": 120 + } + }, + "timing_notes": "Durations use steady_clock wall time, not thread CPU usage. render_call/renderer_cpu include GPU waits, readback and window presentation. renderer_readback_cpu measures map/copy/unmap wall time within that call. GPU timestamps cover submitted rendering, not CPU work. A missing/zero GPU timestamp is null. Frame durations exclude profile bookkeeping and final capture/profile file writes. Startup begins at Player application entry after platform argument normalization, excluding OS loader/launcher.", + "validation_enabled": true, + "validation_errors": 0, + "version": 1, + "visibility_mode": "direct", + "width": 1280 +} diff --git a/docs/validation/p2-gpu-visibility-2026-09-23/collect-3d-run.json b/docs/validation/p2-gpu-visibility-2026-09-23/collect-3d-run.json new file mode 100644 index 0000000..f96754b --- /dev/null +++ b/docs/validation/p2-gpu-visibility-2026-09-23/collect-3d-run.json @@ -0,0 +1,18 @@ +{ + "arguments": [ + "/tmp/faset-playable-exports-u_8rjufs/Faset Café 世界/collect-3d/faset_player", + "--headless", + "--frames", + "120", + "--capture", + "/tmp/faset-playable-exports-u_8rjufs/Faset Café 世界/collect-3d/verification.ppm", + "--profile", + "/tmp/faset-playable-exports-u_8rjufs/Faset Café 世界/collect-3d/profile.json" + ], + "cwd": "/tmp/faset-playable-exports-u_8rjufs/empty-working-directory", + "seconds": 1.485020653984975, + "exit_code": 0, + "timed_out": false, + "stdout": "New round: collect the three gold cubes, then reach the green exit. E resets.\n{\"device\":\"NVIDIA GeForce RTX 2080 Ti\",\"dimension\":3,\"frames\":120,\"gpu_visibility_active\":false,\"ticks\":120,\"validation_errors\":0,\"visibility_mode\":\"direct\"}\n", + "stderr": "warning: material material-bb63b094febbf90bb7049c9bcf7587bc has features beyond the initial base-color/PBR renderer\n" +} diff --git a/docs/validation/p2-gpu-visibility-2026-09-23/collect-3d-validate.json b/docs/validation/p2-gpu-visibility-2026-09-23/collect-3d-validate.json new file mode 100644 index 0000000..3e3c260 --- /dev/null +++ b/docs/validation/p2-gpu-visibility-2026-09-23/collect-3d-validate.json @@ -0,0 +1,12 @@ +{ + "arguments": [ + "/tmp/faset-playable-exports-u_8rjufs/Faset Café 世界/collect-3d/faset_player", + "--validate" + ], + "cwd": "/tmp/faset-playable-exports-u_8rjufs/empty-working-directory", + "seconds": 0.01345648302230984, + "exit_code": 0, + "timed_out": false, + "stdout": "{\"dimension\":3,\"validated\":true}\n", + "stderr": "warning: material material-bb63b094febbf90bb7049c9bcf7587bc has features beyond the initial base-color/PBR renderer\n" +} diff --git a/docs/validation/p2-gpu-visibility-2026-09-23/ctest-lavapipe-p2.txt b/docs/validation/p2-gpu-visibility-2026-09-23/ctest-lavapipe-p2.txt new file mode 100644 index 0000000..495190a --- /dev/null +++ b/docs/validation/p2-gpu-visibility-2026-09-23/ctest-lavapipe-p2.txt @@ -0,0 +1,39 @@ +Test project /home/emil/Desktop/.worktrees/Faset_Engine-p2/build/p2-release + Start 26: render_gpu_lifecycle + Start 29: render_gpu_open_sequence + 1/15 Test #26: render_gpu_lifecycle ............. Passed 0.80 sec + Start 30: render_gpu_transparent + 2/15 Test #30: render_gpu_transparent ........... Passed 0.43 sec + Start 27: render_gpu_views + 3/15 Test #27: render_gpu_views ................. Passed 0.43 sec + Start 25: render_gpu_near + 4/15 Test #25: render_gpu_near .................. Passed 0.36 sec + Start 23: render_gpu_lod + 5/15 Test #23: render_gpu_lod ................... Passed 0.69 sec + Start 28: render_gpu_projection + 6/15 Test #29: render_gpu_open_sequence ......... Passed 3.05 sec + Start 17: render_gpu_capacity + 7/15 Test #28: render_gpu_projection ............ Passed 0.43 sec + Start 22: render_gpu_resize + 8/15 Test #17: render_gpu_capacity .............. Passed 0.37 sec + Start 18: render_gpu_dense + 9/15 Test #22: render_gpu_resize ................ Passed 0.38 sec + Start 24: render_gpu_teleport +10/15 Test #18: render_gpu_dense ................. Passed 0.30 sec + Start 16: render_gpu_empty +11/15 Test #24: render_gpu_teleport .............. Passed 0.38 sec + Start 21: render_gpu_cut +12/15 Test #16: render_gpu_empty ................. Passed 0.31 sec + Start 19: render_gpu_door +13/15 Test #21: render_gpu_cut ................... Passed 0.44 sec + Start 20: render_gpu_shadow +14/15 Test #19: render_gpu_door .................. Passed 0.42 sec +15/15 Test #20: render_gpu_shadow ................ Passed 0.30 sec + +100% tests passed, 0 tests failed out of 15 + +Label Time Summary: +gpu = 9.09 sec*proc (15 tests) +p2 = 9.09 sec*proc (15 tests) + +Total Test time (real) = 4.65 sec diff --git a/docs/validation/p2-gpu-visibility-2026-09-23/ctest-linux-debug.txt b/docs/validation/p2-gpu-visibility-2026-09-23/ctest-linux-debug.txt new file mode 100644 index 0000000..94e1a2c --- /dev/null +++ b/docs/validation/p2-gpu-visibility-2026-09-23/ctest-linux-debug.txt @@ -0,0 +1,127 @@ +Test project /home/emil/Desktop/.worktrees/Faset_Engine-p2/build/linux-debug + Start 37: build_schema_publication + Start 50: editor_gui_mcp + Start 44: editor_ui_reload + Start 46: editor_ui_templates + Start 34: lua_player_reload + Start 48: editor_ui_authoring + 1/57 Test #48: editor_ui_authoring .............. Passed 2.61 sec + Start 32: player_shutdown_diagnostics + 2/57 Test #34: lua_player_reload ................ Passed 3.22 sec + Start 47: editor_ui_gizmos + 3/57 Test #46: editor_ui_templates .............. Passed 4.08 sec + Start 43: editor_ui_project_settings + 4/57 Test #47: editor_ui_gizmos ................. Passed 1.50 sec + Start 45: editor_ui_launcher + 5/57 Test #32: player_shutdown_diagnostics ...... Passed 2.37 sec + Start 42: editor_ui_import_conflicts + 6/57 Test #44: editor_ui_reload ................. Passed 4.99 sec + Start 10: render_shader_reload + 7/57 Test #43: editor_ui_project_settings ....... Passed 1.64 sec + Start 57: playable_3d + 8/57 Test #45: editor_ui_launcher ............... Passed 1.24 sec + Start 41: ui_render + 9/57 Test #42: editor_ui_import_conflicts ....... Passed 1.53 sec + Start 29: render_gpu_open_sequence +10/57 Test #50: editor_gui_mcp ................... Passed 6.83 sec + Start 8: render_offscreen +11/57 Test #57: playable_3d ...................... Passed 1.27 sec + Start 12: render_shader_reflection +12/57 Test #41: ui_render ........................ Passed 1.16 sec + Start 9: render_sprite_alpha +13/57 Test #8: render_offscreen ................. Passed 0.95 sec + Start 15: gpu_visibility +14/57 Test #9: render_sprite_alpha .............. Passed 0.76 sec + Start 26: render_gpu_lifecycle +15/57 Test #12: render_shader_reflection ......... Passed 1.58 sec + Start 56: playable_2d +16/57 Test #56: playable_2d ...................... Passed 0.60 sec + Start 28: render_gpu_projection +17/57 Test #15: gpu_visibility ................... Passed 2.00 sec + Start 25: render_gpu_near +18/57 Test #29: render_gpu_open_sequence ......... Passed 4.14 sec + Start 30: render_gpu_transparent +19/57 Test #10: render_shader_reload ............. Passed 6.04 sec + Start 17: render_gpu_capacity +20/57 Test #28: render_gpu_projection ............ Passed 2.29 sec + Start 24: render_gpu_teleport +21/57 Test #26: render_gpu_lifecycle ............. Passed 3.96 sec + Start 22: render_gpu_resize +22/57 Test #25: render_gpu_near .................. Passed 2.20 sec + Start 27: render_gpu_views +23/57 Test #30: render_gpu_transparent ........... Passed 2.74 sec + Start 23: render_gpu_lod +24/57 Test #17: render_gpu_capacity .............. Passed 2.51 sec + Start 16: render_gpu_empty +25/57 Test #24: render_gpu_teleport .............. Passed 2.28 sec + Start 18: render_gpu_dense +26/57 Test #22: render_gpu_resize ................ Passed 2.30 sec + Start 21: render_gpu_cut +27/57 Test #27: render_gpu_views ................. Passed 2.29 sec + Start 20: render_gpu_shadow +28/57 Test #37: build_schema_publication ......... Passed 14.35 sec + Start 36: process_and_cook +29/57 Test #36: process_and_cook ................. Passed 0.33 sec + Start 49: editor_mcp_stdio +30/57 Test #49: editor_mcp_stdio ................. Passed 0.28 sec + Start 19: render_gpu_door +31/57 Test #23: render_gpu_lod ................... Passed 2.55 sec + Start 6: lua_safety_contracts +32/57 Test #18: render_gpu_dense ................. Passed 2.42 sec + Start 3: assets_pipeline +33/57 Test #6: lua_safety_contracts ............. Passed 0.26 sec + Start 51: core +34/57 Test #16: render_gpu_empty ................. Passed 2.70 sec + Start 33: lua_cli_contracts +35/57 Test #3: assets_pipeline .................. Passed 0.17 sec + Start 2: runtime_contracts +36/57 Test #33: lua_cli_contracts ................ Passed 0.18 sec + Start 40: ui_widgets +37/57 Test #51: core ............................. Passed 0.21 sec + Start 5: lua_contracts +38/57 Test #21: render_gpu_cut ................... Passed 2.29 sec + Start 4: assets_blender_bundle +39/57 Test #20: render_gpu_shadow ................ Passed 2.23 sec + Start 55: tutorial_physics +40/57 Test #2: runtime_contracts ................ Passed 0.16 sec + Start 11: render_gpu_shader_contract +41/57 Test #5: lua_contracts .................... Passed 0.14 sec + Start 1: authoring +42/57 Test #55: tutorial_physics ................. Passed 0.09 sec + Start 38: editor_plugins +43/57 Test #4: assets_blender_bundle ............ Passed 0.14 sec + Start 52: tutorial_moving +44/57 Test #11: render_gpu_shader_contract ....... Passed 0.11 sec + Start 39: editor_session_settings +45/57 Test #40: ui_widgets ....................... Passed 0.21 sec +46/57 Test #1: authoring ........................ Passed 0.06 sec + Start 54: tutorial_spawning + Start 53: tutorial_following +47/57 Test #38: editor_plugins ................... Passed 0.08 sec +48/57 Test #52: tutorial_moving .................. Passed 0.07 sec +49/57 Test #54: tutorial_spawning ................ Passed 0.04 sec + Start 35: editor_mcp + Start 31: player_scene_contracts + Start 7: render_graph +50/57 Test #53: tutorial_following ............... Passed 0.05 sec + Start 14: visibility_policy +51/57 Test #35: editor_mcp ....................... Passed 0.03 sec +52/57 Test #31: player_scene_contracts ........... Passed 0.02 sec +53/57 Test #7: render_graph ..................... Passed 0.02 sec + Start 13: render_window_lifecycle +54/57 Test #39: editor_session_settings .......... Passed 0.08 sec +55/57 Test #14: visibility_policy ................ Passed 0.01 sec +56/57 Test #19: render_gpu_door .................. Passed 1.76 sec +57/57 Test #13: render_window_lifecycle ..........***Skipped 4.22 sec + +100% tests passed, 0 tests failed out of 57 + +Label Time Summary: +gpu = 81.79 sec*proc (30 tests) +p2 = 38.66 sec*proc (15 tests) +window = 11.04 sec*proc (2 tests) + +Total Test time (real) = 20.92 sec + +The following tests did not run: + 13 - render_window_lifecycle (Skipped) diff --git a/docs/validation/p2-gpu-visibility-2026-09-23/ctest-linux-release.txt b/docs/validation/p2-gpu-visibility-2026-09-23/ctest-linux-release.txt new file mode 100644 index 0000000..dc1f6d4 --- /dev/null +++ b/docs/validation/p2-gpu-visibility-2026-09-23/ctest-linux-release.txt @@ -0,0 +1,127 @@ +Test project /home/emil/Desktop/.worktrees/Faset_Engine-p2/build/p2-release + Start 10: render_shader_reload + Start 32: player_shutdown_diagnostics + Start 44: editor_ui_reload + Start 34: lua_player_reload + Start 15: gpu_visibility + Start 29: render_gpu_open_sequence + 1/57 Test #29: render_gpu_open_sequence ......... Passed 3.15 sec + Start 26: render_gpu_lifecycle + 2/57 Test #15: gpu_visibility ................... Passed 3.31 sec + Start 37: build_schema_publication + 3/57 Test #34: lua_player_reload ................ Passed 3.51 sec + Start 28: render_gpu_projection + 4/57 Test #32: player_shutdown_diagnostics ...... Passed 4.60 sec + Start 30: render_gpu_transparent + 5/57 Test #44: editor_ui_reload ................. Passed 5.01 sec + Start 25: render_gpu_near + 6/57 Test #28: render_gpu_projection ............ Passed 1.77 sec + Start 23: render_gpu_lod + 7/57 Test #37: build_schema_publication ......... Passed 2.03 sec + Start 27: render_gpu_views + 8/57 Test #30: render_gpu_transparent ........... Passed 2.48 sec + Start 8: render_offscreen + 9/57 Test #26: render_gpu_lifecycle ............. Passed 3.92 sec + Start 50: editor_gui_mcp +10/57 Test #10: render_shader_reload ............. Passed 7.15 sec + Start 24: render_gpu_teleport +11/57 Test #25: render_gpu_near .................. Passed 2.30 sec + Start 12: render_shader_reflection +12/57 Test #23: render_gpu_lod ................... Passed 2.23 sec + Start 9: render_sprite_alpha +13/57 Test #27: render_gpu_views ................. Passed 2.39 sec + Start 46: editor_ui_templates +14/57 Test #8: render_offscreen ................. Passed 1.53 sec + Start 45: editor_ui_launcher +15/57 Test #9: render_sprite_alpha .............. Passed 1.26 sec + Start 22: render_gpu_resize +16/57 Test #12: render_shader_reflection ......... Passed 1.56 sec + Start 18: render_gpu_dense +17/57 Test #24: render_gpu_teleport .............. Passed 2.04 sec + Start 17: render_gpu_capacity +18/57 Test #46: editor_ui_templates .............. Passed 1.98 sec + Start 16: render_gpu_empty +19/57 Test #50: editor_gui_mcp ................... Passed 2.78 sec + Start 21: render_gpu_cut +20/57 Test #45: editor_ui_launcher ............... Passed 1.57 sec + Start 48: editor_ui_authoring +21/57 Test #18: render_gpu_dense ................. Passed 2.48 sec + Start 19: render_gpu_door +22/57 Test #22: render_gpu_resize ................ Passed 2.74 sec + Start 43: editor_ui_project_settings +23/57 Test #48: editor_ui_authoring .............. Passed 1.58 sec + Start 20: render_gpu_shadow +24/57 Test #17: render_gpu_capacity .............. Passed 2.90 sec + Start 42: editor_ui_import_conflicts +25/57 Test #16: render_gpu_empty ................. Passed 2.48 sec + Start 41: ui_render +26/57 Test #21: render_gpu_cut ................... Passed 2.46 sec + Start 47: editor_ui_gizmos +27/57 Test #43: editor_ui_project_settings ....... Passed 1.66 sec + Start 36: process_and_cook +28/57 Test #36: process_and_cook ................. Passed 0.30 sec + Start 49: editor_mcp_stdio +29/57 Test #49: editor_mcp_stdio ................. Passed 0.25 sec + Start 4: assets_blender_bundle +30/57 Test #42: editor_ui_import_conflicts ....... Passed 1.75 sec + Start 33: lua_cli_contracts +31/57 Test #4: assets_blender_bundle ............ Passed 0.14 sec + Start 40: ui_widgets +32/57 Test #19: render_gpu_door .................. Passed 2.52 sec + Start 57: playable_3d +33/57 Test #41: ui_render ........................ Passed 1.71 sec +34/57 Test #47: editor_ui_gizmos ................. Passed 1.57 sec + Start 6: lua_safety_contracts + Start 51: core +35/57 Test #20: render_gpu_shadow ................ Passed 2.23 sec + Start 56: playable_2d +36/57 Test #51: core ............................. Passed 0.10 sec + Start 3: assets_pipeline +37/57 Test #6: lua_safety_contracts ............. Passed 0.14 sec + Start 38: editor_plugins +38/57 Test #57: playable_3d ...................... Passed 0.18 sec + Start 5: lua_contracts +39/57 Test #38: editor_plugins ................... Passed 0.03 sec + Start 1: authoring +40/57 Test #3: assets_pipeline .................. Passed 0.08 sec + Start 2: runtime_contracts +41/57 Test #40: ui_widgets ....................... Passed 0.22 sec + Start 11: render_gpu_shader_contract +42/57 Test #33: lua_cli_contracts ................ Passed 0.25 sec + Start 31: player_scene_contracts +43/57 Test #56: playable_2d ...................... Passed 0.10 sec + Start 55: tutorial_physics +44/57 Test #1: authoring ........................ Passed 0.03 sec + Start 39: editor_session_settings +45/57 Test #31: player_scene_contracts ........... Passed 0.01 sec + Start 35: editor_mcp +46/57 Test #2: runtime_contracts ................ Passed 0.04 sec +47/57 Test #11: render_gpu_shader_contract ....... Passed 0.03 sec +48/57 Test #39: editor_session_settings .......... Passed 0.02 sec +49/57 Test #35: editor_mcp ....................... Passed 0.01 sec + Start 7: render_graph + Start 14: visibility_policy + Start 54: tutorial_spawning + Start 52: tutorial_moving +50/57 Test #5: lua_contracts .................... Passed 0.09 sec +51/57 Test #7: render_graph ..................... Passed 0.02 sec +52/57 Test #14: visibility_policy ................ Passed 0.02 sec + Start 53: tutorial_following + Start 13: render_window_lifecycle +53/57 Test #55: tutorial_physics ................. Passed 0.06 sec +54/57 Test #54: tutorial_spawning ................ Passed 0.03 sec +55/57 Test #52: tutorial_moving .................. Passed 0.02 sec +56/57 Test #53: tutorial_following ............... Passed 0.02 sec +57/57 Test #13: render_window_lifecycle ..........***Skipped 4.23 sec + +100% tests passed, 0 tests failed out of 57 + +Label Time Summary: +gpu = 79.96 sec*proc (30 tests) +p2 = 38.08 sec*proc (15 tests) +window = 7.01 sec*proc (2 tests) + +Total Test time (real) = 18.39 sec + +The following tests did not run: + 13 - render_window_lifecycle (Skipped) diff --git a/docs/validation/p2-gpu-visibility-2026-09-23/p2-exported-gpu-visibility.json b/docs/validation/p2-gpu-visibility-2026-09-23/p2-exported-gpu-visibility.json new file mode 100644 index 0000000..e0b07ca --- /dev/null +++ b/docs/validation/p2-gpu-visibility-2026-09-23/p2-exported-gpu-visibility.json @@ -0,0 +1,97 @@ +{ + "source_report": "report.json", + "runs": [ + { + "name": "collect-2d", + "mode": "gpu-frustum", + "frames": 6, + "gpu_visibility_active": true, + "validation_errors": 0, + "device": "NVIDIA GeForce RTX 2080 Ti", + "capture_sha256": "f9d74067d87c1ebf30c6db372a26d93b7285791c8cb0307a24af5adb23bf201a", + "profile": "collect-2d-gpu-frustum-profile.json", + "capture": "collect-2d-gpu-frustum.ppm", + "command": [ + "/tmp/faset-playable-exports-u_8rjufs/Faset Café 世界/collect-2d/faset_player", + "--headless", + "--frames", + "6", + "--visibility", + "gpu-frustum", + "--profile", + "/home/emil/Desktop/.worktrees/Faset_Engine-p2/.cache/p2-playable-exports-retry/evidence/collect-2d-gpu-frustum-profile.json", + "--capture", + "/home/emil/Desktop/.worktrees/Faset_Engine-p2/.cache/p2-playable-exports-retry/evidence/collect-2d-gpu-frustum.ppm" + ] + }, + { + "name": "collect-2d", + "mode": "gpu-occlusion", + "frames": 6, + "gpu_visibility_active": true, + "validation_errors": 0, + "device": "NVIDIA GeForce RTX 2080 Ti", + "capture_sha256": "f9d74067d87c1ebf30c6db372a26d93b7285791c8cb0307a24af5adb23bf201a", + "profile": "collect-2d-gpu-occlusion-profile.json", + "capture": "collect-2d-gpu-occlusion.ppm", + "command": [ + "/tmp/faset-playable-exports-u_8rjufs/Faset Café 世界/collect-2d/faset_player", + "--headless", + "--frames", + "6", + "--visibility", + "gpu-occlusion", + "--profile", + "/home/emil/Desktop/.worktrees/Faset_Engine-p2/.cache/p2-playable-exports-retry/evidence/collect-2d-gpu-occlusion-profile.json", + "--capture", + "/home/emil/Desktop/.worktrees/Faset_Engine-p2/.cache/p2-playable-exports-retry/evidence/collect-2d-gpu-occlusion.ppm" + ] + }, + { + "name": "collect-3d", + "mode": "gpu-frustum", + "frames": 6, + "gpu_visibility_active": true, + "validation_errors": 0, + "device": "NVIDIA GeForce RTX 2080 Ti", + "capture_sha256": "7d18da12d685ed41705175fd7c65887d767668c1614b1b7669c99f05c694d435", + "profile": "collect-3d-gpu-frustum-profile.json", + "capture": "collect-3d-gpu-frustum.ppm", + "command": [ + "/tmp/faset-playable-exports-u_8rjufs/Faset Café 世界/collect-3d/faset_player", + "--headless", + "--frames", + "6", + "--visibility", + "gpu-frustum", + "--profile", + "/home/emil/Desktop/.worktrees/Faset_Engine-p2/.cache/p2-playable-exports-retry/evidence/collect-3d-gpu-frustum-profile.json", + "--capture", + "/home/emil/Desktop/.worktrees/Faset_Engine-p2/.cache/p2-playable-exports-retry/evidence/collect-3d-gpu-frustum.ppm" + ] + }, + { + "name": "collect-3d", + "mode": "gpu-occlusion", + "frames": 6, + "gpu_visibility_active": true, + "validation_errors": 0, + "device": "NVIDIA GeForce RTX 2080 Ti", + "capture_sha256": "7d18da12d685ed41705175fd7c65887d767668c1614b1b7669c99f05c694d435", + "profile": "collect-3d-gpu-occlusion-profile.json", + "capture": "collect-3d-gpu-occlusion.ppm", + "command": [ + "/tmp/faset-playable-exports-u_8rjufs/Faset Café 世界/collect-3d/faset_player", + "--headless", + "--frames", + "6", + "--visibility", + "gpu-occlusion", + "--profile", + "/home/emil/Desktop/.worktrees/Faset_Engine-p2/.cache/p2-playable-exports-retry/evidence/collect-3d-gpu-occlusion-profile.json", + "--capture", + "/home/emil/Desktop/.worktrees/Faset_Engine-p2/.cache/p2-playable-exports-retry/evidence/collect-3d-gpu-occlusion.ppm" + ] + } + ] +} diff --git a/docs/validation/p2-gpu-visibility-2026-09-23/report.json b/docs/validation/p2-gpu-visibility-2026-09-23/report.json new file mode 100644 index 0000000..83408c2 --- /dev/null +++ b/docs/validation/p2-gpu-visibility-2026-09-23/report.json @@ -0,0 +1,435 @@ +{ + "format": "faset.playable-export-verification", + "version": 1, + "started_utc": "2026-09-23T20:13:26.594779+00:00", + "platform": "linux", + "engine": "/home/emil/Desktop/.worktrees/Faset_Engine-p2", + "editor": "/home/emil/Desktop/.worktrees/Faset_Engine-p2/build/p2-release/faset_editor", + "standalone_root": "/tmp/faset-playable-exports-u_8rjufs", + "frames_per_game": 120, + "status": "passed", + "projects": [ + { + "name": "collect-2d", + "dimension": 2, + "source_inputs": [ + { + "path": ".gitignore", + "sha256": "53aa4d7124d4c8d93b8d7c4cb470b6c82b844e019a660d6243ffeadc50602de1" + }, + { + "path": "README.md", + "sha256": "8cf5a2d6de849eb090b9ea6d5e27841f551bd06947e5054f0d2f59639a90edd0" + }, + { + "path": "Scenes/main.scene.json", + "sha256": "be48a6d21385e717b6c8ebf9a3b4322eebbeff6bb067428e089ab5214be79854" + }, + { + "path": "Scripts/Gameplay.cpp", + "sha256": "6b581b24da613e1915819de0a0f0ea820dd3333efa62c4b479a9ea7ffdbc6bcc" + }, + { + "path": "Scripts/Gameplay.hpp", + "sha256": "4121587182ed4f74901b1c0757c53daadbf309af1d6bb5dd87fef142130ccbbe" + }, + { + "path": "project.faset.json", + "sha256": "36e2acd32210f5489372a2331346a3294ead2395f0713e3e5fd2da4e83263689" + } + ], + "generation": "e10bfc78-962f-45ef-a570-1237628cc7ec", + "configuration": "Release", + "standalone_directory": "/tmp/faset-playable-exports-u_8rjufs/Faset Café 世界/collect-2d", + "executable": "faset_player", + "package_file_count": 27, + "asset_generations": {}, + "device": "NVIDIA GeForce RTX 2080 Ti", + "validation_enabled": true, + "validation_errors": 0, + "completed_frames": 120, + "summary_ms": { + "gpu": { + "max": 0.581792, + "min": 0.55696, + "p50": 0.56032, + "p95": 0.571968, + "samples": 120 + }, + "render_call": { + "max": 8.92785, + "min": 1.767093, + "p50": 2.388886, + "p95": 4.916754, + "samples": 120 + }, + "renderer_cpu": { + "max": 8.922791, + "min": 1.762985, + "p50": 2.372405, + "p95": 4.910192, + "samples": 120 + }, + "renderer_readback_cpu": { + "max": 3.480115, + "min": 0.461981, + "p50": 0.631702, + "p95": 1.483368, + "samples": 120 + }, + "simulation": { + "max": 4.035202, + "min": 0.141437, + "p50": 0.213794, + "p95": 0.321327, + "samples": 120 + }, + "snapshot": { + "max": 0.740767, + "min": 0.13285, + "p50": 0.194106, + "p95": 0.407779, + "samples": 120 + }, + "wall": { + "max": 9.833829, + "min": 2.085394, + "p50": 2.880784, + "p95": 5.96917, + "samples": 120 + } + }, + "capture": { + "width": 1280, + "height": 720, + "sampled_colors": 7, + "sha256": "f9d74067d87c1ebf30c6db372a26d93b7285791c8cb0307a24af5adb23bf201a" + }, + "source_project_paths_unavailable": true, + "status": "passed" + }, + { + "name": "collect-3d", + "dimension": 3, + "source_inputs": [ + { + "path": ".gitignore", + "sha256": "53aa4d7124d4c8d93b8d7c4cb470b6c82b844e019a660d6243ffeadc50602de1" + }, + { + "path": "Assets/exit-arch/create.py", + "sha256": "9c7291124fb1498a3f992ef74afc39cd98f9cc3e2ff4687c633bece85d580905" + }, + { + "path": "Assets/exit-arch/manifest.json", + "sha256": "7a13347adc89761fb02ebeab3c58ba87f319cd62f53ec87a3bb61bcd066ffa55" + }, + { + "path": "Assets/exit-arch/manifest.json.faset-import.json", + "sha256": "ef4eef28a18a0cc40a40df75db34c97faa5d783b891265f862633f3aec514afc" + }, + { + "path": "Assets/exit-arch/payload/ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3.glb", + "sha256": "ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3" + }, + { + "path": "Assets/exit-arch/source.blend", + "sha256": "ff2676bec97ab778e531e87a185ad716049ea3b05b4a4f0027a6345737735035" + }, + { + "path": "README.md", + "sha256": "2df5ca4df47ab5d3d05d41508201296d4ad5ec876245f19f061767ade6a30e8f" + }, + { + "path": "Scenes/main.scene.json", + "sha256": "61b65baf79e52f07ac386a7f98acf985a1b09e88770cdde37ef461dc94b9dcd7" + }, + { + "path": "Scripts/Extensions/Beacon.hpp", + "sha256": "c60d56161eead16f541835053ad32ac3333383d83015709c060b7d45e0af5a97" + }, + { + "path": "Scripts/Gameplay.cpp", + "sha256": "5d419786a6861d7f14ed4eca54634694d8cd43be5dbbd60a2c6790db665c3a6a" + }, + { + "path": "Scripts/Gameplay.hpp", + "sha256": "4121587182ed4f74901b1c0757c53daadbf309af1d6bb5dd87fef142130ccbbe" + }, + { + "path": "project.faset.json", + "sha256": "43d273b1054ec9069369073f54cc1fc7efb3d6b699dcd342c552a2dc2ef852ef" + } + ], + "import": { + "asset_id": "5832763b-3ed0-44d6-9088-0b524f196a91", + "cache_hit": false, + "diagnostics": [], + "generation": "4a5bfcc1437a7b4d65c388da2beace0308cceda8e16503d08ce676260f21d5c2", + "manifest": { + "asset_id": "5832763b-3ed0-44d6-9088-0b524f196a91", + "files": [ + { + "path": "meshes/mesh-fc069a07a87e0f831fd92efdbc4efa1f-0.fmesh", + "sha256": "98b38aca7d2786c58a2265ba4d1f2255123f03d31d947e239232cf55bfdc2c97", + "size": 928 + }, + { + "path": "meshes/mesh-0961e2a3f92977836a3aa80cab09277e-0.fmesh", + "sha256": "98b38aca7d2786c58a2265ba4d1f2255123f03d31d947e239232cf55bfdc2c97", + "size": 928 + }, + { + "path": "meshes/mesh-93b5b3e52cb6bb120fefb80e2d8e222b-0.fmesh", + "sha256": "3875c16ea628d4126373ebfe07816621fbad3961596a2fcd112f1eec0e378071", + "size": 928 + } + ], + "generation": "4a5bfcc1437a7b4d65c388da2beace0308cceda8e16503d08ce676260f21d5c2", + "importer": "faset-gltf-1/cgltf-1.15", + "input_key": { + "bundle_sha256": "7a13347adc89761fb02ebeab3c58ba87f319cd62f53ec87a3bb61bcd066ffa55", + "dependencies": {}, + "importer": "faset-gltf-1/cgltf-1.15", + "settings": {}, + "source": "ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3", + "target_profile": "desktop-static-pbr-v1", + "toolchain": { + "cgltf": "360db1a95480fe102ae9c69b27c5d101167ff5ba", + "stb": "2c980bb59875b0d32144a71867fbdebb2f77cd20" + } + }, + "kind": "scene", + "materials": [ + { + "alpha_cutoff": 0.5, + "alpha_mode": "OPAQUE", + "base_color": [ + 0.2199999988079071, + 0.28999999165534973, + 0.3400000035762787, + 1.0 + ], + "base_color_texture": -1, + "double_sided": true, + "emissive": [ + 0.0, + 0.0, + 0.0 + ], + "emissive_texture": -1, + "format": "faset.material", + "id": "material-bb63b094febbf90bb7049c9bcf7587bc", + "metallic": 0.07999999821186066, + "metallic_roughness_texture": -1, + "name": "Weathered stone", + "normal_texture": -1, + "occlusion_texture": -1, + "roughness": 0.800000011920929, + "unlit": false, + "version": 1 + } + ], + "meshes": [ + { + "id": "mesh-fc069a07a87e0f831fd92efdbc4efa1f", + "name": "Cube.001", + "primitives": [ + { + "material": 0, + "path": "meshes/mesh-fc069a07a87e0f831fd92efdbc4efa1f-0.fmesh" + } + ] + }, + { + "id": "mesh-0961e2a3f92977836a3aa80cab09277e", + "name": "Cube.002", + "primitives": [ + { + "material": 0, + "path": "meshes/mesh-0961e2a3f92977836a3aa80cab09277e-0.fmesh" + } + ] + }, + { + "id": "mesh-93b5b3e52cb6bb120fefb80e2d8e222b", + "name": "Cube.003", + "primitives": [ + { + "material": 0, + "path": "meshes/mesh-93b5b3e52cb6bb120fefb80e2d8e222b-0.fmesh" + } + ] + } + ], + "nodes": [ + { + "id": "node-cec6e8cea80cf5a98ba3263a0156bee4", + "local_transform": [ + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 1.4500000476837158, + 1.2999999523162842, + 1.0 + ], + "mesh": 0, + "name": "Left post", + "parent_id": "", + "stable_source_id": true + }, + { + "id": "node-5f8a90a6c4d27020d20bd4fa81d1d958", + "local_transform": [ + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 1.4500000476837158, + -1.2999999523162842, + 1.0 + ], + "mesh": 1, + "name": "Right post", + "parent_id": "", + "stable_source_id": true + }, + { + "id": "node-482463e486a8d1fd741340c653cd128f", + "local_transform": [ + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 3.0, + 0.0, + 1.0 + ], + "mesh": 2, + "name": "Lintel", + "parent_id": "", + "stable_source_id": true + } + ], + "outputs": [ + "node-cec6e8cea80cf5a98ba3263a0156bee4", + "node-5f8a90a6c4d27020d20bd4fa81d1d958", + "node-482463e486a8d1fd741340c653cd128f", + "mesh-fc069a07a87e0f831fd92efdbc4efa1f", + "mesh-0961e2a3f92977836a3aa80cab09277e", + "mesh-93b5b3e52cb6bb120fefb80e2d8e222b", + "material-bb63b094febbf90bb7049c9bcf7587bc" + ], + "payload_source": "/home/emil/Desktop/.worktrees/Faset_Engine-p2/.cache/p2-playable-exports-retry/Faset Café 世界/collect-3d/Assets/exit-arch/payload/ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3.glb", + "schema_version": 1, + "settings": {}, + "source": "/home/emil/Desktop/.worktrees/Faset_Engine-p2/.cache/p2-playable-exports-retry/Faset Café 世界/collect-3d/Assets/exit-arch/manifest.json", + "source_sha256": "ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3", + "textures": [] + }, + "previous_generation": "", + "removed_output_ids": [] + }, + "generation": "013fe953-8787-45ac-963f-ffbd9ac5f636", + "configuration": "Release", + "standalone_directory": "/tmp/faset-playable-exports-u_8rjufs/Faset Café 世界/collect-3d", + "executable": "faset_player", + "package_file_count": 32, + "asset_generations": { + "5832763b-3ed0-44d6-9088-0b524f196a91": "4a5bfcc1437a7b4d65c388da2beace0308cceda8e16503d08ce676260f21d5c2" + }, + "device": "NVIDIA GeForce RTX 2080 Ti", + "validation_enabled": true, + "validation_errors": 0, + "completed_frames": 120, + "summary_ms": { + "gpu": { + "max": 0.603104, + "min": 0.57088, + "p50": 0.57456, + "p95": 0.587488, + "samples": 120 + }, + "render_call": { + "max": 15.27347, + "min": 1.95597, + "p50": 2.713318, + "p95": 8.219264, + "samples": 120 + }, + "renderer_cpu": { + "max": 15.265616, + "min": 1.95115, + "p50": 2.705423, + "p95": 8.212883, + "samples": 120 + }, + "renderer_readback_cpu": { + "max": 5.034867, + "min": 0.493391, + "p50": 0.680484, + "p95": 2.359841, + "samples": 120 + }, + "simulation": { + "max": 9.318287, + "min": 0.205918, + "p50": 0.288985, + "p95": 1.079266, + "samples": 120 + }, + "snapshot": { + "max": 2.595406, + "min": 0.178897, + "p50": 0.267054, + "p95": 0.536412, + "samples": 120 + }, + "wall": { + "max": 15.872521, + "min": 2.389648, + "p50": 3.497057, + "p95": 9.960939, + "samples": 120 + } + }, + "capture": { + "width": 1280, + "height": 720, + "sampled_colors": 42, + "sha256": "914060401de93d08b33bf09a1e210859e491a0060c331e5e2044f517356f4980" + }, + "source_project_paths_unavailable": true, + "status": "passed" + } + ], + "finished_utc": "2026-09-23T20:19:17.315585+00:00" +} diff --git a/docs/validation/p2-gpu-visibility-2026-09-23/shader-validation.txt b/docs/validation/p2-gpu-visibility-2026-09-23/shader-validation.txt new file mode 100644 index 0000000..b92d255 --- /dev/null +++ b/docs/validation/p2-gpu-visibility-2026-09-23/shader-validation.txt @@ -0,0 +1,10 @@ +spirv-val --target-env vulkan1.3 (Release bundle) +compatibility.spv sha256=83d519113c99c7b14cf92bc6e0e9867edd91da1f370f964df6ba978d51470a54 exit=0 +fragmentMain.spv sha256=f5c4f289917ecab5d00d543c053aac1d10e6cca311fd172daf06d315160a3505 exit=0 +gpuCullMain.spv sha256=7691360ec55f41d40d43652f506b051cef8b3a3ddcdcc7db61a7d4d97f9e87d8 exit=0 +gpuHzbMain.spv sha256=08682362ee2120ed19d260e613285071747c3e436bb09bb6238e46f9cedc2308 exit=0 +gpuPostCullMain.spv sha256=62cb72e356346e1511c6d640a3cecb4a6e5283795338299b357edae5f7f52be4 exit=0 +gpuShadowMain.spv sha256=9078577943bf9c51220d5341434834eb4a28cf0f0f6203bad2b96e1b0e11b360 exit=0 +gpuVertexMain.spv sha256=041c1e5f0db4007c51e01ed5db6e0fbf4db09b8dcbcb085c0c73612cdc682fe3 exit=0 +shadowMain.spv sha256=7643b4d688492b5ee923b9606f0b0e70343ca05fa67673838206119a6f86d8d8 exit=0 +vertexMain.spv sha256=1ad2631c35d654f48166321ae43d4165043e1b919b14f1dc61caf97b1ada0898 exit=0