Commit Graph

740 Commits

Author SHA1 Message Date
baldurk bdf2a68c71 Add shader's ID and entry point to the shader reflection struct
* This allows better identification of a shader from its reflection
  bundle. The entry point was already 'optionally' in the debug info
  struct which is no longer a great location for it.
* For APIs where the entry point isn't contractual and it might not be
  listed, instead we just fall back to 'main'. This means that the UI
  or anyone fetching the info can be guaranteed that some sensible entry
  point will be listed.
* Also for the debug info, remove the 'entryFile' index and instead just
  guarantee that as much as possible the entry point will be in the
  first file in the list.
2017-07-05 16:29:26 +01:00
baldurk aa34cf131b Change KeyUp to KeyDown event so we don't get false positives. Refs #674
* If we pick up on keyup, it might be a keypress from somewhere else
  (like a dialog) that was released on our control. Instead we should
  look for keydown.
2017-06-23 21:44:21 +01:00
baldurk 1dc3f65445 Handle some edge cases around samplers being lumped in with RO resources 2017-06-21 11:05:40 +01:00
baldurk abcfcfd8a4 Display resolve attachments with other framebuffer outputs in UI 2017-06-16 15:59:39 +01:00
baldurk 6423a82d18 Add support for multiple connected android devices
* We forward a different range of ports to each device so we can pick
  and choose which to communicate with based on its index.
* The index is encoded in the 'hostname' like so: adb:X:deviceidhere
* Whenever we want to interact with an android device we always specify
  the device, never leave it to a default.
2017-06-15 05:28:07 -07:00
baldurk 13e9096f94 Decode JPG capture thumbnails to raw bytes before passing to the UI
* This removes the need to have JPG decode in qt.
2017-06-13 14:56:40 +01:00
baldurk 922263df83 Remove unused save dialog and use the proper dialog for error message 2017-06-02 17:56:39 +01:00
Arseny Kapoulkine 8154b93e2a Use case-insensitive comparison for process filter
This makes it easier to filter processes that have upper case letters -
for example, you can now type 'calc' to filter out 'Calculator'.
2017-05-25 00:19:18 -07:00
baldurk 87ec279f1c Update some forgotten Copyright years to 2017 2017-05-19 17:28:41 +01:00
baldurk d1db941275 Tweak a couple of lines to refer to renderdoc.org instead of github 2017-05-19 14:24:27 +01:00
baldurk 04433f4c3a Remove search for suffix on git commit hash in C# UI
* Instead we just add a comment next to a 'false' return, and it can be
  replaced in a build script.
2017-05-19 12:51:15 +01:00
baldurk 3d20a6be1f Fix GL pipeline state viewer brokenness. Refs #617 2017-05-17 19:50:49 +01:00
baldurk b69a71c885 Don't try to set line number on disposed python shell 2017-05-17 11:57:10 +01:00
baldurk 50a02d713d Only apply ctrl-left/right shortcut when it doesn't conflict. Refs #542
* We only apply it for non-textbox controls since there ctrl-left and
  ctrl-right move through words.
* Also only apply it while a capture is open.
2017-05-10 17:20:34 +01:00
baldurk 886d6f608b Fix case that samplers are now "IsSRV" (renamed to IsReadOnly elsewhere) 2017-05-10 17:20:33 +01:00
baldurk 0f8e25a103 Fix a case where descriptor bind length wasn't being checked for ~0U 2017-04-27 19:47:48 +01:00
baldurk 9759911ffd Clamp progress value to 0.0 - 1.0 before updating progress bar
* Speculative fix for a reported crash
2017-04-26 20:47:04 +01:00
baldurk bffea4c788 Don't handle filesystem watcher callbacks once texture viewer is closed
* Fixes a reported crash
2017-04-26 20:47:04 +01:00
baldurk d406a0bf76 Fix highlighting of vertex attributes/vertex buffers on GL pipeline view 2017-04-26 20:47:04 +01:00
baldurk 5848d00091 Fix reported crash - clamp row count input to non-negative value 2017-04-21 18:43:14 +01:00
Michael Vance 3c178e2124 Add an option to enable/disable fake markers. 2017-04-20 13:14:39 +01:00
baldurk f6c045f473 Refactor public interface to be less strict C and more python friendly
* Generally this means removing ref out parameters and instead returning
  values. In a couple of cases we will want to avoid copies in future
  either by returning const references (e.g. to the pipeline state which
  is immutable).
* At the same time, some pointless bool return values that were always
  true and didn't indicate errors have been removed. They can be added
  again if an error condition comes back.
* Some free functions still have out parameters as C linkage doesn't
  allow returning user types by value.
* The C# UI still invokes into C wrappers for all the C++ classes, which
  handle taking the return value and doing a copy into an out parameter
  still for compatibility.
2017-04-18 14:57:46 +01:00
baldurk fd6fce7a78 Refactor pipeline states to expose opaque string properties as enums.
* Things like addressing modes, stencil operations, and other things the
  UI didn't need to know about previously were only exposed as string
  values to be passed through and displayed.
* Now we describe these with enums so the API can be properly
  introspected and used by consumers that might want to know the actual
  values of these states.
2017-04-18 14:57:40 +01:00
baldurk 36ed9fdc70 Remove unused rawType from SpecialFormat 2017-04-18 14:57:34 +01:00
baldurk d40fc8471d Change API enums to enum class, remove now redundant prefixing
* This gives a little nicer syntax, a bit better type safety, and also
  reflects better for SWIG bindings. Overall it's a minor change but
  better.
