Commit Graph

782 Commits

Author SHA1 Message Date
baldurk 715caed7a0 Bump version to 1.16 2021-07-28 17:14:09 +01:00
baldurk 34a65857b1 Use custom sort on shader messages for location/workgroup
* The default sorting is purely text based so 1,0,0 is followed by 10,0,0 not
  2,0,0. We customise the sort so it does the right thing per-column.
2021-07-23 12:01:41 +01:00
baldurk 46266a9dd6 Implement bindless feedback for DXBC shaders on D3D12 with patching 2021-07-15 16:41:23 +01:00
baldurk 95ea12b0e5 Fix incorrect D3D12 pipeline state python type references
* Python prefixes D3D12 onto types where in C++ it's in the D3D12Pipe namespace
2021-07-15 16:41:23 +01:00
baldurk ee7d88fb89 Allow constructing rdcfixedarray with a fixed size array 2021-07-13 17:04:21 +01:00
baldurk d0accc409b Rename 'name' member of ActionDescription to 'customName'
* This is a deliberate break of compatibility since the field is now often
  empty, for non-markers. This means code will get a more explicit error when
  the name is being referenced, so it can be updated to fetch the name it needs
  as needed.
2021-07-01 15:15:05 +01:00
baldurk 7149302680 Rename 'draw' or 'drawcall' to action
* There's not a good accepted terminology for this kind of event, and for
  historical reasons 'drawcall' has been the accepted term, even though
  that can be quite confusing when a dispatch or a copy is a 'drawcall'.
* This is particularly highlighted by the event browser filters where
  $draw() includes draws and dispatches, but $dispatch() only includes
  dispatches, it's hard to intuitively understand why $draw() matches all
  of these calls.
* As a result we've defined the term 'action' to cover these types of
  events in the same way that we defined 'event' in the first place to
  mean a single atomic API call.
2021-07-01 15:15:05 +01:00
baldurk ec5f570fea Add 'important' flag on structured data 2021-07-01 15:15:01 +01:00
baldurk 562905611d Update fake markers to work with new event browser model
* Fake markers now need a real event ID. We don't want to have to remap all
  events in a capture between UI and replay driver, so instead we assign non-
  contiguous events above the normal range and expect the UI to handle it.
2021-07-01 15:15:01 +01:00
baldurk 4483c982c9 Remove "API Events" drawcalls
* All drawcalls now contain events, even markers. We no longer add virtual "API
  Events", it gets added to the marker pop or command buffer close.
* Note that we will still default filter out marker pops, meaning this is a
  slight behaviour change as API events will no longer be easily selectable.
  However we're adding the ability to show all events which will be preferred.
2021-07-01 15:15:00 +01:00
baldurk 7793f20d1a Switch event browser to use a tree view with an item model 2021-07-01 15:15:00 +01:00
baldurk b8d7cd17ec When serialising an SDObject with lazy children, populate on-the-fly
* If an object has enoug children, the lazy generator can take multiple seconds
  on e.g. android to fully populate. This is a long enough stall to cause the
  host side to timeout while waiting for the next piece of data. Instead of
  populating everything up front before starting serialising, we now populate as
  we go for each child, so that there's a steadier stream of data and avoid any
  timeouts.
