Commit Graph

966 Commits

Author SHA1 Message Date
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
Jake Turner 226bf7071b Add ShaderBuiltin::MultiViewIndex
Mapped to:
SPIR-V ViewIndex (which was previously mapped to ShaderBuiltin::ViewportIndex)
GL gl_ViewIndex
2024-02-14 11:10:15 +00:00
baldurk 9f4f0e6aa1 Update copyright years to 2024 2024-02-12 11:04:52 +00:00
baldurk faa0695323 Support property-page customisation on python module projects 2024-01-30 20:31:35 +00:00
baldurk 1e70124bd6 Support setting overridden python path via VS properties page 2024-01-30 20:29:07 +00:00
baldurk 32c946dd14 Search for newer python versions at build time 2024-01-30 16:51:03 +00:00
Jake Turner 1ca2f15fe0 UI: By default hide windows created by direct code calls
Fixes a problem if a window creates a different window whilst loading a layout and the layout does not contain the second window i.e.

Loading a layout which contains "Mesh Viewer" will create "Event Browser" window from code. If the layout does not contain "Event Browser" then the "Event Browser" window would get parented to the main window and displayed incorrectly when the main window is shown.
2024-01-11 14:24:59 +00:00
Jake Turner 6ce881d5da UI and Config support for dec/hex display option for Offsets or Sizes
Used when fields are marked as being an Offset or Size
Include simple latch to trigger a UI refresh when closing the settings dialog.
Currently only connected to if the Offset/Size format option is altered
2023-12-06 17:19:05 +00:00
baldurk 1df7c1ae81 Implement mesh viewer support for task/mesh shaders 2023-11-17 00:47:55 +00:00
baldurk 5ad3e67a2d Implement baseline mesh shader on vulkan
* This supports capture and replay of mesh draws, shader editing with printf
  support, overlays, and pixel shader debugging.
* Not supported yet include the mesh viewer and shader debugging.
2023-11-16 18:20:24 +00:00
baldurk 69dcb42a05 Add enums and API-agnostic handling for new task and mesh shader stages
* The enums are given after compute, to preserve indices for the normal vertex
  pipeline.
* Mesh dispatches are considered a new action type, rather than being bundled
  into the `Drawcall` type. This will allow them to be distinguished by API
  backends as needed. The UI treats them as drawcalls
* We apply this universally even though it's not relevant to D3D11/GL. It means
  a couple of empty array entries but it should not cause any significant
  issues.
* Shader messages will be identified by group and thread as with compute
  shaders. For mesh shaders there is an additional subdivision to identify them
  by task group, since each task group can submit a grid of mesh groups.
2023-11-16 18:20:23 +00:00
baldurk 4a1d1896b7 Try to avoid being forced onto unsupported wayland path. Refs #3124 2023-11-13 11:45:39 +00:00
Er2 dcbbcee6a8 Add some fixes. 2023-11-06 14:42:45 +00:00
baldurk 9d39b8e1a8 Reformat code for clang-format 15 2023-09-05 11:02:08 +01:00
baldurk e7430226e9 Match SPIR-V version as much as possible when rebuilding shaders 2023-08-22 13:41:39 +01:00
baldurk 6e0ea69011 Account for arrays of pointers when calculating buffer offsets 2023-07-25 17:47:09 +01:00
jake.turner 958ab08018 Add missing ")" R11G11B10 GetBufferFormatString()
"[[packed(r11g11b10]] float3" -> "[[packed(r11g11b10)]] float3"

There was a missing ")"
2023-07-12 18:00:52 +01:00
baldurk c328c3fdf7 Fix raw html leaking in an error message 2023-06-23 18:58:26 +01:00