Commit Graph
521 Commits
Author SHA1 Message Date
Lionel LandwerlinandBaldur Karlsson 6d95122189 Do not include Intel counters in the generic ones
At this point we don't have Intel GL counters. But the current logic
assumes there is only AMD ones (and that if it's not AMD's, it must be
the generic ones).
2018-10-23 14:22:25 +01:00
baldurk b5854f0fec Implement VK_EXT_transform_feedback, and use it for mesh output
* For pipelines using tessellation or containing a geometry shader we use
  transform feedback to fetch the output of the vertex pipeline after these
  stages.
2018-10-16 16:53:03 +01:00
baldurk 69287da9ac Handle inserting from rdcarray into itself
* This self-insertion has the same kind of problem as overlapping ranges in
  memcpy, the act of inserting items can affect the input range by shifting
  things around. For inserting a single object we just copy it, for inserting a
  range we duplicate the whole array and then do the insert from the old range
  (and destruct it).
* Clearly this is not the most efficient implementation, a better solution would
  be to append onto the existing array (potentially not even reallocating then)
  and doing a rotate/shift in place.
2018-10-15 17:30:34 +01:00
tabi.katalinandBaldur Karlsson 369d93b99c Cycle active window with button
A new button is added to the UI so that we can cycle the currently active window when there are more windows to capture.  It's like pressing the F11 button but it works on Android too.
2018-10-10 10:19:43 +01:00
baldurk d281e9674b Improve ability to run a replay output with no backing window
* This is useful for scripts where we want access to the contextual output
  operations like overlays, pixel picking, etc.
2018-10-04 16:53:39 +01:00
baldurk ad5cfcd290 Pass through and display VAO object in GL pipeline state 2018-10-01 18:27:44 +01:00
baldurk 989971f6af Make sure structs exposed to python have explicit copy constructors
* This means SWIG generates a copy constructor which is very useful for making
  duplicate objects in python. Without an explicit 'default copy constructor'
  statement, SWIG doesn't generate one.
2018-10-01 18:12:28 +01:00
baldurk d0b650778b Handle D3D12 register spaces with high values without full array size
* Technically register space values are arbitrary so the array should not be
  resized to account for all space indices, in case one is very large.
2018-09-25 17:24:01 +01:00
baldurk 7a8581ebab Expose function to query git commit hash version info 2018-09-25 10:31:09 +01:00
baldurk 6ec402e370 rename logfile -> capturefile parameter on execute, document for python 2018-09-18 18:05:39 +01:00
baldurk 9bf00cb1a6 More natural python handling for GetDefaultCaptureOptions, return struct 2018-09-18 18:01:28 +01:00
baldurk 296050e298 Add copy progress bar for copies over target control connections 2018-09-06 13:17:12 +01:00
baldurk 65b567a944 Add macOS windowing system to public API
* For now it expects a CALayer since this works around a MoltenVK bug
2018-09-05 12:50:58 +01:00
baldurk 9b7581011e Add a per-capture API to target control protocol
* This means that if an application uses more than one API, the correct API is
  listed for each capture.
2018-08-13 18:27:26 +01:00
baldurk 3c7b420e59 Expand SPIR-V disassemblers to general shader processing tools
* Instead of just configuring SPIR-V disassemblers and picking only the first
  one when we need to edit SPIR-V, we allow setting up any shader processor that
  goes between two shader encodings.
* When editing, the default will still be to use embedded source, and then after
  that the first tool that goes from the native shader format to a text format,
  but the drop-down allows you to pick any of them.
* Similarly in the shader viewer you can configure the compilation options and
  method, to choose the compiler you want to use. Embedded command line
  parameters in the shader are automatically appended.
2018-08-09 16:56:53 +01:00
baldurk a81e4a2b45 Pass through and allow different source shader encodings when editing
* This means e.g. the D3D11 back-end can accept DXBC directly if the UI can
  provide it, or compile from HLSL as before.
* More importantly, the Vulkan back-end can take SPIR-V compiled from any
  source, or compile from GLSL as before as a fall-back.
2018-08-09 16:56:52 +01:00
baldurk a4dfad6e82 Add a backend query to check shader encodings BuildTargetShader allows
* This will allow the backend to specify both the native format (e.g. SPIR-V,
  DXBC) as well as a language it might be able to internally compile (GLSL or
  HLSL).
* The caller will then able to decide for itself whether it wants to compile to
  native format and pass that down, or pass the language down and let it be
  built internally.
* Currently BuildTargetShader still only accepts shader source.
2018-08-09 16:56:51 +01:00
baldurk 7de19f4c35 List an encoding for shader debuginfo source. Add HLSL/spvas to enum 2018-08-09 16:56:50 +01:00
baldurk 492a9bf828 Add QByteArray cast for bytebuf 2018-08-09 16:56:50 +01:00
baldurk f36701779c Display <empty> as custom name if an empty string is set.
* In cases where the API doesn't consider an empty string to be ignored.
2018-08-03 16:52:13 +01:00
baldurk 84a90bfdaf Update RenderDoc API version to 1.2.0, add new function. Closes #1037
* The new function SetCaptureFileComments allows users to add comments to a
  capture after creating it at any time.
* We also use anonymous union to remove the need to duplicate API structs for
  backwards compatibility.
