Commit Graph

1033 Commits

Author SHA1 Message Date
baldurk 73b52dafb8 Resolve pending bitfield packing before applying specified field offsets 2025-01-07 13:19:28 +00:00
baldurk 55d939cdd8 Respect bitfield packing when generating format string for struct 2025-01-07 13:19:28 +00:00
baldurk 6261cb42d3 Fix missing indent for declared buffer structures 2025-01-07 13:19:28 +00:00
baldurk 7d6ecd1b3d On main UI interface classes add a back-link at where they are retrieved
* E.g. this documents on the ExtensionManager that it's retrieved from
  CaptureContext.Extensions()
2024-12-13 16:48:16 +00:00
baldurk e189c0efd0 Manually link to callback types in docstrings
* The auto-type in parameters does not get linked, but we can manually link it
  in the docstring text.
2024-12-13 16:48:16 +00:00
baldurk d37b0ee00b Fix issue with iterating actions via previous/next in python
* We keep parent references when returning child objects via reference/python
  object wrappers rather than copying. But when iterating a linked list like the
  actions this can produce an incredibly long parent chain and then on
  destruction we can stack overflow if the chain is long enough.
2024-12-03 15:01:58 +00:00
baldurk fa03d19088 Treat an AsyncInvoke with empty tag like no tag
* Otherwise such an invoke could delete untagged events out of the queue which
  is definitely not what we want. Where is my draw? was doing this and it caused
  internal untagged events which must not be dropped to be removed.
2024-11-24 00:58:50 +00:00
baldurk ec261a2f85 Use API entry point not source entry point when decompiling source 2024-11-05 10:12:16 +00:00
baldurk ec7ecf6896 Fix buffer declaration not properly declaring structs 2024-11-05 10:12:16 +00:00
baldurk b4403b2d8d Test different whitespacing around pointers 2024-10-31 13:04:25 +00:00
baldurk 89ee55bd0c Fix matching variable-less buffer formats
* It's convenient and we sometimes automatically create formats that are just
  'xint' so make sure they parse correctly.
2024-10-31 12:57:12 +00:00
baldurk f4d579ffaa Allow specifying tighter alignment than natural for odd buffer cases 2024-10-30 10:33:40 +00:00
baldurk c2912fb259 32-bit compile fixes 2024-10-19 10:30:28 +01:00
baldurk 6408799b5d Allow specifying scalar pointers in buffer formatter 2024-10-19 01:21:48 +01:00
baldurk ac1a680b47 Redeclare bitfields in structs when declaring types 2024-10-19 01:21:47 +01:00
baldurk c6c5702d74 Fix calculation of offsets with bitfields when aligning for pointers 2024-10-19 01:21:47 +01:00
baldurk f0aecfbfa3 Add a log message when vkconfig is detected and warned about 2024-10-19 01:21:47 +01:00
baldurk ce6b999995 Fix typo in warning message 2024-09-23 14:04:46 +01:00
baldurk 0cea7aae41 Add warning to users when vkconfig is detected
* This causes quite a few crashes on startup during Vulkan initialisation.
2024-09-20 13:30:32 +01:00
Cam Mannett de07e66728 Use GLSL 460 for built-in spirv-cross -> GLSL calls
spirv-cross defaults to 450 but will not parse shaders containing the RayQuery capability unless the version is set to 460.

This change modifies the built-in GLSL cross tool to set `--version 460`.  This change does not affect user-specified spirv-cross configurations.
2024-09-10 12:16:08 +01:00
baldurk d5cc1cf626 Import threading on python context startup on main thread for debuggers 2024-07-15 16:22:38 +01:00
Aliya Pazylbekova 9ebd796cd8 Remove GGP support 2024-07-08 14:19:42 +01:00
baldurk 2b40a17f8a Add packing rule for bitfield packing/straddling a la #pragma pack(1) 2024-06-27 13:54:41 +01:00
baldurk 78d267a1d4 Don't continually expand a constant buffer view if it's re-opened solo 2024-06-25 17:25:16 +01:00
Jovan Ristic 2ee03b3691 Correct usage of shader names.
* GL/Vulkan and D3D11/D3D12 were using reversed terminology.
2024-06-20 11:34:53 +01:00
Louis de Carufel 0e64cc5368 Added shader viewer bookmarks and find shortcuts. 2024-05-24 10:35:06 +01:00
baldurk 7e7bbf58a8 Reflect multiple entry points & ray properties from DXIL shaders 2024-04-26 13:55:19 +01:00
baldurk 89bea3ea8b Add new shader enums for RT shader stages 2024-04-26 13:55:18 +01:00
baldurk 334611fa88 Fix some docstring errors 2024-04-10 21:49:18 +01:00
baldurk 1194531fc5 Add a descriptor viewer for showing all of a heap, root sig, or set 2024-04-10 18:58:53 +01:00
baldurk 153cd2aa16 Expose queries for descriptor stores and D3D12 root signature range
* This will allow a UI viewer or consumer of the replay API to more easily query
  'all' descriptors for a given store.