* We don't update the C# UI at all, since it's soon to be removed and
  not worth the effort/code churn.
* For now so we're ABI compatible with C#, all enums are uint32_t, but
  that is an obvious optimisation in future to reduce struct packing.
* We avoid 'None' as an enum value, because it's a reserved word in
  python so will cause problems generating bindings.
2017-04-18 14:57:33 +01:00
baldurk 2978755d54 On D3D11, any non-CS stage can access OM UAVs. Refs #564 2017-04-06 11:46:44 +01:00
baldurk 666aee093b Backport 'tagged' render invokes from qrenderdoc
* This is a possible fix for a case where render work triggered by mouse
  movements (such as pixel and vertex picking) can happen faster than it
  executes, leading to a backlog of render commands and a noticeable lag
  which only gets worse the more you move the mouse until everything
  seems to be unresponsive or laggy (especially if you then trigger a
  blocking command like event change, which will block the whole UI
  until the queued picks happen).
* Since a new pick coming in will override and make redundant the
  previous pick, we allow the render commands to do just that. If a new
  command comes in, we remove any previous commands with the same tag
  and put the command in the first match (this prevents a tagged invoke
  always being pushed to the back of the queue).
2017-04-03 18:31:59 +01:00
Michael Vance a74ddadd59 Improved TreeListView copy/paste support.
- Fix sorting to respect visual ordering by ID, including parent.
- Provide Ctrl-A to 'Select All'. Note that there is an extant
bug with the redraw where renderdocui will not repaint when
it gets focus back.
2017-04-03 07:18:41 -07:00
baldurk d0394d9233 Only do queued row select on the stage that was selected
* This prevents out-of-range errors when picking in a GS out view an
  expanded mesh, and getting a row that's higher than exists in the VS
  in view
2017-03-21 12:38:21 +00:00
baldurk d2d86b5726 Add 'floateleven' buffer format for R11G11B10 packed data, fix unpacking 2017-03-20 13:02:20 +00:00
baldurk bda6cf0870 Fill out default script editor contents after initialising python 2017-03-13 17:23:41 +00:00
baldurk f76a4cc339 Don't launch blocking execute call on UI thread, pop up progress ticker
* This most commonly happens launching an Android program that takes a
  while to launch, or if you're launching a program with the delay for
  debugger option set.
* Instead of the whole UI hanging, you'll get a progress dialog to
  appear while it's waiting.
2017-02-24 17:34:02 +00:00
baldurk fd0a9bee70 Copy in pythonlibs.zip as part of the build process if it exists 2017-02-22 14:53:10 +00:00
baldurk c12279f641 Fixes for multi-instance picking
* Always at least pick the current instance, even if no others are
  visible
* Only apply to VS output picking. Inputs either don't vary with inst ID
  or are trivial (all verts identical) depending on the element selected
* Respect the currently selected element instead of always picking
  the position output
* If we're selecting a different instance, we have to queue the vertex
  selection because otherwise the refreshing of rows breaks it
2017-02-20 22:16:57 +00:00
Matthäus G. Chajdas 1ba783dea6 Remove quotes from the exePath.
This solves copy/pasting a path from explorer using "Copy as path", which always adds quotes.
2017-02-08 01:51:36 +00:00
baldurk adc325ea4d Do a case-insensitive compare while looking up header file includes 2017-02-02 12:51:55 +00:00
baldurk 11db513705 Rename 'capture' button to 'launch' on CaptureDialog to clarify usage 2017-01-26 23:31:56 +00:00
baldurk 82068eeab8 Set up D3D12 pipeline state view in Qt 2017-01-25 20:13:39 +00:00
baldurk d0aec2197d Implement GL pipeline state viewer for Qt 2017-01-24 19:02:29 +00:00
baldurk 31c29c3149 Give Vulkan shader stage structs in pipeline state consistent names 2017-01-24 12:12:33 +00:00
Steve Legg 87adee1bf1 Implement multi-instance mesh picking 2017-01-20 16:12:48 +00:00
baldurk a9fb044874 Pass through texture swizzles on FBO attachments and display 2017-01-17 11:02:41 +00:00
baldurk 01c3a76625 Apply the type hint when displaying pixel values in texture viewer 2017-01-12 13:15:32 +00:00
baldurk ac47036368 Add an option to hide any markers with only "API Calls" but no draws. 2017-01-09 18:15:45 +00:00
baldurk 329ebc2d05 Don't allow the program to close while a global hook is active 2017-01-06 12:34:36 +00:00
baldurk 030cbfde9a Batch update copyright years everywhere 2017-01-06 12:13:31 +00:00
baldurk 90e068a111 Add support for VK_AMD_negative_viewport_height 2017-01-06 11:30:58 +01:00
baldurk 89b1ff2337 Export drawcall times with proper summation over regions. Refs #468 2017-01-05 11:38:00 +00:00
baldurk 45e7b64eb4 Don't apply durations twice if there's a marker next to a drawcall 2017-01-05 11:37:30 +00:00
baldurk 07fd9c8e0c Speculative fix for crash with buffer viewer being closed early.
* I received a few crash reports with a disposed buffer viewer still
  doing work. My theory is that some operation took long enough that the
  user was able to close the viewer (perhaps *because* it was taking a
  long time) and subsequent work then didn't handle the window having
  been closed.
2017-01-04 16:47:58 +00:00