Commit Graph

11767 Commits

Author SHA1 Message Date
baldurk 2a6774db34 Remove incorrect sRGB conversion of clear overlay background color 2020-12-15 22:52:38 +00:00
baldurk 6ea3f99676 Don't enable scissor in D3D11 overlay if it wasn't enabled prior 2020-12-15 22:52:38 +00:00
baldurk 3aaccc4fda Use rdcfixedarray in parameters for functions instead of C arrays
* This maps better to tuples in python
2020-12-15 22:52:38 +00:00
baldurk 2b0f9c2eba Use richtext representation for ResourceId when converting to string 2020-12-15 22:52:38 +00:00
baldurk d727feb806 Improve handling of multiline richresourcetext documents 2020-12-15 22:52:38 +00:00
baldurk ed813e25bb Fix crash in vulkan overlay if non-drawcall is selected 2020-12-15 22:52:38 +00:00
baldurk 143f66478a Support converting an rdcarray pointer to rdcarray
* This means if there's no intervening list() it still works, e.g. passing an
  rdcarray property to a function paramater that expects an rdcarray in python.
2020-12-15 22:52:38 +00:00
baldurk d91785fefb Unbind unpack buffer when creating overlay texturel 2020-12-15 22:52:38 +00:00
baldurk 0163328884 Fix error messages not being printed from async python callbacks 2020-12-15 22:52:38 +00:00
baldurk 4bc795c344 Fix DumpObject to work with lists 2020-12-15 22:52:38 +00:00
baldurk f32008e95f Add access for changing the 3D preview stage in mesh viewer 2020-12-15 22:52:37 +00:00
baldurk 90ced90a89 Add common pipeline state helper to grab stencil face states 2020-12-15 22:52:37 +00:00
baldurk 5bdf00c0bf Checking for D3D12 features can fail, don't assert just zero the struct 2020-12-15 22:52:37 +00:00
baldurk fede056ef7 Fix bug in redeclarator if type hint like Tuple[int, ...] is used
* The ... confused the declaration process and so an empty identifier got
  registered, which then broke things later.
2020-12-15 22:52:37 +00:00
Alex Vakulenko e4e2d781bb Fix access mode for ::popen() call in ggp OS wrapper
popen's access mode was accidentally changed from string to enum used in
FileIO::open() wrappers. This is a posix function and should keep using
the string.
2020-12-15 22:52:05 +00:00
baldurk b6b255439a Properly check feature tiers in D3D12 as well as command list interface
* We also can handle default/no-op changes of state, like setting a 1x1 shading
  rate. Even if VRS isn't supported we can just skip the call.
2020-12-11 17:17:34 +00:00
baldurk 32cb98f800 Don't check framebuffer dimensions against image, check renderarea
* The framebuffer is allowed to be a smaller size, the renderarea is what we
  need to check to ensure we don't render outside the image with some stale
  state.
2020-12-11 14:48:03 +00:00
baldurk 76e86db3bd Fix selection of root constant source data when viewing cbuffers 2020-12-10 17:28:11 +00:00
baldurk 9a6ec5282d Don't build GL_Callstacks demo in release
* The nice callstacks we're looking for won't happen in release builds.
2020-12-10 16:56:34 +00:00
baldurk bd342e1596 Fix buffer overrun in D3D12_Draw_Zoo 2020-12-10 16:46:01 +00:00
baldurk 8b5234d0af Fix texture zoo remote server launch when running from renderdoccmd 2020-12-10 16:40:26 +00:00
baldurk 232c4a9ecb Fix texture zoo tests 2020-12-10 16:40:10 +00:00
baldurk ea2410fe9f Make new python documentation checks optional
* Older sphinx versions don't have an easy 'objects' property so we just drop
  this check. As long as it happens on CI builds that's the main thing.
2020-12-10 10:05:10 +00:00
baldurk afc9fc8f1e Fix verify-docstrings.py 2020-12-09 23:27:42 +00:00
baldurk 492aaf21b6 Fix apple compilation 2020-12-09 22:55:53 +00:00
baldurk 9d1673f5a4 Fix formatting in new docstrings 2020-12-09 22:55:48 +00:00
baldurk 6726540a11 Remove test passing NULL for rdcstr 2020-12-09 22:25:53 +00:00
baldurk 466eecde1d Remove raw strings from persistant config settings
* This seems to break on GCC 5 unfortunately, and is certainly a bit of an edge
  case.
2020-12-09 22:19:36 +00:00
baldurk f70c5be592 Fix issues with linux/mac builds 2020-12-09 21:57:15 +00:00
baldurk 8107a7a795 Account for array stride when unrolling AoS in buffer viewer 2020-12-09 18:16:08 +00:00
baldurk 8597b5ce30 Fix VulkanQuadOverdrawCallback still being active on restore replay 2020-12-09 18:16:08 +00:00
baldurk 68d690a912 When rendering overlays, clear to transparent black
* This might cause some fringing artifacts when at low scales due to non-PMA
  colors but it means there are no false-positive green pixels.
2020-12-09 18:16:08 +00:00
baldurk 7ff7e0a71d Replace fixed C arrays with wrapper class in public interface
* These map more naturally to python tuples and are easier to wrap in and out.
* We also tidy up the FloatVecVal etc and standardise the members of
  ShaderValue.
