Commit Graph

7592 Commits

Author SHA1 Message Date
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
baldurk 880f529fda Change mapping representation to be gather-based per variable
* Instead of having an N:N mapping of parts of variables to parts of registers,
  instead we gather everything together under each variable and it has a list of
  registers that comprise it.
* Any gaps are represented as undefined register mappings, for components that
  aren't available in any register.
2018-06-22 19:28:33 +01:00
baldurk 7f117c6356 Support builtin input variables in debugging 2018-06-22 19:28:33 +01:00
baldurk 7751a5749a Limit the section of code we search for inline sites 2018-06-22 19:28:33 +01:00
baldurk 8b5ab06da7 Rename variables panel to registers 2018-06-22 19:28:32 +01:00
baldurk f7b5cca1ab Handle geometry shader register types 2018-06-22 19:28:32 +01:00
baldurk 06b7e39c26 Don't crash if stepping back from last instruction 2018-06-22 19:28:32 +01:00
baldurk 8381a1955e Fix some processing of inline site encoded function annotations 2018-06-22 19:28:32 +01:00
baldurk 377715a61f Don't create tabs for completely empty files in shader viewer 2018-06-22 19:28:32 +01:00
baldurk 568cac2b65 Handle register mapping to special non-indexed builtin output variables 2018-06-22 19:28:32 +01:00
baldurk 77ee70c2d2 Perform #line pre-processing earlier, so it's picked up when reflecting
* If we only do this preprocessing when generating a disassembly string, it's
  not done when the files in the shader reflection are fetched.
2018-06-22 19:28:31 +01:00
baldurk 9b9451971a Match builtin outputs by semantic instead of by name
* Fixes a spurious error which was actually correctly handled.
2018-06-22 19:28:31 +01:00
baldurk 199a1f6de5 Add stencil reference as a supported shader builtin 2018-06-22 19:28:31 +01:00
baldurk 233fbedf35 Store more type information to resolve struct members in reg mapping
* Also adds support for arrays in the type info
* We allow register mapping aliasing since it can happen during function calls
  if the same local is declared in two places - the PDB doesn't seem to add a
  gap for the 'parent' variable unfortunately.
2018-06-22 19:28:31 +01:00
baldurk 38acb9175a Indexable temp registers always start at component 0 2018-06-22 19:28:31 +01:00
baldurk c0200b66c8 Check for presence of debug info before fetching line mapping 2018-06-22 19:28:31 +01:00
baldurk 2b7d9aea38 Create a line-to-instruction map to allow breakpoints/cursor-run in HLSL 2018-06-22 19:28:30 +01:00
baldurk 52e9a6c01d Pass through line-mapping information for each instruction to UI
* This lets the UI highlight the source line as stepping happens, as well as
  allowing stepping purely in HLSL.
2018-06-22 19:28:30 +01:00
baldurk ff9f5675e9 Display high-level language locals corresponding to registers 2018-06-22 19:28:30 +01:00
baldurk e2dcd902cd Gather and display callstack information during shader debugging 2018-06-22 19:28:30 +01:00