Commit Graph
172 Commits
Author SHA1 Message Date
baldurk 89bea3ea8b Add new shader enums for RT shader stages 2024-04-26 13:55:18 +01:00
baldurk 9f4f0e6aa1 Update copyright years to 2024 2024-02-12 11:04:52 +00:00
baldurk fd84a06ee2 Update amdspv executable on linux 2023-12-07 12:18:43 +00:00
baldurk 5ad3e67a2d Implement baseline mesh shader on vulkan
* This supports capture and replay of mesh draws, shader editing with printf
  support, overlays, and pixel shader debugging.
* Not supported yet include the mesh viewer and shader debugging.
2023-11-16 18:20:24 +00:00
baldurk 69dcb42a05 Add enums and API-agnostic handling for new task and mesh shader stages
* The enums are given after compute, to preserve indices for the normal vertex
  pipeline.
* Mesh dispatches are considered a new action type, rather than being bundled
  into the `Drawcall` type. This will allow them to be distinguished by API
  backends as needed. The UI treats them as drawcalls
* We apply this universally even though it's not relevant to D3D11/GL. It means
  a couple of empty array entries but it should not cause any significant
  issues.
* Shader messages will be identified by group and thread as with compute
  shaders. For mesh shaders there is an additional subdivision to identify them
  by task group, since each task group can submit a grid of mesh groups.
2023-11-16 18:20:23 +00:00
baldurk b262958d53 Update message for linux on nvidia to clarify to copy symlink 2023-09-20 11:58:11 +01:00
baldurk 9d39b8e1a8 Reformat code for clang-format 15 2023-09-05 11:02:08 +01:00
baldurk 81ac9f9117 Support small added features in new D3D12 headers
* Triangle fans
* 16-bit types in shader declarations
* Trivial/non-wrapped new interface versions
* New mostly-ignorable enums: D3D12_COMMAND_LIST_TYPE_NONE,
  D3D12_COMPARISON_FUNC_NONE
* Alpha constant blend factors
* New sampler filtering with anisotropic min/mag and point mip
* New ABGR4 format
* MSAA UAVs
* Allow SM6.7
2023-05-19 13:28:05 +01:00
baldurk d47e79ae07 Update copyright years to 2023 2023-02-01 12:23:32 +00:00
baldurk 2dab264dee Disable print to stderr from nvperf 2023-01-27 10:24:34 +00:00
Jonathan Glines 4e02449617 Fix errors from NvPerfUtility displayed when no library present
Errors from NvPerfUtility do not need to be displayed if the Nsight Perf SDK
library is not installed.
2023-01-19 23:59:17 +00:00
Jonathan Glines 588d205279 Show errors from NvPerfUtility in the RenderDoc UI
Errors related to collecting NVIDIA hardware counters are now shown in the
"Errors and Warnings" window of the Renderdoc UI. Previously, these errors were
only visible in stderr. This includes errors for device compatibility, resource
availability, and insufficient privileges.
2023-01-18 10:45:03 +00:00
Jonathan Glines a362e42124 Add custom logging callback mechanism to NvPerfUtility
This is needed to send log messages to the RenderDoc UI rather than to stderr.
2023-01-18 10:45:03 +00:00
Shahbaz Youssefi c86e8d2446 Fix Vulkan-only build
NVIDIA counters build assumed Vulkan build implies GL build.  This is
not necessarily the case.
2023-01-11 16:47:35 +00:00
baldurk 0acb955e19 Create virtual distinction between Vulkan & GL SPIR-V. Closes #2798
* This distinction unfortunately does not exist in SPIR-V so we have to carry
  around this metadata ourselves. Rather than allowing free specification of
  tools based on API, instead pretend that Vulkan and GL SPIR-V are separate
  format, and duplicate all SPIR-V tools to handle "both" types. This allows
  appropriate tool selection based on the encoding.
2022-12-27 13:39:44 +00:00
baldurk 36bf7b4970 Reduce other unnecessary errors to warnings in NV counters code 2022-12-27 12:21:51 +00:00
baldurk 1f4932747e Reduce error to warning to prevent debugbreaks 2022-12-22 16:04:04 +00:00
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 2e276a7f84 Remove rdcarray sized constructor 2022-11-09 13:22:53 +00:00
John Cortell 3a5ac5859a Enable AMD perf counter support for Samsung GPUs
This change, along with changes in the GPA library, allows the user
to collect AMD counters from a Samsung Xclipse GPU. Previous to this,
the AMD counters could be collected only from GPUs with an AMD PCI
vendor ID.

