Commit Graph

12902 Commits

Author SHA1 Message Date
Jake Turner 6bd8bcee60 Add note that Mac requires a C++17 compiler 2022-02-19 11:17:33 +00:00
Jake Turner 949aaa2c0a Guard XCode project generation specific settings 2022-02-19 11:17:33 +00:00
Jake Turner 39d11975b2 Update build requirements for Apple
CMake version 3.20 or higher (needed to support Xcode project generation)
clang version 12.0 or higher (needed to support arm64+x64 universal binary compilation)
XCode 12.2 is the oldest version which includes clang version 12.0
2022-02-19 11:17:33 +00:00
baldurk 08e7a55732 Fix potential crash internally to Qt when removing tree widget items 2022-02-19 10:24:33 +00:00
baldurk a51b20369f On windows only inherit handles if required for process output 2022-02-17 17:38:32 +00:00
baldurk 60e1f86571 Fix xml handling of arrays when loading config 2022-02-17 17:38:32 +00:00
baldurk fcdea67879 Update copyright years to 2022 2022-02-17 17:38:32 +00:00
Remi Palandri 25a4fc41d6 add VR thumbnail support 2022-02-17 17:36:35 +00:00
Jake Turner 0d852ae6f2 Tweak MTL type declarations in metal-cpp.h
Changes to make metal-cpp options work nicely with RenderDoc serialization
_MTL_OPTIONS -> _NS_ENUM

RenderDoc serialization works with fixed sized types
2022-02-17 14:06:28 +00:00
Jake Turner 53e17c72d4 Tweak NS type declarations in metal-cpp.h
Changes to make metal-cpp enums work nicely with RenderDoc serialization
NS::Integer -> std::int64_t
NS::UInteger -> std::uint64_t

RenderDoc serialization works with fixed sized types
2022-02-17 14:06:28 +00:00
Jake Turner c4edcdbf66 Fix compile warnings/errors in metal-cpp.h
Forward declare MTL::Drawable to avoid conflicts. "Drawable" is a common type name
2022-02-17 14:06:28 +00:00
Jake Turner b633ec78f8 Fix compile warnings/errors in metal-cpp.h
renderdoc/driver/metal/official/metal-cpp.h:15062:121: error: 'const' type qualifier on return type has no effect [-Werror,-Wignored-qualifiers]
2022-02-17 14:06:28 +00:00
Jake Turner 066870652c Added metal-cpp to the project
Raw header file from Metal-cpp project
Generated using

./SingleHeader/MakeSingleHeader.py Foundation/Foundation.hpp QuartzCore/QuartzCore.hpp Metal/Metal.hpp

Metal-cpp project: https://developer.apple.com/metal/cpp/
https://developer.apple.com/metal/cpp/files/metal-cpp_macOS12_iOS15.zip
2022-02-17 14:06:28 +00:00
Jake Turner ce36cc340f CMake files base setup for Metal 2022-02-17 14:06:28 +00:00
baldurk 31221a6d04 Add support for wglMakeContextCurrentARB. Closes #2498 2022-02-16 16:41:08 +00:00
baldurk f573b55012 Fix broken call to BecomeRemoteServer 2022-02-16 13:14:58 +00:00
Jake Turner f74b350f93 Apple: wait for ~16 seconds for application launch
On Apple Silicon it can take ~10 seconds for the OS to launch an Intel x64 process.
The Intel executable is translated on launch using Rosetta.
2022-02-16 11:10:34 +00:00
Jake Turner f9b6752f14 Apple: fix hooking not working on OSX 12
Change hooking to use link time symbol address instead of runtime dlsym
Since OSX12 dlsym(RTLD_NEXT,...) returns the interposed symbol not the real symbol
2022-02-16 11:10:34 +00:00
Remi Palandri 8b3b862dcc remove QCOM workarounds on newer driver 2022-02-16 11:02:13 +00:00
Remi Palandri 1abe42c0a4 add dimensions and offset info to HTML pipeline 2022-02-15 19:28:58 +00:00
baldurk e99260ab6c Add a context menu item for renaming captures in connection panel 2022-02-15 17:15:48 +00:00
baldurk 142fe7c84f Allow editing the marker path as a location
* This lets you paste in a location to jump directly somewhere, for example.
2022-02-15 17:15:48 +00:00
baldurk 99adcc614f Allow multiple remote servers on one hostname, on different ports
* When a port is specified (with the usual :12345 suffix on the hostname) we use
  that for remote replay connections. We disable target control enumeration
  since that requires a port _range_ and captured applications self-assign those
  ports. Those can still be accessed via a normal unsuffixed remote specifier -
  even if there is no remote server running on the default port.
2022-02-15 17:15:48 +00:00
baldurk 435ed5ad38 Mark literal string creation as constexpr
* The compiler doesn't seem to do much with this in debug, but it might help in
  release.
