Commit Graph

7564 Commits

Author SHA1 Message Date
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
baldurk 165434a1f0 For completely unknown GL functions, return the original function
* CheckUnsupported handles all known compatibility GL functions and extension
  functions, so this would only be true for an unpublished or completely new
  extension. It might break, but if it's an internal function call it's better
  to pass it through.
2018-06-22 19:28:30 +01:00
baldurk 55c1ace6ef Fix incorrect serialisation of ProgramUniformValue. Closes #1019 2018-06-22 19:28:30 +01:00
Remi Palandri 0d7dd0aaa7 disable eglSwapBuffers if VR markers are being used 2018-06-21 19:32:50 +01:00
baldurk 56d22706a8 Fix incorrectly sized ColorMask array. 2018-06-21 19:31:37 +01:00
baldurk 809e5f6c2f Make sure proxy textures have minimum dimensions in case of 0x0 size 2018-06-21 17:46:15 +01:00
baldurk 0d329b213f Add remap for RGBA4 2018-06-21 17:46:15 +01:00
baldurk 24adf08a75 Remove references to deleted CommonPipelineState 2018-06-21 17:46:15 +01:00
baldurk 83a0066f00 Add support for VK_KHR_image_format_list 2018-06-21 17:46:15 +01:00
baldurk 7958107bdc Clear GL array texture data cache in ReplayLog
* Otherwise the array data could be stale if we request the same array's data
  over again.
2018-06-21 17:46:15 +01:00
baldurk f1318b0961 Don't use LastCaptureFilePath for import file browser 2018-06-21 17:46:15 +01:00
baldurk 427f1fe0ac If a buffer is somehow 0 bytes, create it as at least 4 bytes
* This is harmless padding and will avoid some errors on creation.
2018-06-21 17:46:15 +01:00
baldurk 91ec7f6c81 On GLES in emulated glGetTexImage, do manual blit from ALPHA to R8
* We emulate the readback by creating an FBO, binding the texture, and reading
  it back. Unfortunately a texture with type GL_ALPHA can't be bound to an FBO,
  so the readback fails.
* As a fix, we do a manual draw to a temporary R8 texture with the same
  dimensions, then read it back the conventional way. This is wasteful but the
  only way.
* In future there may be other formats that can't be bound to an FBO but aren't
  compressed.
2018-06-21 17:46:17 +01:00
baldurk 6b9837e358 Make GL text rendering state pusher/popper available to code generally
* We also push/pop a couple more bits of state - ARRAY_BUFFER binding,
  RASTERIZER_DISCARD enable bit, and color mask
2018-06-21 11:32:23 +01:00
baldurk 5235b2e4b2 Check if RASTERIZER_DISCARD state is available 2018-06-21 11:32:14 +01:00
baldurk d8af674bcb Fix indexed color mask handling in renderstate 2018-06-21 11:32:14 +01:00
baldurk fb3c9ac992 Add support for some extensions that can just be pass-through
* VK_EXT_shader_stencil_export and VK_EXT_shader_viewport_index_layer are
  shader-only extensions that don't affect the postvs code.
* VK_EXT_depth_range_unrestricted lifts a restriction that we don't care about.
2018-06-21 11:32:14 +01:00
baldurk 3cc0d94f51 Set loader dispatch table on external queue command buffers
* Not really necessary as the loader will never see them, but it's more correct.
2018-06-21 11:32:14 +01:00
Remi Palandri 6085fe66e1 adding support for multiview and MSAA in GL replays 2018-06-21 11:31:48 +01:00
baldurk 67037ed4a1 Fix GLES initial state readback of compressed cubemaps 2018-06-20 22:31:32 +01:00
baldurk 44edfc64cc Handle eGL_UNSIGNED_SHORT_5_6_5 in GLTypeSize 2018-06-20 22:31:32 +01:00
baldurk 3eb522c316 Register any context's default framebuffer as a resource 2018-06-20 22:31:32 +01:00
baldurk dfaa632d2e Remove promotion of unsized formats to sized formats
* It turns out there are some corners of the spec where *only* an unsized format
  is valid, and a sized format that's at least as large will break, so the only
  way to fix this is to preserve unsized formats.
* This does mean things could break if the driver at replay-time makes a
  different decision about what sized format to pick, but hopefully that won't
  be an issue.
2018-06-20 22:31:32 +01:00
baldurk 4f65bb1b80 Ensure context pair is set up before creating per-context objects
* Without this, client-memory IBs/VBs will not have the correct context
  sharegroup set.
2018-06-20 22:31:32 +01:00
baldurk 7b63aa9546 Register some common classes with the crash handler to preserve
* This hopefully makes crash dumps more useful if we can get at their direct
  members reliably.
2018-06-20 22:31:32 +01:00
baldurk 4d763758d4 Fix some multi-queue bugs
* If the capture requires an external queue but never uses it (e.g. it has some
  resource that's on another queue and either incorrectly accesses it on the
  wrong queue or doesn't access it at all but still somehow has it referenced)
  we need an external queue - if we didn't find one in the capture by the time
  we get to ApplyInitialContents() we fetch it ourselves.
* We also fix up device creation info if we've remapped the queues into
  duplicates by having the replay with fewer queue families than capture.
2018-06-20 22:31:32 +01:00
baldurk 2fb575693d Allow equal EIDs for fake markers generated in core code 2018-06-20 22:31:31 +01:00
baldurk b3a49858ab Fix compilation on linux 2018-06-20 09:34:45 +01:00
baldurk dc8347262e Add support for ARB_gl_spirv. Closes #767 2018-06-19 20:48:30 +01:00