Commit Graph

8224 Commits

Author SHA1 Message Date
baldurk 8209b2be46 vulkan json on windows is located adjacent to renderdoc.dll, not exe
* This means the json is still located if we're not running this code from
  qrenderdoc.exe or renderdoccmd.exe
2018-11-26 16:39:00 +00:00
baldurk 26511c546c Make RENDERDOC_NeedVulkanLayerRegistration feasible to call from python 2018-11-26 16:39:00 +00:00
baldurk 8ed9670601 Add way to query for driver version info without replaying.
* This lets us print what driver is available without opening a capture, useful
  for autotest logging.
* We also print the driver version & vendor on capture as well as replay for all
  APIs. Previously we were only printing this reliably on replay for GL/Vulkan
  but it's useful everywhere for post-mortem debugging.
2018-11-26 16:39:00 +00:00
baldurk c4d87ef0d3 Include spirv-as and glslang in SPIR-V plugins 2018-11-23 13:43:57 +00:00
baldurk ef34c13ea2 Add scripts to build SPIR-V plugins
* These are the shader tools we ship with official builds. Most people don't
  need these scripts, but here they are just in case (and so I don't lose them).
2018-11-23 13:34:27 +00:00
baldurk f75b5e235e Change verify map writes capture option to verify buffer access.
* This option will now toggle on the behaviour to fill undefined buffer contents
  with a marker value, both if they're created without data (it will be zero
  filled instead) or mapped with discard (it will keep the old contents
  instead).
* There were too many hard to find problems or misconceptions about the buffer
  filling for it to be useful. Now it will be opt-in instead.
2018-11-23 11:25:39 +00:00
baldurk 667d40382b If window is zero-sized, still bind & clear to black 2018-11-22 19:40:36 +00:00
baldurk ffd24c04d4 Fix memory leak with D3D11 device not being released by intel counters 2018-11-22 19:40:06 +00:00
baldurk 3fa7e0e35f Release pixel picking texture 2018-11-22 19:39:49 +00:00
baldurk 82c5e62934 Don't start overlay marker before commandbuffer has begun 2018-11-22 17:43:45 +00:00
baldurk 7ffdc205ee When rendering depth overlay on Vulkan, set attachment layout correctly 2018-11-22 17:43:23 +00:00
baldurk 790ee7d5f7 Update D3D12 message ID that's now available 2018-11-22 16:55:35 +00:00
baldurk b610cb8d44 Mute annoying and false-positive PIX event messages 2018-11-22 16:55:23 +00:00
baldurk a83dc462f7 Ensure optional interfaces are correctly initialised to NULL 2018-11-22 14:06:19 +00:00
baldurk c3c9f82b87 Require explicit opt-in to enable RGP integration (default is not "0") 2018-11-22 14:05:26 +00:00
baldurk 09d63180d1 Add API option for applications that need access to vendor extensions
* This happens at the application's risk since there's no way to know what
  effect the vendor extension will have or even if it will work together with
  renderdoc's hooking.
2018-11-22 13:00:18 +00:00
baldurk 13538a4b1c Don't show update dialog if update request failed 2018-11-22 12:16:34 +00:00
tuxerr a2c1ef8fd0 add support for VR end of frame markers in vulkan 2018-11-21 11:58:29 +00:00
baldurk 62fc5e5b06 Workaround GCC warning about aliasing 2018-11-20 17:21:22 +00:00
baldurk f415b931c5 Check extension physical device features for availability 2018-11-20 17:12:58 +00:00
baldurk 60855bf8f8 VkPhysicalDeviceShaderImageFootprintFeaturesNV was missed as supported 2018-11-20 17:10:00 +00:00
baldurk 0910de41ad Use VkPhysicalDeviceFeatures2 on replay for patching enabled features 2018-11-20 16:48:59 +00:00
baldurk 648eeaa42e Handle chained physdev feature structs in vkCreateDevice. Closes #1157 2018-11-20 16:34:47 +00:00
baldurk 0eb915447a Handle all sType structures in serialisation, and next chain handling
* In many cases these structs are redundant and currently aren't ever serialised
  directly or valid to be included in next chains. However it's better to take
  the hit now and implement this universally in case new structs are needed in
  future. It's easier to keep up with when new structs are added, and it means
  we have the compiler checking we've handled all structs and don't forget one.
* There are some specific exceptions for structs that really need special
  handling and are just treated as if they're unsupported, on the assumption
  that any special handling will be implemented elsewhere.
