Commit Graph

2440 Commits

Author SHA1 Message Date
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
baldurk a766148fa3 Make sure output buffer and its members are properly aligned 2016-02-07 18:47:26 +01:00
baldurk ca2efadf67 Move GetBufferData into debug manager 2016-02-07 18:47:25 +01:00
baldurk f5cc277322 Render object as point list when dumping output data 2016-02-07 18:47:24 +01:00
baldurk a1b034a58e Correctly handle position being output or not 2016-02-07 18:47:23 +01:00
baldurk f1b1799ef3 Handle shaders with an empty output signature 2016-02-07 18:47:22 +01:00
baldurk 4ee317566e Type IDs are not allowed to alias in SPIR-V 2016-02-07 18:47:21 +01:00
baldurk 1b936f6269 Render secondary drawcalls in mesh view 2016-02-07 18:47:20 +01:00
baldurk a5be2b4f48 Add post-vertex mesh data fetching. Not complete, but proof-of-concept 2016-02-07 18:47:19 +01:00
baldurk cf13662804 Rename struct since VS seems to incorrectly alias it with Vulkan struct 2016-02-07 18:47:18 +01:00
baldurk 2ce192ef3c Return mapped pointer when going through wrapped vkMapMemory on replay 2016-02-07 18:47:17 +01:00
baldurk 4d8013ff09 Fetch live pipeline layout when replaying vkCmdPushConstants 2016-02-07 18:47:17 +01:00
baldurk 10313415d9 Don't combine load/stores for non-function variables 2016-02-07 18:47:16 +01:00
baldurk 33f3f3b6de A bit nicer nameless struct naming 2016-02-07 18:47:15 +01:00