Most of the changes are related to the fact that the Xclipse GPU has
a unique (Samsung) PCI vendor ID, but is ultimately an AMD
(RDNA2) derivative. So, we need the code to take the AMD path
while technically being its own (non-AMD) GPU.
2022-09-02 17:10:10 +01:00
baldurk 1f530a2564 Report UAVBindSlot feature as supported in AGS. Refs #2700 2022-08-30 15:12:26 +01:00
baldurk e63f41ff1f Add missing header 2022-08-11 11:28:11 +01:00
baldurk 84b9a0842d Block trying to get GCN ISA disassembly on OpenGL drivers 22.7.1+
* In this version the disassembly is no longer available from the driver via
  this method. While it currently gives a normal error message, in future
  versions it may start crashing so we block it now.
2022-08-11 10:49:55 +01:00
baldurk c053912608 Add explicit DXIL shader encoding 2022-07-22 16:10:59 +01:00
Jake Turner 240fcf3373 Disable -Wshadow & -Wshorten-64-to-32 for ihv/arm
Error triggers in 3rdParty code ie.

renderdoc/driver/ihv/arm/official/lizard/include/lizard/lizard_counter.hpp:66:5: error: declaration shadows a variable in namespace 'lizard' [-Werror,-Wshadow]
2022-07-21 11:49:49 +01:00
baldurk 4dc80c1793 Use non-legacy ASIC to generate AMDIL
* This may break on drivers old enough to not recognise the first non-legacy
  ASIC, but that is much rarer than new drivers that have dropped support for
  the old ones.
2022-06-30 15:41:45 +01:00
baldurk 67920a37b4 Update RGA backend to include gfx1035 2022-06-24 11:10:57 +01:00
kmchan 85789e6209 Update HWCPipe to support performance counters of Dimensity 9000 SoC
Base HWCPipe commit: https://github.com/ARM-software/HWCPipe/commit/8cc02065b4ef249127aa0164dc0d62d65c0d4203
2022-05-03 12:26:32 +01:00
baldurk d645d5f0d6 Remove some unused STL includes 2022-03-01 12:25:31 +00:00
baldurk fcdea67879 Update copyright years to 2022 2022-02-17 17:38:32 +00:00
baldurk 4fe19177b9 Update asic count 2022-02-14 13:38:23 +00:00
baldurk a2df3de613 Update RGA backend to include gfx1034 2022-02-14 13:32:14 +00:00
baldurk a76aa1dede Update RGA devices list to include RDNA2
* We also drop everything gfx804 to keep the device list from being too bloated,
  as well as AMD planning to remove support for these devices soon.
2021-08-18 20:12:07 +01:00
baldurk 161c16385a Reduce size of DXBC operation/declaration/operand structs 2021-07-09 16:27:45 +01:00
baldurk ca0b4eabf3 Completely ignore non-dx use of nvenc 2021-07-07 19:18:32 +01:00
Peter Lohrmann 81ebf46cad Update to GPUPerfAPI 3.8
This includes updated header files, which needed minor local tweaking to
remove an intermediate directory from the include path, and to disable
the <vulkan/vulkan.h> header from being included in gpu_perf_api_vk.h.

All entrypoints and some datatypes were renamed in the latest version,
but functionality remains the same.

Includes support for new AMD Radeon RX 6000 Series graphics cards.
2021-06-03 11:48:58 +01:00
baldurk 015cae07ca Hook nvEnc open encode session and unwrap device passed in
* Newer nvenc seems to check that this device matches resource->GetDevice() for
  passed in resources which is reasonable to want, so we unwrap it on the way
  in.
2021-05-04 19:07:10 +01:00
Volkan Ilbeyli c3ca732ab9 Fix a crash & a replay issue when AMD AGS DX12 CreateDevice() is called 2021-04-07 11:55:52 +01:00
baldurk f670586ca5 Add support for nvapi wrapped PSO create functions 2021-03-25 15:41:27 +00:00