`[32bit loc | 32bit attributes]`
Use `std::map::lower_bound(loc << 32)` to find the first address that matches the key in O(logn) time, finer grained searchs can happen after the fact in O(n) time.
Fixes render-texture cache lookups
By default, a texture sitting somewhere and ignored should be in a shader-read-only state, and transitioned into other layouts in exception to this passive state.
This allows all shaders to be ready to be interpreted by shaders by default.
Fixes a lot of the render-target validation error messages.
We "might" change the default layout for render-targets to shader-read-only and only use attachment-optimal layouts when they are armed for a render-pass. Render-Textures more often need to be ready for shaders than they need to be ready for render-passes.
All color textures need to be sampled due to how we are transposing the image when writing to the render-texture.
Depth-Stencil render-textures need to designate if it wants _either_ depth or stencil when creating an image-view.
Uses the graphics pipeline to both blit and transpose the 3ds-formatted
textures. Does not read from the actual texture just yet since we dont
write to the descriptor just yet. Some other patterns need to line up
before then.
A utility class from a personal project for managing a heap of
descriptors of a particular layout.
Allows the display graphics pipeline to be successfully created,
satisfying its descriptor layout issues.
This will eventually need to move into a cache, but this is introducing
some foundational patterns so that we know how to properly design a
pipeline cache. Currently does not provide a `DescriptorSetLayout`
argument. Causing validation errors. This will be a general-case cache
right from the get-go.