Commit Graph

4917 Commits

Author SHA1 Message Date
baldurk fb1dfbd184 Add ordered list editor for configuring shader search paths in settings 2017-02-09 19:28:20 +00:00
baldurk 95d84f2da7 Add extended RDTableWidget with row re-ordering 2017-02-09 19:28:20 +00:00
baldurk baf2c9fa90 Handle ArgumentException from FileSystemWatcher if path is invalid
* Most likely caused by paths that the class chokes on, like
  \\?\UNC\foo\bar type paths.
2017-02-09 19:28:20 +00:00
Peter Gal 6b776578b9 Add EGL hooks
Allow capturing with EGL.
2017-02-08 11:17:06 +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 ef6d6b3271 Change some default initialisation to memsets, work around gcc ICE 2017-02-03 21:59:13 +00:00
baldurk 7357d1018e Linux compile fixes 2017-02-03 21:30:45 +00:00
baldurk 379b3c346a Add dependency on renderdocshim to renderdocui 2017-02-03 20:11:07 +00:00
baldurk 7095d1f2a2 Document that secure boot must be disabled for global hook 2017-02-03 20:11:07 +00:00
baldurk cf1ef45a5e Add settings dialog for Qt 2017-02-03 20:11:06 +00:00
baldurk 923dfbd6fb Add Qt version of statistics viewer 2017-02-03 20:11:06 +00:00
baldurk 716aa7bbd4 Fix very scary bad mismatched pointers when defining buffer data range 2017-02-03 20:11:05 +00:00
baldurk 2e5379747a Don't check twice for duplicate pairs when validating output merger 2017-02-03 20:11:04 +00:00
baldurk 346550e012 Add debug message view to Qt 2017-02-03 20:11:04 +00:00
baldurk e29fb14ade Fix empty pixmap for debug messages alternating icon 2017-02-03 11:57:56 +00:00
baldurk 860aab1f0f Add save log menu handler 2017-02-03 11:57:16 +00:00
baldurk 62c840dca2 Fix a problem with different mem requirements between capture and replay
* If the usage flags on an image are different then the ICD might return
  different memory requirements at replay time, which are no longer
  respected by the offset/alignment that the application chose at
  capture time.
* The real solution is to abstract the requirements and return our own
  set of pessimistic requirements that encompass most hardware. For the
  moment as a simpler solution we just add the same usage flags for both
  capture and replay, if a flag is needed for either.
2017-02-03 10:25:20 +00:00
baldurk 8959a99ad3 Don't attempt to replay a CmdExecuteCommands as a solo drawcall 2017-02-02 17:00:02 +00:00
baldurk e0d1b49bb4 Remove unused VkClearValue entries from calls to vkCmdBeginRenderPass 2017-02-02 15:33:29 +00:00
baldurk 3b7ebe8998 Fix bug decoding hex digits 'a'-'f' without offset by 0xa. Refs #499 2017-02-02 12:54:02 +00:00
baldurk adc325ea4d Do a case-insensitive compare while looking up header file includes 2017-02-02 12:51:55 +00:00
baldurk 801f47a31a Fix crashes with redundant changes or 0 refcount binds. Refs #23, #503
* Two potential crashes here - one from the previous fix to #503, we
  would double-release a refcount on an object that was set for write.
  First we'd decrement the refcount when it was 'unbound', then again
  trying to unbind it for write because the slot wasn't NULL'd. This was
  just plain broken.
* The second more obscure one was when binding for read. If the external
  object had no other refcount than the one in the binding slot, then
  changing its binding would implicitly destroy it. However if the code
  was setting the same object back again (ie. with the pointer they had
  not reference to) then the refcount would drop to 0 then should be
  incremented again to 1 when it's re-bound. However because the count
  bounces off 0, the object is destroyed between being unbound and
  re-bound causing pure virtual calls and other crashes when we try to
  access it.
* The fix is first to check if we're binding something to its own slot
  and skip it. Second we need to keep the new objects ref'd at all times
  during the binding (in case we are e.g. performing an array bind which
  moves the 1-refcount object from slot 2 to slot 3. It would be unbound
  when processing slot 2, hit refcount 0, and then be added again when
  processing slot 3).
2017-02-02 12:28:34 +00:00
baldurk c44935ab41 Set compute shader stage bit when reconstructing pipeline info 2017-02-02 10:50:44 +00:00
baldurk 1895f38c4e Strip out direct-display extensions on replay 2017-02-02 10:50:42 +00:00
baldurk 3ac85ab3ee Give display plane surfaces a fake non-0 window handle 2017-02-01 16:35:12 +00:00
baldurk 9d6acd1d00 When binding resources for write, unbind all other write uses. Refs #503
* The D3D11 hazard tracking rules are then as follows:
  - When binding a resource for read, if it is bound for write anywhere
    then NULL is bound instead. If it's not, then any other read
    references are preserved.
  - When binding a resource for write, all other binds for read AND
    write are forced to zero.
  - The exception to the above: If a DSV is bound with depth read-only
    then any read binds reading the depth channel remain bound. Likewise
    for stencil read-only and stencil channel read binds.
  - Special case: When binding RTVs and UAVs at the same time, if there
    is a write overlap within that bind, the entire bind gets discarded
    (including any non-overlapping binds) and state remains unchanged.
  - When considering if a bind overlaps, it only overlaps if the view
    in question covers an overlapping subresource range. In other words,
    it is valid to have a write bind of mip 1 and a read bind of mip 0
    at the same time (the classic case being mip generation).
