Commit Graph

8556 Commits

Author SHA1 Message Date
Benson Joeris a9cedfda25 Add range info to Vulkan memory tracking.
In the capture-time tracking of resource usage, this change adds information on
the offset and size of accesses to Vulkan VkDeviceMemory. This information is
curretnly discarded, but will be used in a later change to implement
finer-grained usage tracking for VkDeviceMemory.
2019-02-06 21:37:58 +00:00
baldurk 967d03083d Proper documentation build fix 2019-02-05 19:40:43 +00:00
baldurk d0782c6bcb Potential fix for documentation build 2019-02-05 19:24:18 +00:00
baldurk 3dfe4a2a8f Add support for VK_EXT_calibrated_timestamps 2019-02-05 18:40:32 +00:00
baldurk 61c0a41767 Add support for VK_EXT_validation_features 2019-02-05 18:40:31 +00:00
baldurk 4a9212861e Add support for VK_EXT_separate_stencil_usage 2019-02-05 18:40:31 +00:00
baldurk 6d07e1c42e Add support for VK_EXT_discard_rectangles 2019-02-05 18:40:31 +00:00
baldurk 354b37be56 Add support for VK_EXT_sample_locations 2019-02-05 18:40:31 +00:00
baldurk cb9fc1dc4f Update vulkan headers in demos project 2019-02-05 18:40:31 +00:00
Benson Joeris cf74b67660 Refactor FrameRefType and add Clear reference type
This change simplifies the `FrameRefType` enum by removing the separate states and
transitions, and replacing them with a smaller set of reference types, together
with functions that compose those reference types.

This change also introduces a `Clear` reference type, which is used to represent
an access to the resource that completely overwrites the previous contents; this
is in contrast with a `Write` access that may leave some of the previous
contents untouched.
2019-02-05 18:40:16 +00:00
baldurk 0f29c40c5f Fix implementation of glFrameTerminatorGREMEDY 2019-02-05 10:42:47 +00:00
baldurk 99910959ee Provide GREMEDY GL extensions even if not supported by the driver 2019-02-05 10:42:37 +00:00
baldurk 2a80fd29d0 Don't look for source.properties to check valid SDK path
* This file isn't always there apparently. Instead just look for a build-tools
  folder which must be present.
2019-02-04 19:21:10 +00:00
baldurk 5ecdb18ea7 Add support for VK_EXT_memory_budget and VK_EXT_memory_priority 2019-02-04 19:21:10 +00:00
baldurk 8a17f89f53 Update vulkan headers to 1.1.99 2019-02-04 19:21:10 +00:00
baldurk 00c4e3265d Update brew packages needed for autotools on mac 2019-02-04 18:06:11 +00:00
baldurk a79e047e5d Reorganise linux dependencies section, and update Ubuntu instructions 2019-02-04 18:06:11 +00:00
baldurk b5a6e815b9 Locate android SDK/NDK up front from various env vars before building
* We need to locate it before setting the toolchain file, so checking when
  building renderdoccmd is too late. This also lets us print where the SDK/NDK
  is found, and add error messages if we don't locate it properly.
2019-02-04 18:06:10 +00:00
baldurk 61b39c80a1 Update VerifyMapWrites option to VerifyBufferWrites option in API docs 2019-02-04 18:06:10 +00:00
baldurk 18af132601 Update API documentation to mention SetCaptureFileComments 2019-02-04 18:06:10 +00:00
baldurk f20e871510 Add option to make y-flipping a per-texture state instead of global 2019-02-04 18:06:10 +00:00
baldurk 2853029847 Don't make overly-general matches when looking for constants by name 2019-02-04 18:06:10 +00:00
baldurk 36770522d7 Fix shaderviewer shortcuts using QShortcut which doesn't work well 2019-02-04 18:06:10 +00:00
baldurk 73a5357419 Fix handling of primitive restart with a vertex offset 2019-02-04 18:06:09 +00:00
Lionel Landwerlin 12ce67b228 Add GL Intel performance counters support
Intel published a performance query extension support defined back in
2013. This is available on Windows & Linux (in the Mesa driver). This
should provide the same types of counters as the MDAPI backend for
DX11.

Frameretrace [1] (a fork/branch of Apitrace) uses the same extension.

v2: Fix build without OpenGL
    Simplify logic to enable counters
    Warn about non enabled counters on Linux/Mesa
    Generate counter Uuid

v3: Turn asserts into errors
    Don't load perf entry points manually

v4: More clang-format

v5: Fix some Windows conversion warnings

