Commit Graph

8038 Commits

Author SHA1 Message Date
baldurk e511ae1e3e Add debug logging around replay proxy, and more error/integrity checking 2018-10-12 18:29:11 +01:00
baldurk e6d2f13a0d Handle TIMEDOUT the same as WOULDBLOCK when doing blocking recv/send 2018-10-12 17:30:18 +01:00
baldurk abd8c8e640 Add EPIPE error message 2018-10-12 16:30:25 +01:00
baldurk 005dcc693c Fix incorrect comment on VK_MVK_moltenvk extension enable 2018-10-12 15:27:05 +01:00
baldurk 48af22530c Fixes for flattened single-draw indirect draws 2018-10-12 13:04:57 +01:00
baldurk 648d261185 Add FREE_DESCRIPTOR_SET_BIT when creating pool that we'll free from 2018-10-12 13:00:28 +01:00
baldurk 3766c43ee5 Fix path conversion to windows paths when preparing symbols 2018-10-12 11:25:45 +01:00
baldurk 13e03b79b5 Add typename for template parameter 2018-10-11 19:45:57 +01:00
baldurk 9872b87e7b Remove extra \ that snuck into code 2018-10-11 19:40:23 +01:00
baldurk 03cddbf283 Add support for VK_KHR_create_renderpass2 2018-10-11 19:18:36 +01:00
baldurk d8dc4d95ec Add support for VK_KHR_shared_presentable_image 2018-10-11 19:18:35 +01:00
baldurk 2b7070eddf Allow a few EXT & IHV vulkan extensions
* VK_EXT_astc_decode_mode
* VK_EXT_swapchain_colorspace - this will cause slight artifacts as we won't
  interpret pixels in the right color space, but it's minor.
* VK_EXT_validation_cache - we don't serialise this but we do allow it during
  capture and pass-through straight. We don't wrap the VkValidationCacheEXT
  object at all which makes support simpler.
* VK_EXT_external_memory_dma_buf - this is just a new memory type for external
  memory, we don't need to do anything special to handle it.
* VK_AMD_mixed_attachment_samples & VK_AMD_shader_core_properties - these are
  no-op once enabled
* Many shader-only extensions:
  - VK_AMD_gpu_shader_int16
  - VK_AMD_shader_fragment_mask
  - VK_AMD_image_load_store_lod
  - VK_AMD_texture_gather_bias_lod
  - VK_NV_compute_shader_derivatives
  - VK_NV_fragment_shader_barycentric
  - VK_NV_geometry_shader_passthrough
  - VK_NV_sample_mask_override_coverage
  - VK_NV_shader_image_footprint
  - VK_NV_shader_subgroup_partitioned
  - VK_NV_viewport_array2
2018-10-11 19:18:02 +01:00
baldurk 48f4ac3edb Re-fetch original function pointers if hooked DLL reloads somewhere else 2018-10-11 14:58:50 +01:00
baldurk bd394bdd74 Allow VK_KHR_incremental_present
* Untested, but present regions shouldn't affect our operation.
2018-10-11 14:58:49 +01:00
baldurk a4c12e7fa2 Add special case when the count/maxcount for indirect draw is 0. 2018-10-11 14:58:49 +01:00
baldurk 0bbf24bede Add support for VK_KHR_draw_indirect_count 2018-10-11 14:58:49 +01:00
baldurk 4042dcab68 Use StructuredSerialiser to create fake objects for indirect calls 2018-10-11 14:58:49 +01:00
baldurk 4e9c42e250 Add serialisers for indirect draw structs 2018-10-11 14:58:49 +01:00
baldurk 6744802a53 Add StructuredSerialiser which allows serialising to SDObjects directly 2018-10-11 14:58:48 +01:00
baldurk 9ff71eb175 Readback indirect draw arguments and patch in later. Closes #1066
* This reads the argument once during load exactly when the draw itself
  executes. We read just before the draw in case the draw itself would modify
  the params (which is likely invalid, but something we should avoid).
2018-10-11 14:58:48 +01:00
baldurk eec6efc692 Add default case to switch statement 2018-10-11 12:19:06 +01:00
baldurk a6714f4e82 Use correct context to flush with 2018-10-11 11:14:05 +01:00
baldurk ccf85076b7 Add context flush to MSAA -> Array copy. Refs #1119
* The previous flush was in Array -> MSAA which is not used during capture.
2018-10-11 11:09:37 +01:00
baldurk b9b194aa9e Fix natvis for structured data 2018-10-11 11:09:37 +01:00
baldurk d7b4609cbe When formatting storage buffers in vulkan there's no root struct to skip 2018-10-11 11:09:37 +01:00
baldurk 873d6e4d0a Set previous/next pointers on marker drawcalls
* Even if marker drawcalls aren't themselves in the linked list, it's very
  convenient to have their previous/next link to the next node on the list
  itself, so that if you search and find one from the list of drawcalls you'll
  still be able to iterate normally.