* This commit fixes the second point, other write binds weren't being
  NULL'd out. So binding a UAV to slot 0 then slot 1 in that order will
  cause slot 0 to become unbound. Or binding to an RTV will unbind a
  UAV or vice-versa.
2017-02-01 14:40:18 +00:00
baldurk 477df04072 Make sure we're on a consistent event before calling OnLogFileLoaded
* Certain panels like BufferViewer assume there is a current drawcall
  at startup and not an invalid event ID like 0. Normally the event
  browser is loaded first and sets the event ID, but if it's later in
  the list this will break.
2017-02-01 11:17:56 +00:00
baldurk 0a611417c1 Check drawcall is valid before checking draw properties 2017-02-01 10:03:51 +00:00
baldurk 55b3105905 Initialise cached column count to 0 2017-02-01 10:03:50 +00:00
baldurk 89f6fa339b Add NO_CXX11_REGEX define for qrenderdoc building on old compilers 2017-02-01 10:03:46 +00:00
Michael Rennie 0a119e58f3 Fix setting adb setprop debug.vulkan.layers to empty string.
Workaround inconsistent CreateProcessW string parsing by setting the
property to the Vulkan layer delimiter character. On some PCs it would
remove the quotes before sending to adb, and on others they would remain.

The quotes were interpreted by the Android loader as a layer name, and the
replay context's vkCreateInstance returned VK_ERROR_LAYER_NOT_PRESENT.
2017-01-30 16:50:29 +00:00
baldurk e8c2189dc8 Fix for unsigned/signed comparison 2017-01-27 15:22:25 +00:00
baldurk 804ffb00e2 Try to merge subresource states for resources that were split apart
* When a barrier applies to only one subresource out of an image, it's
  split into individual subresource tracking. There's nothing to merge
  it back together again, so it remains split even if the subresources
  go back to all being in the same state again. Simply checking when
  fetching the frame-initial states if we can merge can be a big win.
2017-01-27 11:00:22 +00:00
baldurk 9690db525b Add support for raw buffer views (not mesh output) 2017-01-26 23:31:58 +00:00
baldurk bac0c011cd Hack around slow row-colour setting in pipeline state 2017-01-26 23:31:57 +00:00
baldurk 738dbafdfe Try to maintain table's horizontal scroll values when changing event 2017-01-26 23:31:57 +00:00
baldurk bbf1a0b906 Set specific window title for mesh view mode 2017-01-26 23:31:57 +00:00
baldurk a4acd3cb31 Hook up most of the small UI items and buttons in the buffer viewer 2017-01-26 23:31:57 +00:00
baldurk 0cbb43b7bf Remove QString formatting on output log 2017-01-26 23:31:57 +00:00
baldurk 849f3970ab Implement synced views 2017-01-26 23:31:57 +00:00
baldurk 425e65a1e8 Initialise the current stage to VSIn by default 2017-01-26 23:31:57 +00:00
baldurk d0e7428773 Don't register buffer viewer as log viewer until the end of construction 2017-01-26 23:31:57 +00:00
baldurk 19034c0d93 Don't use resizeColumnsToContents on full data, add column per component 2017-01-26 23:31:57 +00:00
baldurk 11db513705 Rename 'capture' button to 'launch' on CaptureDialog to clarify usage 2017-01-26 23:31:56 +00:00
Tiago Rodrigues 472960d92f Add PIX3 event support to D3D12 driver
PIX3 events (from WinPixEventRuntime) are passed as a blob of unformatted parameters which the profiling application must parse and format.
2017-01-26 08:30:47 +00:00
baldurk 74a2da2b11 Handle pixel history for D16 targets directly without failing 2017-01-25 21:48:38 +00:00
baldurk 97aa6281ac Compile fixes for linux 2017-01-25 21:04:57 +00:00
Pierre-Loup A. Griffais 316c7140c2 Update README.md
Reference TODO list in README caveat for Qt UI.
2017-01-25 20:53:03 +00:00
baldurk 503e60b6a5 Fix setting GL_TEXTURE_MAX_LEVEL to number of mips, not #mips - 1
* This resulted in a lot of textures being incomplete, which could cause
  weird problems depending on if mips are used or not.
2017-01-25 20:13:40 +00:00
baldurk e6295fa309 Stub out BufferViewer UI controls, and make camera control properly 2017-01-25 20:13:40 +00:00