janis
5e4bc0ccf0
rendergraph: correct transient-resource aliasing with pooled placement
...
Lifetimes derive from the real dependency ordering (retained DAG +
compile-time happens-before closure), not command-index intervals.
Aliasing is restricted to the single-queue contract; alias reuse is
synchronized with memory/image barriers anchored at first-use commands.
- renderer_device: aliasable shared allocations (CAN_ALIAS), memory-
requirements queries incl. dedicated hints, offset-aware
bind_buffer/image_memory2, grouped bind under one allocator lock
- renderer_resources: unallocated resource creation, requirements
cached in Allocation::Unmanaged (OnceLock), MemoryGroup pooling with
intersecting memoryTypeBits, bind-time validation
- renderer_rendergraph: retained dependency DAG, happens_before
closure, batch lifetimes, Placement type, plan_placements with
pooled aliasing (first-fit over offset-sorted ranges, pool classes
split by bufferImageGranularity), alias-barrier construction,
placement/bind error variants
- perf: quadratic compile/resolve paths eliminated (per-resource
indexing, frontier caching, backward-scan prune, cached recording
index, recorder scratch reuse); single requirements query per
resource through plan/validate/bind
- design plan + GPU-gated validation tests
2026-10-27 01:57:27 +01:00
janis
e116851b90
feat: migrate GPU memory allocator from gpu-allocator to VMA (vk-mem)
...
- Replace gpu-allocator with vk-mem 0.5.0 (VMA 3.3.0) in renderer_device
- Add public GpuAllocation wrapper, MemoryLocation, AllocationDesc, and
allocate_for_buffer/image + bind_buffer/image_memory helpers
- Restrict CPU-mapped allocations to HOST_VISIBLE|HOST_COHERENT memory types
- Handle guards: raw buffer/image handles owned before allocation so failure
paths never leak
- Use renderer_device::device::MemoryLocation across renderer, renderer_resources,
and renderer_rendergraph; remove all gpu-allocator dependencies
- Error on dedicated allocation below Vulkan 1.1 instead of silent downgrade
- Add Send/Sync asserts, coherent-mapping and dedicated-allocation validation
tests; update AGENTS.md docs
2026-10-26 13:44:17 +01:00
janis
0426e4039b
testing harness
2026-10-26 02:50:28 +01:00
janis
f7c67f9872
managed descriptorsets
2026-10-26 02:11:29 +01:00
janis
d901fe250b
feat: new draw command with arguments and resource tracking
2026-10-25 23:04:27 +01:00
janis
d896a207de
refactor: simplify barrier building logic and remove unused structures
2026-10-25 22:27:01 +01:00
janis
ac1b6c9cc8
idk? barrier stuff
2026-10-25 21:44:21 +01:00
janis
8d8595a0e3
queue transfer in graph barrier
2026-10-25 17:33:12 +01:00
janis
f84b2a1ea4
response to llm review
2026-10-25 02:28:35 +01:00
janis
c0f60b890c
dont consider imported resources in the lifetimes building
2026-10-25 02:50:03 +02:00
janis
88512b37ac
change interferrence graph impl
2026-10-25 01:56:04 +02:00
janis
51a2e69f74
fewer btrees
2026-10-25 01:36:34 +02:00
janis
6a41cccf8b
extract kahn algo and build interference graph
2026-10-25 00:42:27 +02:00
janis
195cf3e08a
extract graph compilation logic
2026-10-25 00:18:52 +02:00
janis
5f7bbba49d
custom resource descriptors for graph
2026-10-25 00:13:26 +02:00
janis
d367b4d05b
use renderer_resources
2026-10-24 23:05:51 +02:00
janis
e7a6536df5
initial renderer_rendergraph
2026-10-24 22:23:02 +02:00
janis
f9c18bcd3c
newtype queue family index
2026-10-24 21:37:07 +02:00