2018-08-03 11:16:24 +01:00
baldurk df1a494fa7 Add friendlier error if trying to use Android < 6.0 device. Closes #1060 2018-07-31 14:37:38 +01:00
baldurk 6e9d8cb1a8 Initialise adb on another thread
* Otherwise the first adb access will stall heavily starting the daemon.
2018-07-26 17:24:29 +01:00
baldurk 12e43443ab Shut down adb when closing qrenderdoc if it's our adb
* This has some possible problems - e.g. if one copy of qrenderdoc is closed and
  kills the server used by another copy. However it seems impossible to reliably
  manage adb and we need to ensure we don't leave the process lingering around.
* At the moment 95% of users don't use android, so it's most important that they
  have a smooth experience.
* This was the cause of problems around updating versions because adb.exe would
  hang around and then be 'in use' and not able to be overwritten.
2018-07-26 17:24:27 +01:00
baldurk 0b31bded74 Bump version to v1.2 2018-07-25 16:55:57 +01:00
baldurk df4458e6d0 Fix bad loop count when inserting data into rdcarray 2018-07-24 15:51:31 +01:00
baldurk 1761f5ab36 Highlight variables/registers that have changed 2018-06-22 19:28:33 +01:00
baldurk 880f529fda Change mapping representation to be gather-based per variable
* Instead of having an N:N mapping of parts of variables to parts of registers,
  instead we gather everything together under each variable and it has a list of
  registers that comprise it.
* Any gaps are represented as undefined register mappings, for components that
  aren't available in any register.
2018-06-22 19:28:33 +01:00
baldurk 199a1f6de5 Add stencil reference as a supported shader builtin 2018-06-22 19:28:31 +01:00
baldurk 52e9a6c01d Pass through line-mapping information for each instruction to UI
* This lets the UI highlight the source line as stepping happens, as well as
  allowing stepping purely in HLSL.
2018-06-22 19:28:30 +01:00
baldurk ff9f5675e9 Display high-level language locals corresponding to registers 2018-06-22 19:28:30 +01:00
baldurk e2dcd902cd Gather and display callstack information during shader debugging 2018-06-22 19:28:30 +01:00
baldurk 53364adeef Support mesh output from different view indices on vulkan
* When using VK_KHR_multiview you can select which view to view the mesh data from.
2018-06-19 20:48:30 +01:00
baldurk 0795e739f9 Fix python docstring copy-paste error 2018-06-18 19:05:04 +01:00
baldurk 0dda96a045 Change previous/next/parent IDs in DrawcallDescription to pointers
* This is a legacy holdover from the C# interop not being able to preserve
  pointers easily.
2018-06-18 18:39:06 +01:00
baldurk 14e3a3d360 Move API-agnostic pipeline state wrapper into core interface
* There's no need for this to be in the UI, and moving it allows it to be used
  from script which is very useful.
2018-06-18 18:39:06 +01:00
baldurk 45c3c27923 Rename DrawFlags::UseIBuffer to DrawFlags::Indexed 2018-06-15 19:40:54 +01:00
baldurk 68bd58a308 Fix typo in python docstring 2018-06-14 17:56:26 +01:00
baldurk 47f3f64fc7 Rename Samples Written to Samples Passed
* This measure the number of samples that pass the depth/stencil tests -
 In the case of early tests, this means it doesn't account for shader discard before writing.
2018-06-13 13:22:11 +01:00
baldurk 72b40769b5 Add support for D3D12 up to D3D12.3. Closes #966 2018-06-07 14:49:07 +01:00
Hans-Kristian ArntzenandBaldur Karlsson ac3efb681e Make As*() functions const-correct. 2018-06-04 10:14:29 +01:00
baldurk ec356da027 Fix accidentally copy-pasted docstring 2018-05-24 22:50:43 +01:00
baldurk c6ae93e1c7 Expose raw pushconstants values as part of vulkan pipeline state
* Not used directly in the UI, but can be useful for script access
2018-05-24 21:42:30 +01:00
baldurk 206e0f1188 Add quality-of-life/convenience accessor functions to SDObject 2018-05-24 21:42:29 +01:00
baldurk 851a88133a Remove the 'save all initials' option. Behave as if it's always enabled
* This option has always been a mixed bag - when originally written captures
  weren't compressed at all so saving the cost of a initial contents on a
  gbuffer would have a significant savings.
* Now with compression the savings are lesser, and it's a source of
  bugs/confusion for the case where either a bug is caused by leaking data from
  the previous frame or worse still the contents are discarded incorrectly.
* D3D11 will now behave as the other APIs will - saving initial contents
  whenever needed even if they seem like they might not be used.
2018-05-23 16:08:44 +01:00
baldurk 8c5e8081c5 Fix typo in documentation of ShaderVariable::members 2018-05-15 19:44:17 +01:00
baldurk a31a5a9cfb Provide reasonable default values for TextureDisplay struct 2018-05-15 19:44:17 +01:00
baldurk afb7ea5dab Improve python wrapping of WindowingData
* If we make WindowingData an empty struct not an opaque one, it won't leak memory
* Similarly we need typemaps to allow python to pass plain ints and have them cast to pointers
2018-05-15 19:44:17 +01:00
baldurk 7eb19ab13f Add better structured data helper functions to expose to python 2018-05-15 10:44:26 +01:00
baldurk 1393b84fb6 Add proper support for KHR_shader_draw_parameters in Vulkan mesh output 2018-05-08 17:51:56 +01:00