2018-11-20 16:28:41 +00:00
baldurk c92a533e84 VkValidationCacheEXT is supported, just not wrapped 2018-11-20 16:28:41 +00:00
baldurk dc002a4ce6 Update vulkan headers to 1.1.93 2018-11-20 16:28:41 +00:00
baldurk 3ff8c0cdb4 Clear indirect copies list after it's been processed at the end of an RP 2018-11-20 10:42:59 +00:00
baldurk b7a276195e Track compute and graphics push descriptors separately. Closes #1182 2018-11-20 10:42:59 +00:00
baldurk e88169cbfe Patch some missing pieces after removing draws from a DrawIndirect 2018-11-19 12:07:42 +00:00
baldurk 94ed33accb Add missing stringise case for MemoryScope 2018-11-19 11:48:30 +00:00
baldurk 3f43ae73d1 Set pipeline bind point for descriptor update templates
* This is needed to know which type of descriptor sets is being mutated for push
  descriptors
2018-11-19 11:48:20 +00:00
baldurk e4ab1448fd Fix vkCmdPushDescriptorSetWithTemplateKHR - ref template & unwrap writes 2018-11-19 11:47:38 +00:00
baldurk 3f4f9902cb Remove error that will commonly falsely fire & replace with explicit log 2018-11-16 15:59:44 +00:00
baldurk 0253dbcc70 During capture report worst-case mem requirements for external images
* On some implementations, external images have lower memory requirements than
  an identical non-external image. To account for the replay being non-external
  we create both and pick the worst when reporting memory requirements to the
  app, so that it allocates enough for us on replay.
2018-11-16 15:13:36 +00:00
baldurk 2d6b004381 Set caret colour to foreground colour in scintilla 2018-11-16 14:06:53 +00:00
baldurk 2994f2f037 Fix incorrect change returning false unconditionally for argc==0 2018-11-16 14:06:44 +00:00
baldurk 42c1ae0753 Block requests for ID3D12Device or ID3D11VideoDevice* on ID3D11Device 2018-11-15 17:20:21 +00:00
baldurk 01cfadd52e Update D3D12 debug interfaces to match latest headers 2018-11-15 17:20:02 +00:00
baldurk c56cc1922f Implement DXGI 1.6 & 1.7. Closes #1174 2018-11-15 17:18:45 +00:00
baldurk 6ba66f0fba Update DX headers to 10.0.17763.0 2018-11-15 17:12:00 +00:00
baldurk 2d4409c124 Keep screen on while renderdoc app is in foreground. Closes #1178 2018-11-15 16:34:38 +00:00
baldurk e330bc20bd Only reupload all cubemap faces for the first glTexImage2D call
* We need a workaround for cubemaps where our redundant-glTexImage2D call has
  dropped a glTexImage2D on level 0 of another cubemap face that should be
  'initialising' it. What we do is just upload all faces. Initial contents will
  then replace the contents.
* However, this assumes there will be initial contents to replace. If we only
  have a set of cubemap uploads because the cubemap was uploaded within the
  captured frame, we can't do this replicate each time or the last face uploaded
  will be splatted across all. Instead we check to see if this is the first
  glTexImage2D call on a level, and only replicate in that case.
2018-11-15 12:31:00 +00:00
baldurk 024a737033 Use CheckAndroidServerVersion to verify apk install. Refs #1132 2018-11-14 18:32:35 +00:00
baldurk ed388f6df6 Launch 64-bit remote server on android where possible 2018-11-14 18:32:35 +00:00
baldurk 953652b398 Replace . with _ when creating buffer viewer format from input attrs 2018-11-14 18:32:35 +00:00
baldurk a7be02bd0b Add empty nodes to VBNodes tracking, to keep indices == vb slots
* This fixes VB highlighting when the bindings are sparse
2018-11-14 18:32:35 +00:00
baldurk cc637cb08a Fix fetching vulkan vertex buffers when bindings are sparse 2018-11-14 18:32:34 +00:00
baldurk 74ce0d92fd Pad 0 with a preceeding space for signed integer display in buffers
* This means that it lines up with -1 the same as positive numbers do
2018-11-14 18:32:34 +00:00
baldurk cd6772d8dc Detect mesa driver and skip initialising IHV GL counters. Closes #1161 2018-11-14 18:32:34 +00:00
baldurk b4f7d74565 Enable GL hooks via EGL on windows, as well as via WGL
* Without this, injecting into a GLES application on windows might not work as
  the hooks won't be enabled when a context create is seen.
2018-11-14 18:32:34 +00:00