Commit Graph

6435 Commits

Author SHA1 Message Date
baldurk 0b899d90b6 Add ability to replace sections in RDCFile 2017-11-17 16:30:59 +00:00
baldurk b1c0de3016 Add and tweak some FileIO OS-specific functions
* fflush is a no-op wrapper but nice to have for consistency.
* ftruncateat will take a file read-write handle and truncate it at a
  given length. Useful if re-writing a file and the new data ends up
  being shorter than the oldd ata.
* Move in addition to Copy, and success/fail bool return on both.
2017-11-17 16:30:58 +00:00
baldurk 33ff48811b Normalise terminology in UI code - don't call captures 'logs'
* Log is an overloaded term since it can also mean the debug log. We now
  consistently refer to capture files as capture files or just captures
  for short. The log is just for log messages and diagnostics.
* The user-facing UI was mostly already consistent, but many of the
  public interfaces exposed to python needed to be renamed, and it made
  more sense just to make everything consistent.
2017-11-17 16:30:57 +00:00
baldurk e399365ba2 Add simple utility functions for serialising QVariantMap to/from JSON 2017-11-17 16:30:57 +00:00
baldurk 824ec81864 Make sure Resource is properly null'd out in pipeline state if unbound 2017-11-17 16:30:56 +00:00
baldurk 200f0799a4 Generate clickable links to resource inspector in RDTreeWidget 2017-11-17 16:30:56 +00:00
baldurk 1776b4e6c0 Declare ResourceId Qt metatype in public header so it's QVariant'able 2017-11-17 16:30:55 +00:00
baldurk 25de6726f6 Add some cross-linking for panels that view a single resource
* We add a button with a link icon to indicate that it goes to the
  resource details. We'll re-use the crosshair as a visual metaphor for
  any interactive widget that goes to the resource inspector.
* To remove any possible confusion, we change the icon for the texture
  list and locked tabs in the texture viewer to not include the link.
2017-11-17 16:30:54 +00:00
baldurk 2ac0802b10 When a custom name is changed, refresh the UI to propagate it properly 2017-11-17 16:30:54 +00:00
baldurk 7c8628b237 Centralise resource naming with capture context to allow customisation
* We remove the now unneeded name fields in buffer/texture descriptions
  and some of the pipeline state structs.
* A single function will give the human-readable name for a resource id.
  This will look up a custom set of renames, on top of the names from
  the resource descriptions.
2017-11-17 16:30:53 +00:00
baldurk d009ed3b30 Add a resource inspector window for viewing resource details 2017-11-17 16:30:52 +00:00
baldurk bace05d926 Split out code to populate RDTreeWidget with structured data 2017-11-17 16:30:51 +00:00
baldurk 60e530de88 Split out utility function to group together resource usage events 2017-11-17 16:30:51 +00:00
baldurk 152abc501a Fetch structured file on capture load so it's available persistently 2017-11-17 16:30:50 +00:00
baldurk 3ac3e6c3f1 Fill out resource descriptions in each driver
* For Vulkan and D3D12, we now create a dummy command buffer to ensure
  that there's actually a chunk available to correspond to the command
  buffer that gets submitted or recorded to.
2017-11-17 16:30:50 +00:00
baldurk 1c614029d8 Add a way to return basic information about all resources in a capture
* This provides a way to find the name of any resource besides 'special'
  resources like textures and buffers. In a follow-up commit, the names
  will be removed from their descriptors.
* It also allows us to list which chunks in the structured file were
  used to initialise the resource, giving the ability to look up and
  display the initialisation parameters.
* At the same time we also list the derived/parent resources to better
  allow the user to browse between related resources.
2017-11-17 16:30:49 +00:00
baldurk 8997cb9f07 Fix copy-paste error that searched ReadOnlyResources array for UAVs. 2017-11-17 16:30:48 +00:00
baldurk fb6211a3db Return user data from RDTreeWidget for UserRole variants 2017-11-17 16:30:47 +00:00
baldurk 79b51591c2 Add ForwardingDelegate for use in RD extended widgets.
* This item delegate will forward on either to a specified other
  delegate or to the base implementation. This allows chaining delegates
  (i.e. having one built-in to the widget, which forwards to a user-set
  delegate).
2017-11-17 16:30:47 +00:00
baldurk 0c1c171b4f Update toolwindowmanager to c0943da98b811f39f4fda56306bbeb741fb1214b 2017-11-17 16:30:46 +00:00
baldurk 2d15fe2c05 Fix incorrect chunk type in PersistentMapMemoryBarrier 2017-11-17 16:30:43 +00:00
Peter Gal 2ae9e8a4bc [EGL] Move GLWindowingData creation into it's own method
The GLWindowingData creation was done at three places
with almost no difference.
2017-11-17 17:30:16 +01:00
Peter Gal ca95a9c3ab [EGL] Move symbol loading into one file
The EGL function pointer loading was scattered
in two files thus it is hard to keep track where
the symbols were loaded.

