Commit Graph

2298 Commits

Author SHA1 Message Date
baldurk cb0ee82c67 Image initial states are supported now :) 2016-02-07 18:45:51 +01:00
baldurk 4847a2e876 Move stepping into vkCmdExecuteCommands to post-1.0
* The solution I have in mind for this will just be too much churn and
  large changes like that should be avoided at this point.
2016-02-07 18:45:50 +01:00
baldurk 4966e4c41e Don't need to serialise vkResetCommandBuffer, just a driver hint
* vkBeginCommandBuffer does an implicit reset if you begin an already
  recorded command buffer, so we can just do our work there.
2016-02-07 18:45:49 +01:00
Greg Fischer 4fbad3d6b5 fix capture when other layers are active. 2016-02-07 18:45:49 +01:00
baldurk fa18e4b291 Serialise out physical device properties in enumerate, for clarity 2016-02-07 18:45:48 +01:00
baldurk c41e317eb4 Silently drop any removals of bind framerefs of stale IDs 2016-02-07 18:45:47 +01:00
baldurk 5b7f60ebe1 Handle CmdWaitEvents by creating an event to set immediately before 2016-02-07 18:45:46 +01:00
baldurk a9bc609e48 Rejig & compact release notes with current status 2016-02-07 18:45:45 +01:00
baldurk 1702172e7e Remove sparse resources from unsupported features 2016-02-07 18:45:44 +01:00
baldurk 6e6a855a33 [Sparse #7] Serialise out the memory for any bound to sparse resources 2016-02-07 18:45:43 +01:00
baldurk 2765de1467 Add drawcall entries for a few copy and clear functions 2016-02-07 18:45:42 +01:00
baldurk 9be607255e [Sparse #6] Implement sparse initial state stubs - page tables only 2016-02-07 18:45:41 +01:00
baldurk fe8440363b [Sparse #5] Implement stubs for updating page tables (opaque or image)
* Not supporting images with arrays or mips for now as that becomes
  more complicated. In theory a page table each, but then need to handle
  mip tail and stuff.
2016-02-07 18:45:41 +01:00
baldurk 28f448ea6f [Sparse #4] Serialise out sparse binding changes that happen mid-frame
* Also add stub calls to update in-memory tracked pages
2016-02-07 18:45:40 +01:00
baldurk 803e626e8d [Sparse #3] Create sparse info structs on resource creation 2016-02-07 18:45:39 +01:00
baldurk 8f3b2c5b00 [Sparse #2] Redirect sparse resources to different initial state stubs 2016-02-07 18:45:38 +01:00
baldurk 702f487170 [Sparse #1] Track memory referencing of sparse resources into queues
* Normal resources have a single memory bind that can be added to frame
  references when the resource is. Sparse resources don't have that easy
  single mapping.
* Calls to MarkResourceFrameReferenced with a 0 ResourceId aren't a
  real problem, but we have to be careful when dirtying resources.
* We don't have to dirty memory that's sparsely bound as we'll dirty it
  as soon as its sparsely bound. We do have to worry about making sure
  that memory is correctly frame referenced.
* To do this command buffers track the sparsemapping structures (will be
  created for all sparse resources) that are referenced underneath them.
  Then at queue submit time the current sparse mapping is iterated and
  all bound memory marked frame referenced.
* For most cases where a buffer is bound or similar, we can directly add
  the sparsemapping from the resource record. For descriptor sets we
  must do this indirectly - by marking any bindframerefs in the descset
  record with a bit indicating that the associated resource is sparse,
  then at submit time when iterating the bindframerefs, taking any with
  the bit set and looking up its record to find the sparsemapping.
2016-02-07 18:45:37 +01:00
baldurk fb5f74ec74 Add function to dump thumbnail from a capture 2016-02-07 18:45:36 +01:00
baldurk 437d350725 Share code between Record and Merge Transitions 2016-02-07 18:45:35 +01:00
baldurk 12843544e2 Rename ImageRegionState members to match VkImageMemoryBarrier members
* This will let us re-use logic on either one in Record/MergeTransitions
2016-02-07 18:45:34 +01:00
baldurk 5990b996e2 Add MergeTransitions function (copy-pasted)
* This will merge recorded transitions from second level command buffers
  into first level command buffers.
2016-02-07 18:45:33 +01:00
baldurk 08d2b871cb Update release notes - vkCmdExecuteCommands will replay as a whole thing 2016-02-07 18:45:33 +01:00
baldurk 5586ae028f Record secondary command buffers and execute as block
* Not supporting image transitions within secondary command buffers, and
  doesn't support partial executes of secondary command buffers on the
  replay side.
2016-02-07 18:45:32 +01:00
baldurk 9fceda593f Fix recording transitions into wrong place on capture 2016-02-07 18:45:31 +01:00
baldurk efc0aa5a08 Mark function as not needing serialised 2016-02-07 18:45:30 +01:00
baldurk a0c5552f55 Update release notes to mark subpasses as nominally supported 2016-02-07 18:45:29 +01:00
baldurk 64aa299090 Store subpasses in creation info, use to fetch active attachments 2016-02-07 18:45:28 +01:00
baldurk 2a6e33ad0e Handle CmdNextSubpass and restore proper subpass on single-draw replay
* Not sure when a renderpass clear effects should be available for an
  attachment that isn't used in the first subpass. At the moment the
  clear doesn't show up until the first draw, but that's not such a bad
  bug even if it's our side rather than driver's.
2016-02-07 18:45:27 +01:00
baldurk 3dcb0411b2 Improve printing of array constants 2016-02-07 18:45:26 +01:00
baldurk fe449eca25 Declare function-local variables better 2016-02-07 18:45:26 +01:00
baldurk c71191906b Don't do any shader viewer work if the log is closed 2016-02-07 18:45:25 +01:00
baldurk b5b8cf574d Handle GLSL (not SPIR-V) being passed to shader module create.
* We can't analyse or reflect it at all, but we should at least pass it
  through.
* Currently invalid but there will probably be extensions that allow
  this, whether or not we'll allow them is a different matter.
2016-02-07 18:45:24 +01:00
baldurk 474c397637 Support push constants, store in pipeline state & restore replaying draw 2016-02-07 18:45:23 +01:00
baldurk d7dae641d2 Tidy up of new image initial state saving 2016-02-07 18:45:22 +01:00
baldurk 9b538c0221 Fixup for multiple mips 2016-02-07 18:45:21 +01:00
baldurk 5d9952cdba Start moving images to do proper copies to buffers for init states 2016-02-07 18:45:20 +01:00
baldurk d36ef2a001 Split out image and memory initial state handling 2016-02-07 18:45:19 +01:00
baldurk 3e332567d6 Pipelines should have created renderpass as a parent 2016-02-07 18:45:19 +01:00
baldurk af8addf20e Display if blend is enabled properly 2016-02-07 18:45:18 +01:00
baldurk c504cc456b Improve printing of begin/end render pass load/store operations 2016-02-07 18:45:17 +01:00
baldurk b363dc1fb5 Vulkan scissor regions are x,y,width,height 2016-02-07 18:45:16 +01:00
baldurk ba95d887f8 Don't remap memory indices for vkAllocMemory while in replay 2016-02-07 18:45:15 +01:00
baldurk 36d2ffd988 Handle super small buffers in buffer viewer without displaying nothing 2016-02-07 18:45:14 +01:00
baldurk 484d70ddbd Display buffers properly in resource list 2016-02-07 18:45:13 +01:00
baldurk 354e64a844 Pass back buffers and buffer information 2016-02-07 18:45:12 +01:00
baldurk 4ece1ed5b3 Handle vtx binds referencing unset vbuffers (valid if binds are unused) 2016-02-07 18:45:12 +01:00
baldurk b2676c2861 Store last swapchain presented and use it instead if none is specified 2016-02-07 18:45:11 +01:00
baldurk d198569313 Make swapchains parents of im and put GetSwapchainImages in swap record 2016-02-07 18:45:10 +01:00
baldurk 58703dd348 Don't try and create our own layer on replay if it was in createInfo 2016-02-07 18:45:09 +01:00
baldurk 2d8a6640eb Update VKTODO with note on blocker 2016-02-07 18:45:08 +01:00