Commit Graph

10451 Commits

Author SHA1 Message Date
baldurk fd36ec0bc1 Add shader debug zoo test
* This includes SPIR-V tests to test specific opcodes.
2020-04-03 18:43:58 +01:00
baldurk fc2181d625 Fetch and apply pixel inputs and derivatives to quad 2020-04-03 17:17:46 +01:00
baldurk 21f869192c D3D12 created initial states don't need to be copied
* This would require proper barriers and special handling for e.g. readback
  resources, and the only time we create initial states is when the resource was
  created mid-frame (since all pre-frame resources are dirty, so would have
  initial states prepared). That means it's zero initialised, so our zero-
  initialised created state is fine.
2020-04-03 15:19:28 +01:00
baldurk 2bb278b9fd Highlight stale/unrecognised settings in the config editor 2020-04-03 15:19:28 +01:00
baldurk 9ce74cbc39 Only warn about customised read-only settings in stable builds 2020-04-03 15:19:28 +01:00
baldurk 8d6615697b Push settings file to android devices
* This allows settings to be used to control debug logging on android as well.
2020-04-03 15:19:28 +01:00
baldurk 445c54f967 Try to prevent android library being unloaded after it was loaded
* Even if the vulkan/GL loader wants to unload us the library should stay
  resident to provide a persistent connection, as if it were preloaded/injected.
2020-04-03 15:19:28 +01:00
baldurk 9ba81634b4 Improve the title of shader edit windows 2020-04-03 15:19:28 +01:00
baldurk 590785c470 Mark edited resources with an (Edited) suffix on their names 2020-04-03 15:19:28 +01:00
baldurk ecd8dd0ade Don't report replaced IDs in pipeline state
* If we return back (accurate) replaced IDs in current pipeline state, the UI
  won't recognise them since the list of resources is cached and fixed at load
  time.
* The replaced ID is still present in the shader reflection info as we return
  the replaced shader's reflection and not the original's.
* We also change how we replace a programshader (glCreateShaderProgramv) on GL.
  Instead of creating a program and a shader - resulting in two objects
  replacing one - we instead replace the shader that got built with a program.
  We can do this safely since we know the shader won't be used as an actual real
  shader (since it was a program in the original capture too).
2020-04-03 15:19:28 +01:00
baldurk dc3ebab80a Ensure replacement IDs are used in pipeline initial states. Closes #1810
* If we use the program name directly it won't be replaced if we edit a shader.
2020-04-03 12:36:06 +01:00
baldurk fcb82ae70c Fix the way d3dcompiler is copied into builds to not fail so often
* Using <Copy> forcibly copied every build which means if the program is running
  a build will fail. Using <Content> will only copy if the file doesn't exist
  (so after the first build, it won't try to copy and fail).
2020-04-02 18:15:44 +01:00
baldurk 33d7971364 Mark integer divide by zero as "generated NaN of Inf" in shader debug 2020-04-02 18:15:44 +01:00
baldurk c5242e574a Fetch inputs and derivatives 2020-04-02 18:15:44 +01:00
baldurk 62c3cec950 Fix reference tracking issue. PartialWrite + Read -> WriteBeforeRead
* Read after PartialWrite should become WriteBeforeRead. Previously it became
  Read which lost the information about the Write completely.
2020-04-02 18:15:44 +01:00
baldurk 9716b407d3 Add helper for generating GLSL450 extinst operations 2020-04-02 18:15:44 +01:00
baldurk 85dedabcf8 Add helpers for building SPIR-V ops incrementally 2020-04-02 18:15:44 +01:00
baldurk ecc0a53dcb Declare inputs in PSInput struct 2020-04-02 18:15:44 +01:00
baldurk feafbde8bc Add GL hack to check for implicit thread switching
* This is a very big blunt hammer for fixing the problem of multithreaded
  submission from GL. Every GL call checks to see if the context changed (which
  would only happen from a thread switch to a different context) and if detected
  it inserts a manual MakeCurrent call equivalent.
* It's slow to capture (when this happens - checking is not particularly slow)
  and slow to replay, but it's functional which is an improvement.
2020-04-02 18:15:44 +01:00
baldurk ea6cc026ae Allow de-activating GL contexts in tests 2020-04-02 18:15:44 +01:00
baldurk d279d6dcd2 Silence D3D debug layer spam by including NULL terminator 2020-04-02 18:15:44 +01:00
Lionel Landwerlin d88026a697 Fix KHR storage counter issue for time units
Renderdoc seems to somewhat require time units to be in float to be
able to present prettyfied results (ms/us/ns).

We were assuming that but a couple of errors slipped in :

   * we were asserting that KHR time units are floats

   * we didn't describe the renderdoc units as double (even though we
     forced the conversion later on)
