Commit Graph

9458 Commits

Author SHA1 Message Date
baldurk d71b15115c Add additional proteciton & testing of unbound images in vulkan 2019-09-13 17:33:48 +01:00
Hanif A 0558e9a644 Spelling error 2019-09-13 15:47:56 +01:00
baldurk 659aaae047 Fix handling of UAVStartSlot above max RTV count 2019-09-11 14:41:08 +01:00
baldurk d9acded76c Add indirect buffer bit to our own internal indirect buffer 2019-09-11 09:36:50 +01:00
baldurk 07269b9693 Don't full replay vkCmdExecuteCommands if we're only doing a single draw 2019-09-11 09:36:36 +01:00
baldurk 173a2684e5 Fix replaying of executed secondary command buffers 2019-09-10 18:32:23 +01:00
baldurk 93be77f35d Add some better handling and messages for errors in intel D3D11 counters 2019-09-10 18:32:23 +01:00
baldurk 554b96d619 Process VK_WHOLE_SIZE before marking memory as referenced 2019-09-10 18:32:23 +01:00
Aliya Pazylbekova 2ef06d3f6f Add support for GOOGLE_display_timing extension 2019-09-10 18:32:13 +01:00
baldurk b7d78d8e07 Allow EGL functions to be missing on replay if we don't need them 2019-09-10 13:41:08 +01:00
baldurk 764f294d75 Allow displaying fatal messages from android logcat 2019-09-10 13:31:56 +01:00
Cody Northrop 24fb676aa1 android: Switch to GLES layer on Android Q 2019-09-10 13:23:57 +01:00
Cody Northrop b2ef4884e0 android: Remove android:process from GetExecutableFilename
In Android Q, apps that use android:process will have a colon and
text in the result of cmdline, breaking the intent of the function.

https://developer.android.com/guide/topics/manifest/service-element#proc
2019-09-10 11:16:02 +01:00
baldurk ecb704f014 Put vulkan pixel history file into right filter 2019-09-10 11:15:57 +01:00
baldurk aa791d3306 Fix handling of unbound descriptor sets, assume statically not used 2019-09-09 11:19:08 +01:00
baldurk 8fb2f359ff Handle GL_SRGB and GL_SRGB_ALPHA as a base format
* This doesn't seem to be legal but it's easy to just tolerate for buggy
  applications.
2019-09-09 11:00:29 +01:00
baldurk ba4ccca62f Don't load libEGL.dll from a global path on windows
* EGL emulators are not sufficiently stable to run RenderDoc, so we want to be
  able to fall back to EXT_create_context_es2_profile unless the libEGL.dll is
  explicitly placed in our plugin path.
2019-09-09 11:00:04 +01:00
baldurk 54291b0e29 Fix linux compilation (again) 2019-09-07 12:06:05 +01:00
baldurk 7fe044faaf Fix display of 64-bit integers in buffer viewer 2019-09-07 09:24:46 +01:00
baldurk 54f271930c Use correct draw count when replaying glMultiDraw*IndirectCount 2019-09-07 09:13:11 +01:00
baldurk 02dcd2183a Fix linux compilation 2019-09-06 23:19:38 +01:00
baldurk e1eaf07f2e Display longs as hex if xlong is used 2019-09-06 22:24:56 +01:00
baldurk a50513e561 Correctly handle long format elements 2019-09-06 22:19:28 +01:00
baldurk 9c6bfa6788 Remove static resource lists, make them members of the device 2019-09-06 22:19:28 +01:00
baldurk 1eecd56896 Fix gl prefix on function checks 2019-09-06 22:19:28 +01:00
Aliya Pazylbekova 141f28dfc9 Update GGP integration 2019-09-06 18:42:43 +01:00
baldurk c9f13a657d Add test cases of shader editing on GL and Vulkan 2019-09-05 20:36:12 +01:00
baldurk 852e538145 Add missing boundary check in MemRefInterval iteration. Closes #1510 2019-09-05 20:36:12 +01:00
baldurk 190cba427c Refactor shader editing to more reliable approach
* When we replace a shader in GL there are a few knock-ons: we need to replace
  the programs that use this shader, and then from there we need to replace the
  pipelines that use the program. We also need to beware of programs created
  with glCreateShaderProgramv which refer to themselves as both a program and a
  shader.
