Commit Graph
5877 Commits
Author SHA1 Message Date
baldurk eba2c65870 Move ResourceRange out of the render state, and cache it in views
* We also store depth & stencil read-only state for DSVs and SRVs.
2017-07-27 16:17:25 +01:00
baldurk 5b828c8f9d Add template specialisations for GetIDForResource for most types
* This avoids having to go throug the pool checking when we know
  concretely what type we're looking up, we just need to cast to the
  wrapped type and fetch it.
2017-07-27 16:17:24 +01:00
baldurk 97e16e8333 Make sure to sync *all* GPU queues before processing ExecuteIndirect 2017-07-27 16:14:18 +01:00
baldurk 806876c540 Add a menu item to do nothing but replay the capture in a tight loop. 2017-07-27 16:14:17 +01:00
baldurk 2e8f559f51 Where available we replay to AMD markers as well as D3D12 markers 2017-07-27 16:14:17 +01:00
baldurk 72bae9bdc9 Re-organise debug marker handling during replay
* Where available or allowed, we replay the captured user markers.
* When we're doing partial replay and we only push some of the markers
  then stop, we keep track of how many were pushed so we can pop them
  again and keep things balanced.
* Also for renderdoc internal book-keeping around the frame replay
  itself we explicitly annotate the renderdoc internals
* On vulkan since there are no queue-level markers, we fire single-shot
  command buffers that do nothing but push/pop/insert a marker.
2017-07-27 16:14:17 +01:00
baldurk 180947ddcb Unify handling of extension fetching between capture & replay
* Instead of hardcoding which extension functions we fetch on replay,
  we do the same as on capture and fetch all functions for the
  extensions that are actually enabled.
2017-07-27 16:14:17 +01:00
Jimmy LeeandBaldur Karlsson 517251caee fixed vrapi swapchain mip level inaccuracy 2017-07-26 02:31:34 -07:00
Jimmy LeeandBaldur Karlsson 310ada841a gles multi-view support 2017-07-26 02:31:34 -07:00
baldurk 8476be2300 Fix mac build, split PlistBuddy use to separate script, suppress errors
* There's no "add or replace" so we have to just delete and ignore if
  it fails, then add/set as normal.
2017-07-25 22:06:30 +01:00
baldurk fb1c75ab1c Don't fork to new process if we don't have anything to run
* If we fork and then exit it seems to leave weird processes around that
  hang around.
2017-07-25 20:34:38 +01:00
baldurk a53801f019 Make sure dependent options in capture dialog always update 2017-07-25 09:24:33 +01:00
baldurk 7ba92df31e Fix incorrectly swapped for Vulkan/OpenGL ISA generation ability 2017-07-25 09:23:37 +01:00
baldurk 07aa7e5cbc Add timeline bar to VS filters 2017-07-25 09:23:26 +01:00
baldurk fbeb57baf6 Don't change background colour if the QColorDialog was aborted 2017-07-25 09:23:17 +01:00
baldurk 371c1f9f8c Update currently hovered item on scroll events too. 2017-07-25 09:23:09 +01:00
baldurk 8a0432add9 Fix crashes if drawcall list goes away when log is closed 2017-07-25 09:23:04 +01:00
baldurk e005522152 Give better default sizing on startup to VTX/IDX columns 2017-07-25 09:22:51 +01:00
baldurk 599b6f1eaf Add manual fixup of <img> tags in richtext labels, to set to @2x version 2017-07-25 09:22:32 +01:00
baldurk 6612024f43 Fix use of PlistBuddy on subsequent recompilations of qrenderdoc on OS X
* There's an error if you add a property that's already there, so we
  instead delete it each time before adding it.
2017-07-25 09:21:14 +01:00
baldurk 434534d2e3 Release DIA2 handles when shutting down callstack resolver
* Otherwise a handle is kept open to the PDB and you can't recompile.
2017-07-25 09:11:17 +01:00
baldurk c2f08d25de Android layer is compiled as librenderdoc.so before being renamed/copied 2017-07-25 09:11:01 +01:00
baldurk d539fed918 Add support for VK_KHR_get_memory_requirements2 & dedicated_allocation
* Unverified as yet, but the former is relatively straightforward and
  not serialised, and the latter is quite similar to the NV dedicated
  allocation extension.
2017-07-21 18:52:15 +01:00
baldurk 001b6b4e92 Update to vulkan.h 1.0.55
* Drop support for now deprecated KHX sharing extensions:
  - VK_KHX_external_memory
  - VK_KHX_external_memory_capabilities
  - VK_KHX_external_memory_win32
  - VK_KHX_external_memory_fd
  - VK_KHX_external_semaphore
  - VK_KHX_external_semaphore_capabilities
  - VK_KHX_external_semaphore_win32
  - VK_KHX_external_semaphore_fd
  - VK_KHX_win32_keyed_mutex
* And add support for the KHR promoted versions (which are almost the
  same, with some minor changes).
2017-07-21 18:52:14 +01:00
Cody NorthropandBaldur Karlsson af896d55e6 cmake: Add variable for custom layer location 2017-07-21 10:29:46 -07:00
Cody NorthropandBaldur Karlsson d66afc0144 android: Add ability to check RenderDoc support, try to fix it
After selecting an application to launch on Android, inspect it to see if
it contains the RenderDoc layer and required permissions. If it does not,
display a warning similar to desktop. When clicked, if only the layer was
missing, offer to patch the APK, uninstall, and reinstall, with the
warning that it doesn't work for all applications (or at all for GLES).
Also provides pointers to how to package the layer yourself.

