The forward declaration of InterpolationMode already included its
underlying type. This commit does the same for ResourceRetType and
ResourceDimension.
Placing `alignas` before the type is more in-line with the C++ standard,
Microsoft Learn examples, and other places in this codebase. While the
old way worked with MSVC, this is more consistent and improves
compatibility with other tools without affecting the MSVC build.
Explicitly check for a valid command buffer Id instead of relying on m_LastEventID > startEID check to fix reading baked command buffer when selecting vkQueueSubmit
The command buffer id will be 0 which will make an empty entry in the map.
The submit will be skipped because startEID >= m_LastEventID.
Add asserts to catch invalid command buffer ID being used during ReplayQueueSubmit()
Change resource usage EID offset for events without an action to match usage EID offset for events with an action.
Simplify EID offset when adding events without an action.
Closer match to the D3D12 implementation.
When doing history on depth targts, for ClearDepthStencil events, generate the DepthStencilView dimension from the depth target resource description instead of using the ResourceUsage view member.
Don't early ignore events by using the ResourceUsage view parameter, test the event for any modification.
* The address is 64-byte aligned so shifted by 6, and the range 16-byte aligned
so shifted by 4.
* The max UBO range is still 64k so 13 bits is 1 more than needed to represent
all ranges.
* This would generally only come up with gl_PerVertex, and was hidden before
because gl_Position is the first member. It likely would also reproduce if a
user had a struct output from the mesh shader.
* This doesn't trigger a rebuild if nothing else has changed, but it does mean
these files can't be customised without going through the build process as
they'll be overwritten on any rebuild. It looks like IfDifferent doesn't work
properly or maybe isn't available on all msbuild versions.
* Remove use of newer STL classes like std::filesystem, std::variant and
std::optional.
* Do not use inline variables - the only instance is also static constexpr
* Explicitly initialise std::array variables with type and size (also add extra
{}s to appease an old clang warning)
* Work around old libstdc++ bug with move assignment and non-assignable
allocators
* Remove redundant constexpr that warns on older compilers
* Remove use of declaration-inside-if statements
Use the cached Texture Description for all other Textures which matches the behaviour of GetTextureData()
When saving a texture when a custom visualisation shader is in use:
- fixes a crash when saving as HDR or EXT
- fixes incorrect image saved to DDS
The Vulkan specification allows to have uninitialized fields in
VkDescriptorImageInfo based on descriptor type. Such fields should not
be touched by the implementation (which includes drivers, validation
layers and tools).