Commit Graph

12874 Commits

Author SHA1 Message Date
baldurk 9b9a67e8da Make sure to fetch egl functions via eglGPA if necessary. Refs #2494
* Extensions will likely not be exported as real symbols, so we need to handle
  the case of needing to fetch the onward pointer via eglGetProcAddress.
* We do this for non-extensions too, to try to fetch core functions that are
  still NULL after hook initialisation. Since we do wholesale dlopen/dlsym
  replacement on linux we cannot handle the case where an application checks for
  function validity via just normal dlsym returning something, but then the
  function doesn't exist in the real libEGL.so. We have no way of reporting that
  the function actually doesn't exist because we have nowhere to call, and it
  will crash. Trying to fetch the pointer via eglGPA is unlikely to succeed but
  should do no harm as we don't set these function pointers anywhere else.
2022-02-14 11:57:49 +00:00
baldurk 755c4254b8 Save current renderpass before it is unset in vkCmdEndRenderPass
* We need this to look up which renderpass we were in previously
2022-02-14 11:32:20 +00:00
baldurk 874134da70 Disable DXIL validator entirely as it sometimes crashes on valid code 2022-02-11 16:44:55 +00:00
baldurk 745bff2eeb Fix tests not passing a window title 2022-02-11 11:52:36 +00:00
Remi Palandri 4860e87c92 move replay to call app's endRP/nextsub calls 2022-02-11 11:09:43 +00:00
Remi Palandri c96f9d3770 add support for VK_QCOM_render_pass_shader_resolve 2022-02-11 11:04:47 +00:00
baldurk ec5c14dee8 Add support for multiple batched presents on vulkan. Closes #2492 2022-02-10 16:36:19 +00:00
Remi Palandri 3d07a0b568 lazily fetch subsamples in MSAA textures 2022-02-10 10:24:17 +00:00
baldurk 38fa7a1ac7 Fix compile error 2022-02-09 18:54:21 +00:00
baldurk e332b43abb Use a compatible renderpass for fetching stencil data for readback 2022-02-09 18:01:40 +00:00
baldurk d5e6a735fb Pass through names from capture when EXT_debug_* is supported 2022-02-09 18:01:40 +00:00
baldurk 544e6dbf18 Strip index decorations in vulkan postvs when patching to compute 2022-02-09 18:01:40 +00:00
baldurk 2c2e76fbeb Ensure even for non-indexed mesh picks we bind dummy buffer
* The descriptor needs to be valid even if it's not used, when not using
  descriptor indexing rules, so ensure the IB buffer is at least some minimum
  size.
2022-02-09 18:01:40 +00:00
baldurk 83dc0b78c8 Ignore validation message about unwritten outputs. 2022-02-09 18:01:40 +00:00
baldurk 469f17a607 Vulkan images in preinitialized layout must always be patched to general
* Originally the idea was that on first use in a Loading pass we'd transition
  from preinitialized to whatever the application wanted, and then subsequently
  on repeated replays it would be left in general. However this doesn't account
  for initial contents and initial frame states, which will end up putting the
  image in GENERAL anyway. This is fine as it still satisfies the requirements
  if needed.
2022-02-09 18:01:40 +00:00
baldurk a661020cec Fix incorrect check for image view type as array in pixel history 2022-02-09 18:01:39 +00:00
baldurk 574d87e72a Force use of load RPs/FBs for pixel history
* When we're splitting every draw and execute to get pre- and post-mod colours,
  we resume renderpasses with load RPs for obvious reasons. The inheritance info
  needs to match in secondary command buffers, so we force it over
  conditionally.
2022-02-09 18:01:39 +00:00
baldurk b05830d668 Respect the original subpass contents when replaying renderpasses
* We also need to take care to patch this now, when replaying a single draw that
  was originally in a secondary but we replay in a primary.
2022-02-09 18:01:39 +00:00
baldurk 53b507c44b Add names to some more objects 2022-02-09 18:01:39 +00:00
baldurk f7aec1a5f6 Implement unstripped SPIR-V shader blob loading from magic value tags 2022-02-09 18:01:30 +00:00
baldurk b094c45d42 Create separate pipeline and dummy images for depth-format, for DRefs
* Any pipeline that uses DRef on images (without descriptor indexing at least,
  which we don't assume) must be passed depth-formatted images. This includes
  the dummy images we bind to other slots.
* At the same time we limit depth textures to just 1D, 2D, 2DMS - ignoring 3D
  and Cube.
2022-02-08 18:07:39 +00:00
baldurk f0428e6801 Add extra protection for valid queries to GetBufferData 2022-02-08 18:07:39 +00:00
baldurk afb82971dd Create separate pipeline & render pass for sRGB 8-bit remapping
* Normally we only need one remap per bitness and per type, but for 8-bit
  float/unorm we need to distinguish between plain unorm and sRGB unorm.
2022-02-08 18:07:39 +00:00
baldurk 46fb3ac666 Fix push constant range not using full stage flags
* The spec requires that we pass all stage flags for the declared range, even if
  we're only binding for compute.
2022-02-08 18:07:39 +00:00
baldurk 2312fa45da Fix some missing sType's on input structures 2022-02-08 18:07:39 +00:00
baldurk 5a62e27ec3 Fix a couple of technical validation failures 2022-02-08 18:07:39 +00:00
baldurk 2c98999a80 Fix mistaken flag set 2022-02-08 18:07:39 +00:00
baldurk b38f8b8378 Fix some cases where buffer memory requirements were assumed to be tight
* It's possible for a buffer to require more memory than its size (e.g. up to
  some alignment)
