Commit Graph

2598 Commits

Author SHA1 Message Date
baldurk 83c2ecd77c Check sampled on images before indirecting to the base type. 2016-02-07 18:50:19 +01:00
baldurk b80ea399a3 DbgCreateMsgCallback doesn't need wrapping
* When validation layers & RenderDoc play nicely together, then we can
  just create our own callback for serialising any debug messages.
2016-02-07 18:50:18 +01:00
baldurk 6efabefb43 Better handling of pipeline cache data
* On get we return valid but basically empty caches.
* We prevent any caches making it to the driver.
* Also our UUID is a bit more sane, it's "rdocTIMESTAMP" instead of
  just random numbers. Still not going to clash and still unique every
  run to prevent valid apps from trying to reuse a cache.
* This is better as VK_INCOMPLETE is actually the wrong error code to be
  returning.
2016-02-07 18:50:17 +01:00
baldurk c915f80675 Hopefully proper extension handling now for WSI extensions too 2016-02-07 18:50:16 +01:00
baldurk 3999dcdf73 Make sure device and queue are referenced as they're required on replay
* Helps with niche corner cases like empty frames with just a present.
  Without this, the queue isn't included and we get crashes on replay.
2016-02-07 18:50:15 +01:00
baldurk 2107b2fe55 Handle push/pop markers when inserting via queuesubmit
* This allows push/pop regions to cross command buffers, as long as they
  are submitted in the right order etc.
2016-02-07 18:50:14 +01:00
baldurk 69409f9ea4 Properly unwrap parameters to vkResetCommandPool 2016-02-07 18:50:13 +01:00
baldurk 5b2806f573 Add check for vulkan 2016-02-07 18:50:13 +01:00
baldurk e22d62dabd Add formatting of complex buffers when opening viewer 2016-02-07 18:50:12 +01:00
baldurk a41104bbd0 Display/report compute resources correctly 2016-02-07 18:50:11 +01:00
baldurk d98a9ef4ae SPIR-V should fill out read only and read write resources separately 2016-02-07 18:50:10 +01:00
baldurk 85858da14d Use the right slot number for opening constant buffers 2016-02-07 18:50:09 +01:00
baldurk 8e089a8768 Mark dispatches as drawcalls and fixes for CS pipeline state 2016-02-07 18:50:08 +01:00
baldurk f93f5c8d89 Disassemble SSBOs separately from UBOs in SPIR-V 2016-02-07 18:50:07 +01:00
baldurk a06bd1de5e Fix for not replaying individual dispatch properly. 2016-02-07 18:50:06 +01:00
baldurk 6959d45d44 Tweak resource usage menu to group things a little more aggressively 2016-02-07 18:50:06 +01:00
baldurk c8436d3646 Implement resource usage tracking 2016-02-07 18:50:05 +01:00
baldurk c746957fb2 linux compile fixes 2016-02-07 18:50:04 +01:00
baldurk 55f866bfd5 Add hook skip checks for AMD's and Intel's dlls
* Although it's not been a problem until now like NV's, best to be safe
  rather than sorry!
2016-02-07 18:50:03 +01:00
baldurk 43c9782d44 Delete unused variable 2016-02-07 18:50:02 +01:00
baldurk 8eac6d9265 Remove rule for .spvo in Makefile that isn't used anymore 2016-02-07 18:50:01 +01:00
baldurk 19e30f3bdc Update json name to linux Makefile-generated json file 2016-02-07 18:50:00 +01:00
baldurk de082c5c9f Update build scripts and distribution to package json and layer regkey 2016-02-07 18:50:00 +01:00
baldurk 258e08f740 Add a UI to prompt the user to install the vulkan implicit layer
* I don't like the fact that it doesn't "just work" but this is mostly
  limited by design decisions on the side of the vulkan loader.
* There is no good way with the loader to say 'please also include this
  layer in the enumerated lists'. There is an all-or-nothing override of
  layer searching, but that would break any layers the application might
  actually rely on.
* On balance I've decided to go with this method, as it's a one-off
  interruption for the user (unless someone is constantly switching
  between installs).
