3226 Commits
Author SHA1 Message Date
baldurk e99d699ccd Fix other instances of -Wunused-lambda-capture 2026-10-24 02:09:55 +01:00
baldurk 38af0c99ac Remove another unused lambda capture 2026-10-24 01:48:31 +01:00
baldurk e38dda650c Remove unused lambda capture 2026-10-24 01:01:38 +01:00
baldurk 7bacf7f79b If saving a remote capture on shutdown, wait for transfer before exit 2026-10-23 23:13:16 +01:00
baldurk 64b3775332 Fix recompression of remote captures not working correctly 2026-10-23 23:13:16 +01:00
baldurk 39be707fde Ensure consistent thread usage of ICaptureAccess in the UI
* We could put everything onto the replay thread but that's unnecessary back-
  and-forth pingponging for a local capture.
* This is safe to use on the UI thread if it's local, but if it's remote it uses
  the same connection as the replay controller so must happen on the replay
  thread.
* We add a new helper (not exposed to swig) that handles this check, and for
  python we wrap the returned ICaptureAccess in an invoker that ensures we are
  on one of those threads.
2026-10-23 23:13:16 +01:00
Jake Turner a6bb6c57aa Change EventBrowser Prev/Next buttons to work from the selected event
- Not from the current action
- This makes Prev/Next button behaviour consistent when a marker is selected
- For Next if the action has children go to the first child, otherwise the action's nextAction
- For Prev if the action has children go to the previousAction of the first child, otherwise the action's previousAction
2026-10-23 13:25:12 +01:00
Jake Turner e89335822a ShaderViewer support for arrays of Samplers 2026-10-19 11:46:50 +01:00
Jake Turner 737355196a ShaderViewer support for arrays of cbuffers 2026-10-19 10:42:15 +01:00
Jake Turner a6fde06ea5 Fix ShaderViewer UI display of Samplers
- Samplers were accidentally broken in "Improve support for resource array display in Shader Debugging UI"
2026-10-16 15:49:22 +01:00
Jake Turner fdf0ae8c8b Ignore MSVC Warning 5240
- C5240: '[[nodiscard]]': attribute is ignored in this syntactic position
2026-10-16 07:47:57 +01:00
Wang, Xiong 61a81af880 Release Python callback arguments in the destructor
Keep the argument tuple owned by varfunc for its full per-call lifetime.
ConvertFunc destroys varfunc before ScopedFuncCall, so the tuple is released
exactly once while the GIL is still held, including failed callbacks.
2026-10-09 21:32:37 +09:00
Wang, Xiong c3548cd16a Fix Python callback reference counting and shutdown cleanup
Clear the argument tuple after calling a Python callback so varfunc's
destructor cannot decrement it a second time. This prevents repeated
zero-argument callbacks from losing references to the shared empty tuple.

Skip callback reference cleanup after Python has shut down, since Qt can
destroy pending callback closures during QApplication teardown.

Validation:
- Regression harness using this header and bundled Python 3.6.4: 20,000
  callbacks with balanced references, nonempty arguments, exception paths,
  deferred release, and callback destruction after Py_Finalize.
- Windows x64 Release build: no warnings or errors.
- MI 8 remote replay: 1.rdc -> 2.rdc -> 1.rdc -> 2.rdc; normal exit with
  a pending callback, exit code 0.

Build and device checks used the existing development checkout, which also
contains separate local changes excluded from this commit.
2026-10-09 21:32:37 +09:00
Jake Turner 4288cec631 Do not validate ShaderVariable before/after for ConstantBlock types 2026-10-08 10:58:18 +01:00
Jake Turner f5f8f8f652 Include array index when sorting resources in Vulkan Pipeline View 2026-10-08 10:55:26 +01:00
Jake Turner 4924d00db0 Set system paths in local_pcre build for autoreconf
- Fixes building from Xcode
2026-10-07 06:00:15 +01:00
baldurk 6b0eb1f7f4 Be explicit that 64bit integer textures can't be displayed. Closes #3918 2026-10-06 13:58:34 +01:00
Jake Turner e3c71e6e13 Fix Apple xcode path capitalisation to match disk 2026-10-06 06:32:05 +01:00
Jake Turner 4c07524147 Improve support for resource array display in Shader Debugging UI
- Use Shader feedback to get the accessed resource array index
- Use Shader feedback to show accessed elements in unbounded resource arrays

Before

tex1    [128]
tex1[0] _100[0] Resource Colour Tex
tex1[1] _100[1] Resource Black Tex

inbuf _166[unbounded] [unbounded]

tex2 _208[unbounded] [unbounded]

tex3    [3]
tex3[0] _221[0] Resource Colour Tex

After

tex1    [128]
tex1[4] _100[4] Resource Colour Tex
tex1[19] _100[19] Resource Black Tex

inbuf    unbounded
inbuf[15] _166[15] RW Resource Buffer 171

tex2    unbounded
tex2[381] _208[381] Resource Colour Tex
tex2[386] _208[386] Resource Colour Tex

