catbot
85ca08047d
perf(buffer): reuse staging via a per-frame-in-flight ring in UploadDeviceLocal ( #120 )
...
The staged branch of VulkanBuffer::UploadDeviceLocal did a full
Create (create+getreq+alloc+map) + DeferredClear (later free) per call.
Mesh::Refit / RecordProceduralBuild hit this every frame for deforming
meshes on no-/small-BAR hardware — a device-memory alloc/free cycle per
mesh per frame, on exactly the hardware the staged path targets.
Replace it with a persistent per-buffer staging ring sized to a
high-water mark, reallocated (via Resize, which defers the outgrown
allocation) only on growth — mirroring the TLAS instance/metadata reuse.
The ring is a per-frame-in-flight ring, not a single shared buffer: the
vkCmdCopyBuffer still reads staging after the call returns, and with
frames pipelined framesInFlight deep, overwriting one shared buffer next
frame would clobber data the previous frame's copy is still reading.
Indexing by frameCounter % framesInFlight gives each in-flight frame its
own slot, reused only after framesInFlight frames elapse — the same
window the #101 deletion queue relies on for GPU completion.
The ring is grown lazily, on first entry into the staged branch, so
ReBAR/UMA hardware (which always takes the direct-write branch) never
constructs a staging allocation it does not use — keeping this a runtime
no-op there and a straight upgrade on non-resizable-BAR machines.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 19:51:33 +00:00
..
Crafter.Graphics-Animation.cppm
cleaned up renderer
2026-03-09 20:10:19 +01:00
Crafter.Graphics-Clipboard.cppm
clipboard
2026-05-19 00:45:22 +02:00
Crafter.Graphics-ComputeShader.cppm
fix(vulkan-rt): configurable recursion depth + per-shader TLAS push for compute ( #21 )
2026-06-03 18:35:39 +00:00
Crafter.Graphics-Decompress.cppm
browser DOM support
2026-05-18 02:07:48 +02:00
Crafter.Graphics-DescriptorHeapVulkan.cppm
fix(device): add preferred mask + required-only fallback to GetMemoryType ( #59 )
2026-06-16 16:03:50 +00:00
Crafter.Graphics-DescriptorHeapWebGPU.cppm
webgpu improvements
2026-05-24 13:32:08 +02:00
Crafter.Graphics-Device.cppm
perf(device): pop retired deletions off the front in O(ready) ( #116 )
2026-06-17 19:37:58 +00:00
Crafter.Graphics-Dom.cppm
browser DOM support
2026-05-18 02:07:48 +02:00
Crafter.Graphics-DomEvents.cppm
browser DOM support
2026-05-18 02:07:48 +02:00
Crafter.Graphics-Font.cppm
Merge remote-tracking branch 'origin/master' into claude/issue-57
2026-06-16 17:02:48 +00:00
Crafter.Graphics-FontAtlas.cppm
Merge pull request 'perf(text): fold Ensure+Lookup into FontAtlas::EnsureAndGet ( #53 )' ( #84 ) from claude/issue-53 into master
2026-06-16 17:44:20 +02:00
Crafter.Graphics-ForwardDeclarations.cppm
rendertargetvulkan
2026-04-11 18:48:00 +02:00
Crafter.Graphics-Gamepad.cppm
new input system
2026-05-12 00:24:48 +02:00
Crafter.Graphics-GraphicsTypes.cppm
webgpu support
2026-05-18 04:58:52 +02:00
Crafter.Graphics-Image2D.cppm
feat(webgpu): HDR post-process primitives — float textures, storage-texture bindings, RESOLVE→HDR target ( #27 )
2026-06-09 12:55:14 +00:00
Crafter.Graphics-ImageVulkan.cppm
perf(image): release static texture staging after upload ( #114 )
2026-06-17 19:40:35 +00:00
Crafter.Graphics-Input.cppm
new input system
2026-05-12 00:24:48 +02:00
Crafter.Graphics-InputField.cppm
webgpu improvements
2026-05-24 13:32:08 +02:00
Crafter.Graphics-Keys.cppm
browser DOM support
2026-05-18 02:07:48 +02:00
Crafter.Graphics-Mesh.cppm
Merge remote-tracking branch 'origin/master' into claude/issue-73
2026-06-17 17:52:06 +00:00
Crafter.Graphics-PipelineRTVulkan.cppm
perf(rt): place SBT in device-local memory via upload-strategy helper ( #72 )
2026-06-17 17:41:34 +00:00
Crafter.Graphics-PipelineRTWebGPU.cppm
feat(webgpu): HDR post-process primitives — float textures, storage-texture bindings, RESOLVE→HDR target ( #27 )
2026-06-09 12:55:14 +00:00
Crafter.Graphics-PlainComputeShader.cppm
webgpu improvements
2026-05-24 13:32:08 +02:00
Crafter.Graphics-RenderingElement3D.cppm
tlas build options
2026-06-16 15:49:17 +02:00
Crafter.Graphics-RenderPass.cppm
webgpu support
2026-05-18 04:58:52 +02:00
Crafter.Graphics-Router.cppm
browser DOM support
2026-05-18 02:07:48 +02:00
Crafter.Graphics-RT.cppm
feat(webgpu-rt): add intersection stage, procedural hit group, AABB BLAS API
2026-06-02 22:09:14 +00:00
Crafter.Graphics-RTPass.cppm
feat(webgpu-rt): atomic pixel accumulator + raysPerPixel for >1 ray/pixel/bounce ( #30 )
2026-06-09 22:45:25 +00:00
Crafter.Graphics-SamplerVulkan.cppm
browser DOM support
2026-05-18 02:07:48 +02:00
Crafter.Graphics-ShaderBindingTableVulkan.cppm
fix(vulkan-rt): configurable recursion depth + per-shader TLAS push for compute ( #21 )
2026-06-03 18:35:39 +00:00
Crafter.Graphics-ShaderBindingTableWebGPU.cppm
feat(webgpu-rt): add intersection stage, procedural hit group, AABB BLAS API
2026-06-02 22:09:14 +00:00
Crafter.Graphics-ShaderVulkan.cppm
fix(vulkan-rt): configurable recursion depth + per-shader TLAS push for compute ( #21 )
2026-06-03 18:35:39 +00:00
Crafter.Graphics-Types.cppm
browser DOM support
2026-05-18 02:07:48 +02:00
Crafter.Graphics-UI.cppm
Merge remote-tracking branch 'origin/master' into claude/issue-47
2026-06-16 17:09:06 +00:00
Crafter.Graphics-UIComponents.cppm
perf(text): cache shaped runs in ShapeText ( #52 )
2026-06-16 15:40:52 +00:00
Crafter.Graphics-VulkanBuffer.cppm
perf(buffer): reuse staging via a per-frame-in-flight ring in UploadDeviceLocal ( #120 )
2026-06-17 19:51:33 +00:00
Crafter.Graphics-VulkanTransition.cppm
browser DOM support
2026-05-18 02:07:48 +02:00
Crafter.Graphics-WebGPU.cppm
feat(rt): BuildProcedural/RefitProcedural from a device AABB buffer ( #37 )
2026-06-16 14:12:04 +00:00
Crafter.Graphics-WebGPUBuffer.cppm
webgpu improvements
2026-05-24 13:32:08 +02:00
Crafter.Graphics-WebGPUComputeShader.cppm
feat(webgpu): HDR post-process primitives — float textures, storage-texture bindings, RESOLVE→HDR target ( #27 )
2026-06-09 12:55:14 +00:00
Crafter.Graphics-Window.cppm
Merge remote-tracking branch 'origin/master' into claude/issue-40
2026-06-16 15:41:59 +00:00
Crafter.Graphics.cppm
webgpu improvements
2026-05-24 13:32:08 +02:00