Commit Graph

204 Commits

Author SHA1 Message Date
baldurk 590785c470 Mark edited resources with an (Edited) suffix on their names 2020-04-03 15:19:28 +01:00
baldurk 2916c0f9f7 Update copyright years to 2020 2020-01-06 16:20:45 +00:00
baldurk 27098f8f70 Give our threads debugger-friendly names 2019-12-19 21:50:13 +00:00
baldurk e205054317 Add UI support for GPU typed pointers in buffers 2019-11-29 13:53:44 +00:00
baldurk b3979262a5 Replace FormatElement with ShaderConstant/ShaderVariableType
* FormatElement is now a static BufferFormatter class to help generate and parse
  buffer formatting strings
2019-11-29 13:53:44 +00:00
baldurk db563bb0bf Refactor public interface around handling of textures
* Subresource handling is more consistent - we pass around a struct now that
  contains the array slice, mip level, and sample. We remove the concept of
  'MSAA textures count samples as extra slices within the real slices' and
  internalise that completely. This also means we have a consistent set
  everywhere that we need to refer to a subresource.
* Functions that used to be in the ReplayOutput and use a couple of implicit
  parameters from the texture viewer configuration are now in the
  ReplayController and take them explicitly. This includes GetMinMax,
  GetHistogram, and PickPixel.
* Since these functions aren't ReplayOutput relative, if you want to decode the
  custom shader texture or the overlay texture you need to pass that ID
  directly.
2019-11-26 17:38:25 +00:00
baldurk 0d658156b3 Add a finishing dialog when recompressing a capture 2019-10-10 16:48:42 +01:00
baldurk e9dda8343f When deleting temp files, remove from the recent file list. Closes #1540
* If the UI was launched with a filename as a parameter to open the capture, it
  will be added to the recent capture file list. Only later (relatively
  speaking) if we make a capture connection will we realise that it is temporary
  and potentially delete the file. If we do so, remove the capture from the
  recent file list.
2019-10-10 16:48:42 +01:00
baldurk 6d40bbb783 Add experimental wayland support. Refs #853
* This is only lightly tested and may break heavily. It is disabled by default
 and must be explicitly enabled.
* In particular this is only known to work for Wayland use at capture time.
 Wayland on replay is still unsupported. Known issues include: EGL pbuffer
 surfaces are not implemented on Wayland, Wayland cannot get window dimensions,
 and there are hangs/failures with GL and vulkan presentation with Wayland.
2019-09-02 15:02:27 +01:00
baldurk 20be9f3d52 Add ReplayOptions struct to contain replay-time configuration
* Not currently exposed to the UI or used by the drivers, we just pass the
  default object through
2019-08-27 18:51:56 +01:00
baldurk 51c15d596f Identify image viewer use before adding API to analytics 2019-08-01 11:19:55 +01:00
baldurk 039b65f89f Add a viewer of the diagnostic log in the UI itself 2019-06-27 10:22:13 +01:00
Aliya Pazylbekova e21ddb4877 Set analytics APIs for remote capture file and replay
The API used was not populated for the case of remote
capture and replay.
2019-06-20 19:13:57 +01:00
baldurk 9e09de40ce Fix analytics tracking of capture features
* We want these flags to be 'sticky', not to be unset if they aren't used in a
  capture.
2019-06-06 17:39:14 +01:00
baldurk 694524c7bd Allow querying the shader encoding supported by custom shaders
* This is distinct from target shaders in the remote proxy case - custom shaders
  are built locally.
2019-05-22 16:09:18 +01:00
baldurk bbdf2c1f80 Remove redundant self-assignment 2019-02-28 17:48:30 +00:00
baldurk 5a1c5e2db5 Fix extension package names being incorrect 2019-02-18 17:23:19 +00:00
baldurk fe0be58908 Implement CGLPlatform using CGL and NSOpenGLContext
* On replay on macOS we use NSOpenGLContext so we can render to windows.
* We have two windowing systems on mac - one for Metal compatible outputs and
  one for OpenGL compatible outputs.
2019-02-13 18:50:54 +00:00
Haiyu Zhen ca54a910f5 Add --replayhost command line option for qrenderdoc
This allows users to specify which remote host to connect to on startup.
2019-02-07 23:46:33 +00:00
baldurk 86ff87863e Update copyright years to 2019 2019-02-01 18:32:13 +00:00
baldurk 3f84eff79c Allow python extensions with uppercase letters. Refs #991 2018-12-06 10:52:14 +00:00
baldurk 67ba5f3ed1 Split extensions interface into separate header, add dialog box helpers 2018-10-24 12:22:54 +01:00
baldurk 0a21448114 Rename ExtensionMetadata members to match python naming scheme 2018-10-23 19:32:10 +01:00
baldurk fd6add235f Add missing default: case in switch 2018-10-23 19:05:29 +01:00
baldurk 8447e43e78 Fix panel menus 2018-10-23 15:15:39 +01:00
baldurk 94dfb9890b Allow registering window, panel and context menu items with callbacks 2018-10-23 14:23:12 +01:00
baldurk dd3a352408 Add registration and loading of extensions through a management window 2018-10-23 14:23:11 +01:00
baldurk 0cd0dce704 Don't overload Replay() return type with concrete ReplayManager 2018-10-23 14:23:10 +01:00
baldurk 65b567a944 Add macOS windowing system to public API
* For now it expects a CALayer since this works around a MoltenVK bug
2018-09-05 12:50:58 +01:00
baldurk cb23249b26 Fix mac compilation 2018-09-01 01:11:26 +01:00
baldurk 5406227152 Call CreateWindowingData on the main UI thread
* This allows mac to patch-up the widget to be renderable, and has to happen on
  the UI thread.
