181 Commits

Author SHA1 Message Date
baldurk c4c4c4b67d Display multiview state in vulkan pipeline state viewer 2018-06-19 20:48:30 +01:00
baldurk e87eacb2a0 Fix switching between pipeline state viewers 2018-06-19 12:38:18 +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 2c8674790c Add spacers in pipeline view for if all groups are collapsed 2018-06-13 09:17:03 +01:00
baldurk 72b40769b5 Add support for D3D12 up to D3D12.3. Closes #966 2018-06-07 14:49:07 +01:00
baldurk c2c0433999 Fix logic/blend enabled being wrong way around on D3D12 too 2018-06-05 21:08:06 +01:00
baldurk b213d54c1d Account for added Divisor column when setting up vulkan pipeline state 2018-05-14 16:41:25 +01:00
baldurk a45c222941 [Coverity] Remove redundant if() comparisons 2018-05-08 12:10:19 +01:00
baldurk 082ab4d75d GUIInvoke takes a QObject* to avoid callbacks after object lifetime
* The GUIInvoke object takes a QObject, and uses QPointer to check that
  it hasn't been deleted when the callback fires. This prevents delayed
  callbacks from executing after the object has been deleted and
  crashing.
* In most cases the pointer is just 'this'.
2018-05-08 11:54:34 +01:00
baldurk 3380379aac Fix copy-pasted tooltips mistakenly saying "Save Shader SPIR-V" 2018-05-04 13:36:43 +01:00
baldurk b1008ceb82 Add index buffer binding offset to byte offset when opening buffer view 2018-05-03 14:25:37 +01:00
baldurk 9b2e515be5 Fix UBO state display wrt/ GL reflection re-sorting. Closes #965 2018-04-30 11:42:41 +01:00
baldurk 5698c46277 Use collapsing group boxes on pipeline state viewer 2018-04-26 13:37:57 +01:00
baldurk f87338dc0e Add support for VK_EXT_vertex_attribute_divisor 2018-04-25 19:11:04 +01:00
baldurk bbc0581e7e Implement support VK_EXT_conservative_rasterization. Closes #898 2018-04-24 19:23:51 +01:00
baldurk 94548886eb Implement VK_KHR_push_descriptor extension. Closes #905 2018-04-24 14:41:57 +01:00
baldurk 550f4f4424 Add extra column of empty data for unbound sampler row 2018-04-20 16:37:00 +01:00
baldurk 172e937206 Pass through and display format for texel buffer views. Closes #957 2018-04-20 15:40:21 +01:00
baldurk 701fd0282a Only append comparison/min/max status to filter, don't replace 2018-04-20 15:40:20 +01:00
baldurk e51a14f18a Fix display of RTVs and DSVs in D3D12 pipeline state viewer 2018-04-13 16:43:44 +01:00
baldurk 3129a44495 Actually comment out skipped fixed-size members. Closes #948 2018-04-06 14:11:52 +01:00
baldurk 0ecc8ed0e5 Fix a reported NULL pointer dereference when exporting GL state to HTML 2018-04-04 17:53:28 +01:00
baldurk 0cbcba2413 Fix issues with displaying UAVs in D3D12 pipeline state. Closes #926 2018-04-03 17:10:16 +01:00
baldurk 2d8981faf5 Fix backwards logic enabled/blend enabled columns in D3D11 pipe state 2018-04-03 17:10:08 +01:00
baldurk 71992c3967 Fix incorrect view details tooltip formatter 2018-03-05 12:40:41 +00:00
baldurk 9548f74f16 Only set ShaderEditing analytic bit when saving, not first editing
* This means if someone just clicks to edit but doesn't actually edit,
  won't register as having used the feature.
2018-03-02 14:31:01 +00:00
baldurk d1df4bdcc1 Append shader entry point and filename to existing resource IDs
* This way even if shader debug info is present there are still resource
  links.
2018-03-01 18:45:33 +00:00
baldurk c445395967 Use sampler resourceId for sampler resource rows 2018-03-01 18:45:33 +00:00
baldurk e060c1b410 Format stencil references as 8-bit integers, not 32-bit 2018-03-01 18:45:32 +00:00
baldurk 04034c334b Gather pixel history panels together instead of making new dock for each 2018-02-19 00:52:13 +00:00
baldurk ccffa7656a Specify byte range for cbuffers in D3D12 pipeline state 2018-02-06 00:21:10 +00:00
baldurk ec68f9ec0e Only print real bools as True/False, not anything that can convert 2018-02-02 16:09:25 +00:00
baldurk 65ef82466c Re-organise Analytics structures a bit to be more processing friendly 2018-01-19 13:57:02 +00:00
baldurk b5d9034698 When opening raw index buffer view, multiply offset by index width 2018-01-11 13:48:33 +00:00
baldurk e305029ddd Update copyright years to 2018 2018-01-01 17:55:29 +00:00
baldurk 203dca8434 Split out invocation of SPIRVDisassembler into member function 2017-12-22 17:03:08 +00:00
baldurk ebaefc82a9 Normalise and make python/public interface more consistent
* We enforce a naming scheme more strongly - types, member functions,
  and enum values must be UpperCaseCamel, and member variables must be
  lowerCaseCamel. No underscores allowed.
