Commit Graph

2326 Commits

Author SHA1 Message Date
baldurk 7441a3dc1e Don't have two overloads that are ambiguous on pointer param 2016-02-07 18:46:16 +01:00
baldurk f659346399 Don't fetch pipeline cache record from handle that can be NULL 2016-02-07 18:46:15 +01:00
baldurk d539ada699 Add easy code to add validation layers on replay 2016-02-07 18:46:14 +01:00
baldurk d4aa8d4b94 Fix debug callback - should have a return value of VkBool32 2016-02-07 18:46:13 +01:00
baldurk 5c97b1b802 Creating geometry shaders works better if you pass the right SPIR-V... 2016-02-07 18:46:13 +01:00
baldurk 15ec34d3fd Update release notes - mesh preview works 2016-02-07 18:46:12 +01:00
baldurk 1f762f51d0 Implement vertex highlighting and helpers for mesh view 2016-02-07 18:46:11 +01:00
baldurk 879df25850 Implement mesh rendering (wireframe and solid) 2016-02-07 18:46:10 +01:00
baldurk 5fdc74d34b Fix for replaying Begin/EndRenderPass draws 2016-02-07 18:46:09 +01:00
baldurk b93b8eb662 Tweak debug callback print 2016-02-07 18:46:08 +01:00
baldurk c1f87201bb Fix some debug validation layer errors 2016-02-07 18:46:07 +01:00
baldurk b09bc089ef Make sure DisplayMesh() at least does some kind of render 2016-02-07 18:46:06 +01:00
baldurk 743438d5bd Initialise resource pointer to NULL 2016-02-07 18:46:05 +01:00
baldurk b985c5c67b Add MakeVkFormat and MakeVkPrimitiveTopology functions 2016-02-07 18:46:04 +01:00
baldurk 24bd8db521 Add a max count to SolidShadeMode enum 2016-02-07 18:46:04 +01:00
baldurk 2d912ebe6a Keep mesh shaders/modules around for creating pipelines on the fly 2016-02-07 18:46:03 +01:00
baldurk b51b50329f Add mesh shaders to project 2016-02-07 18:46:02 +01:00
baldurk bebcf1b781 Remove unneeded members 2016-02-07 18:46:01 +01:00
baldurk b0cb49369a Implement creating and clearing depth buffer on output windows
* Not really tested, need to implement mesh rendering first
2016-02-07 18:46:00 +01:00
baldurk be73ee1262 Tweak release notes 2016-02-07 18:45:59 +01:00
baldurk 0f0ade44ae Implement descriptor set copies 2016-02-07 18:45:58 +01:00
baldurk 0b38e895e7 Fix error identifying NULL resource for frame record 2016-02-07 18:45:57 +01:00
baldurk c510a55bfa Do some tidy up with initial state buffer serialisation
* Remove redundant buffer allocation and copy, deserialise straight into
  the mapped memory that we allocate.
* Get memory allocation size from buffer correctly rather than assuming
  the buffer size will be identical (it probably will be, but still).
2016-02-07 18:45:57 +01:00
baldurk e2c7f7469f Remove VKTODO noise from initial state temporary buffers/flushing 2016-02-07 18:45:56 +01:00
baldurk 9059ef2dc1 Create a buffer bound to the whole of each devicememory
* This is used in initial state application for buffer copies without
  needing to create temporary buffers bound to the memory.
2016-02-07 18:45:55 +01:00
baldurk a27d67d49d Remove VKTODOs for tasks being post-poned to after 1.0
* Multiple device handling
* Stepping into vkCmdExecuteCommands
2016-02-07 18:45:54 +01:00
baldurk 2decca5f27 Reorganise VkResourceRecord to reduce wasted space
* This reduces the total size from 448 bytes -> 232 bytes, but does mean
  some extra pointer chasing. I'm not sure what the best balance is so
  this will do for now and I'll wait and see if profiling turns up any
  issues.
2016-02-07 18:45:53 +01:00
baldurk 773c1e48e5 Move Subresources into D3D11ResourceRecord, not needed in other APIs 2016-02-07 18:45:52 +01:00
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