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)
* The previous PR that added this code existed before ptr-to-function was
stripped down to just function for function types, so this change brings it in
line.
Fix a typo in a comment in D3D12_Descriptor_Indexing.py.
Fix UAV using a typed buffer view instead of a structured buffer view.
Fix SetDescriptorHeaps being called before ClearUnorderedAccessViewUint
Simplify code to get objc bridge from API result to single line instead of using a temporary variable
Fix missing forward declaration for bool IsObjCBridge(MTL::CPPTYPE *objCWrapped);
Simplify code to get objc bridge from API result to single line instead of using a temporary variable.
Fix missing forward declaration for bool IsObjCBridge(MTL::CPPTYPE *objCWrapped);
* Loading LibGit2Sharp.dll by hand in msbuild no longer works in VS2022 due to
architecture changes. We can fairly reliably get the same result by manually
reading (and following the ref in) .git/HEAD
* This is not how LLVM does things, but sometimes DXIL blobs don't have the ptr-
to-func types present, and we always access the real function type anyway so
it should be safe to store the direct function type.