* eventId not eventID or EID, and Id preferred to ID in general. Also
  for resourceId.
* Removed some lingering hungarian m_Foo naming.
* Some pipeline state structs that are almost identical between the
  different APIs are pulled out into common structs. Where something
  doesn't make sense (e.g. viewport enable for vulkan) it will just be
  set to a sensible default (in that case always true).
* Changed scissors to be x/y & width/height instead of sometimes
  left/top/right/bottom
* Abbreviations are discouraged, e.g. operation not op, function not
  func.
2017-12-22 13:02:36 +00:00
baldurk b070a371e2 Improve D3D11 predication handling, and track other asyncs independently
* Instead of replaying predication, we now always skip it during replay,
  so all objects will render. This is much more consistent and
  understandable behaviour instead of things mysteriously disappearing
  with no obvious reason why.
* We track the predication that would have happened and replay Begin/End
  pairs so that we can know if the predication *would* have failed.
* This is displayed in the UI (currently in the raster state, for lack
  of a better location) with the pass/fail that would have happened.
* This information can feed into other places for analysis like the
  pixel history.
2017-12-20 23:41:08 +00:00
baldurk 0b527fab49 Use rdc types instead of Qt containers in public QRenderDoc interface
* This is to support python bindings - the pyside implementation of
  QVector, QString, etc is not available to SWIG, so SWIG treates these
  all as opaque types.
* Rather than trying to set up bindings that work for rdcarray and
  QList/QVector, or implementing separate bindings, we instead just say
  that the public interface must use the rdc types. In most cases they
  seamlessly convert to/from Qt types anyway.
* In a couple of places we use an array of pairs instead of a map. In
  future we probably want an rdcdict or rdcmap with proper dict bindings
  in python.
2017-12-13 22:43:01 +00:00
baldurk 9b9c74ec03 Fix transform feedback pipeline state display 2017-12-11 20:12:02 +00:00
baldurk a6ebf09785 Add analytics system - disabled for now
* This is a *very* light-touch analytics system that will track the
  simplest and most anonymous statistics that can be useful in
  determining which features are most used or perhaps underused, and
  where it's best to direct development attention.
* It is entirely implemented in the UI layer, no analytics-gathering
  code exists in the library that's injected into programs, and of
  course no capture data (screenshots, resource contents, shaders, etc
  etc) is transmitted.
* Once it's turned on, it will apply to both development and release
  builds. It tracks stats over a month, and then at the beginning of a
  new month it sends the previous data.
* When the user first starts up a build with analytics if there's no
  previous analytics database then they are informed of the new code and
  asked to approve it. They have the option of selecting to manually
  verify any sent reports, or just opt-ing out entirely.
2017-11-29 19:01:22 +00:00
baldurk 1d05177141 Add Qt helper for constructin rdcstr directly from QString 2017-11-29 19:01:21 +00:00
baldurk 286e117d56 Add headers needed for compilation without PCH
* Removing includes of Code/CaptureContext.h removed some dependencies.
2017-11-23 00:20:01 +00:00
baldurk 602511bf33 Reduce parameters that need to be passed for viewing shaders 2017-11-22 19:11:27 +00:00
baldurk 74e25673d2 Fix some integer sign extension/potential overflow issues.
* Reported by Coverity Scan. In all cases, should not be a problem, but
  with an upcast happening anyway we might as well ensure calculation
  happens at a higher precision.
2017-11-22 19:11:22 +00:00
baldurk 43d561a4c0 Fix NULL checking and NULL dereferencing issues
* Reported by Coverity Scan - most of these are not an issue and a
  couple of them are coverity getting really confused (like seeing a
  pointer being assigned to NULL and a count to 0, then a few lines
  later declaring that a loop 0..count will dereference the pointer).
* However it's harmless in all cases to add a bit of robustness to keep
  the analysis happy.
2017-11-22 19:11:21 +00:00
baldurk e75a468d3c Remove direct include of Code/CaptureContext.h in almost all files
* This is a leftover from before the interface was hoisted out, and most
  windows were still calling directly to CaptureContext instead of via
  the public ICaptureContext interface
2017-11-22 19:11:20 +00:00
baldurk 203f6b5255 Silence some warnings about casting from one enum type to another
* Reported by Coverity Scan - I don't think any of these were actually
  a problem since the enum definitions all matched.
2017-11-22 19:11:19 +00:00