Commit Graph

7298 Commits

Author SHA1 Message Date
baldurk bfe021cf73 Add (mostly disabled) support for VK_KHR_sampler_ycbcr_conversion
* We report no support for Ycbcr conversions by snooping the physical
  device feature query.
* Just to be safe, we support pass-through/ignore implementations of
  most of the functions and pNext structs.
2018-04-30 16:41:46 +01:00
baldurk 35945863df Update vulkan layer to implement vkNegotiateLoaderLayerInterfaceVersion 2018-04-30 14:16:51 +01:00
baldurk 49ea4dd8e3 Add support for VK_EXT_debug_utils extension 2018-04-30 13:52:17 +01:00
baldurk 9b2e515be5 Fix UBO state display wrt/ GL reflection re-sorting. Closes #965 2018-04-30 11:42:41 +01:00
Jake Turner cae6b44a97 Fix xcode9.3 -Wunused-lambda-capture errors
Disable the warning on 3rdparty files
${glslang_dir}/hlsl/hlslParseHelper.cpp

Disable the warning on files where fixing it would cause a non-OSX compile error
os/os_specific.cpp
2018-04-30 10:53:42 +01:00
baldurk 7182e0af3a Add support for VK_EXT_sampler_filter_minmax extension 2018-04-30 10:50:46 +01:00
baldurk 7e651085cb Fetch live driver disassembly on D3D12 via WKPDID_CommentStringW 2018-04-27 20:29:26 +01:00
baldurk c520f637d1 Pre-allocate map array in D3D12Resource, experimental race condition fix 2018-04-26 18:21:20 +01:00
baldurk fe0b7ba3c1 Fix linking against user32.lib in qrenderdoc 2018-04-26 14:14:04 +01:00
baldurk 5698c46277 Use collapsing group boxes on pipeline state viewer 2018-04-26 13:37:57 +01:00
baldurk 4a986f44d3 Add a custom collapsing group box control 2018-04-26 13:34:09 +01:00
baldurk 9617bfc390 Add support in RDStyle for checkboxes on group boxes 2018-04-26 12:41:35 +01:00
baldurk 52af0722ee Add a 'human formatting' function for special-case/heuristic display
* For unsigned integers this notices UINT16/32/64_MAX and displays as
  a text string for easier consumption.
* Also for numbers over a given threshold we display them as hex instead
  of decimal.
2018-04-26 12:31:05 +01:00
baldurk 7dd4238eb0 Allow resize/rearrange of panels in resource inspector via docking 2018-04-26 11:35:09 +01:00
baldurk bf270e170f Don't mutate actual filenames - just menu text to escape & 2018-04-26 11:34:54 +01:00
baldurk 9f6610932d Add missing documentation string 2018-04-25 22:08:55 +01:00
baldurk 08147dfa66 Rename public property to match python-esque naming scheme 2018-04-25 21:30:22 +01:00
baldurk ae454edb03 JDWP compile fixes for linux 2018-04-25 20:49:13 +01:00
baldurk becfe157b4 Experimental fix to allow for JDWP connections with different ID sizes 2018-04-25 19:11:06 +01:00
baldurk 460ab48645 Escape a literal '&' in filenames, to not create accidental shortcuts 2018-04-25 19:11:05 +01:00
baldurk f87338dc0e Add support for VK_EXT_vertex_attribute_divisor 2018-04-25 19:11:04 +01:00
baldurk 5695f3e76f Set up conservative rasterization pNext when setting up pipeline info 2018-04-25 19:11:03 +01:00
baldurk af94c429ea Only enable counters when we detect the relevant vendor
* This avoids problem if the vendor counter library has problems on init
  on non-vendor hardware, rather than just bailing out/claiming no
  support.
2018-04-25 19:11:02 +01:00
baldurk f1ec9b9e81 Check for and enable fragmentStoresAndAtomics feature for quad overdraw 2018-04-25 19:11:00 +01:00
baldurk 99ebebec1f Don't overflow to negative ints with VKXX, 99.99 is high enough 2018-04-25 19:10:59 +01:00
baldurk 168d98bbde Add support for VK_AMD_buffer_marker extension 2018-04-25 19:10:58 +01:00
baldurk 6ba2045e27 Remove comments about 'free' SPIR-V extensions
* They're out of date and not useful anyway
2018-04-25 19:10:55 +01:00
baldurk 1bbb99d649 Add support for VK_EXT_global_priority just ignoring for now
* In future we could serialise (but perhaps not apply?) the global
  priority pNext struct