The process works by using the host temp directory to pull the APK and
modify it.  If the steps fail for any reason, the log is populated and
patching is halted.
2017-07-21 10:29:46 -07:00
Cody NorthropandBaldur Karlsson 296854da73 strings: Helper to remove pattern from the end 2017-07-21 10:29:46 -07:00
Cody NorthropandBaldur Karlsson cde58e7326 process: Add a path to execute scripts 2017-07-21 10:29:46 -07:00
Cody NorthropandBaldur Karlsson 488820e291 FileIO: Move PATH searching into its own function 2017-07-21 10:29:46 -07:00
Cody NorthropandBaldur Karlsson 7f0758f0ae android: Rename librenderdoc to libVkLayer_GLES_Renderdoc
This allows the library to be used as a Vulkan layer and shared
object for GLES debugging.  It was already being renamed in the
distribution scripts.  We've been renaming by hand for local
Vulkan development.
2017-07-21 10:29:46 -07:00
Cody NorthropandBaldur Karlsson c735a30750 os: Update LaunchProcess to consume all stdout before checking stderr
For commands that write to stdout multiple times before writing
stderr, the second ReadFile would hang indefinitely.  This was
seen using "adb pull" with a sufficiently large APK (~20MB).
2017-07-21 10:29:46 -07:00
Cody NorthropandBaldur Karlsson e0dfdedb24 android: Add execCommand and update adbExecCommand
This adds a convenient way to call out to commands other than adb
and see their result.  Updated adbExecCommand to use the new helper.
2017-07-21 10:29:46 -07:00
Cody NorthropandBaldur Karlsson 930cc2cfb0 posix: Don't modify env while getting app path
This code was inadvertently changing the working environment
of applications that called it.  Hasn't been a problem until
we started calling scripts which need PATH to remain good.
2017-07-21 10:29:46 -07:00
baldurk 1ff3da4a82 Split up C-comment in a multi-line macro that was confusing clang-format
* Every time clang-format applied to this file, it would add a new \
  on the end of the first line of the comment. Splitting it into two
  single-line C comments works around this behaviour.
2017-07-21 17:29:09 +01:00
baldurk 5b3ffcd5b1 Add --build-id link parameter on android so that symbols can be loaded
* Without this android studio/lldb can't load the symbols if the lib
  inserted in an apk has been stripped.
2017-07-21 17:24:47 +01:00
baldurk 1c75ee886c Restore single-channel selection for depth/stencil display
* Use color mask to prevent depth from being splatted out across all
  channels and writing into where 'stencil' data should be.
2017-07-21 17:21:19 +01:00
Jimmy LeeandBaldur Karlsson 06502e12c4 remap all depth format for gles depth fetch 2017-07-21 08:18:56 -07:00
Janos PantosandBaldur Karlsson 74b343afe3 Add support for glBlendBarrier GLES core function 2017-07-20 11:22:47 -07:00
Janos PantosandBaldur Karlsson 5123da2acd Add GLES 3.2 core header and its dependencies 2017-07-20 11:22:47 -07:00
Janos PantosandBaldur Karlsson 6eac3dea9d Fix emulating luminance format during replay 2017-07-20 09:51:17 -07:00
Janos PantosandBaldur Karlsson 5af1aa5cad Don't use glCopyImageSubData for compressed textures on GLES
It seems that it does not works for compressed textures on GLES, so
it isn't used during serialization and replay.
2017-07-20 09:51:17 -07:00
Peter GalandBaldur Karlsson ca2b12be4d Export the egl* symbols via linker script
The egl symbols should be exported so applications
using it can correctly run with RenderDoc.
2017-07-20 09:50:46 -07:00
Peter GalandBaldur Karlsson 681aeba443 Advertise EGL extensions via gl ext string
Advertised EGL extensions:
* EGL_KHR_create_context
* EGL_KHR_surfaceless_context
2017-07-20 09:50:29 -07:00
Janos PantosandBaldur Karlsson a8840c6728 Add support for GL_EXT_discard_framebuffer extension 2017-07-18 09:50:51 -07:00
Janos PantosandBaldur Karlsson 94efd7bf0c Add support for some GLES extensions
* GL_OES_depth24
* GL_OES_depth32
* GL_OES_depth_texture
* GL_OES_depth_texture_cube_map
* GL_OES_fbo_render_mipmap
* GL_OES_packed_depth_stencil
* GL_OES_texture_3D
* GL_OES_texture_npot
* GL_OES_vertex_half_float
2017-07-18 09:50:51 -07:00
baldurk 6ad59c94a3 Don't use linker script on apple 2017-07-17 17:21:04 +01:00
baldurk 389cff23f3 Add linker version script to explicitly expose symbols. Refs #683
* When statically linking libstdc++ by default the symbols are all
  default visibility. This causes a problem if you statically link an
  old libstdc++ then inject librenderdoc.so, and the application starts
  using the old libstdc++ instead of the system's.
* Really we only want to use the static one for calls from
  librenderdoc.so. In theory -Wl,--exclude-libs,libstdc++ should do this
  for us, but it starts to cause bizarre crashes.
* Instead, we have to resort to a manual linker script which whitelists
  which symbols should be visible. Normally we can do this just for our
  own symbols with -fvisibility=hidden and __attribute__((visibility))
  but that doesn't work for linked symbols apparently.
2017-07-17 16:34:13 +01:00
baldurk 2f6dffffc5 Expose camera class properly, drop Camera_* entry points from Qt UI 2017-07-17 16:34:12 +01:00
baldurk 515c933545 Rename Maths_* and Topology_* to make RENDERDOC_ a consistent prefix
* This will make it easier for a linker script on linux
2017-07-17 15:14:15 +01:00
baldurk 4a8702f66e Fix some cases where drawcall previous/next pointers wouldn't be set up 2017-07-17 12:46:43 +01:00