2018-08-31 22:14:12 +01:00
baldurk a81e4a2b45 Pass through and allow different source shader encodings when editing
* This means e.g. the D3D11 back-end can accept DXBC directly if the UI can
  provide it, or compile from HLSL as before.
* More importantly, the Vulkan back-end can take SPIR-V compiled from any
  source, or compile from GLSL as before as a fall-back.
2018-08-09 16:56:52 +01:00
baldurk a4dfad6e82 Add a backend query to check shader encodings BuildTargetShader allows
* This will allow the backend to specify both the native format (e.g. SPIR-V,
  DXBC) as well as a language it might be able to internally compile (GLSL or
  HLSL).
* The caller will then able to decide for itself whether it wants to compile to
  native format and pass that down, or pass the language down and let it be
  built internally.
* Currently BuildTargetShader still only accepts shader source.
2018-08-09 16:56:51 +01:00
baldurk 84a90bfdaf Update RenderDoc API version to 1.2.0, add new function. Closes #1037
* The new function SetCaptureFileComments allows users to add comments to a
  capture after creating it at any time.
* We also use anonymous union to remove the need to duplicate API structs for
  backwards compatibility.
2018-08-03 11:16:24 +01:00
baldurk 10b82e6255 Fix possible race condition with capture loading
* The event browser called SetEventID from OnCaptureLoaded, which would then
  call OnEventChanged on all viewers, which if they kicked off work could happen
  at the same time as the later call to OpCaptureLoaded for them.
* In the mesh viewer this seemed to lead to a race condition and had a chance to
  corrupt memory.
2018-07-13 15:43:55 +01:00
baldurk 0dda96a045 Change previous/next/parent IDs in DrawcallDescription to pointers
* This is a legacy holdover from the C# interop not being able to preserve
  pointers easily.
2018-06-18 18:39:06 +01:00
baldurk 14e3a3d360 Move API-agnostic pipeline state wrapper into core interface
* There's no need for this to be in the UI, and moving it allows it to be used
  from script which is very useful.
2018-06-18 18:39:06 +01:00
baldurk 093e8a6b40 Support NewFloatingArea and LastUsedArea properly in AddDockWindow 2018-06-14 17:57:31 +01:00
baldurk d7b0807875 Ignore MultiDraw markers when checking if the capture has markers 2018-05-09 13:05:00 +01:00
baldurk 2efce90591 [Coverity] Fix incorrect logic identified by deref-before-NULL-check 2018-05-08 12:47:28 +01:00
baldurk 082ab4d75d GUIInvoke takes a QObject* to avoid callbacks after object lifetime
* The GUIInvoke object takes a QObject, and uses QPointer to check that
  it hasn't been deleted when the callback fires. This prevents delayed
  callbacks from executing after the object has been deleted and
  crashing.
* In most cases the pointer is just 'this'.
2018-05-08 11:54:34 +01:00
Jake Turner cae6b44a97 Fix xcode9.3 -Wunused-lambda-capture errors
Disable the warning on 3rdparty files
${glslang_dir}/hlsl/hlslParseHelper.cpp

Disable the warning on files where fixing it would cause a non-OSX compile error
os/os_specific.cpp
2018-04-30 10:53:42 +01:00
baldurk 2d0f675ca8 Add socket-based interop with RGP and profile embedding in captures 2018-04-25 19:10:51 +01:00
baldurk d25d942c27 Only count capture load time in release mode 2018-03-01 18:45:32 +00:00
baldurk 1cd8559d0c Pass through current GPU vendor in APIProperties, for analytics 2018-02-25 15:29:14 +00:00
baldurk c0afad8cd8 Default Comments_ShowOnLoad to true, and actually use the value. 2018-02-25 15:29:09 +00:00
baldurk dbfa3cdc4d Remove DrawFlags::SetMarker from API Calls events
* This made them behave inconsistently and was not really necessary
  anyway.
2018-02-20 10:02:40 +00:00
baldurk 1792673864 Show an error message if saving changes fails 2018-02-19 00:52:14 +00:00
baldurk 04034c334b Gather pixel history panels together instead of making new dock for each 2018-02-19 00:52:13 +00:00
baldurk 934800793a Improve workflow for capture import/export
* If the export doesn't need buffers, we export directly from the loaded
  capture file instead of re-loading it.
* Add progress bars for the load step so it shows what's happening
  instead of looking stalled.
* Reduce compression rate on XML+ZIP buffers as it took too long trying
  to compress when exporting large captures.
2018-02-19 00:52:13 +00:00