2018-04-25 19:10:54 +01:00
baldurk 048d2c4f4e Bring RenderDoc window to foreground when event is selected from RGP 2018-04-25 19:10:52 +01:00
baldurk 2d0f675ca8 Add socket-based interop with RGP and profile embedding in captures 2018-04-25 19:10:51 +01:00
baldurk 79637f6caa Expose which drivers support RGP, and add command to create RGP profile 2018-04-25 19:10:50 +01:00
baldurk ce83144723 Add begin/end markers around replay region for RGP to capture from 2018-04-25 19:10:49 +01:00
baldurk d016aacb92 Add wrapper around RGP interface to expose to replay drivers 2018-04-25 19:10:47 +01:00
baldurk b0f4aebaa9 Commit RGP dependencies, building in separate project
* This is:
  - GPUOpen-Tools/DevDriverTools @ 92b3e34
  - GPUOpen-Tools/common-lib-amd-ADL @ 99cb60e
2018-04-25 10:44:53 +01:00
baldurk cbc01342a8 Expose VK_KHR_external_fence* extensions. Closes #742 2018-04-24 19:24:17 +01:00
baldurk ca38fb1a85 Implement extension VK_KHR_maintenance3.
* Not much to do here - this extension only exposes some queries, which
  we just need to ensure we can pass along and unwrap.
2018-04-24 19:24:16 +01:00
baldurk a1f5dbdaa6 Implement extension VK_KHR_maintenance2. Closes #818 2018-04-24 19:24:09 +01:00
baldurk bbc0581e7e Implement support VK_EXT_conservative_rasterization. Closes #898 2018-04-24 19:23:51 +01:00
baldurk e9a47112d4 Prepare for actually serialising pNext pointers in structs
* Any struct with a pNext pointer gets a Deserialise function, to clean
  up any dynamically allocated chains.
* The mechanism is as follows:
  - On writing, walk the pNext chain (assuming there is one) and skip
    any structs we don't care to serialise.
  - When we reach a struct we do want to serialise, save a nullable (i.e
    optional) VkStructureType* for it, then recurse and serialise the
    nullable casted struct.
  - If there is no pNext (or none we care about) we serialise a NULL
    VkStructureType*
  - On reading, we serialise the VkStructureType*. If it's NULL, rename
    it to look like a void *pNext = NULL.
  - If it's not NULL, use the structure type to serialise a nullable
    struct of the right type, and recurse.
* The pNext chain is dynamically allocated, which is why it gets cleaned
  up in the Deserialise() function.
2018-04-24 19:23:32 +01:00
baldurk 0fbeace478 Implement VK_KHR_bind_memory2 2018-04-24 15:57:44 +01:00
baldurk 8e0fd077a1 Report support for several SPIR-V side extensions
* These extensions don't need any special support from us, and only
  affect the SPIR-V consumption.
* The list of extensions is:
  - VK_KHR_16bit_storage
  - VK_KHR_relaxed_block_layout
  - VK_KHR_storage_buffer_storage_class
  - VK_KHR_variable_pointers
2018-04-24 15:45:26 +01:00
baldurk 4879f6da6e Mark which members of VkDescriptorImageInfo are valid to serialise
* We need to pass flags down from the parent struct to know, since it
  depends on the type of descriptor. This could happen in any case, but
  is most likely for templated descriptor updates where the memory that
  is referenced could be garbage.
2018-04-24 14:45:42 +01:00
baldurk ffa1920af8 Mark descriptors as referenced when updated, even if unused
* Previously we did this because unused descriptors don't have to be
  updated, but for consistency with templated updates we mark them ref'd
  now (although the contents are still not referenced until bound).
2018-04-24 14:42:08 +01:00
baldurk d9b038f7a6 Fix logic for adding extra 'API calls' marker in at end of cmd buffers
* This accounts for any non-draw API calls that happened in the command
  buffer just before it was ended.
2018-04-24 14:42:07 +01:00
baldurk 39d7bb3808 Don't hook all modules when loading an API set 2018-04-24 14:42:06 +01:00
baldurk 0442c46aff Implement VK_KHR_descriptor_update_template. Closes #934 2018-04-24 14:42:05 +01:00
baldurk ad887b1922 Allow for complex extension dependencies (i.e. two exts needed for func)
* This is fairly common with extension overlaps/interactions. Instead of
  having just one extension condition for a function, allow &&.
2018-04-24 14:42:01 +01:00
baldurk 8b2d943556 Handle extension promotion to core when detecting enabled extensions 2018-04-24 14:41:59 +01:00
baldurk 94548886eb Implement VK_KHR_push_descriptor extension. Closes #905 2018-04-24 14:41:57 +01:00
baldurk ad5a0d7417 Update to split vulkan headers from 1.1.73.0 SDK 2018-04-23 18:15:20 +01:00