2020-12-09 18:16:08 +00:00
baldurk 580f96c8a1 Rename ShaderVariableType/Descriptor to ShaderConstant
* These structs are no longer used with ShaderVariable so the name is misleading
  at best.
2020-12-09 15:18:27 +00:00
baldurk 659fdaa235 Check that all complex struct members that have :type: in docstrings
* Ideally we'd document every member unconditionally for best autocompletion,
  but that's a lot of modification so for now we stick to just making sure that
  any members that are struct types (or lists/tuples) have the :type:
  declaration so that we can autocomplete inside them.
2020-12-09 15:18:27 +00:00
baldurk dd3e7ab121 Add a modified and improved version of PyCharm's skeleton generator 2020-12-09 15:18:27 +00:00
baldurk 6b8ce92d88 Clean up docstrings in python interfaces to be strictly typed/formatted
* Also added a script that can run as part of CI to verify that the docstring
  matches, by generating a regex from the docstring documented parameter types
  and return type and making sure we find a match within the C headers. This
  ensures all parameters are documented with the right types, no extra
  parameters are documented, and the return type is correct.
* The script also checks proper scoping so that if qrenderdoc docstrings
  mention a renderdoc type, they need to scope it properly.
2020-12-07 17:44:51 +00:00
baldurk e5f4ca7bb8 Remove use of const char * in public API and OS specific where possible
* This prevents unnecessary conversions back and forth between rdcstr and const
  char * when going through interfaces. In the OS specific layer this is rarely
  an issue because most of the implementations don't convert to rdcstr, but it
  is convenient to be able to pass in an rdcstr directly. The few cases where
  there's an unecessary construction of an rdcstr is acceptable.
* A couple of places in the public API need to return a string from a global
  function, so can't return an rdcstr due to C ABI, so they still return a const
  char *.
* Similarly const char * is kept for logging, to avoid a dependency on rdcstr
  and because that's one place where unnecessary conversions/constructions may
  be impactful.
2020-12-07 17:44:50 +00:00
baldurk df6fec13f9 Remove use of automodule in docs
* One automodule in a file for our modules is way too much, so we split it into
  files. Unfortunately this means that only one file can have those classes and
  functions be linkable from elsewhere.
* Instead we bite the bullet and manually curate the items into pages, and at
  the same time subdivide the 'enums and data' page more which is a general
  readability and usability win as well.
* We also add some previously not-included functions, and add a doc-build time
  check to ensure that functions and classes aren't omitted from the
  documentation in future
2020-12-07 17:44:50 +00:00
baldurk 8a58ba6843 Allow arrays of pointers in GPU buffers 2020-12-07 17:42:18 +00:00
baldurk 3cd10c9ed0 Disable crash reporting in edge 2020-12-07 16:35:05 +00:00
baldurk 1ab2047ecb Reset state in D3D shader debugging to before draw when fetching UAVs
* Debugging shaders with UAV access could(likely will) have side-effects on
  those UAV contents, so when ContinueDebug needs to fetch UAV contents we
  should replay back to before the draw to fetch them.
* This replay only happens once per ContinueDebug, and UAV contents are cached
  globally so we only do it once per UAV that's accessed, so the impact is low.
2020-12-07 15:41:03 +00:00
baldurk 6803f32ab8 Print a message when stripping android libraries, and keep unstripped 2020-12-05 09:57:40 +00:00
baldurk 6f7e8bb396 Add python interface consistency check that we don't use non-class enums
* These enums are generally not preferred anyway, but they also can't have
  docstrings so can't be checked for *missing* docstrings.
2020-12-05 09:57:40 +00:00
baldurk 170f29ebfa Disable loading LunarG validation layer
* Previously we hinted loading both the old LunarG metalayer and the new
  combined Khronos layer. Since only one was a 'real' layer this was safe and
  would allow us to enable validation anywhere without needing to enumerate
  available layers.
* Unfortunately a new loader version makes it an error to specify the
  VK_LAYER_LUNARG_standard_validation for loading! So it is completely
  impossible to be fully compatible. We have no choice then but to follow the
  loader/SDK's path and have a hard backwards compatibility break.
* This means the validation won't be enabled anymore for anyone on SDK from
  early 2019 and before.
2020-12-05 09:57:40 +00:00
Steve Karolewics 07fce392a6 Fix D3D12 depth targets using the wrong formats in TextureViewer 2020-12-04 09:54:09 +00:00
baldurk e2d47fa1a5 Fix compilation of PythonCaptureViewer 2020-12-03 21:14:13 +00:00
baldurk 60409caf8d Make event selection 'soft' blocking instead of hard blocking
* Normally SetEventID is synchronous and blocking, and will stall the UI while
  it is processing. However we can at least pop up a progress dialog and allow
  the UI to function (if not be interactive due to the blocking progress dialog)
  when some other long-running task is delaying the processing on the replay
  thread.
2020-12-03 15:09:29 +00:00
baldurk 6bc4e007a0 Fix C++ invokes being responsible for destroying python callbacks
* If the last refcount on a python lambda/temp function is released when a
  wrapping std::function is destroyed in a C++ invoke, we can't destroy it
  safely. Instead we queue up that decref and process it the next chance we're
  able (which is either when the current execution finishes for a python shell
  execution, or on the next function call which handles extensions).
2020-12-03 14:55:02 +00:00
baldurk 0d1f6e3940 Add helper to invoke back onto the UI thread from the replay thread 2020-12-03 14:17:42 +00:00