Commit Graph

2658 Commits

Author SHA1 Message Date
baldurk 82faf93a27 Fetch and store array stride with each constant block variable 2016-02-07 18:50:27 +01:00
baldurk a37f9d5242 Add proper image layout transitions for CmdClearColorImage
* Images must be in VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
2016-02-07 18:50:26 +01:00
baldurk 078bd67bec Add a heavy weight global memory barrier around frame restart
* This is reaaaally conservative, but will avoid bugs.
2016-02-07 18:50:26 +01:00
baldurk 9fc96e398a Handle basePipelineIndex correctly (-1 means don't use it) 2016-02-07 18:50:25 +01:00
baldurk 73818e2f87 Explicitly NULL and ignore parts of descriptor writes that aren't used 2016-02-07 18:50:24 +01:00
baldurk 9eed8ff6be Add workaround for current sdk-0.10 loader 2016-02-07 18:50:23 +01:00
baldurk 397f313336 Never mark samplers as write referenced 2016-02-07 18:50:22 +01:00
baldurk f05b32afae Slightly improve automagic pass markers 2016-02-07 18:50:21 +01:00
baldurk b4237f900c Set readwrite/readonly parameters more accurately 2016-02-07 18:50:20 +01:00
baldurk 49a821a7b3 Handle disassembling arrays and unknown ops in parameter to vector shuf 2016-02-07 18:50:20 +01:00
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