Commit Graph

238 Commits

Author SHA1 Message Date
baldurk d66133d610 Fix handling of buffer length & offset in buffer viewer
* Previously the length was always being treated as buffer-relative instead of
  offset-relative.
2021-02-15 12:56:21 +00:00
baldurk 907ce48f7a Display message when no vertices or instances are present in drawcall 2021-02-15 12:56:21 +00:00
baldurk 0e86f0e320 Fix overflow setting rowOffset when numRows is 0 2021-02-15 12:56:21 +00:00
baldurk b31d7d94e8 An instanced draw with no instances has no vertices even if numIndices>0
* If we show this with vertex input data in the mesh viewer that's quite
  confusing when the draw is degenerate.
2021-02-15 12:56:21 +00:00
baldurk 1fe92989b7 Fix aspect ratio calculation for negative viewport height 2021-01-19 17:10:09 +00:00
baldurk 026da176bb Update copyright years to 2021 2021-01-13 13:56:10 +00:00
baldurk e970ee0e33 Fix issue with clamped length with byte offset in buffer viewer 2021-01-06 16:58:43 +00:00
baldurk eabc6990b0 Don't try to always read 4 components of data from output. Closes #2119 2020-12-17 22:23:34 +00:00
baldurk f32008e95f Add access for changing the 3D preview stage in mesh viewer 2020-12-15 22:52:37 +00:00
baldurk 8107a7a795 Account for array stride when unrolling AoS in buffer viewer 2020-12-09 18:16:08 +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 9610919c16 Fix copy-paste of rich resource text
* We need to cache to the QString text on demand, which requires a context
  potentially sooner than paint/etc time.
2020-12-02 17:44:46 +00:00
baldurk a34d7b1965 Don't bind Qt signals multiple times for custom paint widgets 2020-11-24 16:29:36 +00:00
baldurk 58e16414e0 Add a number of control functions to the Qt python interface 2020-11-20 17:02:33 +00:00
baldurk 3f5a911483 Refactor CustomPaintWidget to handle widget recreation internally
* This allows us to expose to to python as a easy-to-use "replay output ready"
  widget.
2020-11-19 14:47:11 +00:00
baldurk 6320923966 When VB stride is 0 read enough data for any single attribute 2020-11-12 17:04:43 +00:00
baldurk 03b7229bad Support choosing multiview viewport in vertex debugging on vulkan 2020-10-28 13:34:08 +00:00
baldurk e1d025e4ef Don't fetch buffer data if it's not yet initialised 2020-10-02 12:53:38 +01:00
baldurk da0c836aef Cache bufferviewer column width calculation 2020-09-03 17:26:48 +01:00
baldurk bc3f23e867 Add missing bounds check for 32-bit indices 2020-08-13 11:36:07 +01:00
baldurk 0d026a43d6 Remove CompType::Double
* This is a leftover artifact from before we had general extended type support
  and double was the only non-32 bit type we handled. Now we support most type
  formats so doubles are just CompType::Float with 8 byte width
2020-07-12 10:52:10 +01:00
baldurk c10089c94b Invert y display for vulkan with negative viewport height. Closes #1971 2020-07-06 11:20:23 +01:00
baldurk d2557d3966 Fix linux compilation 2020-06-30 21:53:32 +01:00
baldurk e5e9a9c94b Use QDoubleSpinBox for partial 64-bit int support. Closes #1952
* Actually creating a 64-bit spinbox is not feasible without constructing it
  almost from scratch due to how much QAbstractSpinBox depends on private
  internals that can't be overridden. Instead use a QDoubleSpinBox with no
  decimals since we don't need the full 64-bit range, and the mantissa of a
  double is enough.
2020-06-30 12:34:52 +01:00
baldurk dfc82b3bd2 Prevent debugging graphics stages if no drawcall is selected 2020-06-29 18:34:07 +01:00
baldurk d4ddb565d0 Add a per-shader debuggable flag to allow finer grained status
* E.g. on D3D12 we can debug DXBC shaders but not DXIL shaders. On vulkan this
  will allow us to have the UI work better when encountering shaders with
  unsupported capabilities or extensions.