2018-10-11 11:09:37 +01:00
baldurk dbf1ca9ffe Allow KHR_shader_atomic_int64 and KHR_driver_properties extensions
* These are pass-through, needing no co-operation to capture and nothing needed
  for replay.
2018-10-11 11:09:37 +01:00
baldurk 2260ff3a75 Update vulkan headers to 1.1.87 2018-10-11 11:09:37 +01:00
baldurk 0282c9a685 Fix pipeline state highlighting of disabled input attributes
* Using the row index is not accurate when some input attributes are disabled,
  because they won't match up to the original index in the attributes list.
2018-10-11 11:09:36 +01:00
baldurk b91d19e316 Generate better buffer format strings when opening VB or IB buffer views 2018-10-11 11:09:36 +01:00
baldurk 5472319025 When opening buffer textures, auto-generate a reasonable buffer format. 2018-10-11 11:09:36 +01:00
baldurk 0863371852 Ensure re-usable cbuffers are large enough for all uses
* The overdraw ramp was too large!
2018-10-11 11:09:36 +01:00
tabi.katalin 369d93b99c Cycle active window with button
A new button is added to the UI so that we can cycle the currently active window when there are more windows to capture.  It's like pressing the F11 button but it works on Android too.
2018-10-10 10:19:43 +01:00
baldurk c132142723 Remove unused lambda capture variable 2018-10-08 19:30:56 +01:00
baldurk a4c60f9f5b Remove RGP source from CMakeLists.txt 2018-10-08 18:48:50 +01:00
baldurk cd1e9c2fb8 Experimentally flush GPU after each part of MS<=>Array copy. Refs #1119 2018-10-08 18:47:25 +01:00
baldurk 1dd4eb4410 Fetch computer shader thread/group declared inputs to input signature
* This helps match up inputs for shader debugging when high-level variables have
  to match up to a particular fixed input.
2018-10-08 17:45:09 +01:00
baldurk 615b743b8e Make shader debugging soft-blocking, pop up progress bar while working
* This prevents the user from accidentally triggering some other process while
  the debug is still on-going, if it's taking a while.
2018-10-08 17:24:00 +01:00
baldurk 4deb5dae60 Don't display progress dialog if process has already finished. 2018-10-08 17:20:38 +01:00
baldurk 41d1acc47a When tracking state, only track current command buffer. Closes #1123
* In particular, when tracking a secondary command buffer we don't want to
  accidentally track state changes to the primary command buffer that may have
  happened after the secondary was recorded and should not override its state.
2018-10-08 15:37:50 +01:00
baldurk 16b73001d9 Explicitly free descriptor sets in PostVS fetch to help tracking 2018-10-08 15:18:43 +01:00
baldurk a6dda66c57 Remove compiled-in DevDriverAPI, load dll to access API 2018-10-08 14:07:44 +01:00
baldurk a41d1c89c0 Unwrap resource when replaying SetResourceMinLOD 2018-10-08 11:45:06 +01:00
baldurk b39fa104cc Use atomic flag to prevent any recursion during dlopen. Refs #1120 2018-10-08 10:52:42 +01:00
baldurk b39c59f612 Fix copy-paste error that prevented loading version 5 D3D12 captures 2018-10-08 10:33:25 +01:00
baldurk 1624a3c96a Fix compilation on 32-bit 2018-10-05 19:08:54 +01:00
baldurk 045192bf9d Invoke renderdoccmd as root on linux to install vulkan layer, not Qt UI
* On linux sometimes you can't invoke a GUI application as root. To work around
  this, we use renderdoccmd to register the layer if it's available, or fail if
  it isn't.
2018-10-05 18:17:00 +01:00
baldurk 1bd014247d Add -- separator when running kdesudo or gksudo 2018-10-05 18:17:00 +01:00
baldurk 046ca0ad12 Document RenderDoc controlling API validation while active. Closes #1121 2018-10-05 18:17:00 +01:00
baldurk 1f961f44d1 Apply backbuffer view format fixup to UAVs. Closes #1104 2018-10-05 18:17:00 +01:00