2024-04-10 18:58:53 +01:00
baldurk 0284d551ea Switch from specific Attachment structs to using Descriptor for outputs 2024-04-10 18:58:52 +01:00
baldurk 205ed0e6fa Remove old shader bindpoint mapping handling entirely 2024-04-10 18:58:52 +01:00
baldurk 2bbe1a8cd9 Update shader viewer and debugging with new reporting for shader binds
* This shifts from reporting from the old style bindset/bind to the new system
  of only referencing by shader interface and index (independent of binding
  model).
* The vulkan shader debugger re-uses the replay interface to cache descriptor
  access and descriptor contents in a fashion friendly to interface-index
  lookup.
2024-04-10 18:58:51 +01:00
baldurk 2a41eb54dd Add new common pipeline state accessors for descriptor-based accesses
* These are temporarily given separate names, to allow them to exist in parallel
  with the existing helpers, but in future these will be renamed when the older
  helpers are removed.
2024-04-10 18:58:51 +01:00
baldurk d88aad8fc2 Add a query to determine logical identifiers for descriptors
* This is a consideration for any cases where binding numbers are relevant -
  primarily D3D11 and GL - where the offset into an arbitrary (and possibly
  fake) descriptor storage is not helpful but knowing the register binding
  definitely is.
* If someone wants to look at the raw descriptor contents without respect to a
  particular shader access they can use this query to determine a more useful
  'name' for any given descriptor. On D3D11 and GL this gives the register
  number, on Vulkan it gives the binding number (and array element). On D3D12 it
  just repeats the offset effectively.
2024-04-10 18:58:50 +01:00
baldurk fa22c7c7fc Report vulkan dynamic offsets separately for manual application
* Baking these into descriptors when we get arbitrary 'GetDescriptor' queries
  independent of the bound descriptor sets is not possible - a descriptor set
  could be in theory bound twice to two places with different dynamic offsets.
* Instead we report these as part of the pipeline states and the abstraction &
  replay API consumer will need to manually apply them to get the true buffer
  offset.
* The offsets are indexed by descriptor storage byte offset for easier
  processing (the dynamic offset struct can be turned into a pair and used to
  initialise a dict)
2024-04-10 16:12:32 +01:00
baldurk 58c3dc52a7 Add reporting of GL texture completeness and conflicts for descriptors 2024-04-10 15:51:10 +01:00
baldurk 227842a295 Add a structure and query for reporting descriptor accesses 2024-04-10 15:33:36 +01:00
baldurk b94e6ff90c Add a stubbed out query for pulling descriptor contents out of a store 2024-04-10 15:01:26 +01:00
baldurk cc52e31657 Add overload to search array with a different type without casting
* Provided a compatible operator== overload exists, this can still be used to
  search the array.
2024-04-10 14:47:52 +01:00
baldurk 1fb29ce97d Explicitly build with C++14 everywhere
* This doesn't change our minimum specs as we already required GCC 5, clang 3.4,
  which fully support C++14. Interestingly only VS2015 is the odd one out but we
  don't rely on any features from C++14 that it doesn't support.
2024-04-10 14:38:05 +01:00
kb1000 bb7ec408cb Use pythoncapi-compat to simplify Python C API backwards compatibility 2024-04-08 10:57:28 +01:00
kb1000 d0a24b31cd Fix some deprecated and internal Python C API usages 2024-04-08 10:57:28 +01:00
baldurk aaf20445b4 Report error in the buffer formatter if a recursive struct is declared 2024-04-01 14:56:14 +01:00
Louis de Carufel 4c4b2a32ae New bookmark context menu to rename and delete.
Missing forward declaration.
Fixed Linux compilation.
Added a context menu to Bookmark buttons for renaming and deleting.
2024-03-27 12:23:21 +00:00
Jake Turner e249981d8a Replace {blah} args directly when building tool command line
To support this type of usage:
"{hlsl_stage2}_6_0"
"-fspv-target-env={vulkan_ver}"
2024-03-14 10:50:31 +00:00
Jake Turner 3cb8998841 Vulkan DebugPixel support for multiview debugging
Output "ViewIndex" into the pixel shader hits array
Select the pixel shader input which matches the viewIndex to the passed in view
Ignore the view parameter if set to ~0U (rd.ReplayController.NoPreference)
Ignore the view parameter if any subpass has empty multiviews
2024-03-13 07:58:48 +00:00
baldurk 6855013033 Fix compilation 2024-03-01 12:27:30 +00:00
baldurk 3e2340fe16 Add identified support for slang (the language and the tool) 2024-03-01 12:11:37 +00:00