Commit Graph

38 Commits

Author SHA1 Message Date
baldurk bb2394183c Add ability to re-record all cmd buffers (for whole-frame timing) 2016-02-07 18:49:50 +01:00
baldurk db22eb64fb Implement quad overdraw display modes (not quite 100% yet) 2016-02-07 18:49:42 +01:00
baldurk 290b695a6b Linux compile fixes 2016-02-07 18:49:33 +01:00
baldurk 46ed34b599 Implement caching of SPIR-V compiled shaders 2016-02-07 18:48:58 +01:00
baldurk 4a2fe2d563 Update debug code to compile, and remove on-disk compiled SPIR-V blobs
* We'll compile in-memory now (and implement a user-side caching system
  like we have with D3D).
2016-02-07 18:48:34 +01:00
baldurk 3649fc4134 Fix core compiling 2016-02-07 18:48:30 +01:00
baldurk 75a31f9f09 Rename VkCmdBuffer -> VkCommandBuffer 2016-02-07 18:48:15 +01:00
baldurk f417cf91ac Draw highlight box with rect clears, remove pipeline, strip VBO, etc 2016-02-07 18:48:06 +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 ca2efadf67 Move GetBufferData into debug manager 2016-02-07 18:47:25 +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 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
baldurk ba8114936e Render mesh displays as 4x MSAA to make the line rendering a bit nicer 2016-02-07 18:46:23 +01:00
baldurk d77dcf680a Implement viewport/scissor overlay 2016-02-07 18:46:21 +01:00
baldurk d5aa1da377 Implement histogram and min/max fetching via compute 2016-02-07 18:46:17 +01:00
baldurk 7441a3dc1e Don't have two overloads that are ambiguous on pointer param 2016-02-07 18:46:16 +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 2d912ebe6a Keep mesh shaders/modules around for creating pipelines on the fly 2016-02-07 18:46:03 +01:00
baldurk 63e0cc3f39 Use correct uniform buffer alignment instead of hardcoded 256 2016-02-07 18:44:42 +01:00
baldurk c1959102c8 Rename GenericPipeline to HighlightBoxPipeline as it uses line lists 2016-02-07 18:44:38 +01:00
baldurk 24aa8b3daf Remove singleton from VulkanResourceManager, pass it where needed 2016-02-07 18:44:30 +01:00
baldurk 944bad84b9 Set a compatible renderpass on graphics pipeline creation 2016-02-07 18:44:17 +01:00
baldurk 6ec36d6695 Implement drawcall highlight and wireframe texture overlays 2016-02-07 18:44:15 +01:00
baldurk fb65217a10 Do overlay render (for now just fixed colour) 2016-02-07 18:44:10 +01:00
baldurk 4b33e0957d Ring buffer tex display descriptor sets, so multiple images can be drawn
* Otherwise the UpdateDescriptorSet for the second render overwrites the
  descriptor for the first render without a sync&flush in between.
2016-02-07 18:44:09 +01:00
baldurk 11ce77e8cd Ring buffer UBO updates to avoid needing to flush after each use
* Make each UBO N times larger, and map subsets of them in ring-buffer
  fashion. Use dynamic offsets to specify the right subset.
2016-02-07 18:44:08 +01:00
baldurk ff26fabc7f Batch up internal queue submits with multiple cmd buffers
* Also avoids a couple of unnecessary QueueWaitIdle CPU-GPU syncs
2016-02-07 18:43:53 +01:00
baldurk e841bd9969 Implement proper pixel picking via RenderTexture & F32 readback 2016-02-07 18:43:32 +01:00
baldurk d48fb6ece4 Update WSI to new extension. Also misc structs, functions and enums 2016-02-07 18:42:45 +01:00
baldurk a214e9bdec Remove dynamic state objects 2016-02-07 18:42:43 +01:00
baldurk ac44765bd7 Implement highlight box rendering 2016-02-07 18:42:37 +01:00
baldurk db74a097dd Remove hardcoded display of backbuffer, instead display specified tex
* Currently will only work for 2D textures though
2016-02-07 18:41:20 +01:00
baldurk 45fc32614a Remove pipeline cache as it is optional and causes duplicate wrappers
* The same ICD in the SDK just returns '1' as the handle for all caches.
* This could be valid behaviour (not for caches but for other objects)
  so need to check where this could happen and handle it. We already do
  for queues, physical devices, and a couple of others.
2016-02-07 18:40:50 +01:00
baldurk 442386b84a Add text-rendering support for in-application renderdoc overlay 2016-02-07 18:39:48 +01:00
baldurk ad185a4042 A couple of runtime fixes, and create renderpass & framebuffers in-app 2016-02-07 18:39:47 +01:00
baldurk 332a281291 spin off 'debug data' into separate class so it can be used in-app 2016-02-07 18:39:47 +01:00