| 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 |