v6: Fix errors on Windows where the driver reports an error on
    glGetPerfQueryInfoINTEL as a mean to say that the queryId cannot
    be used through the extension

v7: clang-format

v8: Initialize variable passed by pointers to GL entry points

v9: Only try to use the INTEL_performance_query on Mesa, experience
    shows the Intel Windows driver doesn't report anything useful.

[1]: https://github.com/janesma/apitrace/wiki/screen-shots
2019-02-04 15:54:33 +00:00
Remi Palandri 550d5477d8 shorten android capture option str 2019-02-04 10:50:25 +00:00
baldurk acbe682392 Explicitly skip system builtin inputs in GL reflection
* Some drivers (e.g. macOS) will still return a location even for gl_.. builtins
2019-02-01 18:32:14 +00:00
baldurk b178ae800c Add Catch.hpp StringMaker template specialisation for rdcstr
* Otherwise it gets identified as a 'range' with begin() / end() and "foobar"
  gets printed as { 'f', 'o', 'o', 'b', 'a', 'r' }
2019-02-01 18:32:14 +00:00
baldurk 3a79d7e069 Block queries for undocumented DWM interfaces.
* Nomachine is one program that requests these, but has a fallback path for if
  they're not available. Denying the request makes things more compatible.
2019-02-01 18:32:14 +00:00
baldurk aa1df3cb1e Don't deserialise elements of arrays unless the array is non-NULL.
* This is protection just in case the array-size is wrong and we bailed before
  serialising the array itself.
2019-02-01 18:32:14 +00:00
baldurk 73063703e6 Inherit indirect copies from secondary to primary cmdbufs. Closes #1251
* Updated VK_Indirect test to run everything in secondary command buffer as
  well.
2019-02-01 18:32:14 +00:00
baldurk 12665b8bed Don't apply typehint when rendering overlay texture
* On vulkan the typehint is forceful, so we don't want to inherit a unorm cast
  from the real texture.
2019-02-01 18:32:14 +00:00
baldurk b9254af510 Don't attempt to use XFB when multiview is active. Closes #1250 2019-02-01 18:32:13 +00:00
baldurk 86ff87863e Update copyright years to 2019 2019-02-01 18:32:13 +00:00
baldurk dc9f57ef52 On D3D12 don't overwrite elementByteSize from structured buffers 2019-02-01 18:32:12 +00:00
baldurk c39209525a Don't query GL_TEXTURE_BUFFER_SIZE without ARB_texture_buffer_range 2019-02-01 18:32:12 +00:00
baldurk c8cf35eb83 Don't disable itemview wordwarp workaround for QTBUG-14949 in 5.11
* It doesn't seem to be fixed.
2019-02-01 18:32:12 +00:00
baldurk 4be6bf50f9 Don't leak rasterizer discard state if GL postvs fails 2019-02-01 18:32:12 +00:00
baldurk 19c7af5e35 Don't delete program before we try to print the link errors 2019-02-01 18:32:11 +00:00
baldurk 5854810fd4 Make timeouts in tests more forgiving for CI that occasionally fails 2019-02-01 18:32:11 +00:00
nmr8 38f68e1534 Update Dependencies.md 2019-01-30 09:25:02 +00:00
nmr8 54efa30596 Add debian dependencies, spoon feed build commands 2019-01-30 09:25:02 +00:00
baldurk bca706a96b Increase maximum wait time for program to start to 1 second. Refs #1243 2019-01-29 10:45:49 +00:00
baldurk e70dd127f3 Use bindpoint mapping when looking up read-write resources on GL 2019-01-28 19:55:40 +00:00
baldurk 0f7cacc4ee Custom shader objects are not programs, use right delete function 2019-01-28 19:55:40 +00:00
baldurk 542f664645 Fix missing register swizzles on relative addressing lookups 2019-01-28 19:55:40 +00:00
baldurk 76e42a1a2a Make sure to correctly identify removed buffer in GPUAddress mapping
* When multiple buffers are aliased over the same heap memory, they'll have the
  same GPU base address. Our mapping needs to ensure it removes the right entry
  when a resource is released.
2019-01-28 19:55:39 +00:00
baldurk 3e843351e7 Handle ExecuteIndirect setting a GPU_VA of 0
* I don't know if this is valid or not, but it seems to work without triggering
  any validation layer warnings or errors which is the best guess.
2019-01-28 19:55:39 +00:00
baldurk 317e89f7cb Add QIODevice::Text for text writing, to convert newlines. Refs #1246 2019-01-28 19:55:39 +00:00
baldurk f8d575d2d1 Don't leak programs when separable patching fails 2019-01-28 19:55:39 +00:00