tex3    [3]
tex3[1] _221[1] Resource Colour Tex
2026-10-02 14:25:14 +01:00
baldurk 5b666aebef Improve autocomplete over rdcarray variables
* Anything obtained via the aliased interfaces will act as if it's a List[], but
  any globals from the repl will be rdcarray typed so we need to handle looking
  up the 'real' type for that.
2026-10-02 14:22:16 +01:00
baldurk e189be893c Unwrap/ignore optional for purposes of autocomplete 2026-10-02 14:22:15 +01:00
baldurk c63d957359 Fix fetching extra buffer data if fixed range is larger than clamp size 2026-09-30 12:29:31 +01:00
baldurk 6b9cec797d Add signal when python extensions are changed
* This avoids repeatedly hitting disk to enumerate current extensions for UI
  updates.
2026-09-17 11:44:07 +01:00
baldurk ac902dc08a Only log once about extensions that require an incompatible version 2026-09-17 11:44:07 +01:00
Jake Turner 298d4ee466 Update the pyrenderdoc module filters to renderdoc_module_python.cxx 2026-09-15 07:31:31 +01:00
baldurk 3e9202699f Handle exception properly if stubs generation fails 2026-09-12 15:40:28 +01:00
baldurk 0628f10b9a Fix docstring/function signature errors 2026-09-12 10:27:55 +01:00
baldurk 8bcf63aced Return current text of combo box properly in MiniQtHelper 2026-09-11 21:37:21 +01:00
baldurk 48b968e9a7 Add a MiniQtHelper to set spacing/margins on layouts 2026-09-11 21:17:19 +01:00
baldurk 3579ecc065 Fix use of TransientPopupArea with no ref window 2026-09-11 21:17:19 +01:00
baldurk 83c53890da Mark accessors/return values that can be None with Optional[]
* This helps with type checkers to know that things can be None or not (both to
  silence previous warnings about "unnecessary" checks that are actually
  necessary, and to ensure those checks aren't omitted by accident)
2026-09-11 15:04:03 +01:00
baldurk ce50614f0e Reduce number of error log prints when an extension fails to load 2026-09-11 15:03:59 +01:00
baldurk 2ada3ed28d Fix order of operations in shutdown
* When calling OnCaptureClosed now this is book-ended so called *while* the
  capture is opened. Do not refresh and repopulate EventBrowser cache.
2026-09-11 15:03:59 +01:00
baldurk b6270982de Only assign global m_DebugPy when initialisation is successful
* Prevents use on other threads e.g. python status check while partially
  initialised.
2026-09-05 15:05:41 +01:00
baldurk ca9bde9a98 Add proper optional argument defaults for optional callbacks 2026-09-01 12:28:09 +01:00
baldurk e4bd23b671 Fix bounds check in internal parser 2026-08-31 12:30:22 +01:00
baldurk 1aac7afdf1 Add helper function for appending text to a textedit 2026-08-31 12:13:26 +01:00
baldurk 0690269cb7 Add shortcuts for using user's preferred fixed font in MiniQtHelper 2026-08-31 11:27:30 +01:00
baldurk da8132b69c Add MiniQtHelper functions for scrolling widgets 2026-08-31 11:26:05 +01:00
baldurk 6b02191629 Try to break potential deadlock between UI and replay threads
* During capture shutdown on Python < 3.13 the replay thread will try to remove
  itself as a debuggable thread which requires being able to run python (holding
  the GIL). If the UI thread is the one triggering the capture shutdown and is
  running a call from a python script it may hold the GIL while waiting for the
  replay thread to close, deadlocking.
* To alleviate this, while the UI thread is about to block on the replay thread
  we try to release the python state if we are holding it so that the replay
  thread can run python code if needed.
* We already do this in a manual wrapper around BlockInvoke.
2026-08-31 11:13:35 +01:00
baldurk 1d4cde2d6e Don't add extensions to output filters multiple times in python shell 2026-08-31 10:30:37 +01:00
baldurk cbeb5804cf Ensure blocking controller invokes onto UI thread if using context 2026-08-28 15:53:47 +01:00
baldurk a1b76c231e Improve the workflow for extensions that fail on import 2026-08-28 15:46:23 +01:00
baldurk f5240a4a47 Add missing function implementations to blocking ReplayController 2026-08-28 15:46:23 +01:00
baldurk 81bec684a3 Expose proper capture closing function to python extensions 2026-08-28 15:46:23 +01:00
baldurk 6237238cf7 Put python version in about dialog 2026-08-28 13:18:26 +01:00
Wehrwolfmann 762ec04267 Add Russian translations to the desktop entry 2026-08-28 02:02:50 +09:00
baldurk 61d9aafb1b Set net manager thread to delete itself on close
* Due to the way Qt works, the owning object acts as if it lives on the thread
  which in this case is running an event loop that tries to delete itself.
2026-08-27 17:29:38 +01:00
baldurk 45b5f1ad1d Remove debug print 2026-08-27 16:34:36 +01:00
baldurk fa5af1bf7c Remove extra ) 2026-08-27 15:29:03 +01:00