Commit Graph

8704 Commits

Author SHA1 Message Date
baldurk 62d644acfa Fix Release32/Release64 typo in x64 installer script 2019-03-04 12:55:32 +00:00
baldurk d5a9b15927 Look for new android getClassLoader function signature. Refs #1294 2019-03-04 12:55:32 +00:00
baldurk 4f4645d437 Upload macOS builds from mainline branch for nightly builds 2019-03-04 12:55:31 +00:00
Benson Joeris cc8aa679e9 Optimize Apply_InitialState for VkDeviceMemory resources
This change reduces the amount of data copied into VkDeviceMemory resources in
`Apply_InitialState`; this uses the new (interval-based) reference tracking.

On a large capture from a recent game, this change reduces the amount of copied
data from 2.2GB to 720MB (plus 100MB cleared to 0). This reduces the time spent
in `ApplyInitialContents` from 1800ms to 1500ms.

Ranges of memory are initialized/reset by either clearing to 0, or copying in
the initial state data, according to the `FrameRefType`, as follows:
- Read-only (`eFrameRef_Read`) regions of memory are initialized by copying
  once, before the first replay.
- Read-before-write (`eFrameRef_ReadBeforeWrite`) regions of memory are reset by
  copying before each replay.
- Write-only (`eFrameRef_PartialWrite` and `eFrameRef_CompleteWrite`) regions of
  memory are cleared to 0 before each replay. This is intended to avoid possible
  user confusion when inspecting these regions of memory, as they might
  otherwise show data written later in the frame.
- Unused (`eFrameRef_None`) regions of memory are cleared to 0 once, before the
  first replay.
2019-03-02 08:24:12 +00:00
Benson Joeris 3abab3bbb9 Fix Attachment FrameRefType
Attachments might be read and/or written. Pessimistically assume attachments are
read and then overwritten. Further analysis should be able to refine this access
type in some cases.
2019-03-02 08:24:12 +00:00
Benson Joeris f39ae770e4 Fix Descriptor FrameRefType.
Storage resources can be read and/or written by the shader. We must
pessimistically assume that the shade reads, and then modifies these resources.
2019-03-02 08:24:12 +00:00
baldurk 8903c8c1fa Search for Android SDK in common locations on macOS
* Environment variables still take priority, but it can be common for them not
  to be set so we need to look here.
2019-03-01 17:47:23 +00:00
baldurk c73f045241 Add packaging/buildscript support for macOS
* Add realpath.sh for emulating readlink -f on macOS
  MIT licensed from https://github.com/mkropat/sh-realpath
2019-03-01 17:47:10 +00:00
baldurk 8dae3437c5 Make sure to stop looking once we find the python library 2019-03-01 16:59:42 +00:00
baldurk 4327f32667 Deserialise arrays of complex structures 2019-03-01 15:46:49 +00:00
baldurk db4cb2d1ea Fully initialise members in PhysicalDeviceData 2019-03-01 15:46:37 +00:00
baldurk be36556c0c Delete images array used for calling vkGetSwapchainImagesKHR 2019-03-01 13:53:50 +00:00
baldurk 3f7d5b7882 Delete VkSubmitInfo::pWaitDstStageMask in Deserialise 2019-03-01 13:53:27 +00:00
baldurk 807d44ec42 Update valgrind suppressions for running qrenderdoc 2019-03-01 13:26:34 +00:00
baldurk ac91a7e8b4 Delete FindResults scintilla 2019-03-01 13:26:23 +00:00
baldurk ed6d0523cd Delete pbuffers allocated in glx_platform for offscreen contexts 2019-03-01 13:26:12 +00:00
baldurk 41a1358bb2 Remove allocated initial state blobs that are no longer used 2019-03-01 12:47:43 +00:00
baldurk 95f07ab6df Add missing deref of buffer data in mesh view 2019-03-01 12:47:29 +00:00
baldurk 2a0a663367 Delete TLS objects on GL driver shutdown 2019-03-01 12:44:02 +00:00
baldurk 301ef89aac Only calculate bounding box data on mesh views 2019-03-01 11:34:15 +00:00
baldurk 9fc8c0bd66 Delete dangling GUIInvoke object 2019-03-01 11:34:04 +00:00
baldurk e23974e2bf Initialise variables that might not be set otherwise before first use 2019-03-01 11:33:05 +00:00
baldurk a53dbe40b6 Remove no longer used UBO 2019-03-01 11:31:32 +00:00
baldurk 72d3c0ee3e Set 'pyrenderdoc' global after extension registration. Closes #1291 2019-03-01 08:32:35 +00:00
baldurk ac37a592cc Refactor BufferViewer to avoid race conditions
* We now push everything mutable about the draw data configuration into a single
  struct which we copy around (the actual buffer data remains refcounted and not
  copied). This means that we don't have one thread still trying to do things on
  a model which is being updated on another thread.
