Commit Graph

13656 Commits

Author SHA1 Message Date
baldurk 86d101eb88 Add test to make sure replay and analysis features work with library PSO 2023-01-12 15:20:28 +00:00
baldurk d2c4312078 Fix handling of spec constant operations returning bool in shader debug 2023-01-12 15:13:15 +00:00
baldurk f78b585018 Add D3D12_Vertex_UAV test to demos project 2023-01-12 13:48:13 +00:00
Jake Turner 359e1a4bed Fix brew python upgrade errors in Mac CI
brew unlink python then brew force link python 3.10 & 3.11
2023-01-12 10:32:25 +00:00
baldurk 3e839fc5e9 Handle specialising pipeline being different from final linked pipeline
* With graphics pipeline libraries there can be a different pipeline bound to
  the state as the one used to specialise a shader. Since this is a many:1
  relationship (per shader object) we can express it with a simple map lookup to
  redirect the specialised pipeline.
2023-01-11 18:37:54 +00:00
baldurk 56b519ea06 Explicitly set array layer selection value to 0 in D3D shader debugging
* This value should be ignored, so may contain something else from the register
  that we need to remove.
2023-01-11 18:37:53 +00:00
baldurk 6e85d40ead Check HRESULT for fatal errors when reading back output windows on D3D11 2023-01-11 18:37:53 +00:00
baldurk 72c9cbf37f Lock around access to capturer list
* This removes a potential narrow race where a capturer is removed or added on
  one thread while another thread is iterating the list of capturers for target
  control communication.
2023-01-11 18:37:53 +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
Jake Turner 70df111a5e Guard Metal APIs newer than MacOS SDK 12.0
macos(13.0) guarded using #if __MAC_OS_X_VERSION_MAX_ALLOWED >= __MAC_13_0
macos(12.5) guarded using #if __MAC_OS_X_VERSION_MAX_ALLOWED >= __MAC_12_5
2023-01-08 11:42:23 +00:00
Jake Turner aaa12d3fb7 Metal: Compile time support for MacOS SDK 13.1
Changes to Metal protocols to support MacOS SDK 13.1
Removed #if __MAC_OS_X_VERSION_MAX_ALLOWED >= __MAC_12_0 guards now the CI can compile MacOS SDK12.0
2023-01-08 11:42:23 +00:00
baldurk 220b26aa59 Handle collisions with existing UAVs in root signature when patching
* When debugging a pixel or doing quad overdraw we replace the pixel shader and
  patch in our own UAV. Previously we were moving other UAVs out of the way that
  were visible to the pixel shader, but this fails if a UAV is visible to all
  stages and used in a vertex stage.
* Now instead for pixel shader inputs we pick a free space and use it. For quad
  overdraw we pick an arbitrary high space to hopefully use the precompiled
  shader, and if it's somehow not free we recompile the shader with a free
  space.
2023-01-06 16:53:20 +00:00
Jake Turner 779a8af657 Set the minimum Mac SDK to 12.00 2023-01-05 21:33:34 +00:00
Jake Turner a49e875982 Mac CI tweak for brew package installations
Add --overwrite for brew install line for qt5
Removed the "sudo rm *" lines which are not required now "--overwrite" is being used.
2023-01-05 21:33:34 +00:00
Jake Turner 1158a168eb Change Mac CI to use macos-12 2023-01-05 21:33:34 +00:00
baldurk 8562330f28 Update setup-msbuild CI action to v1.1 2023-01-05 17:39:41 +00:00
baldurk 50ebe545fc Update all checkout actions to v3 2023-01-05 17:29:35 +00:00
baldurk bc2faaf3e6 Track preview when calling UI callbacks to avoid use-after-free 2023-01-05 16:39:51 +00:00
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