Commit Graph
17164 Commits
Author SHA1 Message Date
baldurk 09c036bd36 Embed and initialise reflection script in python context 2026-08-13 17:46:42 +01:00
baldurk be3d34fb93 Add support for aliasing modules when processing reflection
* This is a little specific to us, but when we see references to a `renderdoc`
  module etc we want to be able to look up the generated stubs instead as they
  have better type hints for processing.
2026-08-13 17:46:42 +01:00
baldurk 64645aa9d6 Add autocomplete helpers for members and function calls
* This requires a small quasi-hack for tracking user defined function calls
  while looking up types.
2026-08-13 17:46:42 +01:00
baldurk e0ca14d55a Add a helper to figure out which function call and argument we're in 2026-08-13 17:46:42 +01:00
baldurk 575d8ed853 Add a function to figure out the trailing subexpression in an expr
* This is what will be used for autocompletion at a cursor point
2026-08-13 17:46:42 +01:00
baldurk 1b5ba59336 Return the correct type for list comprehension targets 2026-08-13 17:46:42 +01:00
baldurk d7c3371777 Add a helper function that replaces contents of any strings with "xxx" 2026-08-13 17:46:42 +01:00
baldurk 6a2fca967c Add a helper to get the friendly name for a type 2026-08-13 17:46:42 +01:00
baldurk 6b85e503fe Add testing for type checking 2026-08-13 17:46:42 +01:00
baldurk e7845446db Add a query to pull the type of a given location 2026-08-13 17:46:41 +01:00
baldurk f090436670 Determine best-effort type information for AST nodes
* This is not perfect but does a good enough job for most common cases.
2026-08-13 17:46:41 +01:00
baldurk e57d9db9c4 Process scope declarations and identifiers in AST tree
* We don't generate type information yet, _get_type is stubbed out.
2026-08-13 17:46:41 +01:00
baldurk b2b46e7e7c Add structs for tracking identifiers and scopes 2026-08-13 17:46:41 +01:00
baldurk 08369056d3 Add python script for autocompletion parsing
* This tries to ast parse source that may contain an error.
* We don't try to fully error recover from unlimited problems, but a single
  statement that is being edited can be tolerated by commenting out lines around
  it
2026-08-13 17:46:41 +01:00
baldurk 23ca2cf053 Show syntax errors when editing in python script editor 2026-08-13 17:46:41 +01:00
baldurk a70ee3a2eb Watch python extensions for changes on disk and update status bar
* We show a button to quickly reload changed extensions.
2026-08-13 17:46:41 +01:00
baldurk 22444aa44d Disable python debugging buttons if it's not supported 2026-08-13 17:46:41 +01:00
baldurk c0b47ee48c Don't enable output/debug buttons for unloaded extensions 2026-08-13 17:46:41 +01:00
baldurk a995ded466 Add quick-helper to view extension output from manager dialog 2026-08-13 17:46:41 +01:00
baldurk 02ead51303 Add a status entry showing loaded python extensions & debugger status 2026-08-13 17:46:40 +01:00
baldurk 3c6dfd23b4 Add a drop-down for the script output panel to switch context
* By default we still display all messages, but this allows users to switch to
  just seeing the output from one extension if desired.
2026-08-13 17:46:40 +01:00
baldurk 768d8fa615 Add a static context for connecting Qt signals for python extensions 2026-08-13 17:46:40 +01:00
baldurk b1f0b9d310 Flush output before an exception
* We buffer output to avoid spamming huge numbers of signals especially when
  single lines can be many write calls. This means if an exception is processed
  immediately after a print the output from the print may come after the
  extension.
2026-08-13 17:46:40 +01:00
baldurk 229c4c8746 Avoid polluting globals with completion objects 2026-08-13 17:46:40 +01:00
baldurk 836a5da7fa Re-organise python shell to be dockable and dock REPL at bottom 2026-08-13 17:46:40 +01:00
baldurk 60b989f2b7 Give extensions their own OutputRedirector object to identify them 2026-08-13 17:46:40 +01:00
baldurk 3ff393c91f Add option to launch/wait for debugger on python contexts 2026-08-13 17:46:40 +01:00
baldurk 3dfd829331 Initialise debugpy on a thread to reduce startup time 2026-08-13 17:46:40 +01:00
baldurk d71827d6a1 Load debugpy when possible to allow python debugging in-program 2026-08-13 17:46:39 +01:00
baldurk 53e5e718b1 Copy whichever libffi version the python installation needs 2026-08-13 17:46:39 +01:00
baldurk 9fc3c3cdcd Use sys.settrace instead of PyEval_SetTrace for better compatibility 2026-08-13 17:46:39 +01:00
baldurk c15a5c2c66 Add os.add_dll_directory cruft to verify-docstrings 2026-08-13 17:46:39 +01:00
baldurk e5f395497c Allow custom python folder to contain platform-subfolders
* This is not the default python layout but is convenient for sharing the
  standard library .zip and include folder with separate binary folders per-
  platform. The layout mirrors what we include in the repository.