2020-06-18 17:22:45 +01:00
baldurk 9805c9d662 Fix calculation of index buffer offset. Closes #1948 2020-06-15 15:44:09 +01:00
baldurk a0a373a8e1 Fix handling of buffer truncation and zero-sized buffers 2020-05-29 17:26:29 +01:00
baldurk b0cd8584fb Fix placement & handling of final next page button in buffer viewer 2020-05-27 22:38:23 +01:00
baldurk 0736a977a2 Handle nested struct offsets properly in raw buffer viewer 2020-05-26 13:53:25 +01:00
baldurk 571b286eb3 Fix bytesize calculation of vertex output attributes 2020-05-20 11:52:24 +01:00
baldurk 3bd09bd4a9 Fix applying offset wrongly on unclamped length 2020-05-11 18:04:22 +01:00
baldurk 90c10ea1fc Handle boolean inputs in vulkan shader parameters
* We change to use VarType instead of CompType for signature parameters which
  allows us to represent different types of variables beyond just
  unsigned/signed integer and float.
2020-05-07 22:46:41 +01:00
baldurk 7c265efe2e Configure ShaderConstant descriptor for vertex inputs 2020-04-28 18:15:33 +01:00
baldurk 133b8a41b9 Fix handling of column-major matrices in buffer viewer. Closes #1848 2020-04-27 13:46:58 +01:00
baldurk a7b4fe9167 Don't clamp length against buffer size after applying offset
* If we have a given view length that fits in the buffer, we shouldn't apply the
  offset before clamping. Instead we apply the offset on the buffer length if
  that's what we're using as our size.
2020-04-27 13:03:47 +01:00
baldurk 068f4998c7 Fix buffer viewer export to handle pagination. Closes #1837 2020-04-21 17:09:32 +01:00
baldurk a3dc3dde2b Use mesh property format when displaying secondary data in buffer view 2020-04-21 17:09:32 +01:00
baldurk 44f46b6ae9 Clamp buffer offset for mesh view input
* If the calculated offset is larger than the buffer size we should be sure to
  clamp it.
2020-04-15 20:33:57 +01:00
baldurk cc64061172 Fix issues with paging in raw buffer viewer 2020-03-16 20:01:47 +00:00
baldurk 4f39279578 When opening a texture in raw buffer viewer, scroll to selected point 2020-03-13 18:00:34 +00:00
baldurk 208a023f12 Fix buffer viewer pagination, allow row offset updates to change page 2020-03-11 18:00:53 +00:00
baldurk ce58f991f0 Apple compile fix 2020-02-25 19:06:58 +00:00
baldurk 4703012a87 Add pagination for very large range buffer viewers 2020-02-25 18:19:52 +00:00
baldurk c23825292d Remove redundant instOffset/vertOffset parameters from DebugVertex() 2020-02-20 19:07:29 +00:00
baldurk 1e8c24fa56 Remove debug print 2020-02-19 11:33:51 +00:00
baldurk 9c091cf791 Fix memory leak in error case 2020-02-13 11:01:44 +00:00
Steve Karolewics dd69f8642a Add APIProperties for debugging and pixel history
Checks to enable debugging and pixel history are gated by the
APIProperties instead of whether the capture is D3D11. Shader
debugging for D3D12 is gated on a config option, which can be enabled
by adding "d3d12ShaderDebugging": "true" to the ConfigSettings
2020-02-12 21:58:33 +00:00
baldurk 661ee35f30 Refactor ShaderDebugTrace to not return a single list of complete states
* The ShaderDebugTrace now only sets up the initial state of an opaque
  ShaderDebugger handle.
* This handle can then be passed to a new function - ContinueDebug - to
  iteratively return N more states. The number of states is implementation
  defined and may be a fixed number or it may run for a fixed time.
* The states themselves no longer contain a complete snapshot of all variables,
  but instead only the changed variables for that iteration. The changes are
  stored as before and after value to make it easier to step forwards and
  backwards (only the ShaderDebugState is needed to move forward or backwards,
  you don't have to search back for the last set value of a variable to 'undo' a
  change).
2020-02-06 17:58:42 +00:00
baldurk 08c0b13aaa Add further checks for windows being deleted during long async callbacks
* This is not really a full solution but fixes the common cases at least.
2020-02-05 15:06:53 +00:00