* This is a test of a specific case of lazy serialisation, but in particular
D3D12 descriptors do some aliasing tricks for types to compress the data, so
repeated serialisation needs to be safe.
* It complains that there is switch fallthrough after an unconditional return,
when it's inside a do{}while(0). Simplifying the while condition seems to
address it.
* Most of the main entry points that can fail with relevant reasons now has a
way of specifying a message to return with it. This message can be displayed
to the user to give more information or context about an error.
Helpful for source browsing when using an IDE project generated by CMake
Potential list of header files found using:
find util/test/demos -name '*.h' \! -path "*3rdparty*" \! -path "*official*"
These APIs are not serialized and pass through to real device
One exception is ray tracing related support APIs return false ie.
supportsRaytracing
supportsRaytracingFromRender
* The 'no to all' option should always be present if there are multiple unsaved
captures across the connections, even if the current connection only has one
capture and so otherwise wouldn't have a 'no to all' option.
* The 'no to all' option will always discard all unsaved captures in all
connections when closing the window, if the user clicks no on the confirmation
of this, abort the close operation entirely and let them decide how to handle
it (e.g. discarding/saving captures in connections individually).
When two shared objects are symlinked and if one is loaded,
CheckLoadedLibraries detects the other one as loaded too and run hooks a
second time.
Prevent this as it leads to recursive blocking calls in libEGL.
* Previously our state rebinding expected to be 'at' a draw so it used a
pipeline to determine which push constants and descriptor sets to rebind. Now
we track which was the last descriptor set to be rebound and use it as
reference, even if a pipeline isn't available, to properly rebind descriptors.
MarkResourceFrameReferenced() on the buffer record instead of the resource manager
Transfer the frame references on the buffer record to the resource manager when the buffer is committed.
Do not set the MTLCommandQueue record as a parent of the MTLCommandBuffer record.
Only mark the MTLComamndQueue record as frame referenced when active capturing.
Removed namespace MetalResources scope
Rename it to MetalCmdBufferRecordingInfo to remove conflict with Vulkan struct of the same name.
Mark MetalCmdBufferRecordingInfo default constructor as deleted
Added MetalCmdBufferRecordingInfo constructor which takes WrappedMTLCommandQueue* and initializes member variables to sensible defaults.
Removed "WrappedMTLDevice *device;" member variable.