Commit Graph

7611 Commits

Author SHA1 Message Date
baldurk b47ce7d413 Remove the ability to enable/disable hooks
* This wasn't very well supported after D3D11 anyway, and modern tools
  (VSGD/PIX/etc) don't respect D3DPERF_SetOptions which was the only route that
  actually needed to globally enable/disable hooks.
* D3D11CreateDevices's flag still works to prevent hooking.
2018-07-06 22:44:19 +01:00
baldurk 73e1f7e770 Refactor GL hookset to only a single shared hookset
* Rather than having a hookset created within the different bits of platform
  hooking code and then passed around everywhere, we just make a single global
  hookset object that's shared.
* There's no risk of conflict because our GL object handles all possible
  contexts, there's no separate instancing or anything.
* We also have places like the GL emulation or unsupported function hooks that
  do not handle two separate onward functions, and we undoubtedly have many
  assumptions that only one copy of RenderDoc will hook any given API. If we
  needed multiple hooksets within the same library a huge amount would need to
  change.
2018-07-06 22:44:18 +01:00
baldurk f849952ce9 Move global GL lock into common code 2018-07-06 22:44:18 +01:00
baldurk a7509dadb6 Remove Pre/Post Init/Shutdown of counters. Inline into normal flow 2018-07-06 22:44:18 +01:00
baldurk 152ebc2e2e Add handling for D3D12.1 - D3D12.3 interface UUIDs in queries 2018-07-06 22:44:18 +01:00
baldurk 02f3196935 Support integer and 16/32-bit alpha/intensity/luminance textures 2018-07-06 22:44:17 +01:00
baldurk 06d14ff62b Define safe comparisons for python bindings
* In particular this means that it's safe to compare a ResourceId or similar
  against None. It is always not-equal but it's useful to have the comparison
  work and return the expected result instead of throwing a null reference
  exception.
2018-07-06 22:44:17 +01:00
baldurk b873728d49 Copy trailing null byte to keep GCC warnings happy. Closes #1028 2018-07-06 22:44:17 +01:00
baldurk b8e3fe5f31 Don't unnecessarily require indexed functions - check for extensions
* For indexed viewports or blends, we make sure we have fallback code in case
  the extensions aren't present.
2018-07-06 22:44:17 +01:00
baldurk 96d53c162c Prefer glFramebufferTexture2D over glFramebufferTexture
* The former is just as good for our purposes (we almost always bind 2D
  textures) and is more portable/widely available.
2018-07-06 22:44:16 +01:00
baldurk ff619c8014 Ensure that vendor checks don't pollute global state
* In particular don't leave a VAO bound, even after deleting it.
2018-07-06 22:44:16 +01:00
baldurk edbfdfb779 Ensure that local EGL headers include our platform headers, not system 2018-07-06 22:44:16 +01:00
baldurk 573ab82fbf Match varying names in case some GL driver doesn't link by location 2018-07-06 22:44:16 +01:00
baldurk 487ac04d83 When generating GLES shaders without uniforms, declare precision
* This usually comes from debuguniforms.h, but if we exclude it we still need to
  declare the precision.
2018-07-06 22:44:10 +01:00
baldurk 5477b289ac Only warn if glBindFragDataLocation is not supported
* This becomes very spammy and there's not much that can be done - we just have
  to hope the program bindings are not variable and end up the same on replay as
  they were on capture.
2018-07-06 20:44:30 +01:00
baldurk db551cd23d Fix missing apply of blend state when indexed blending is not available 2018-07-06 20:44:30 +01:00
baldurk dcfe93d5c6 EXT_draw_buffers2 equivalent isn't available until GLES 3.2 2018-07-06 20:44:30 +01:00
Dzmitry Malyshau 9c9e61a95e Remove unused this in lambdas of ShaderViewer 2018-07-03 22:08:28 +01:00
baldurk 6e8218d0e0 When applying render state, don't assume UAVStartSlot == NumRTVs
* On D3D11.1 the UAV slots can be greater than 8 which is the maximum value for
  NumRTVs.
2018-06-28 18:25:20 +01:00
baldurk 08e7eecd3b Cache EvaluateAttribute* per-sample data for debugging. Closes #1025 2018-06-28 18:25:20 +01:00
baldurk 56c55da9f5 Bypass wrapper for a couple of buffer operations
* This prevents our wrapper from serialising internal operations in the capture.
2018-06-28 18:25:20 +01:00
baldurk bcafe108f6 Make it clear that GL 3.2 and up are supported 2018-06-28 18:25:20 +01:00
baldurk 66946f1b3b Fix handling of sample_info/sample_pos for non-MSAA rasterizer
* Refs #1025 but is not a complete fix as sample evaluation is still not
  working.
