Commit Graph

13858 Commits

Author SHA1 Message Date
baldurk 9e93154383 Fix sphinx rtd theme for new sphinx version 2023-05-01 17:43:49 +01:00
baldurk b115a6750b Pass instance to GetInstanceProcAddr fetching vkCreateDevice 2023-05-01 16:28:42 +01:00
leo-paul.couturier eb643dd76f add windows.storage.dll to the list of ignored libraries 2023-04-27 10:51:39 +01:00
baldurk a1422df961 Force use of getenv/setenv directly from libc to avoid bash override
* Bash overrides getenv/setenv to look up its own variable set, but breaks since
  we need to modify the environment before main() when it initialises its
  variable set. Instead what happens is the first setenv initialises that
  variable in a blank set and so all subsequent environment variables are NULL.
  Then in main() the variable set gets initialised from environ, removing any
  changes that were made.
2023-04-26 14:01:54 +01:00
baldurk 9998714b50 Unwrap vulkan fences in present fence information struct 2023-04-26 13:09:30 +01:00
baldurk 0e55a9c0e5 Detect structures with all-NULL members, and display as NULL
* This is an implicit transformation that llvm makes normally at constant load
  time, we do it only for disassembly.
2023-04-25 17:14:57 +01:00
baldurk 644157be56 0 is not a forward reference in DXIL phi nodes 2023-04-25 17:14:57 +01:00
baldurk 527caea7a8 Handle pointer types being missing from DXIL shaders
* Pointer types implicitly referenced by objects but not directly (like global
  variable or alloc/gep pointers) are not guaranteed to be present, so we need
  to add them ourselves to parse correctly and identically to LLVM.
2023-04-25 17:14:57 +01:00
baldurk 12a963056e Fix wrong operand being used to look up resources in gather4 opcodes 2023-04-25 17:14:57 +01:00
Jake Turner e11130580a Update comments about RDMTL structs
Wrong name in comment:
MTLVertexBufferLayoutDescriptor is now MTLVertexDescriptor

Added comments for
FunctionGroup
MTLRenderPassDescriptor
2023-04-25 14:09:01 +01:00
Jake Turner 6dbb7a3a86 Serialisation for MTL::IndexType 2023-04-25 14:09:01 +01:00
Jake Turner bd545cb9b6 Remove unintentional use of nullptr 2023-04-25 14:09:01 +01:00
eclazi 3a03625651 Update comment 2023-04-25 14:07:38 +01:00
eclazi e140b6c68d Add path to DIA SDK dlls for VS 2022 installations 2023-04-25 14:07:38 +01:00
baldurk dfed2749c9 Fix detection of scalar packing from only matrix layout. Closes #2918 2023-04-25 13:42:17 +01:00
baldurk 894e20c470 Disallow querying for internal D3D interface. Closes #2923
* This interface does some undocumented things and then creates unwrapped
  resources, which can't be wrapped and hooked. Since the interface is not
  public it can't be wrapped safely, and must be blocked.
2023-04-25 11:36:24 +01:00
baldurk 3d5bbb216c Detect and separately report windows 11 2023-04-25 10:07:25 +01:00
Henry Rose ae718049f6 correct dynamic rendering stencilAttachmentFormat 2023-04-21 10:32:14 +01:00
baldurk ba81d81c3a Fix compile error 2023-04-20 13:56:01 +01:00
baldurk c520ad0e2b Fix formatting in ui file 2023-04-20 13:41:49 +01:00
baldurk 90950d9a84 Don't try to render 0x0 thumbnails 2023-04-20 11:24:26 +01:00
baldurk f129b5c745 Use access chain for looking up builtins from struct. Refs #2911 2023-04-20 11:12:25 +01:00
baldurk 86b575b0e5 Respect drawbuffers when they aren't simple direct 1:1 with attachments 2023-04-17 15:01:20 +01:00
baldurk 1792f9c9ab Ensure GL pixel history always replays all events even when skipping 2023-04-17 13:41:13 +01:00
baldurk 37a4c195f7 Fix some GL pixel history cases replaying missing draws 2023-04-17 13:41:13 +01:00
baldurk 73b05956b6 Make sure color mask is reset as needed in GL pixel history 2023-04-17 13:41:13 +01:00
baldurk 44e8c9ec20 Fix cases in GL pixel history where state is changed mid-replay
* Any places where we interrupt to do some work per draw need to restore the
  state properly afterwards.
2023-04-17 13:41:13 +01:00
baldurk c149b9f2ec If RestoreDeferredContextState was used a command list is not successful 2023-04-17 11:34:37 +01:00
baldurk 167c88ee41 Handle access chains for input data in vertex shader. Closes #2911 2023-04-17 10:18:27 +01:00
William Pearson afbe26768d Draw arrows next to all tool buttons with menus
Before, only MenuButtonPopup had an arrow. This makes it more obvious
as to whether the button will immediately do something when clicked or
if it will open a menu to choose a specific action.
2023-04-14 19:04:15 +01:00
William Pearson 4c45c07160 Move subControlRect for CC_ToolButton to RDTweakedNativeStyle
This means the full rect won't be returned for SC_ToolButtonMenu if it
is used in a context where the default style doesn't expect the menu.