2022-02-08 18:07:39 +00:00
baldurk a8e7b64a31 Don't set events on replay, they may be device-only
* We also don't use the 'real' events for our handling anyway, so their
  set/reset status doesn't matter.
2022-02-08 18:07:38 +00:00
baldurk 8f4f7f571f KHR_synchronization2 is only enabled if the feature is enabled 2022-02-08 18:07:38 +00:00
baldurk b7e13e7d6f Update demos vulkan headers to 1.3 2022-02-08 18:07:38 +00:00
baldurk f37516bfc3 Use depth image specifically for depth-compare tests in shader debug zoo
* The spec doesn't guarantee that non-depth formats support comparisons like
  this.
2022-02-08 18:07:38 +00:00
baldurk 9a75846343 Only provide mutable format list when needed 2022-02-08 18:07:38 +00:00
baldurk a675f0050e Downgrade error to warning for compute path on missing spec constants 2022-02-08 18:07:38 +00:00
baldurk b78f4b5624 Flush some commands before object destruction 2022-02-08 18:07:38 +00:00
baldurk 597644435d Name some internal image and imageview objects for vulkan 2022-02-08 18:07:38 +00:00
baldurk c853dbcd10 Fix version check on vulkan not storing instance version properly 2022-02-08 18:07:38 +00:00
baldurk 7a0a8fa855 explicitly disable shading rate attachment when using old RP create 2022-02-08 18:07:38 +00:00
Steve Karolewics f552b1b4e9 Prevent focus reset when typing in the compute debug selector 2022-02-08 16:27:55 +00:00
follower 3471e64c8f Fix incorrect link for include-bin credit.
The current link appears to be an accidental duplication of the URL from the project listed immediately above.

This commit appears to be the origin of the duplicated URL: https://github.com/baldurk/renderdoc/commit/b5c7944038572eebffde32e1279c45c4f6d84153#diff-4673a3aba01813b595de187a7a6e9e63a3491d55821606fecd9f13a10c188a1dL98

Note: This "correct" link is to the original repository URL which appears to no longer exist.

For reference:

 * Original commit with the inclusion of `include-bin`: https://github.com/baldurk/renderdoc/commit/864fdbe179b6c1f20cae7c753fb018bec74b5738

 * Original issue which lead to the inclusion: https://github.com/baldurk/renderdoc/issues/314#issuecomment-238204556
2022-02-05 18:53:25 +00:00
Remi Palandri 5f61bf1510 erase all liveIDs when replacing resources 2022-02-04 20:04:32 +00:00
Steve Karolewics c6c93efd22 Fix shader debugging display of high-level boolean variables 2022-02-04 20:04:19 +00:00
baldurk 6ab4c1ad74 Add support for VK_KHR_fragment_shading_rate. Closes #2426 2022-02-04 16:45:15 +00:00
baldurk e58cb9a73b Fix stepping over/into on instructions in the same function 2022-02-04 16:45:15 +00:00
baldurk 7266dd8960 Read inline information for vulkan debug and use it to get callstack 2022-02-04 16:45:15 +00:00
baldurk 7f130077da When source debugging, skip non-mapped instructions
* We entirely skip over any instructions that don't have a source mapping. These
  are assumed to be filler instructions or others that don't correspond usefully
  to anything in the source.
2022-02-04 16:45:15 +00:00
baldurk 309a2aaded Add variable debug variables when we have debug info
* We don't want to wait until the first store to do this, since the source
  variables are added at the appropriate scope - even before the first store.
2022-02-04 16:45:15 +00:00
baldurk 2f0be387c4 Use DebugSource and DebugLine/DebugNoLine for line-number info 2022-02-04 16:45:15 +00:00
baldurk 70200ed0a8 Account for locals within loops coming from later mappings
* We invert the mapping so that instead of each local having its list of
  locations and picking the latest at any point, we track the "current" and
  update the mappings with any changes we come across at each step.
2022-02-04 16:45:15 +00:00
baldurk 3b38d2989d Include constants in shader changes when debug info references them 2022-02-04 16:45:15 +00:00