2018-06-28 18:25:20 +01:00
baldurk e08f1a4d2e Set proper loader dispatch table while allocating external queue cmd buf 2018-06-28 18:25:20 +01:00
baldurk e16d06960c Thread ID should be read from XML as uint64_t 2018-06-27 20:24:07 +01:00
baldurk 6785272944 Copy stored compressed data on GLES in glCopyImageSubData
* Could be a common pattern with texture streaming to copy a smaller texture's
  mips into the mip-tail of a larger texture, then only provide data for higher
  mips.
2018-06-27 20:24:07 +01:00
baldurk 001c07e079 Serialise glFlush and glFinish 2018-06-27 20:24:07 +01:00
baldurk 2a2ac0624d Handle unsized depth/stencil formats correctly 2018-06-27 20:24:06 +01:00
baldurk 7338316a40 Remove vrapi hooks. Closes #1011
* Unfortunately even with recent fixes, some devices still break when vrapi is
  hooked.
2018-06-26 18:54:29 +01:00
baldurk 34d689b809 Include fetch_counters example in index 2018-06-25 21:58:02 +01:00
baldurk 5e81319424 When replaying a single multidraw draw, ensure the draw index is correct
* We accomplish this by doing a 'multidraw' for even the single draw case, but
  set the parameters for all prior draws to 0 so nothing happens.
2018-06-25 18:14:05 +01:00
baldurk faacec5e96 Read indirect draw count from parameter buffer, not draw indirect buffer 2018-06-25 18:14:05 +01:00
baldurk 43d9a35c45 Specialise stringifaction of glClear bitfield mask 2018-06-25 18:14:05 +01:00
baldurk 87ff61169f Take IDs of input variables from SPIR-V patch data
* If we try and match up input variables by location, and the shader has
  multiple variables mapped to a single location, we end up leaving one variable
  unmapped. We already have the information so we don't have to do this
  inaccurate lookup.
2018-06-25 18:14:05 +01:00
baldurk 0604d037e6 Fix incorrect allocation not allowing space for pathname 2018-06-25 18:14:05 +01:00
baldurk 34e174179a Fix FindDiffRange() check of final non-vector-sized bytes 2018-06-25 18:14:05 +01:00
baldurk 2476474ca9 Add python sample for fetching counters 2018-06-25 18:14:04 +01:00
MagicPoncho 1bd83cca23 Add buffer barriers to "Usage in frame" view
This is very helpful to debug missing barriers by matching the workflow offered for images.
2018-06-23 10:10:49 +01:00
baldurk f0c8efe24d Change colors on timeline bar pips to be color blind friendly. 2018-06-23 10:10:49 +01:00
baldurk 89637d8b35 32-bit compile fix 2018-06-22 21:36:06 +01:00
baldurk 286446b008 Fix threading memory corruption with remote host probe 2018-06-22 19:28:35 +01:00
baldurk ec2806df06 Add context menu for manipulating watch panel 2018-06-22 19:28:34 +01:00
baldurk fc3e527181 If D3DCOMPILE_SKIP_OPTIMIZATION is set, prefer source-level debugging 2018-06-22 19:28:34 +01:00
baldurk 04f214c768 Add toolbar button to switch between HLSL and assembly debugging
* This hopefully makes the HLSL debug mode more obvious to people.
2018-06-22 19:28:34 +01:00
baldurk c5689827a9 Allow clicking anywhere in rX.xyzw to highlight register 2018-06-22 19:28:34 +01:00
baldurk c0317855f8 Show tooltips for known local variables and constants 2018-06-22 19:28:34 +01:00
baldurk 2a6a0f0f95 Support local variables in watch expressions 2018-06-22 19:28:34 +01:00
baldurk 1761f5ab36 Highlight variables/registers that have changed 2018-06-22 19:28:33 +01:00
baldurk 5b3a12cd0c Save and restore tree expansion state when repopulating locals widget 2018-06-22 19:28:33 +01:00
baldurk cb0df2c844 Combine together structs/arrays in HLSL locals panel 2018-06-22 19:28:33 +01:00