Introduced a class which holds all internally used
EGL function pointers with a helper method to
load the required pointers. Not all EGL pointers
are loaded just the used ones (just like before).
2017-11-17 17:30:16 +01:00
Peter Gal 9c84b7f716 [GL/GLES] Fix incorrect chunk type serialization
In some cases a few GL wrapper methods are called
with incorrect gl_CurChunk during serialization.

This can happen if the capturing application calls
a GL method - for which the gl_CurChunk will be set correctly -
and the wrapped method calls another wrapped GL method
but for that the gl_CurChunk will be incorrect.

Also during the ActivateContext call the gl_CurChunk
was not set.

For now do a hotfix for glDrawArrays and initial context.
2017-11-17 17:30:05 +01:00
baldurk 004514e556 Give a little more room to pixel history when displaying it 2017-11-10 18:36:11 +00:00
baldurk 9958b47007 Update toolwindowmanager to b822d2e0d92063a9ceba112b7d4b89716da5da88 2017-11-10 18:36:10 +00:00
baldurk 2f02f2159e Fix some margins/spacings to be more consistent across the UI 2017-11-10 18:36:10 +00:00
baldurk 0dfae4d1c5 Remove Ctrl+W for closing captures, easily confused with close tab
* Whether there's a sensible way to define a tab closing shortcut is
  unclear at the moment - there isn't a single set of tabs, so just
  closing the most recently highlighted panel could be quite
  unintuitive.
2017-11-10 18:36:09 +00:00
baldurk 82e1218b62 Defer loading .rdc from drag & drop, to unblock the calling application 2017-11-10 18:36:08 +00:00
baldurk 136909eaad Raise capture dialog when an .exe is dropped on the window 2017-11-10 18:36:08 +00:00
baldurk 9cbff34d95 By default don't have any pixel selected in texture viewer 2017-11-10 18:36:07 +00:00
baldurk e3b0d8acc0 Ensure too-long popup menus have scroll buttons 2017-11-10 18:36:07 +00:00
baldurk d97f259fd5 Use case-insensitive comparison for process injection filter 2017-11-10 18:36:06 +00:00
baldurk 805f01244c Remove size policy causing problems on buffer view's format specifier 2017-11-10 18:36:06 +00:00
baldurk 8133188a4c Make mesh viewer more robust if no ibuffer is bound on indexed draw 2017-11-10 18:36:05 +00:00
baldurk 988121ee65 Display generic mesh input attrs, and add ---s for out of bounds access 2017-11-10 18:36:04 +00:00
baldurk e8140e0459 Fix serialisation of GL generic vertex attrib functions 2017-11-10 18:36:04 +00:00
baldurk 3c2a486d6a Use application-level event filter for handling shortcut redirects
* If we just filter the main window, it won't properly pick up shortcuts
  used in floating windows.
2017-11-10 18:36:03 +00:00
baldurk 335919a42c Add a fast path when skipping bytes in a file-based I/O reader. 2017-11-10 18:36:03 +00:00
baldurk de452da804 Update picked pixel values when changing overlays
* This accounts for e.g. quad overdraw where the picked pixel value is
  affected.
2017-11-10 13:21:19 +00:00
baldurk cac4c7f100 Locate RDTableView even if it's a parent in slot functions
* These slots are called on the item selection view, so the RDTableView
  is actually the sender's parent.
2017-11-10 13:17:11 +00:00
baldurk 5c4f867bd9 Remove unnecessary copy in FillRegisterSpaces
* This was previously used because rdcarray wasn't runtime resizeable.
2017-11-10 13:05:56 +00:00
baldurk 3504d2741a Clear PostVS cache when a resource is replaced. Refs #729
* For now, resource replacement implicitly means shader edits, but other
  replacements could also affect the results of PostVS (e.g. buffer or
  state changes). Trying to capture all this state in the cache key is
  not very useful.
* The PostVS cache will be re-filled immediately after, as any
  replacement does a force-refresh of the current event.
2017-11-10 13:01:40 +00:00
baldurk 954a11de89 Implement shutting down individual replay outputs
* This means e.g. that if the mesh output view gets closed, we don't
  keep it around internally and keep calling InitPostVSBuffers for it.
2017-11-10 12:22:13 +00:00
baldurk 241b8f4404 Clarify the draw range options (this inst vs. all inst vs. whole pass) 2017-11-10 12:10:02 +00:00
baldurk 5b8d0aeee0 Fix code for SINGLE_FLUSH_VALIDATE path 2017-11-09 18:09:49 +00:00
Peter Gal 9603e86215 Fix renderdoccmd help screen
The help information for the 'convert' command in the
renderdoccmd was incorrect.
2017-11-09 19:09:40 +01:00
Janos Pantos ce4aee7bdd Add workaround for reading back BGRA textures 2017-11-09 19:09:30 +01:00
baldurk 997248380e While structured exporting frame/context chunks need to save buffers too 2017-11-09 15:12:22 +00:00
baldurk ebe1318f72 When exporting struct buffers we must always allocate memory to readback
* If the external code has a NULL pointer and doesn't want to allocate
  but we are exporting buffer data, we still need to read the data
  somewhere so make a temporary allocation to read it into.
2017-11-09 15:12:06 +00:00