Commit Graph

13627 Commits

Author SHA1 Message Date
baldurk f8b3dc77e9 Allow GL_EXT_shader_framebuffer_fetch on desktop GL. Closes #2809 2022-12-31 10:43:20 +00:00
baldurk 5047c68318 Delete even more files to make mac build work 2022-12-27 18:42:13 +00:00
Shahbaz Youssefi 282d8a81b6 Support VK_EXT_rasterization_order_attachment_access 2022-12-27 13:47:58 +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 b5545d52f8 Fix float precision/rounding issues for NPOT textures. Closes #2807 2022-12-27 12:23:05 +00:00
baldurk 36bf7b4970 Reduce other unnecessary errors to warnings in NV counters code 2022-12-27 12:21:51 +00:00
baldurk 2cd474c496 Disable NV counters on Apple 2022-12-22 20:52:30 +00:00
baldurk 98d4af8af5 Workaround weird brew/python thing by deleting python binaries 2022-12-22 17:55:31 +00:00
baldurk 44f51d2bcc Fix inadvertent case fallthrough 2022-12-22 17:55:02 +00:00
Jake Turner c90d651646 XML support support for non 32-bit enums
Add width property for enums
Treat "SDBasic::Enum in the same way as "SDBasic::UsignedInteger"
2022-12-22 16:53:05 +00:00
Jake Turner 822a1822ff StructuredFile support for non 32-bit enums
Extend enum support from 32-bit enums to include 8-bit, 16-bit, 64-bit enums
Treat "SDBasic::Enum in the same way as "SDBasic::UsignedInteger"
2022-12-22 16:53:05 +00:00
Jake Turner c340699d7b Add XML/SDObject round trip unit tests for enums
TEST_CASE("XML/SDObject round trip", "[xml serialiser]")

Round trip checks for SDObject -> XML -> SDObject
Test cases for enums of size 8/16/32/64-bits
Check the member data of the SDObject source and the re-generated SDObject.
2022-12-22 16:53:05 +00:00
Jake Turner c563c261d4 Extend enum serialiser tests
Extend test case "Read/write complex types", "[serialiser][structured]" to include 8-bit, 16-bit and 64-bit enums instead of just 4-byte enums.
2022-12-22 16:53:05 +00:00
baldurk 707edac523 Check that memory allocation succeeded before mapping memory
* This fixes a potential crash if we allocate memory then map it immediately
  without checking
2022-12-22 16:21:54 +00:00
baldurk 2697a2add8 Prefer using driverID instead of vendorID for checks. Closes #2804 2022-12-22 16:04:27 +00:00
baldurk 1f4932747e Reduce error to warning to prevent debugbreaks 2022-12-22 16:04:04 +00:00
baldurk 5e04ab288d Fix intel vulkan driver version identification 2022-12-21 23:03:40 +00:00
baldurk 95c45c985e Fix handling of descriptor copy&patching during replay 2022-12-21 23:03:40 +00:00
baldurk 9ad6a5d431 Abort early if a fatal error is encountered during load 2022-12-21 23:03:40 +00:00
baldurk fee0218a33 Fix direct heap access not being displayed in D3D12 pipeline. Refs #2801 2022-12-21 23:03:39 +00:00
baldurk 7b9c4c782e Fix handling of CmdEvent2 APIs to properly handle partial replay 2022-12-21 23:03:39 +00:00
baldurk e3b362ff58 Fix tracking of image states on selecting CmdEvent EIDs 2022-12-21 23:03:39 +00:00
baldurk a40d61b72f Don't access invalid counter description for EID column in counter view 2022-12-21 23:03:39 +00:00
baldurk 8c6566c6b8 Don't crash in glslang reflection fallback path if shaders don't compile 2022-12-21 23:03:39 +00:00
baldurk c0d4a75d52 Allow forcing on a graphics or compute-only queue in demos
* This creates multiple queues and can be useful for testing, when the test only
  uses one or the other as its primary queue.
2022-12-21 23:03:39 +00:00
Jonathan Glines a08a9d8190 Enable external links in counter selection UI
Use QTextBrowser for the counter description widget, which allows for opening
links in an external browser.

This change is needed to make the link to NVIDIA Nsight Perf SDK clickable.
2022-12-21 23:02:50 +00:00
Jonathan Glines e5bb692caf Fix performance counters without a category
In the performance counter selection dialog, show counters without a category
at root of tree, rather than as children of a nameless "" category.
2022-12-21 23:02:50 +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 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