2020-04-02 18:15:28 +01:00
Jordan Justen d2f7837ecf qrenderdoc: Drop building swig .py.c files
This is an alternative to
https://github.com/baldurk/renderdoc/pull/1768 suggested by baldurk.

I found that for some reason when cross compiling, the qrenderdoc
CMakeLists.txt was failing to see the include-bin executable that
renderdoc should have built.

Apparently the .py.c files were no longer required for qrenderdoc, so
removing it also fixed the issue I was seeing.

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
2020-04-02 18:15:19 +01:00
baldurk 528a0c5f5e Guard against integer division by zero
* The SPIR-V spec doesn't state what will happen, only that it's undefined. For
  the sake of something sensible (and because it has a good chance of matching
  at least some hardware) we use D3D's behaviour and set the value to 0xFFFFFFFF
2020-04-01 17:38:44 +01:00
baldurk 53ca92965d Add missing resize when constructing matrix composite 2020-04-01 17:37:16 +01:00
baldurk 230cf69761 Test integer division by zero in DXBC debugging 2020-04-01 17:18:59 +01:00
baldurk 6f2dfc1a2b Add support for non-compressed formats in DDS shell preview 2020-04-01 16:55:58 +01:00
baldurk 1cdb617cf9 Make sure to rewind image file when checking header 2020-04-01 14:11:42 +01:00
baldurk 9372fa879a Don't allow PNG files to fail to open in Texture_Zoo test 2020-04-01 14:10:57 +01:00
baldurk 2cc9dd81d9 Implement initial state creation for D3D12 2020-04-01 13:24:15 +01:00
baldurk ced6ca2bd4 Ensure that Wait/Signal replays happen on correct queue. Closes #1806 2020-04-01 12:10:22 +01:00
baldurk ee12d68a84 Shared handles should now be supported 2020-04-01 12:09:17 +01:00
baldurk 9014daf76c Fix remapping readback from non-regular formats on GLES 2020-04-01 12:03:13 +01:00
baldurk 3fa87882a7 Fix compilation on apple 2020-03-31 20:19:45 +01:00
baldurk 1b8ae53e57 Fix compilation on linux 2020-03-31 19:47:35 +01:00
baldurk ad4f736b12 Use edited shader and fetch produced output hit data 2020-03-31 18:45:37 +01:00
baldurk 1d0f87cca0 Check for desired pixel and that slot is in bounds 2020-03-31 18:45:37 +01:00
baldurk 1931bd6311 Declare output struct, allocate slot, fill in fixed parameters 2020-03-31 18:45:37 +01:00
baldurk 11a4a8f3d1 Use StorageBuffer storage class when editing 1.3+ SPIR-V modules 2020-03-31 18:45:37 +01:00
baldurk 24ff94ea3c Move SPIR-V editing into separate function 2020-03-31 18:45:37 +01:00
baldurk a64611f7fc Declare or fetch builtin inputs as needed 2020-03-31 18:45:37 +01:00
baldurk 16c01a6db2 Remove OpName for removed types in postvs SPIR-V patching 2020-03-31 18:45:37 +01:00
baldurk c1f91bcd51 Add skeleton of generating PS-input gathering shader in SPIR-V 2020-03-31 18:45:36 +01:00
baldurk 9516e8df09 Don't disassemble void function calls with return value in SPIR-V 2020-03-31 18:45:36 +01:00
baldurk 414d8df8f5 Fix debugging function calls without return values 2020-03-31 18:45:36 +01:00
baldurk fbe2d1fbee Change ReadAll/WriteAll to take rdcstr instead of char* filename 2020-03-31 18:45:36 +01:00
Aliya Pazylbekova bfeb66d4ce Pixel history changes
- Add config to enable pixel history
- Fix several validation errors
- Fix primitive ID reporting when depth test is OFF
- Patch primitive ID and fixed color shader to output to the correct
framebuffer location when there are multiple color attachments
2020-03-31 18:44:55 +01:00
Aliya Pazylbekova bebc78b106 Fill in return code for LaunchProcess on linux 2020-03-31 18:44:42 +01:00
baldurk 52310f174f Fix clang-format issue missed in PR 2020-03-30 22:38:30 +01:00
baldurk 27f2a4b7f9 Don't modify states/variables list on replay thread
* Otherwise this can race with the UI thread if it's executing a shortcut.
2020-03-30 21:47:39 +01:00