Commit Graph

11981 Commits

Author SHA1 Message Date
baldurk 3025cf66c6 Force shader feedback before clear-before-draw overlay on vulkan
* The shader feedback itself will potentially trigger a replay. If this happens
  after the overlay is processed when fetching the pipeline state it will undo
  the clear-before. To workaround this without a huge and unnecessary refactor,
  we just triggere the shader feedback cache before doing a clear-before
  overlay. The amount of work is the same it just happens in a different place.
2021-02-22 12:38:43 +00:00
baldurk c6be4f7834 Fix highlighting of active thumbnail preview
* This was broken in fa674a59b6 where the style
  overrode the widget's foreground role. Changed to only use the custom
  light/dark role when the desired role is Text (or WindowText).
2021-02-22 12:38:43 +00:00
baldurk 4a379408f9 Patch VkImageFormatListCreateInfo for MSAA textures
* Since we're using mutable format to cast them to UINT for copies, we need to
  ensure that the correct format is in the create info list.
2021-02-22 12:38:43 +00:00
Jake Turner baf0e3ea70 #error for unknown platform in demos project 2021-02-22 10:34:11 +00:00
Jake Turner f14130fc2d Wrap TEST_ASSERT with do...while(0)
Fix compile errors when doing
if (blah) TEST_ASSERT(cond, message)
2021-02-22 10:34:11 +00:00
baldurk a7ac9d7923 Fix DXIL reflection if array type is listed as having 0 elements 2021-02-19 17:47:06 +00:00
baldurk 4e569cfe97 Add specific error when failing to disassemble DXIL shaders 2021-02-19 15:44:57 +00:00
baldurk f244d970c7 Properly convert fetched vertex inputs to target type in mesh output
* We can't fetch from a uint tbuffer into a ushort vector, so fetch as uint and
  then convert to ushort.
2021-02-19 15:44:57 +00:00
Jake Turner 1f332f629f Fix Apple platform bug in GetTickFrequency
The numerator and denominator were the wrong way around.
Discovered running renderdoccmd unit tests on M1 Mac Book Air
2021-02-19 10:09:10 +00:00
baldurk 698e22a5ae Suppress warning about self-assignment that we are deliberately testing 2021-02-18 17:21:36 +00:00
baldurk bb6b92f9a6 Compile fix for linux 2021-02-18 16:22:17 +00:00
baldurk 0f07545151 Add context menu item for toggling bookmarks on events 2021-02-18 15:41:55 +00:00
baldurk 9232921e17 Add some missing test coverage of rdcstr 2021-02-18 15:41:55 +00:00
baldurk c3769ce569 Remove tautological test summing empty array
* We test above that the array is truly empty, if that passes the sum is
  superfluous.
2021-02-18 15:41:54 +00:00
baldurk 552af377e6 Add a test of serialising an array of enums 2021-02-18 15:41:54 +00:00
baldurk c470a0abf6 Remove old workaround for glslang bug 2021-02-18 15:41:54 +00:00
baldurk 2648e3e03c Add test and fix bug with printf'ing subnormal doubles 2021-02-18 15:41:54 +00:00
baldurk b61202af8e Add tests of get_lastpathsep
* This is an internal function but it's still useful to test it independently.
2021-02-18 15:41:54 +00:00
baldurk bafdb16b4b Update intervals tests for better code coverage 2021-02-18 15:41:54 +00:00
baldurk 2409132989 Add unit tests of strhash() on NULL/empty strings 2021-02-18 15:41:54 +00:00
Jake Turner 7ab0cac68b Fix C++11 error assign string literal to char*
error: ISO C++11 does not allow
      conversion from string literal to 'GLchar *' (aka 'char *') [-Werror,-Wwritable-strings]
2021-02-18 15:41:40 +00:00
Jake Turner eae38aad8a Added -Werror to demos project 2021-02-18 15:41:40 +00:00
Jake Turner b2b76486a5 Move format.cc from VULKAN_SRC to SRC
Support for building demos on a platform without Vulkan support
2021-02-18 15:41:40 +00:00
Jake Turner 85ab48750e Linux compile fix after updating catch2
Add +#undef Always where it is required
2021-02-18 15:41:40 +00:00
Jake Turner 0a7020b557 Fix minor typo checkou -> checkout 2021-02-18 15:41:40 +00:00
Jake Turner 2e47b58b18 Minor updates to demos cmake configuration
Ground work for cmake compilation of demos project on non Linux platform
2021-02-18 15:41:40 +00:00
Jake Turner 46f84675f8 Test compiler to decide to add -std=c++11 option
Copied from renderdoc cmake configuration
2021-02-18 15:41:40 +00:00
Jake Turner b7eebf9f68 Compile error fix for Apple clang version 12.0.0
candidate function not viable: 'this'
      argument has type 'const TestMetadata', but method is not marked const
  bool operator<(const TestMetadata &o)
