Commit Graph

2453 Commits

Author SHA1 Message Date
baldurk 930e013c9f Separate out vulkan current state values to separate proper structure
* This lets us remove a hack for mesh output readback that replays a
  single drawcall with different index count by setting a magic number.
2016-02-07 18:48:09 +01:00
baldurk 521ec84b8b Add pipeline export to HTML for vulkan 2016-02-07 18:48:08 +01:00
baldurk e2f9cffb3d Fix recording image barriers from non-baked command info 2016-02-07 18:48:08 +01:00
baldurk 787776f5d3 Fix error firing when printing array constants 2016-02-07 18:48:07 +01:00
baldurk f417cf91ac Draw highlight box with rect clears, remove pipeline, strip VBO, etc 2016-02-07 18:48:06 +01:00
baldurk 60af596280 Implement texture saving via GetTextureData() 2016-02-07 18:48:05 +01:00
baldurk c19a0588b9 Fetch physical device format properties 2016-02-07 18:48:04 +01:00
baldurk 276099d55a Fix SPIR-V disassembly of variable declarations inside control flow 2016-02-07 18:48:03 +01:00
baldurk 984de2f57d Don't unwrap objects being passed to our own functions 2016-02-07 18:48:02 +01:00
baldurk 1348e1a193 Vertex ID isn't dense 0-based, need to rebase and have sparse VB
* This isn't ideal, but compared to streamout/xfb we don't have a
  practical way to do dense output, so need to hope that indices are
  mostly clustered and don't cause too many problems.
2016-02-07 18:48:01 +01:00
baldurk 80efe190b3 Only release buffers/memory that is not already NULL 2016-02-07 18:48:01 +01:00
baldurk c06aeebd3a Crash fix for non-indexed meshes 2016-02-07 18:48:00 +01:00
baldurk 3c8fe0e44a Add notes about where we'd need to handle queue resource sharing
* This won't be handled until after 1.0 (since that's when we'll support
  multiple queue families, etc.
2016-02-07 18:47:59 +01:00
baldurk acb38757cd Add error if flushing an unmapped region of memory 2016-02-07 18:47:58 +01:00
baldurk fa1520bc13 Follow the spec strictly - only coherent memory is 'implicitly flushed'
* Technically coherent memory isn't implicitly flushed either, but this
  is handling is required if memory is mapped, written to, and unmapped
  without ever hitting a QueueSubmit where we will check any current
  coherent map, and treat it as persistent to flush it out.
2016-02-07 18:47:57 +01:00
baldurk 5bb4b0dc13 Mapped memory offsets don't have to be aligned at all
* The guarantee is that the base pointer (ie. returned pointer minus
  offset) is aligned to some value.
2016-02-07 18:47:56 +01:00
baldurk 3b9f4da65a Store resource record length field as uint64_t instead of int32_t 2016-02-07 18:47:55 +01:00
baldurk 04467206cb pool counts seem to be reasonable - remove TODO 2016-02-07 18:47:54 +01:00
baldurk f2d123a0e6 mark VKTODOs to do with GPU/device portability as such
* These won't get addressed before 1.0
2016-02-07 18:47:54 +01:00
baldurk e8ded0d785 Initial state aspect handling incorrectness is much less severe now 2016-02-07 18:47:53 +01:00
baldurk 75a2a4257b Remove VKTODO notes, not needed anymore 2016-02-07 18:47:52 +01:00
baldurk 9bd7ed9d61 Improve text reporting for render pass load/store operations 2016-02-07 18:47:51 +01:00
baldurk 88d7cb4ef1 Add VectorTimesMatrix to disassembly 2016-02-07 18:47:50 +01:00
baldurk cf92126d7c Update mesh output note in future work 2016-02-07 18:47:49 +01:00
baldurk a72ea00210 Free PostVS data on shutdown 2016-02-07 18:47:48 +01:00
baldurk 09f8564c4d Add message if side-effects features aren't available 2016-02-07 18:47:48 +01:00
baldurk fcb822b021 Update release notes - mesh output data is now available! 2016-02-07 18:47:47 +01:00
baldurk e03d5b01c2 Get right number of components for RGB formats 2016-02-07 18:47:46 +01:00
baldurk 48a03ae21f Only fetch the PostVS data needed for this draw, not the whole buffer
* For instanced draws where there are many instance and each instance is
  a lot, this saves fetching a *ton* of redundant data.
2016-02-07 18:47:45 +01:00
baldurk 793d2690c4 Be more aggressive with null'ing/disposing old data, to garbage collect 2016-02-07 18:47:44 +01:00
baldurk 0b17197d79 Do buffer readbacks in vulkan replay with multiple copies
* We allocate a single fixed-sized buffer up front, and then whenever we
  need to readback we copy chunks into it and read them back one at a
  time. This trades off doing single copies (and so fewer GPU syncs)
  against having massive GPU buffer allocations.
2016-02-07 18:47:43 +01:00
baldurk ac575d355d Avoid unnecessary copies/temporaries when returning buffer data 2016-02-07 18:47:42 +01:00
baldurk 0992c05ab9 Fix leaking memory in byte[] marshalling case 2016-02-07 18:47:41 +01:00
baldurk 7af71c60ad Fetch per-instance vertex output data 2016-02-07 18:47:40 +01:00
baldurk 88bb62bde8 Mark instanced draws as instanced 2016-02-07 18:47:40 +01:00
baldurk eabf1969c5 Add some utility functions for dumping/grabbing a file
* I keep rewriting these for debugging all over the place
2016-02-07 18:47:39 +01:00
baldurk abcb20794e Discard negative guessed near planes 2016-02-07 18:47:38 +01:00
baldurk 382031ea01 Ditch ShouldSkipOutput - not needed. Access array parameters properly 2016-02-07 18:47:37 +01:00
baldurk 4f784b07d5 Handle array outputs in SPIR-V, add array index to signature parameter 2016-02-07 18:47:36 +01:00
baldurk 0b61607cc7 When loading a log, default back to buffer view showing VSIn 2016-02-07 18:47:35 +01:00
baldurk c005c51440 Calculate number of unique indices before modifying shader
* This will let us pass that number into the modification function so
  that we can create an array of the exact right size, and also
  calculate the stride per instance
2016-02-07 18:47:34 +01:00
baldurk bd5a6752e2 Use viewport for guessing aspect ratio, not dimensions of depth/colour 2016-02-07 18:47:33 +01:00
baldurk 101d780956 Handle post-vs data being padded/aligned instead of tightly packed 2016-02-07 18:47:33 +01:00
baldurk 8818de4524 Use vertex stride from PostVS data if we're reading it 2016-02-07 18:47:32 +01:00
baldurk c841210e62 Eliminate unused output signature elements like pointsize or clipdist
* They are often brought along with gl_PerVertex, but they're declared
  and never used.
2016-02-07 18:47:31 +01:00
baldurk 852aa3be1d Make sure to invert post-projection y before doing reprojection 2016-02-07 18:47:30 +01:00
baldurk 4361eb83d2 Don't add replay resource ID offset multiple times 2016-02-07 18:47:29 +01:00
baldurk 5cbb2653d3 Save used topology BEFORE setting it to point list 2016-02-07 18:47:28 +01:00
baldurk 06549f2647 Set point size when rendering meshes 2016-02-07 18:47:27 +01:00
baldurk ad813afd0d Fetch shader mesh output data from indexed drawcalls 2016-02-07 18:47:26 +01:00