This is a separate commit to isolate future changes to this function.
2023-04-14 19:04:15 +01:00
William Pearson f82ef87595 Enable tooltips for shader execute forwards/backwards menus
MakeExecuteAction already sets tooltips for each QAction it creates,
but these are not used in a QMenu unless the toolTipsVisible property
is set to true.
2023-04-14 19:04:15 +01:00
William Pearson d150d8f2b7 Use instant popup for shader execute forwards/backwards buttons
There is no action associated with clicking the button itself, only for
the menu associated with it. Using QToolButton::MenuButtonPopup means
that the majority of the button is for the button's own action, and
there is a small arrow next to the button that shows the menu. Since
there's no action, this means that the small menu arrow needs to be
clicked each time instead of the big button, which is annoying.
QToolButton::InstantPopup instead always shows the menu (though it
doesn't have the arrow indicating a menu exists, although this is not
particularly important).

InstantPopup is also already used for the "Insert" button used when
editing a custom shader for the texture viewer. MenuButtonPopup is used
in many other places throughout RenderDoc, but they are all save or
export buttons where there is a meaningful default action.
2023-04-14 19:04:15 +01:00
William Pearson 07a2fd4b1a Remove specification of QToolButton popupMode when there is no menu
Specifically, the open button in the Python shell window and the blue
channel (only) in the texture viewer had values specified even though
they do not have an actual menu associated with the buttons. For the
texture viewer, this was explicitly set to the default value (delayed
popup); for the Python shell window the value is custom. The popup
mode is only used "for tool buttons that has a menu set or contains
a list of actions".

These were added in early commits for each feature, probably by
accident: 0837e66939 for the texture
viewer and 2a4596e06a for the Python
shell.
2023-04-14 19:04:15 +01:00
baldurk 90ae874c1d Add fallback for shader feedback on Intel GPUs without int64 support
* We don't change very much, we use uvec2 instead of uint64 for passing the
  address in on KHR_BDA, and then do manual carry'd additions for address
  offsets.
2023-04-14 18:28:26 +01:00
baldurk cc3d383287 Manually check depth bounds test in vulkan pixel history 2023-04-14 16:08:10 +01:00
baldurk f9b133d153 Fix depth readback with custom depth image in vulkan pixel history 2023-04-14 16:08:10 +01:00
baldurk fb0b643c55 Mark non-final fragments as having unknown stencil in pixel history 2023-04-14 16:08:10 +01:00
baldurk 23c0eb2d61 Ensure pixel pack state doesn't affect GL pixel history 2023-04-14 14:03:52 +01:00
baldurk e43a59ab53 Save capture changes to local file not remote temp copy. Closes #2908 2023-04-14 14:03:28 +01:00
baldurk ce1549fc15 Work around intel GL driver bug with framebuffer blits. Closes #2907 2023-04-14 13:39:02 +01:00
baldurk 6ab754b4e4 Disable vulkan layer GamePP. Closes #2905 2023-04-13 17:32:06 +01:00
Jake Turner e36062b989 Apple added drawableID to MetalDrawableInfo
If MTL:Drawable is not found by pointer, fallback and search for it by drawableID (which should be unique and monotonically increasing).

This fixes a problem preventing frame capture when launching RenderDoc UI from Xcode with "GPU Frame Capture" enabled.
2023-04-12 17:30:27 +01:00
William Pearson e6fb67c1e1 Support spaces in clang-format path
This allows setting the CLANG_FORMAT environment variable to (e.g.)
`C:/Program Files/LLVM3.8.1/bin/clang-format.exe` and then using the
script from Git Bash on Windows. Before, it would break if there
were spaces in the path. (If a suitable clang-format were in the PATH
environment variable, though, I don't think spaces caused problems.)
2023-04-12 10:54:19 +01:00
Jake Turner 1c925494ef Default Xcode option GPU Frame Capture to Disabled
The CMake option "CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE" is available starting from CMake version 3.23.0.

Increase the minimum CMake version for building Apple to 3.23.0 from 3.20.0
2023-04-12 10:50:27 +01:00
Jake Turner b692626839 Synchronize Metal-CPP from renderdoc to demos 2023-04-12 10:50:09 +01:00
Jake Turner 7bcbc5a257 Update Metal CPP to support tests project
Add extensions from Learn Metal-cpp project: https://developer.apple.com/metal/cpp/

https://developer.apple.com/metal/LearnMetalCPP.zip

Custom additions to Metal CPP to get NSApplication, NSMenu, NSMenuItem, NSRunningApplication, NSView, NSWindow
2023-04-12 10:50:09 +01:00
Jake Turner 114d646cc2 Metal-CPP: extend CA::MetalLayer* methods
Add:

CGFloat CA::MetalLayer::contentsScale() const;
CGRect CA::MetalLayer::bounds() const;
2023-04-12 10:50:09 +01:00
Jake Turner 57f9ac6fed Metal-CPP: extend NS:Data* & NS::Bundle* methods
Add:
NS::String* NS::Bundle::pathForResource(const class String* pName, const class String* pExt) const;
NS::Data *NS::Data::dataWithContentsOfFile(const String* path);
const void* NS::Data::bytes() const;
2023-04-12 10:50:09 +01:00
Jake Turner 946c6fef11 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
2023-04-12 10:50:09 +01:00