Commit Graph

13638 Commits

Author SHA1 Message Date
baldurk 6d74877a94 Bump checkout action version 2023-01-05 15:39:14 +00:00
baldurk 9c1c217a2a Fix clamping of subresource parameters in D3D11 texture data fetch 2023-01-05 15:39:14 +00:00
baldurk f23cb75633 Make sure sample mask does not affect normal texture overlays 2023-01-05 15:39:14 +00:00
baldurk 3cbe4a37d1 Sanitise identifier names for types and variables in generating formats 2023-01-05 15:39:14 +00:00
baldurk 4bc365af2c Fix ID usage for copying descriptor set contents 2023-01-05 15:39:14 +00:00
baldurk b912ab4bac Fix std140 structs adding extra padding at end of structs 2023-01-05 15:39:14 +00:00
Orson Baines 89a6965c12 Bind framebuffer before clearing stencil buffer 2023-01-05 14:37:55 +00:00
Orson Baines cc9a504587 Use full precision texture format for shaderOut 2023-01-05 14:37:55 +00:00
Orson Baines 5b5d2aa191 Improve GL Pixel History per PR feedback
- Blit fragments and read back results in batch
- Modify per fragment callbacks to reduce number of full replays
- Use defines in the primitiveId shader to toggle between float/int
  output
2023-01-05 14:37:55 +00:00
Bruce He c0b931eb15 Improved fragment id shader code
- Deleted WriteClearValues and replace with QueryPostModValues
- Add support for earlier GLSL versions and fix logic for creating primitive id program
- Changed to only run per fragment queries on events with multiple fragments
2023-01-05 14:37:55 +00:00
Tony T f6102a48a4 Add per-fragment information to OpenGL Pixel History 2023-01-05 14:37:55 +00:00
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