2019-02-28 17:48:30 +00:00
baldurk 7541dc6bc7 Add cmake compile options for enabling address/thread sanitizer
* Currently tsan doesn't work well in Qt because it doesn't recognise QMutex
2019-02-28 17:48:30 +00:00
baldurk bbdf2c1f80 Remove redundant self-assignment 2019-02-28 17:48:30 +00:00
Julian Meder bf17650ace Keep DX12 descriptor heaps alive until deferred copy/write flush. 2019-02-28 16:45:33 +00:00
tuxerr c6edcf9a38 add support for VK_EXT_fragment_density_map 2019-02-28 00:10:03 +00:00
baldurk d80c5973dd Only print nvapi disabled warnings a few times before silencing 2019-02-27 20:49:20 +00:00
baldurk 2cda7f8af0 Fix access to Qt containers that need int indexes 2019-02-27 14:50:27 +00:00
Denis Rutkov 8d8538a068 Fix another issue with MSAA depth buffer copying during D3D12 replay 2019-02-27 14:39:57 +00:00
baldurk 45a9fc97ae Fix int32_t/size_t type matching in rdcarray functions 2019-02-27 14:38:34 +00:00
Denis Rutkov 5fb59defcb Fix reading initial state for upload heap buffers. 2019-02-27 13:51:27 +00:00
dendron2000 4846221794 Fix copying depth data from depth stencil with MSAA in DX12. 2019-02-27 13:51:27 +00:00
dendron2000 0c1b6439c4 Fix reading back initial buffer/texture states in D3D12. 2019-02-27 13:51:27 +00:00
dendron2000 9bf50e124a Fix compiling without global optimization. 2019-02-27 13:51:27 +00:00
baldurk f70de276e6 Use size_t in rdcarray
* This means that allocating >2GB in a bytebuf doesn't crash. There was no good
  reason for the int32_t - that dates back to the earliest interop structs
  defined for communication with .NET
2019-02-27 13:50:05 +00:00
baldurk 64062ec2c6 Apply luminance/alpha emulation to glTextureView 2019-02-27 13:50:05 +00:00
baldurk f3593c970f Don't crash or bind invalid vertex buffers in GL mesh render
* This can happen after clearing the PostVS cache, when editing a shader
2019-02-27 13:50:05 +00:00
baldurk 308474091a Follow-up to previous fix, for WrappedID3D12Device::CreateHeap1 2019-02-27 13:50:05 +00:00
baldurk 829e494e5e Silently skip out of bounds declared vertex buffers. Closes #1287
* We assume that these vertex buffers are unused in any actual declared inputs
  so they can safely be treated as empty.
2019-02-27 13:50:05 +00:00
Julian Meder 5878787daf Fix WrappedID3D12Device::CreateHeap worngly returning E_NOINTERFACE. 2019-02-26 17:00:15 +00:00
baldurk 793ea24f9d Clear dlerror for code that's aggressive with error checks. Close #1279 2019-02-25 21:04:09 +00:00
baldurk 8ae9ccdd7f Check descriptor writes for validity before updating in PostVS fetch
* This can happen for push descriptors that are declared but never used.
2019-02-25 15:31:43 +00:00
baldurk 2dc37ac232 Handle creating backbuffer views with non-NULL non-typed descriptor
* We already handle the case where e.g. D3D12_RENDER_TARGET_VIEW_DESC is NULL
  and we need to substitute in a typed descriptor for backbuffers. We didn't
  handle the case where
2019-02-25 15:31:43 +00:00
tabi.katalin 2507532623 Fix GLES shader compile errors
Detected two shader compile errors while replaying GLES apps:
1. „#extension directive must occur before any non-preprocessor token” -  Fix the order of precisions and extensions in the shader code.
2. „extension 'GL_OES_texture_cube_map_array' is not supported”  - Do not add extensions if they are actually not supported. TEXTURE_CUBE_MAP_ARRAY was added to GLES 3.2 so   GL_OES_texture_cube_map_array and GL_EXT_texture_cube_map_array are no longer used.
2019-02-25 11:30:25 +00:00
baldurk e9e1d91b34 linux compile fix 2019-02-22 22:40:33 +00:00
baldurk ec58308207 With GL we can have binding aliasing. Keep searching for a used binding
* If we have multiple bindings aliasing the same slot, we want to keep going if
  the first one we find is unused to see if the slot is aliased with one that
  *is* used. We'll still use the last unused one if we don't find any used at
  all (and with aliasing any one we pick is as valid as another).
2019-02-22 14:10:25 +00:00
baldurk a1d1ccea62 Update glslang to a51d3d9f223361165127ded3cd2e59d81e22d91f 2019-02-22 13:56:37 +00:00