* Previously we'd look at the edited shader, then recurse and look at programs,
  then recurse and look at pipelines. We'd try to remember which one replaced
  which so we could undo it again.
* Now we just do this in subsequent passes since there is only a one-way
  dependency: First replace the shader as needed, then update any programs and
  either replace or remove replacement as needed, and finally update any
  pipelines.
* On Vulkan and D3D12 it's simpler as we just have shaders -> pipelines but the
  same principle applies.
2019-09-05 20:36:12 +01:00
baldurk 9627332667 Add a utility function to tests to pick a pixel and check its value 2019-09-05 20:33:25 +01:00
baldurk ce474e07e1 Remove programs and pipelines when they are deleted
* This prevents shader editing from trying to modify deleted programs
2019-09-05 20:33:25 +01:00
baldurk 0df24b2d7d Don't fetch uniform values if we get a -1 location 2019-09-05 20:33:25 +01:00
baldurk c48578fdd9 Add new location remapping when editing shaders on GL
* If they're autogenerated then unfortunately the locations in a shader can
  change over edits depending on what the shader is doing. We need to remap
  across this as well as composing that onto any capture-replay remapping.
2019-09-05 20:33:25 +01:00
baldurk 7f838fc88c Don't trash SPIR-V shaders on GL after compiling them 2019-09-05 20:33:25 +01:00
AJ Weeks 1961495390 Disable/enable (rather than show/hide) toggles 2019-09-05 20:33:14 +01:00
AJ Weeks 0a973130ac Keep "Show hidden rows" text constant now that checkbox appears 2019-09-05 20:33:14 +01:00
AJ Weeks 7231de0ed0 Allow hidden errors and warnings to be shown again
* Fix copy paste typos (lines 322, 329)
* Allow hidden rows in Errors and Warnings tab to be made visible again
2019-09-05 20:33:14 +01:00
baldurk 878d4140c3 Fix support for checkable menu items in RDStyle 2019-09-05 11:48:48 +01:00
baldurk 588025fc6c Add test case for misaligned dirty regions on vulkan 2019-09-05 11:48:47 +01:00
baldurk 4a4884129b Allow overriding replay options in test cases 2019-09-05 11:48:47 +01:00
baldurk bfad3dac2f Don't set optimisation level until we have replay options on Vulkan 2019-09-05 11:48:47 +01:00
Benson Joeris a14141eb52 Align MemRef intervals (#1510)
When initializing VkDeviceMemory resources, some regions may be cleared
using vkCmdFillBuffer, rather than having initial data copied.
vkCmdFillBuffer requires that the interval offset and size are multiples
of 4.

This change aligns all of the intervals containing the `FrameRefType`s
used to determine the initialization requirements for VkDeviceMemory.
This alignment is done as the intervals are loaded so that the
initialization (before the first replay) and reset (before subsequent
replays) use consisent alignment.

Change-Id: Icb1a1ba5fc0045fc4ec1ccbfe9caad06154f2338
2019-09-05 10:51:02 +01:00
baldurk 16164d5157 Fix off-by-one error accessing deferred shadow buffers in D3D11 record 2019-09-05 00:55:35 +01:00
baldurk 205ec0ecf8 Update misaligned dirty demo to have interesting data in all bytes 2019-09-04 18:40:43 +01:00
baldurk bae2ea3767 Add demo program that misaligns the dirty region of a buffer 2019-09-04 18:13:41 +01:00
baldurk 6db13115a3 Fix access to array after target element has been removed 2019-09-04 16:22:29 +01:00
baldurk 60faef5ce5 Fix byte size calculation of ETC2 format textures 2019-09-04 15:40:51 +01:00
baldurk c761f675c4 Add test that SPIR-V 1.3 shaders are disassembled, reflected, and edited 2019-09-04 14:33:13 +01:00
baldurk c9e668cdfc Create highest vulkan instance possible in tests, and save version 2019-09-04 13:17:11 +01:00
baldurk 244d96c1cd Reduce log spam when creating proxy drivers 2019-09-04 10:43:22 +01:00