2021-02-18 15:41:40 +00:00
Jake Turner 0fb11c6c0e Extra information for building demos using cmake
Include example cmake and make commands similar to the instructions for renderdoc compiling.
2021-02-18 15:41:40 +00:00
baldurk fb0c92669a Make some custom changes to Catch2 for a better experience
* Add CATCH_CONFIG_FORCE_FALLBACK_STRINGIFIER to force use of ToStr in
  all cases. We can handle ints, etc, we don't need ostringstream, and
  this allows us to handle enums that would otherwise just be printed as
  their integer value.
* Add CATCH_CONFIG_INLINE_DEBUG_BREAK which restores the Catch 1.0
  behaviour of debugbreaks happening in macros and so in-line at the
  actual site failure. So the debugger stops on the CHECK() or REQUIRE()
  call instead of inside AssertionHandler::complete()

  Cherry pick from https://github.com/baldurk/renderdoc/commit/4232736fc21fc6a13a4de6997a5ae106598b225f
2021-02-18 15:41:40 +00:00
Jake Turner 28941a4f07 Update Catch to version 2.13.4
Fixes compile error on Apple Silicon in CATCH_TRAP
Does not include RenderDoc custom changes to Catch2 ie. https://github.com/baldurk/renderdoc/commit/4232736fc21fc6a13a4de6997a5ae106598b225f
2021-02-18 15:41:40 +00:00
Jake Turner 423ca67fb2 cmake 3.19.4 changes to find Python 3 libraries and include files
When compiling on Mac Big Sur the previous (deprecated) find_package fails to find Python3 Libraries and Include files
2021-02-18 15:41:40 +00:00
sebastianpick 329b092cfb Fixed user level registration of vulkan layers.
Corrected a conditional that incorrectly checked for the inverse of the expected condition.
2021-02-18 15:41:31 +00:00
sebastianpick c700204037 Ensure CMAKE_EXE_LINKER_FLAGS are included during linking. 2021-02-18 15:41:18 +00:00
baldurk 7d0675aab8 Compile fix for mac 2021-02-17 23:03:34 +00:00
baldurk 4e0c7bf6d0 Add explicit casting for 64-bit enums on vulkan
* Some compilers don't like the comparison between enum types, so we explicitly
  cast.
2021-02-17 20:22:53 +00:00
baldurk 7c0a7e7e71 Make new 64-bit flag Bits enums explicitly uint64_t 2021-02-17 19:47:22 +00:00
baldurk 743bbb9aab Linux compile fix 2021-02-17 17:40:45 +00:00
baldurk 5cb9b90f5f Implement support for VK_KHR_synchronization2
* For the most part we implement this as a thin pass-through layer. Where we
  care about things (image barriers for layout transitions and queue
  submissions) we do two different things:
  - For image barriers, we "downcast" to plain VkImageMemoryBarrier. Currently
    the only thing that's unique to VkImageMemoryBarrier2KHR is extra access
    flags and pipeline stages, which we don't care about. This keeps a lot of
    code from having to either handle two paths or handle the new path and then
    do lots of conversions back to VkImageMemoryBarrier when running on older
    drivers.
  - For queue submissions we do the opposite. We promote old VkSubmitInfo to
    VkSubmitInfo2KHR and process that in a common function, then if necessary
    we decay back to VkSubmitInfo before sending to the driver.
2021-02-17 15:03:52 +00:00
baldurk 7b8e19f513 Add support for VK_KHR_workgroup_memory_explicit_layout
* We can't yet whitelist this for shader debugging because we don't properly
  support the aliasing behaviour - each workgroup variable has its own separate
  storage, we need to treat them like SSBO pointers into the same buffer and
  automatically size it large enough for all of them.
2021-02-17 14:04:58 +00:00
baldurk c9a3923987 Add support for VK_KHR_zero_initialize_workgroup_memory 2021-02-17 14:04:58 +00:00
baldurk cf23c35d60 Update vulkan headers to 1.1.170
* Note the sync2 structs aren't properly sorted in vk_next_chains.cpp because
  I'm about to implement it and I'm too lazy to insert them in the right places
  only to go find them all again to remove them.
2021-02-17 14:04:57 +00:00
baldurk d66133d610 Fix handling of buffer length & offset in buffer viewer
* Previously the length was always being treated as buffer-relative instead of
  offset-relative.
2021-02-15 12:56:21 +00:00
baldurk 907ce48f7a Display message when no vertices or instances are present in drawcall 2021-02-15 12:56:21 +00:00
baldurk 0e86f0e320 Fix overflow setting rowOffset when numRows is 0 2021-02-15 12:56:21 +00:00
baldurk b31d7d94e8 An instanced draw with no instances has no vertices even if numIndices>0
* If we show this with vertex input data in the mesh viewer that's quite
  confusing when the draw is degenerate.
2021-02-15 12:56:21 +00:00
baldurk 218078f75f Identify stencil-only GL framebuffer attachments correctly 2021-02-15 10:30:37 +00:00
baldurk 9f6eda6e12 Don't check Qt version if not building qrenderdoc 2021-02-14 15:45:57 +00:00
baldurk 673579e854 Print renderdoc and qrenderdoc module locations 2021-02-14 15:45:57 +00:00
baldurk 321fbdefe9 Don't check docs build consistency if an exception happened 2021-02-14 15:10:21 +00:00