Commit Graph

499 Commits

Author SHA1 Message Date
baldurk 5145478d19 Remove unused config variable LastCaptureExe
* In the .NET UI this was used to pre-fill the executable selection dialog, but
  it's unnecessary and hasn't been missed.
2018-09-06 10:59:15 +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 e81ba58456 Don't call QFile::exists() with empty filename 2018-09-03 14:12:20 +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 01fb937e28 Only run manual dialog event loop on win32, it can break other platforms 2018-08-31 22:14:12 +01:00
baldurk f70a86042d Pass {glsl_stage4} parameter when calling for disassembly as well 2018-08-28 18:23:57 +01:00
baldurk babe36bf7e Preserve stdout/stderr from external shader tools and display to user 2018-08-15 13:40:21 +01:00
baldurk 197a279e31 Add missing override specifier 2018-08-09 17:53:50 +01:00
baldurk adb02cbee4 Linux compile fixes 2018-08-09 17:26:47 +01:00
baldurk 3c7b420e59 Expand SPIR-V disassemblers to general shader processing tools
* Instead of just configuring SPIR-V disassemblers and picking only the first
  one when we need to edit SPIR-V, we allow setting up any shader processor that
  goes between two shader encodings.
* When editing, the default will still be to use embedded source, and then after
  that the first tool that goes from the native shader format to a text format,
  but the drop-down allows you to pick any of them.
* Similarly in the shader viewer you can configure the compilation options and
  method, to choose the compiler you want to use. Embedded command line
  parameters in the shader are automatically appended.
2018-08-09 16:56:53 +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 cbcfe85d97 Use natural human sort for resources in resource inspector. Refs #1034 2018-08-03 16:52:13 +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 12e43443ab Shut down adb when closing qrenderdoc if it's our adb
* This has some possible problems - e.g. if one copy of qrenderdoc is closed and
  kills the server used by another copy. However it seems impossible to reliably
  manage adb and we need to ensure we don't leave the process lingering around.
* At the moment 95% of users don't use android, so it's most important that they
  have a smooth experience.
* This was the cause of problems around updating versions because adb.exe would
  hang around and then be 'in use' and not able to be overwritten.
2018-07-26 17:24:27 +01:00
baldurk 94694e0923 Fix processing of --updatedone
* Mark update as not available before starting up and creating main window.
2018-07-24 17:49:32 +01:00
baldurk b08e9c76c0 Fix incorrectly reversed check for progress of capture transfers 2018-07-24 15:51:30 +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 b955ef0b52 Support a NULL window for functions that only need it for dialogs
* Primarily useful for Python where threading can cause problems, and there's no
  need.
2018-07-11 19:32:16 +01:00
baldurk 1c510cb3a3 Don't crash if RemoteHost hostname is empty or short 2018-07-09 16:28:00 +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 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 1761f5ab36 Highlight variables/registers that have changed 2018-06-22 19:28:33 +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 24adf08a75 Remove references to deleted CommonPipelineState 2018-06-21 17:46:15 +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 4561b55464 Persist a default browse directory for file dialogs, if none is provided
* This provides a slightly more sensible default than the application working
  directory.
* The default is shared across all dialogs and open/save.
2018-06-15 19:40:54 +01:00
baldurk 093e8a6b40 Support NewFloatingArea and LastUsedArea properly in AddDockWindow 2018-06-14 17:57:31 +01:00
baldurk bf70aeb64d Handle None being passed from Python for a QWidget pointer 2018-06-14 17:56:18 +01:00
baldurk 01a31b51d8 Print error if GUIInvoke is called with NULL object 2018-05-25 14:21:17 +01:00
baldurk 858b02480b Pass command-line args as 'intent args' when launching apk. Refs #987 2018-05-24 21:42:29 +01:00
baldurk 206e0f1188 Add quality-of-life/convenience accessor functions to SDObject 2018-05-24 21:42:29 +01:00
baldurk ab9a212b8d Update qprocessinfo to 0d591f19f17805d65ef4880c3fc51021523003df 2018-05-23 17:28:42 +01:00
baldurk 851a88133a Remove the 'save all initials' option. Behave as if it's always enabled
* This option has always been a mixed bag - when originally written captures
  weren't compressed at all so saving the cost of a initial contents on a
  gbuffer would have a significant savings.
* Now with compression the savings are lesser, and it's a source of
  bugs/confusion for the case where either a bug is caused by leaking data from
  the previous frame or worse still the contents are discarded incorrectly.
* D3D11 will now behave as the other APIs will - saving initial contents
  whenever needed even if they seem like they might not be used.
2018-05-23 16:08:44 +01:00
baldurk d8a64c4172 Fix compilation on GCC 8. Closes #984 2018-05-15 19:44:17 +01:00
baldurk afb7ea5dab Improve python wrapping of WindowingData
* If we make WindowingData an empty struct not an opaque one, it won't leak memory
* Similarly we need typemaps to allow python to pass plain ints and have them cast to pointers
2018-05-15 19:44:17 +01:00
baldurk 5c26270de0 Implement __hash__() for ResourceId 2018-05-14 16:40:58 +01:00
baldurk f1dcb785a1 Fix implementation of array_setsubscript when deleting a range 2018-05-14 16:40:45 +01:00
Hans-Kristian Arntzen 50dc1d6faa Support A2B10G10R10_SNORM in buffer viewer. 2018-05-11 01:04:45 +01:00
baldurk d7b0807875 Ignore MultiDraw markers when checking if the capture has markers 2018-05-09 13:05:00 +01:00
baldurk 4ade1187aa Fix linux compilation - pass parent QObject* to GUIInvoke 2018-05-08 19:10:28 +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
baldurk 70f879ad7a Export AmdPowerXpressRequestHighPerformance to encourage use of dGPU 2018-05-03 15:35:01 +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 52af0722ee Add a 'human formatting' function for special-case/heuristic display
* For unsigned integers this notices UINT16/32/64_MAX and displays as
  a text string for easier consumption.
* Also for numbers over a given threshold we display them as hex instead
  of decimal.
2018-04-26 12:31:05 +01:00