Commit Graph

2574 Commits

Author SHA1 Message Date
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
baldurk b3029b6ddf Changed command buffers to be handled properly as pooled objects 2016-02-07 18:49:34 +01:00
baldurk 290b695a6b Linux compile fixes 2016-02-07 18:49:33 +01:00
baldurk a3bf43c852 Tweak cell header merging in buffer viewer to merge all columns
* There's some kind of flickering/lag that goes on when you horizontally
  scroll but it's minor and I can't figure out how to fix it for now.
2016-02-07 18:49:32 +01:00
baldurk e286d34a53 Handle GLSL being passed into shader module creation function 2016-02-07 18:49:32 +01:00
baldurk 599a378d9c Display descriptors by iterating the sets and looking up reflection
* This lets disabled/empty sets be displayed more correctly
2016-02-07 18:49:31 +01:00
baldurk 183919853f Proper null checks in C# operator == 2016-02-07 18:49:30 +01:00
baldurk 0493d661b0 Don't check for wrappers since on capture wrappers aren't registered 2016-02-07 18:49:29 +01:00
baldurk 495a35d44e Don't unwrap the partial result cmd pool 2016-02-07 18:49:28 +01:00
baldurk bc10ce84ba Use semaphores to synchronise unbind/bind of sparse mappings
* For non-image mappings (image opaque and buffer) we unbind the whole
  resource then bind the initial mapping. This means two batches though
  so needs to be synchronised.
2016-02-07 18:49:27 +01:00
baldurk 78d34fe0e6 If we're not adding wrappers during capture, don't remove them either! 2016-02-07 18:49:26 +01:00
baldurk 9f4cc2880d Treat duplicate handles correctly while in replay
* For those types that I think it's valid for them to be duplicated, we
  look up if an existing wrapper is present and if so use that - and
  just use ReplaceResource.
* If it turns out some other types are duplicated, the handling can be
  added easily.
2016-02-07 18:49:25 +01:00
baldurk 0156f641dd Don't add wrappers while capturing - allows duplicate handles in capture
* If we don't add objects into the real->wrapper map, then duplicate
  objects returned from the driver are fine. We will naturally create a
  unique handle for each and we don't have to worry about clashes, as
  the application will see each unique handle and free them separately
  since it's not allowed to *rely* on duplicate handles. Then when they
  destroy the unique handles, we'll end up destroying the duplicates
  multiple times.
2016-02-07 18:49:25 +01:00
baldurk 506c38bcbb Remove use of GetWrapper while capturing 2016-02-07 18:49:24 +01:00
baldurk d64946f5f2 Update generator/module version handling to latest SPIR-V spec 2016-02-07 18:49:23 +01:00
baldurk e0bbed0b34 Pass shader specialization data to pipeline state (just data, not in UI) 2016-02-07 18:49:22 +01:00
baldurk 4b7c33d531 Fixes for vulkan for BGRA changes, add R4G4 special format 2016-02-07 18:49:21 +01:00
baldurk f8df435826 Warn don't assert on VkDeviceQueueCreateInfo having the wrong sType 2016-02-07 18:49:20 +01:00
baldurk e3375d7927 For now, disable the fake non-coherent memory type adding 2016-02-07 18:49:19 +01:00
baldurk 839801e4a6 Save image initial states by slice and by mip, not whole-mip-at-once
* Particularly using the offsets gained from GetImageSubresourceLayout
  could cause problems, so instead we pack the slices and mips into the
  buffer ourselves just using the per-subresource size.
2016-02-07 18:49:18 +01:00
baldurk ae557c5bb3 If a flush is not serialised due to not capturing, mark resource dirty 2016-02-07 18:49:17 +01:00
baldurk 52e90a08e9 Mark resource clean when record is deleted, not when resource is
* This means any resources which we keep around for the duration of the
  frame can be correctly identified as dirty or not.
2016-02-07 18:49:17 +01:00
baldurk bf950e0c00 Be very careful to release our own wrapper before the real resource
* This is because if we release the real resource first, another thread
  could allocate the same resource pointer back and get a double
  wrapper.
2016-02-07 18:49:16 +01:00
baldurk 2678548351 Handle ID for return value not being present without crashing 2016-02-07 18:49:15 +01:00
baldurk 525740303a Don't delete temp array memory 2016-02-07 18:49:14 +01:00