Commit Graph

12955 Commits

Author SHA1 Message Date
Jake Turner 0c8e41b201 Added wrapped MTLCommandQueue
Implemented capture serialisation for MTLDevice::newCommandQueue
Introduce new helper macros DECLARE_FUNCTION_WITH_RETURN_SERIALISED & INSTANTIATE_FUNCTION_WITH_RETURN_SERIALISED for serialising APIs with return values that need serialising ie. Metal resource creation APIs
2022-03-17 10:19:21 +00:00
Jake Turner f01a4df484 Fix Xcode 13.3 and Clang 13.x compile errors
Disable warnings
-Wunused-but-set-variable
-Wdeprecated-copy
2022-03-17 09:36:44 +00:00
Jake Turner 308456535f Rename ObjC helper GetResId -> GetResID 2022-03-15 19:01:52 +00:00
Jake Turner 6a657bd19f Rename ObjC helper GetId -> GetResId 2022-03-15 19:01:52 +00:00
Jake Turner b92dccc5e9 Add declarations for ObjC helper methods 2022-03-15 19:01:52 +00:00
Jake Turner ca7495a3c8 Remove extra #include "serialise/serialiser.h" 2022-03-15 19:01:52 +00:00
Jake Turner 247e2d7d0b Use bytebuf to serialise default library data 2022-03-15 19:01:52 +00:00
Jake Turner 00e8c31255 Change ObjCWrappedMTL* to ObjCBridgeMTL*
Change:
AllocateObjCWrapper -> AllocateObjCBridge
IsObjCWrapped -> IsObjCBridge
GetObjC -> GetObjCBridge
WrappedMTLObject::objc -> WrappedMTLObject::objcBridge
WrappedMTLObject::GetObjCWrappedMTLDevice -> WrappedMTLObject::GetObjCBridgeMTLDevice

Added GetReal() to C++ Wrapped objects
2022-03-15 19:01:52 +00:00
Jake Turner 5f3203c698 Hooking for MTLDevice basic new Library APIs 2022-03-15 19:01:52 +00:00
Jake Turner 88a2b3d74a Added basic MetalResourceManager implementation
Added MetalResourceManager to WrappedMTLDevice

Added helper macros:
METAL_NOT_IMPLEMENTED
METAL_NOT_IMPLEMENTED_ONCE

Added WrappedMTLDevice InitialState methods to metal_init_state.cpp
Added WrappedMTLDevice Serialiser helper methods to metal_core.cpp
2022-03-15 19:01:52 +00:00
Jake Turner d79617cb46 Added ResourceId GetResID(WrappedMTLObject *obj) 2022-03-15 19:01:52 +00:00
Jake Turner 33d8061555 Add MetalResourceRecord record to WrappedMTLObject 2022-03-15 19:01:52 +00:00
Jake Turner a764744bc0 Added ObjC::Get_defaultLibraryData 2022-03-15 19:01:52 +00:00
Jake Turner 07011138dc Add support for NS::String* serialisation 2022-03-15 19:01:52 +00:00
baldurk 6d5140e5b5 Remove links to deleted wiki pages, and planned/roadmap features doc 2022-03-15 14:34:38 +00:00
baldurk 43091746a4 Promote CmdUpdateBuffer to be an action (similar to CmdFillBuffer)
* This is more consistent with our definition of actions as anything that can or
  does significantly mutate a resource.
2022-03-15 13:47:25 +00:00
baldurk e2bdd618d3 Set default sampler parameters when none is bound. Closes #2520 2022-03-15 11:31:19 +00:00
baldurk efbc17335b Make sure to remove secondary subpass flag on renderpasses
* When replaying draws alone in a primary command buffer we need to revert back
  to normal draws in subpasses.
