blob: 5af77e1097ff527683effcc7f8ab08a9c851aa72 [file] [log] [blame]
gpu dag
https://levelup.gitconnected.com/organizing-gpu-work-with-directed-acyclic-graphs-f3fd5f2c2af3
constant-time LFU cache
https://arpitbhayani.me/blogs/lfu
memory aliasing
https://levelup.gitconnected.com/gpu-memory-aliasing-45933681a15e
debug channel
https://github.com/Themaister/Granite/blob/master/assets/shaders/inc/debug_channel.h
https://github.com/Themaister/Granite/blob/master/vulkan/device.cpp#L4789-L4835
https://github.com/Themaister/Granite/blob/master/vulkan/command_buffer.cpp#L2436-L2479
debug regions:
https://github.com/Themaister/Granite/blob/master/vulkan/command_buffer.cpp#L2376-L2424
device:
timestamps/calibrated timestamps
profiling/perf counters
staging buffers https://github.com/Themaister/Granite/blob/master/vulkan/device.cpp#L1720-L1761
submit: https://github.com/Themaister/Granite/blob/master/vulkan/device.cpp#L1317-L1399
cmd buf invalidation: https://github.com/Themaister/Granite/blob/master/vulkan/command_buffer.cpp#L2370-L2371
subgroup specialization
https://github.com/Themaister/Granite/blob/master/vulkan/command_buffer.cpp#L707-L736
allocator
https://github.com/Themaister/Granite/blob/master/vulkan/memory_allocator.hpp
https://github.com/Themaister/Granite/blob/master/vulkan/memory_allocator.cpp
buffer block pool:
https://github.com/Themaister/Granite/blob/master/vulkan/buffer_pool.hpp
https://github.com/Themaister/Granite/blob/master/vulkan/buffer_pool.cpp
weak map:
https://github.com/Themaister/Granite/blob/master/util/generational_handle.hpp
thread groups:
https://github.com/Themaister/Granite/blob/master/threading/thread_group.hpp
https://github.com/Themaister/Granite/blob/master/threading/thread_group.cpp
pipeline events
https://github.com/Themaister/Granite/blob/master/renderer/render_graph.hpp#L843-L855
dependency traversal/merging:
https://github.com/Themaister/Granite/blob/master/renderer/render_graph.cpp#L2369-L2466
pass selection (based on deps):
https://github.com/Themaister/Granite/blob/master/renderer/render_graph.cpp#L2468-L2573
semaphores as way of determining dependencies
barrier insertion:
https://github.com/Themaister/Granite/blob/master/renderer/render_graph.cpp#L2941-L3259