Commit Graph

4794 Commits

Author SHA1 Message Date
baldurk e596e85f31 Remove VK_LAYER_LUNARG_monitor layer during replay. Refs #490 2017-01-17 10:50:14 +00:00
Alex Smith 6e2fc42cbd qrenderdoc: Show currently selected event in the API inspector
Currently, selecting an event with children (e.g. vkCmdExecuteCommands)
in the event browser will cause the API inspector window to show the
final child event, rather than the event itself. This behaviour makes
sense everywhere else: selecting an event with children shows the state
after all children have completed.

However, for the API inspector, we want to be able see API calls for
the parent event when it is selected rather than those of its last
child, particularly in the case of vkCmdExecuteCommands which may have
other API calls leading up to it.

To allow this, distinguish between the "current event" and "selected
event". For an event with children, the former refers to the last
child, while the latter refers to the event itself. ILogViewerForm now
has two separate event callbacks for when either one changes.

The API inspector now makes use of the selected event, while everything
else continues to use the current event.
2017-01-14 20:23:51 +00:00
Michael Rennie ba30bc0a57 Fix editing compute shader modules, with new MakeComputePipelineInfo().
Before editing a pipeline, we need to recreate its creation info struct.
Compute pipelines have their own VkComputePipelineCreateInfo instead of
VkGraphicsPipelineCreateInfo, and we now make that distinction.
2017-01-13 16:28:54 +00:00
baldurk 4e665d445f If a texture is typeless, use type hint to check if it's int/uint 2017-01-12 13:15:32 +00:00
baldurk 01c3a76625 Apply the type hint when displaying pixel values in texture viewer 2017-01-12 13:15:32 +00:00
baldurk 94b34f6718 Fix a crash if a connection fails to start very early 2017-01-11 17:23:39 +00:00
baldurk b558cd4af4 Check top-level stride of buffers to know if we need to pad. Refs #485 2017-01-11 17:23:39 +00:00
baldurk 34b4cee42c Add markers during replay to make it easier to self-debug 2017-01-11 17:23:39 +00:00
baldurk 9077203f71 Always allocate at least 2048 slots for pixel history
* This means that any 'degenerate' cases of only one event or so on will
  still have enough slots to be able to handle reasonable amount of
  overdraw. The only case that will fail is if every event has loads of
  hits, but on average there should be enough slots allocated.
2017-01-11 17:23:39 +00:00
Alex Smith 6358517ac2 Add missing strings for VK_PIPELINE_STAGE_ALL_{GRAPHICS,COMMANDS}_BIT 2017-01-11 16:51:34 +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 029ffec6e6 Do shader debugging without replaying the capture at all
* This requires that every operation on output windows leaves the state
  untouched, so make a few changes to arrange that.
* By doing this it means any unstable/non-deterministic results are
  consistent between the current capture inspection and the shader
  debug results.
2017-01-09 18:15:26 +00:00
baldurk 7e26f97f17 Update CONTRIBUTING document with better guidelines for larger changes 2017-01-09 15:14:51 +00:00
baldurk 7947361345 Compress README a bit for readability's sake 2017-01-09 13:19:27 +00:00
baldurk 10053b8be8 Update docs to mention that Vulkan/D3D12 don't support Map() verifying 2017-01-09 11:42:47 +00:00
baldurk ffbb2da206 As a hack, only check AMD driver for broken texelFetch on windows
* Without this, the RADV open source driver also gets checked, and its
  version is 0.0.1 so it gets marked as buggy.
* Unfortunately there's not a great way to identify different drivers
  for the same piece of hardware (ie. PCI IDs are the same).
2017-01-09 11:31:55 +00:00
baldurk 3bfbd1c6ac Only create VK Array <-> MS copy shaders if device has required features 2017-01-09 11:31:02 +00:00
baldurk 9a3dfd107c Implement Map() pointer verification for OpenGL 2017-01-09 11:19:52 +00:00
baldurk 4d00722f57 Add tinyfiledialogs from tinyfiledialogs.sf.net for x-platform messages
* Added a couple of very minor warning suppressions for VS. To do with
  casts between size_t and int or char const * and int.
