Commit Graph

13600 Commits

Author SHA1 Message Date
Jonathan Glines 9bebaaed8b Collect Nsight Perf SDK counters in OpenGL
This adds the NVGLCounters class, which implements OpenGL counter
collection on NVIDIA hardware via the NVIDIA Nsight Perf SDK.
2022-12-21 23:02:50 +00:00
Jonathan Glines 07ebb25a23 Collect Nsight Perf SDK counters in Vulkan
This adds the NVVulkanCounters class, which implements Vulkan counter
collection on NVIDIA hardware via the NVIDIA Nsight Perf SDK.

Some modifications are made to the NvPerfUtility headers in order to
use the Vulkan dispatch tables from RenderDoc.

On Windows, the VK_KHR_external_semaphore_win32 extension is required
for synchronization with the NvPerf "service pending GPU operations"
thread.
2022-12-21 23:02:50 +00:00
Jonathan Glines 8d45dae36e Collect Nsight Perf SDK counters in D3D11
This adds the NVD3D11Counters class, which implements D3D11 counter
collection on NVIDIA hardware via the NVIDIA Nsight Perf SDK.
2022-12-21 23:02:50 +00:00
Jonathan Glines abab16f8c6 Collect Nsight Perf SDK counters in D3D12
This adds the NVD3D12Counters class, which implements D3D12 counter
collection on NVIDIA hardware via the NVIDIA Nsight Perf SDK.

A helper class NVCounterEnumerator is added to provide functionality
common to NVIDIA counters for other graphics APIs.
2022-12-21 23:02:50 +00:00
Jonathan Glines 2b5268b898 Fix Clang 12 compile errors for NvPerfUtility headers
Compile errors include missing EOL newline, missing override keyword for member
function, and implicit long to int conversion.
2022-12-21 23:02:50 +00:00
Jonathan Glines 1f2af20458 Fix VS2015 compile errors for NvPerfUtility headers
All of these compile errors are from implicit bool conversions.
2022-12-21 23:02:50 +00:00
Jonathan Glines 197a8dd4d7 Avoid gcc unused argument warning in NvPerfUtility 2022-12-21 23:02:50 +00:00
Jonathan Glines 42243597c4 Hide Vulkan symbols in NvPerfUtility
Adds the macro NV_PERF_UTILITY_HIDE_VULKAN_SYMBOLS to NvPerfUtility, which
allows for passing Vulkan function pointers without linking with Vulkan symbols
that are not present in RenderDoc.
2022-12-21 23:02:50 +00:00
Jonathan Glines 2bcbdd516e Load dxgi function at runtime in NvPerfUtility
This is to avoid linking with dxgi at build time.
2022-12-21 23:02:50 +00:00
Jonathan Glines 68b33519d1 Add MetricsConfigBuilder::GetNumPasses() to NvPerfUtility
This method is used to calculate the expected maximum number of replays and
enforce an upper-bound on the replay loop.
2022-12-21 23:02:50 +00:00
Jonathan Glines 838abd8a82 Add Nsight Perf SDK to Visual Studio filters file 2022-12-21 18:17:34 +00:00
Jonathan Glines 03bd7e5623 Added NVIDIA Nsight Perf SDK 2022.3 with 28Sept2022 EULA
Does not include any binaries or sample applications. Just the header files,
release notes, and licenses.
2022-12-21 18:17:34 +00:00
baldurk 66d6793f5e Handle compute-queues properly with vulkan counters. Closes #2795 2022-12-20 19:10:44 +00:00
baldurk 5a576c6957 Fix texture zoo tests not properly running tests on PNG loaded data 2022-12-15 15:20:11 +00:00
baldurk 900ff975b3 Don't drop sRGB flag when getting texture data. Refs #2787
* This would cause incorrect data to be saved when saving from an SRGB texture
  to an SRGB format like PNG/JPG etc.
2022-12-15 15:20:11 +00:00
baldurk 0a0fe7b021 Correctly round generated SNORM data in texture zoo tests 2022-12-15 15:20:11 +00:00
baldurk 843797846b Always downcast for special formats
* This would previously have allowed RGB10A2 data to be written literally, as it
  was otherwise detected as RGBA8.
2022-12-15 15:17:54 +00:00
baldurk e33f1c1329 Add D32 conversion properly for DDS files 2022-12-15 15:17:15 +00:00
baldurk 013527b59c Some legay DDS formats should only be used for non-SRGB data 2022-12-15 15:17:05 +00:00
baldurk 3bd97a3b82 Show sections as failed with their own failed status 2022-12-15 13:34:46 +00:00
baldurk eab6a2c73c Fix python comparison operators throwing exceptions
* When used in richcompare this would throw an exception and return
  Py_NotImplemented causing a failure. Instead we should just return NULL, which
  is fine and will be considered as a not-equal comparison for
  equality/inequality and throw the kind of exception we want for less than or
  greater than.