2022-02-15 17:15:48 +00:00
baldurk da979b23bc Don't omit opaque types for real empty structs in DXIL editing 2022-02-15 17:15:48 +00:00
Remi Palandri d1858f4479 add support for VK_QCOM_FDM_offset 2022-02-14 21:02:27 +00:00
baldurk 4fe19177b9 Update asic count 2022-02-14 13:38:23 +00:00
baldurk a2df3de613 Update RGA backend to include gfx1034 2022-02-14 13:32:14 +00:00
baldurk 9b9a67e8da Make sure to fetch egl functions via eglGPA if necessary. Refs #2494
* Extensions will likely not be exported as real symbols, so we need to handle
  the case of needing to fetch the onward pointer via eglGetProcAddress.
* We do this for non-extensions too, to try to fetch core functions that are
  still NULL after hook initialisation. Since we do wholesale dlopen/dlsym
  replacement on linux we cannot handle the case where an application checks for
  function validity via just normal dlsym returning something, but then the
  function doesn't exist in the real libEGL.so. We have no way of reporting that
  the function actually doesn't exist because we have nowhere to call, and it
  will crash. Trying to fetch the pointer via eglGPA is unlikely to succeed but
  should do no harm as we don't set these function pointers anywhere else.
2022-02-14 11:57:49 +00:00
baldurk 755c4254b8 Save current renderpass before it is unset in vkCmdEndRenderPass
* We need this to look up which renderpass we were in previously
2022-02-14 11:32:20 +00:00
baldurk 874134da70 Disable DXIL validator entirely as it sometimes crashes on valid code 2022-02-11 16:44:55 +00:00
baldurk 745bff2eeb Fix tests not passing a window title 2022-02-11 11:52:36 +00:00
Remi Palandri 4860e87c92 move replay to call app's endRP/nextsub calls 2022-02-11 11:09:43 +00:00
Remi Palandri c96f9d3770 add support for VK_QCOM_render_pass_shader_resolve 2022-02-11 11:04:47 +00:00
baldurk ec5c14dee8 Add support for multiple batched presents on vulkan. Closes #2492 2022-02-10 16:36:19 +00:00
Remi Palandri 3d07a0b568 lazily fetch subsamples in MSAA textures 2022-02-10 10:24:17 +00:00
baldurk 38fa7a1ac7 Fix compile error 2022-02-09 18:54:21 +00:00
baldurk e332b43abb Use a compatible renderpass for fetching stencil data for readback 2022-02-09 18:01:40 +00:00
baldurk d5e6a735fb Pass through names from capture when EXT_debug_* is supported 2022-02-09 18:01:40 +00:00
baldurk 544e6dbf18 Strip index decorations in vulkan postvs when patching to compute 2022-02-09 18:01:40 +00:00
baldurk 2c2e76fbeb Ensure even for non-indexed mesh picks we bind dummy buffer
* The descriptor needs to be valid even if it's not used, when not using
  descriptor indexing rules, so ensure the IB buffer is at least some minimum
  size.
2022-02-09 18:01:40 +00:00
baldurk 83dc0b78c8 Ignore validation message about unwritten outputs. 2022-02-09 18:01:40 +00:00
baldurk 469f17a607 Vulkan images in preinitialized layout must always be patched to general
* Originally the idea was that on first use in a Loading pass we'd transition
  from preinitialized to whatever the application wanted, and then subsequently
  on repeated replays it would be left in general. However this doesn't account
  for initial contents and initial frame states, which will end up putting the
  image in GENERAL anyway. This is fine as it still satisfies the requirements
  if needed.
2022-02-09 18:01:40 +00:00
baldurk a661020cec Fix incorrect check for image view type as array in pixel history 2022-02-09 18:01:39 +00:00
baldurk 574d87e72a Force use of load RPs/FBs for pixel history
* When we're splitting every draw and execute to get pre- and post-mod colours,
  we resume renderpasses with load RPs for obvious reasons. The inheritance info
  needs to match in secondary command buffers, so we force it over
  conditionally.
2022-02-09 18:01:39 +00:00
baldurk b05830d668 Respect the original subpass contents when replaying renderpasses
* We also need to take care to patch this now, when replaying a single draw that
  was originally in a secondary but we replay in a primary.
2022-02-09 18:01:39 +00:00
baldurk 53b507c44b Add names to some more objects 2022-02-09 18:01:39 +00:00
baldurk f7aec1a5f6 Implement unstripped SPIR-V shader blob loading from magic value tags 2022-02-09 18:01:30 +00:00
baldurk b094c45d42 Create separate pipeline and dummy images for depth-format, for DRefs
* Any pipeline that uses DRef on images (without descriptor indexing at least,
  which we don't assume) must be passed depth-formatted images. This includes
  the dummy images we bind to other slots.
* At the same time we limit depth textures to just 1D, 2D, 2DMS - ignoring 3D
  and Cube.
2022-02-08 18:07:39 +00:00
baldurk f0428e6801 Add extra protection for valid queries to GetBufferData 2022-02-08 18:07:39 +00:00