2017-01-09 11:19:15 +00:00
baldurk 1be5289fec Ensure floats are written to sampling program as accurately as possible 2017-01-06 15:42:41 +00:00
baldurk c088c9186d Use the same component for all components in a shift 2017-01-06 15:41:41 +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 88b4fc92db Make sure to mark buffers dirty if a clear of their data isn't recorded 2017-01-06 12:13:32 +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 00566622e3 Detect and drop calls setting a GPU virtual address of 0 2017-01-06 10:33:36 +01:00
baldurk 58a5182555 Remove spammy 'error', that could be triggered from just unused entries 2017-01-05 21:44:14 +01:00
baldurk 5b199d55d7 Don't issue occlusion or statistics queries on non-direct command lists 2017-01-05 21:37:37 +01:00
baldurk 67450b6180 Use original allocators when re-recording all commands. Refs #457
* We have to use the original allocators when re-recording because the
  capture may record multiple command buffers at the same time,
  requiring multiple allocators.
2017-01-05 18:55:45 +01:00
baldurk 0981a1e099 Fix single flush validate with combined initial state list use 2017-01-05 18:54:32 +01:00
baldurk 11a3e65654 Make sure we don't index into empty RTs array with rtSingle. Refs #482 2017-01-05 18:54:18 +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 66ee279e9c Fix overlay handling in vulkan interacting badly with subpasses
* This fixes a crash that was reported via the crash handler
2017-01-04 18:52:01 +00:00
baldurk 299e427503 Include D3D12 docs page in the table of contents 2017-01-04 17:11:52 +00:00
baldurk 78706d3d01 Init copyheap after checking for errors
* This doesn't actually fix any problems, but a couple of crash reports
  exposed the fact that we try to use the result of CreateDescriptorHeap
  before checking for errors - this leads to a crash and hides the real
  problem.
2017-01-04 16:56:12 +00:00
baldurk 52cbc802a1 Fix crash if D3D12 capture has no initial states at all
* Located via a crash report - if there are no initial states in a
  capture at all, then initStateCurList will still be NULL after trying
  to apply them.
2017-01-04 16:55:29 +00:00
baldurk a4ebf68e9d Fix format string - IDs are 64-bit 2017-01-04 16:54:54 +00:00
baldurk 079cc7a8db Protect against invalid buffers being bound to GL
* Should fix a reported crash - it looks like an invalid buffer ID was
  passed, and there's no protection for this.
* As with other invalid API use, RenderDoc isn't intended to be totally
  safe against bad API use. This check is easy to add though and should
  catch some simple cases.
2017-01-04 16:54:33 +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
baldurk 4a2e901807 Don't display pixel context right-click context menu if no log is loaded
* This fixes an uploaded crash, where this context menu could launch
  operations that crash without a capture to work on.
2017-01-04 16:45:54 +00:00
baldurk 8256a00e1e Further crash prevention - ensure area is not empty
* The last fix to this file wasn't complete - both width and height must
  be greater than 0 for the area to be valid to fill.
* Fixes an uploaded crash report.
2017-01-04 16:45:19 +00:00
baldurk f2d3c04a73 Make sure quad overdraw texture is always at least 1x1 in size
* Fixes a crash reported through the crash uploader.
2017-01-04 16:44:40 +00:00
baldurk 116903a8a3 Add some friendlier printing to the travis log for clang-format failures 2017-01-04 16:29:00 +00:00
baldurk 168b742653 Tidy up scripts a bit and add 'set -ev' to make them more robust 2017-01-04 16:28:59 +00:00
baldurk d2396ad854 Build docs target with sudo: false to magically fix it 2017-01-04 16:28:52 +00:00
Jake Turner d7f8a0236f Split travis file into helper scripts. Added OSX build.
* Setup and helper script per build target, currently: docs, linux & osx.
2017-01-04 13:54:59 +00:00
Jake Turner 0d52eeed35 Fixed OSX clang compile error (from -Wtautological-compare) 2017-01-04 13:54:59 +00:00
Jake Turner a91c355062 Remove qt warning settings and use renderdoc ones
Disable warnings in qt (warn_off) then remove -w from qt compiler flags
to re-enable previous renderdoc warnings
Use qt standard way to enable c++11 eg CONFIG += c++11
2017-01-04 13:54:59 +00:00
Michael Rennie aa5ec25270 Fix thumbnail generation for eSpecial_R5G6B5 & eSpecial_R5G5B5A1. 2017-01-04 13:02:47 +00:00