2022-12-13 11:12:45 +00:00
baldurk b3ae354645 Handle reflecting nested pointer types properly in SPIR-V 2022-12-12 17:21:19 +00:00
baldurk 0a4522b32a Refactor D3D12 resource usage to be less rootsig-authoratitive
* The root signature is not a good model for what resources are actually used,
  instead use the shader reflection as we do on other APIs. In either case this
  does not work for bindless access (> 1000 registers).
2022-12-12 15:23:29 +00:00
baldurk e9702cb32f Fix typo accessing incorrect array of resources in pipe state 2022-12-12 13:58:48 +00:00
baldurk 311f135324 Correctly handle CPU access to NPOT BCn textures on D3D11. Closes #2792 2022-12-12 13:14:50 +00:00
Jake Turner 25f764e702 Mac: Add 'pcre' to Mac required dependencies 2022-12-10 20:24:40 +01:00
hsm 825536c5bc Replace NULL macro with VK_NULL_HANDLE 2022-12-10 00:35:11 +01:00
hsm f3c5d92314 Fixed uninitialized local variable
This patch solves the following Visual C compiler error when attempting to build the "util/tests/demos.sln" VS project from the command-line w/ MSBUILD:

`error C2220: the following warning is treated as an error
warning C4701: potentially uninitialized local variable 'xfbpipe' used`
2022-12-10 00:35:11 +01:00
baldurk 00c5ae8e22 Mark pipeline layout referenced in push descriptor commands 2022-12-09 09:08:33 +00:00
baldurk cdf1bf5e3b Account for baseVertex when patching line strip index buffer 2022-12-06 17:33:16 +00:00
baldurk e386b1fb2b Initialise dynamically used count to 0 even without dynamic feedback
* Since we increment this for every descriptor when we don't have feedback, we
  can't have it start at ~0U
2022-12-06 15:27:02 +00:00
baldurk 52e25fda6a Account for immutable samplers with push descriptors 2022-12-06 14:57:49 +00:00
phantom10111 e75e95033b Fix locating dxc.exe during Windows build
It appears that on some machines (including mine), the registry key
which contains the installation path to Windows SDK is located under
"HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\...". Update renderdoc project
files to search that key as well.
2022-12-06 15:22:24 +01:00
baldurk 6a9872e56c Fix empty spacer-elements in descriptor arrays being marked as used 2022-12-05 17:00:11 +00:00
baldurk 27957bc614 Fix off-by-one fetching callstack in DXBC. Closes #2786 2022-12-05 15:33:04 +00:00
baldurk 92f554e0e7 Bump version to v1.25 2022-12-05 15:29:10 +00:00
baldurk f3fd33defb Always run drawcall overlay in tests
* Ideally we would also include mesh output here, but we would need a way to
  clear the postvs cache every so often to avoid bloating, otherwise it will
  generate too much data iterating the whole capture.
v1.24
2022-12-05 11:02:59 +00:00
baldurk e5e68ef260 Make sure shader feedback query results data is aligned 2022-12-05 10:01:01 +00:00
baldurk 7aac39613c Check mesh output and overlays in Iter_Test 2022-12-05 10:00:35 +00:00
baldurk 5934b3b705 Fix use of incorrect tracked renderstate which is modified by debug 2022-11-29 23:34:32 +00:00
baldurk 9dba1d1814 Bump version to v1.24 2022-11-29 19:04:55 +00:00
Artur Wojcik df7a3562be Update the documentation of the ProgressBar widget v1.23 2022-11-28 14:41:00 +01:00
Artur Wojcik bae0d1992b MiniQtHelper: add ProgressBar widget 2022-11-28 14:41:00 +01:00
baldurk d7b9b61201 Install pcre on mac for CI builds 2022-11-24 23:40:01 +00:00
baldurk 24da6390eb Document the new methods of generating SPIR-V shader debug information 2022-11-24 22:58:12 +00:00
Lionel Landwerlin 2308bf7bd8 Fix binding field of VkVertexInputBindingDivisorDescriptionEXT 2022-11-24 19:10:37 +01:00
baldurk 839e9f609f Add a safety barrier between buffer fills and copies
* It's unclear if this should be required as the fills and copies don't overlap,
  but this is not so perf sensitive that a barrier can't be added for safety.
2022-11-23 17:42:14 +00:00
baldurk c144757d11 Re-use initial replay to fetch shader feedback without polluting state
* Previously with shader feedback being fetched separately we may have had to
  replay multiple times to ensure clean results. If we do it as part of the
  initial replay on selecting the event this issue goes away and we remove the
  extra redundant replay.
2022-11-23 15:19:51 +00:00
baldurk 9ffa334268 Set empty pixmap before setting text on pipeline state labels
* Setting an empty pixmap seems to clear out the text also sometimes. This order
  should always be safer.
2022-11-23 11:14:38 +00:00
baldurk 93bb5acea8 Specify flat decoration for integer inputs we add in patching 2022-11-21 16:08:31 +00:00