2026-08-13 17:46:39 +01:00
baldurk 7e11dc9cc5 Allow loading a custom PySide2 with a customised python location
* This is expected to be in a pyside\ subfolder, with an organisation matching
  our default setup.
* We also now copy the shiboken2 python module (if it exists) as required by new
  pyside2 versions.
2026-08-13 17:46:39 +01:00
baldurk 388f914b3a Add a script for building a pythonXY.zip
* This is the only thing missing from an installed version of python to be able
  to build against it, so it's convenient to rebuild it instead of fetching it
  separately from the embeddable distribution
2026-08-13 17:46:39 +01:00
baldurk 965d788fe5 Add a settings window entry to add extra python stubs paths 2026-08-13 17:46:39 +01:00
baldurk 26a84363b8 Embed stubsgen.py and automatically generate stubs into user folder
* We create both a stubs folder for each specific version, and a 'latest' that
  is updated by newer RD versions.
* For development, the stubs will be regenerated any time the git commit hash
  changes for development builds.
2026-08-13 17:46:39 +01:00
baldurk 9223971536 Remove old stubs generation code and replace with our own script
* This is smaller and easier to maintain, and adds functionality like resolving
  circular dependencies to be able to import the stubs as-is on python 3.6+
2026-08-13 17:46:38 +01:00
baldurk a869e5c4f8 Add natvis for python 3.8 2026-08-13 17:46:38 +01:00
baldurk 8d6d307998 Don't apply sphinx paramlinks to Callable[] lines 2026-08-13 17:46:38 +01:00
baldurk a23ee5f526 Change documentation for callbacks to use Callable[] 2026-08-13 17:46:38 +01:00
baldurk 7567cc11c9 Fix GC collection of python contexts 2026-08-13 17:46:38 +01:00
baldurk 9bb79a0594 Demote error to warning on unbalanced markers
* Some markers from the application may be unbalanced, or it might be unbalanced
  if we began the capture with some markers already open (e.g. due to a push/pop
  around present).
2026-08-13 17:46:38 +01:00
Danylo Piliaiev 6c7c9e16b8 Check both resolveImageView and resolveMode before referencing the view
When MRTSS is used, resolveImageView must be NULL since resolve happens
into the same image:

> VUID-VkRenderingAttachmentInfo-imageView-06863
> If imageView is not VK_NULL_HANDLE, resolveMode is not VK_RESOLVE_MODE_NONE,
> the pNext chain of VkRenderingInfo includes a VkMultisampledRenderToSingleSampledInfoEXT
> structure with the multisampledRenderToSingleSampledEnable field equal to
> VK_TRUE, and imageView has a sample count of VK_SAMPLE_COUNT_1_BIT,
> resolveImageView must be VK_NULL_HANDLE

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
2026-08-13 21:48:54 +09:00
baldurk 717d23e770 Match SPIR-V debugger structs change in GL shader debugging 2026-08-11 16:50:13 +01:00
Jake Turner e807742444 Tweak RenderPass setup/usage in VK_Resource_Usage
Use the mainWindow RenderPass everywhere
2026-08-10 07:25:32 +01:00
Jake Turner 0219134aa8 Add test to D3D12_Parameter_Zoo for DXIL CST_CODE_CE_GEP (12)
DXC emits CST_CODE_CE_GEP for constants which are not in bounds
RenderDoc treats it the same as CST_CODE_CE_INBOUNDS_GEP (20)
2026-08-10 07:22:36 +01:00
baldurk 7db2264afa Set specialisation info if EXT shader object is used with task shaders 2026-08-07 16:26:34 +01:00
baldurk aa78f90d34 Sync before any map updates if we have already submitted GPU work 2026-08-07 16:26:34 +01:00
baldurk ef73eb2205 Allow matching debug variables directly before processing path
* Debug info could theoretically contain names which include path like
  characters including '.' or '[]' even though these wouldn't be valid
  identifier names. We assume this will not happen with names that are part of
  structures/arrays themselves but instead only happen if there's a single
  matching path.
2026-08-07 16:26:34 +01:00