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.
* GL hooks registration was using an obscene amount of stack because MSVC
doesn't share stack for mutually exclusive locals (all the temporary
FunctionHooks) so an executable that reduces the default thread stack size
enough would fail to start.
* We also explicitly allocate 1MB of stack for injecting our DLL in future to
avoid this issue.
This extension is the origin of STORE_OP_NONE, which found its way to
VK_EXT_load_store_op_none and VK_KHR_dynamic_rendering. RenderDoc
supports STORE_OP_NONE just fine, this change simply adds this extension
to RenderDoc's allowlist.
* This is necessary on e.g. Windows where some legacy functions are only
exported via the dll and need to be 'properly' hooked and not just intercepted
via GL's GetProcAddr
* The custom shader output is updated when displaying, but this can lag by a
call or two (a 'frame' if you like) when the display is only triggered by a
window repaint and the histogram can be fetched first. Since the custom shader
apply is only expensive when we need to recreate the output texture, we can do
it on-demand similar to what we do with the overlay texture.
SDK 11.1 and SDK 12 have different declaration for MTLDevice::supportsBCTextureCompression.
On SDK 11.1 it is marked as API_AVAILABLE for ios and on SDK 12 is marked as API_UNAVAILABLE ios.
Guard the API_UNAVAILABLE(ios) declaration to only be included when compiling for SDK 12.0 or above.
The compile error message before the fix:
renderdoc/driver/metal/metal_device_bridge.mm:158:64: error: method cannot be unavailable on iOS when the protocol method it implements is available [-Werror,-Wavailability]
69
- (BOOL)supportsBCTextureCompression API_AVAILABLE(macos(11.0))API_UNAVAILABLE(ios)