Commit Graph

618 Commits

Author SHA1 Message Date
baldurk 27098f8f70 Give our threads debugger-friendly names 2019-12-19 21:50:13 +00:00
baldurk 93b0d65726 Override new/delete for structured data objects to go through our allocs
* Otherwise if structured data cross a module boundary the (de)allocation could
  fail.
* We also ban new/delete for structs that don't need it
2019-12-17 14:51:11 +00:00
baldurk 14d01ff995 Remove support for serialising STL types, remove STL interop 2019-12-16 18:10:32 +00:00
baldurk c4ca8cb1d1 Reduce reliance on big public headers where possible
* Mostly moving includes from common headers to cpp where possible, and removing
  includes of the whole thing where only enums or rdcstr etc are needed.
2019-12-16 17:06:16 +00:00
baldurk 25536836b6 Split up renderdoc_replay.h header further 2019-12-16 17:06:15 +00:00
baldurk ec7a852582 Refactor and improve rdcarray/rdcstr interface
* We are going to replace all std::string/std::vector use with these.
2019-12-16 17:06:15 +00:00
baldurk 8e21b28785 Split basic_types.h into separate independent headers 2019-12-16 17:05:11 +00:00
baldurk 6d1d302491 Fix a number of warnings identified by higher clang warning levels
* We enable a couple of high signal-to-noise warnings in all clang builds
2019-12-02 20:41:28 +00:00
baldurk ff08748238 Ensure all files have trailing new-lines and enforce with clang warning 2019-12-02 20:28:05 +00:00
baldurk 5838a33d7e Don't add array stride until first child struct 2019-11-29 22:41:09 +00:00
baldurk f514815e3c Update buffer formatter help text, save its visibility in config 2019-11-29 13:53:45 +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 4214aa45bf Fix interpretation of formatted shader variables 2019-11-29 13:53:44 +00:00
baldurk 324b96c977 Remove FormatElement::byteSize(), move to ResourceFormat 2019-11-29 13:53:44 +00:00
baldurk 00170e2ec3 Make GetVariants a free function taking interpreting format directly
* We also store the format in BufferElementProperties for the buffer viewer
  since we'll later remove the ResourceFormat stored in FormatElement
2019-11-29 13:53:44 +00:00
baldurk f046423664 Split buffer-centric properties out of FormatElement 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 8b7d23cba1 Rename SDObjectData::str member in python, to avoid confusion
* Although it's legal, the language type is 'str' so this could cause
  namespacing issues potentially
2019-11-12 20:44:35 +00:00
baldurk 6562185e1a When using a terminal emulator to sudo, print the command 2019-10-16 15:11:20 +01:00
baldurk b48b3fb87e pkexec is not a reliably graphical sudo, don't use it 2019-10-16 13:39:24 +01:00
baldurk 328666e71f Fix clipping of rendered rich resource text 2019-10-15 15:04:56 +01:00
baldurk 83c98f1ff7 Tweak rich resource text rendering to match non-rich text positioning 2019-10-11 13:07:36 +01: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 a94f238e37 Ensure PersistantConfig member functions are documented 2019-10-09 10:25:49 +01:00
baldurk c67995b85a Make it easier to run tests from within UI 2019-09-20 11:20:45 +01:00
baldurk 8cacf6927d Handle unormten correctly 2019-09-18 17:04:10 +01:00
baldurk 9463cdf785 Add better error checks and race condition protection in crash handling 2019-09-16 11:18:30 +01:00
baldurk 02dcd2183a Fix linux compilation 2019-09-06 23:19:38 +01:00
baldurk e1eaf07f2e Display longs as hex if xlong is used 2019-09-06 22:24:56 +01:00
baldurk a50513e561 Correctly handle long format elements 2019-09-06 22:19:28 +01:00
baldurk 6db13115a3 Fix access to array after target element has been removed 2019-09-04 16:22:29 +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 21be21cb8f RichResourceText QTextDocument should use parent widget's font
* Otherwise the hit-testing might be off
2019-08-27 18:51:57 +01:00
baldurk 6203909791 Expose replay options to the UI
* The defaults can be configured from the settings menu, and there's a new "Open
  Capture with Options" menu option to open a capture with different options
  temporarily.
2019-08-27 18:51:56 +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 878acd4ad9 Add a function to enumerate which GPUs are available at replay time 2019-08-27 18:51:56 +01:00
baldurk 8382d3e4f1 Fix check for legacy adb devices 2019-08-07 21:45:10 +01:00
baldurk 51c15d596f Identify image viewer use before adding API to analytics 2019-08-01 11:19:55 +01:00
baldurk e2704fa2eb Add an abstracted interface around android-specific handling
* This makes it easier to use the same kind of interface to manage other kinds
  of devices.
2019-07-31 17:51:13 +01:00
baldurk 06f2e61b8f Refactor RemoteHost to be copyable with shared storage
* This allows RemoteHost handles to still be valid and usable (if returning
  empty data) when they are deleted/removed if the device is disconnected, as
  well as providing better multi-thread access (they lock internally)
2019-07-31 17:51:12 +01:00
baldurk dc7bf0f1fc Don't use deprecated overload of QProcess::ExitStatus 2019-07-09 16:16:15 +01:00
baldurk b5d10de243 Handle formatting double signature parameters 2019-07-04 12:50:30 +01:00
baldurk 039b65f89f Add a viewer of the diagnostic log in the UI itself 2019-06-27 10:22:13 +01:00
baldurk e525630a17 Add special resource type for A8_UNORM. Closes #1426
* While it's redundant this format is still valid in D3D so needs to be handled
  correctly.
2019-06-25 19:08:07 +01:00
baldurk 38f0d27901 Use configure_file in CMake to force rebuild if git commit changes
* We also only use GIT_COMMIT_HASH where necessary to avoid rebuilding many
  files for no reason, including splitting version.cpp out into a separate
  project as we do with VS since otherwise changing its preprocessor defines
  rebuilds the whole renderdoc project.
* At the same time, move the git hash to be internal only so we don't have to
  try to link version.cpp into other projects like renderdoccmd or qrenderdoc.
2019-06-20 19:14:14 +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