2016-02-07 18:49:59 +01:00
baldurk 514967ccd2 Win32 compile fixes (and some replay proxy fixups) 2016-02-07 18:49:58 +01:00
baldurk 9ac8c365ee Refactor env var handling, to handle layer as implicit 2016-02-07 18:49:57 +01:00
baldurk 1398b9fb56 Rejig extension handling and implement VK_LUNARG_DEBUG_MARKER support
* The WSI extensions should probably route through this method too
2016-02-07 18:49:56 +01:00
baldurk 52afa614c8 No longer true I think 2016-02-07 18:49:55 +01:00
baldurk 31502b0186 Drawcall timings now mostly supported 2016-02-07 18:49:54 +01:00
baldurk e1a37d4616 Reorganise hierarchy so that vkQueueSubmit is just labels
* Rather than explicitly having vkQueueSubmit as a node with command
  buffer children, and those with the contents, we now inline everything
  and just add labels at beginning and end.
* Also tweaked slightly the fake pass algorithm to handle labels being
  present and merging a bit more aggressively to merge adjacent command
  buffers that are doing the same pass.
2016-02-07 18:49:53 +01:00
baldurk 24f9f487c2 Track state during reading on per-cmd buffer basis
* The command buffer chunks can be interleaved so we can't track just
  using the one render state.
2016-02-07 18:49:52 +01:00
baldurk ee175febb8 Add initialisers for a couple of missing things in pipeline state 2016-02-07 18:49:52 +01:00
baldurk b4fb266af9 Generate linux json from windows json, to avoid having two files
* The linux json file has a different name but this isn't important.
  Currently I'm not sure how the json/lib will be placed (will it be
  installed somewhere and the json point at /opt/renderdoc/ or what?)
2016-02-07 18:49:51 +01:00
baldurk bb2394183c Add ability to re-record all cmd buffers (for whole-frame timing) 2016-02-07 18:49:50 +01:00
baldurk 8134642812 Let drawcall callbacks specify that all cmd buffers should be re-done 2016-02-07 18:49:49 +01:00
baldurk 4814c58ab8 Rename *Partial* funcs to Rerecord, as it won't be just partial
* When doing a full-frame counter record, we will rerecord every command
  buffer.
2016-02-07 18:49:48 +01:00
baldurk 251a9773c2 remove min/max event IDs from FetchCounters - always times whole frame 2016-02-07 18:49:47 +01:00
baldurk 8cf39364f5 Set outputs/depthOut values in FetchDrawcalls 2016-02-07 18:49:46 +01:00
baldurk 0a4957320d Implement GPU counters via timestamp query pools 2016-02-07 18:49:45 +01:00
baldurk b024786cc2 When doing a partial replay of a subsection, explicitly jump to each EID
* The reason being that the actual recorded events are interleaved with
  others (either on the queue or the cmd buffer), so we have to skip
  over those. The events are duplicated where they are inserted by EID
  and refer to the original offsets.
2016-02-07 18:49:44 +01:00
baldurk 4d7f7fe357 Don't disable depth/stencil tests, only writes 2016-02-07 18:49:43 +01:00
baldurk 794065eedb Crash fix 2016-02-07 18:49:43 +01:00
baldurk db22eb64fb Implement quad overdraw display modes (not quite 100% yet) 2016-02-07 18:49:42 +01:00
baldurk d8f8a97c9e Don't do single draw via ReplayLog if we're doing it directly 2016-02-07 18:49:41 +01:00
baldurk 00e0946112 Support initing postvs for a whole pass via a per-draw callback 2016-02-07 18:49:40 +01:00
baldurk 7aca368cc7 Fix resourceformat check (was 'working' before because null != null) 2016-02-07 18:49:39 +01:00
baldurk ca6eee8b8f Remove start event ID from replaylog call.
* Any uses of this for replaying subsections of the frame are to be
  implemented under the replay driver level, as it's too onerous to
  require that the replay driver be able to replay arbitrary subsections
  or to communicate granularity up to the above layer.
2016-02-07 18:49:38 +01:00
baldurk e05614c6bf Set up drawcall previous/next/parent IDs in replay drivers 2016-02-07 18:49:37 +01:00
baldurk 459196fd21 Shift responsibility for 'whole pass' type processing to replay drivers
* Note, currently broken as the drivers don't have previous/next EIDs
  set up on their drawcalls
2016-02-07 18:49:36 +01:00
baldurk b2bbe4541a Length in vkCmdPushConstants is in byte units (but multiple of 4) 2016-02-07 18:49:35 +01:00