2022-03-15 10:53:26 +00:00
Jake Turner 036a5c8da0 Added wrapped MTLLibrary & MTLFunction
Not currently created or used
2022-03-12 12:08:23 +00:00
Jake Turner 596e7f0e11 Added a couple of helpers to WrappedMTLObject
Dealloc()
GetObjCWrappedMTLDevice()
2022-03-12 12:08:23 +00:00
Jake Turner ef85b49e91 Add CaptureState& to WrappedMTLObject constructor 2022-03-12 12:08:23 +00:00
Jake Turner 86f4f2f70e Added MetalResourceType enum
Switch to use include of "metal_common.h" instead of "metal_types.h"
2022-03-12 12:08:23 +00:00
Jake Turner 332f3e6143 Added and used new macro METAL_NOT_HOOKED
Replaces "NSLog(@"Not hooked %@", NSStringFromSelector(_cmd));"
Added comments to explain use of methodSignatureForSelector & forwardInvocation methods
2022-03-12 12:08:23 +00:00
Jake Turner 6d24e2b100 Change Metal hooking to use RegisterFunctionHook
Instead of direct function pointer capture at compile time
2022-03-12 12:08:23 +00:00
Jake Turner 91df933215 Updated copyright year to 2022 2022-03-12 12:08:23 +00:00
baldurk ab19941650 Use _NT_SYMBOL_PATH where available as search path for callstacks 2022-03-10 11:13:26 +00:00
Remi Palandri 79aee1df43 full implementation of compute msaa-to-buffer 2022-03-09 12:10:47 +00:00
Jake Turner b72bdb2b9a Metal: basic hooking and MTLDevice wrapping 2022-03-09 10:29:03 +00:00
Remi Palandri 9d6526ff6e fix output window vulkan valid/crashes 2022-03-09 10:15:05 +00:00
baldurk ad9a4e854f Fix to bizarre CI failure
* For some reason using != on these QSet<QString> fails in release only on
  github's CI only. I don't know what is broken on their runners but this
  workaround fixes it.
2022-03-09 03:02:13 +00:00
baldurk a265a8363d Compile fixes 2022-03-08 18:32:31 +00:00
baldurk 7b4f535663 Refactor watch variables to support complex types including structs 2022-03-07 18:45:57 +00:00
baldurk b0db52c80b Show variable context menu for constants panel as well 2022-03-07 14:45:44 +00:00
baldurk 26de305e1a Allow adding a watch for any text selection 2022-03-07 14:45:44 +00:00
baldurk 8e76069ecf Switch watch variables control from table to tree widget
* This will allow watching structs or arrays
2022-03-07 14:45:44 +00:00
baldurk 3af7458763 Continue to show last value of a watch variable when it's not available 2022-03-07 14:45:44 +00:00
baldurk 87f2adc829 Improve mapping of source locations to instructions in shader debugging 2022-03-07 14:45:44 +00:00
baldurk b35b744ada Verify captures are still present before showing them in connection
* If the RenderDoc UI connects to a program, opens then deletes the captures,
  then closes and is opened again - we don't want to report those deleted
  captures as if they still exist. This now clears out any captures that no
  longer exist.
2022-03-07 14:45:44 +00:00
baldurk 4d631e2c72 Check for dynamic rendering inheritance if used with secondary cmdbufs 2022-03-07 14:17:29 +00:00
baldurk 3ef88343ca Add serialisation of VkCommandBufferInheritanceRenderingInfo::flags 2022-03-07 14:17:12 +00:00
baldurk d645d5f0d6 Remove some unused STL includes 2022-03-01 12:25:31 +00:00
baldurk d40a093544 Fix problems with residency management during capture. Closes #2496
* We don't want to allow threaded evictions of resources while we're preparing
  initial states, and we need to manage residency of heaps as well as individual
  resources.
2022-03-01 12:07:34 +00:00
baldurk c22fb717d6 Fix detection of fatal errors better during initialisation 2022-02-28 11:32:33 +00:00
baldurk d972db1524 Don't use linear sampling on integer textures 2022-02-25 16:15:39 +00:00
baldurk c9c3e0f646 Fix backwards check for unsupported GL functions 2022-02-25 13:01:22 +00:00
baldurk 977d4b4d1b Unset tracking context bindings when objects are deleted 2022-02-24 19:00:35 +00:00
baldurk 52d26919b5 Fix image barriers when selecting BeginRP with discards 2022-02-24 19:00:35 +00:00
baldurk d57a8dc5d9 Sanitise renderpass barrier layouts before applying them 2022-02-24 19:00:34 +00:00
baldurk 522a947aac Specify IGNORED queue family for renderpass barriers 2022-02-24 19:00:34 +00:00
baldurk 7eec1f19e7 Fix depth/stencil barrier aspects for discard patterns 2022-02-24 19:00:34 +00:00