Commit Graph

2429 Commits

Author SHA1 Message Date
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
baldurk dd6adf1774 Make sure to use the right index when considering output skipping 2016-02-07 18:47:14 +01:00
baldurk 7a6d964af3 Keep struct size up to date when skipping non-mesh outputs 2016-02-07 18:47:13 +01:00
baldurk b625c69d1a Allow disassembly if struct isn't named (generate default unique name) 2016-02-07 18:47:12 +01:00
baldurk 4e5cecd3b5 Add SPIR-V disassembly support for runtime-sized arrays 2016-02-07 18:47:11 +01:00
baldurk 1c5a5c9a4b Add functions to get FetchDrawcall by ID from core 2016-02-07 18:47:11 +01:00
baldurk 0120d5cba1 Just used vulkan push range struct - it's POD 2016-02-07 18:47:10 +01:00
baldurk 03a2497c6b Don't display semantic index if it's not needed 2016-02-07 18:47:09 +01:00
baldurk 6077293849 Get input mapping correct (after signatures are sorted) 2016-02-07 18:47:08 +01:00
baldurk 9fbb27dccb Add rest of SPIR-V modification, generate code to dump output to buffer 2016-02-07 18:47:07 +01:00
baldurk 132415fd38 Add a bit of a hack to store which ID/member each output element is for 2016-02-07 18:47:06 +01:00
baldurk 344a4a4d2d Add initial part of injecting code to SPIR-V to dump outputs to buffer
* At the moment it adds the necessary types and decorations etc to
  declare the buffer, but doesn't add any code to write the outputs yet.
2016-02-07 18:47:05 +01:00