2021-06-25 15:51:43 +01:00
baldurk 6212e9876e Fix documentation being missing on ResourceFormat.type 2021-06-24 16:58:34 +01:00
baldurk 16937f160e Fix a crash when push constants are provided insufficient data 2021-06-17 14:30:23 +01:00
baldurk 47d4f4efe0 Tweak some of the status message strings to be clearer 2021-06-10 10:33:51 +01:00
baldurk 51699a57b7 Fix python checks not properly running on enums, and fix new errors
* We whitelist a couple of cases where the naming scheme should be broken.
2021-06-08 16:34:52 +01:00
baldurk 0f686ee71c Bump version to 1.15 2021-05-28 17:14:41 +01:00
baldurk d8d6557feb Add support for file includes from custom shaders. Closes #2275 2021-05-17 13:47:58 +01:00
baldurk 4eb2621bca Fetch shader messages from DebugPrintf 2021-05-11 16:15:31 +01:00
baldurk 2ea6d83b60 Handle new DXBC system-value semantics 2021-04-29 13:05:10 +01:00
baldurk a4cba2af13 When grabbing D3D12Core also grab D3D12SDKLayers for validation
* The D3D12SDKLayers needs to match the D3D12Core, so we save both when possible
  (the SDKLayers dll might not be loaded during capture but it should be next to
  the D3D12Core. On replay if we have one we put it next to the D3D12Core we're
  using for replay, and if not we forcibly disable debug otherwise we may crash.
2021-04-28 12:21:57 +01:00
baldurk 2b74938ccd When present, embed D3D12Core.dll into the capture
* This way we know we have the right matching version for use on replay.
2021-04-22 15:52:15 +01:00
baldurk 96afe77914 Disable hover pipeline thumbnails on remote replay
* Most remote replay links are slow enough that the lag introduced by
  synchronously fetching and displaying these thumbnails would be annoying for
  simple mouse-over scenarios.
2021-04-22 15:52:14 +01:00
baldurk eac94b74f6 Allow cbuffer previewer to apply custom format to non-buffer-backed CBs
* This in particular means push constants and specialization constants on vulkan
  but also applies to root-value cbuffers on D3D12.
* GL bare uniforms are not feasible to expose in this way.
2021-04-14 18:59:12 +01:00
baldurk d1ff368098 Bump version to 1.14 2021-03-29 17:05:44 +01:00
jeromenxp 0a3a236540 Fix compilation errors on some compilers 2021-02-24 22:44:33 +00:00
baldurk d6e88ae4fa Remove redundant callstack member in APIEvent
* We already link to the chunk index and the chunk metadata contains the
  callstack, there's no need for a duplicate copy when there may be many
  APIEvents in a capture
2021-02-24 13:52:07 +00:00
baldurk 30dd13feb8 Pull index byte width and topology out of drawcall state
* These are treated as state on most APIs, only GL treats it as a drawcall
  parameter.
2021-02-24 13:52:07 +00:00
baldurk 11268b358a Remap block-compressed 3D textures to 2D arrays on GL. Closes #2186 2021-02-22 12:38:43 +00:00
baldurk 9290ed926b Display VRS state in D3D12 pipeline state viewer 2021-02-10 14:20:46 +00:00
baldurk 1481f80d35 Bump version to 1.13 2021-01-27 19:23:00 +00:00
baldurk ea51a816ed Give ResourceId.Null a proper return type 2021-01-27 16:05:03 +00:00
baldurk 026da176bb Update copyright years to 2021 2021-01-13 13:56:10 +00:00
Dylan Barrie 5eec88fdc7 Fix extra read-only resources displayed in D3D12 Texture Viewer 2021-01-07 21:21:34 +00:00
baldurk 0e5f173b04 Hide independent blend toggle in common pipe state 2020-12-18 14:36:23 +00:00
baldurk 3aaccc4fda Use rdcfixedarray in parameters for functions instead of C arrays
* This maps better to tuples in python
2020-12-15 22:52:38 +00:00
baldurk 90ced90a89 Add common pipeline state helper to grab stencil face states 2020-12-15 22:52:37 +00:00
baldurk 7ff7e0a71d Replace fixed C arrays with wrapper class in public interface
* These map more naturally to python tuples and are easier to wrap in and out.
* We also tidy up the FloatVecVal etc and standardise the members of
  ShaderValue.
2020-12-09 18:16:08 +00:00
baldurk 580f96c8a1 Rename ShaderVariableType/Descriptor to ShaderConstant
* These structs are no longer used with ShaderVariable so the name is misleading
  at best.
2020-12-09 15:18:27 +00:00
baldurk 659fdaa235 Check that all complex struct members that have :type: in docstrings
* Ideally we'd document every member unconditionally for best autocompletion,
  but that's a lot of modification so for now we stick to just making sure that
  any members that are struct types (or lists/tuples) have the :type:
  declaration so that we can autocomplete inside them.
2020-12-09 15:18:27 +00:00
baldurk 6b8ce92d88 Clean up docstrings in python interfaces to be strictly typed/formatted
* Also added a script that can run as part of CI to verify that the docstring
  matches, by generating a regex from the docstring documented parameter types
  and return type and making sure we find a match within the C headers. This
  ensures all parameters are documented with the right types, no extra
  parameters are documented, and the return type is correct.
* The script also checks proper scoping so that if qrenderdoc docstrings
  mention a renderdoc type, they need to scope it properly.
2020-12-07 17:44:51 +00:00
baldurk e5f4ca7bb8 Remove use of const char * in public API and OS specific where possible
* This prevents unnecessary conversions back and forth between rdcstr and const
  char * when going through interfaces. In the OS specific layer this is rarely
  an issue because most of the implementations don't convert to rdcstr, but it
  is convenient to be able to pass in an rdcstr directly. The few cases where
  there's an unecessary construction of an rdcstr is acceptable.
* A couple of places in the public API need to return a string from a global
  function, so can't return an rdcstr due to C ABI, so they still return a const
  char *.
* Similarly const char * is kept for logging, to avoid a dependency on rdcstr
  and because that's one place where unnecessary conversions/constructions may
  be impactful.
2020-12-07 17:44:50 +00:00
baldurk df6fec13f9 Remove use of automodule in docs
* One automodule in a file for our modules is way too much, so we split it into
  files. Unfortunately this means that only one file can have those classes and
  functions be linkable from elsewhere.
* Instead we bite the bullet and manually curate the items into pages, and at
  the same time subdivide the 'enums and data' page more which is a general
  readability and usability win as well.
* We also add some previously not-included functions, and add a doc-build time
  check to ensure that functions and classes aren't omitted from the
  documentation in future
2020-12-07 17:44:50 +00:00
baldurk 6f7e8bb396 Add python interface consistency check that we don't use non-class enums
* These enums are generally not preferred anyway, but they also can't have
  docstrings so can't be checked for *missing* docstrings.
2020-12-05 09:57:40 +00:00
baldurk ced7fc70cd Bump version to 1.12 2020-11-27 17:32:26 +00:00
baldurk 883000009d Ensure ResourceId declares all operators
* This improves things in the MSVS debugger which otherwise sometimes complains
  of no suitable copy constructor for ResourceId
2020-11-20 17:02:33 +00:00
baldurk d0bf0f6eab Add Superluminal PerformanceAPI annotation support 2020-11-19 14:47:10 +00:00
baldurk dc957b4c5c Fix typo and clarify AlphaMapping use. Closes #2090 2020-11-12 10:58:32 +00:00
baldurk b21f9da85a Add helpers for dispatching in bit-width-agnostic ways 2020-11-09 12:25:21 +00:00
baldurk 3d46e105a3 Compile fix on some compilers 2020-10-28 14:14:42 +00:00