Commit Graph

11326 Commits

Author SHA1 Message Date
baldurk 753806d526 Add a specialisation for buffer reference add/remove
* This skips some potentially expensive (and redundant) checks if the buffer is
  a view.
2020-08-25 17:24:23 +01:00
baldurk f013824f97 Cache D3D11 buffers being read-only to speed up bound-for-write checks 2020-08-25 16:16:39 +01:00
baldurk a32bf777be Add extra case to assert 2020-08-24 10:52:30 +01:00
baldurk 155d455f01 Fix typo in glClearFramebufferfv variants 2020-08-24 10:04:23 +01:00
baldurk a6871327aa GL renderbuffers do not have mips, return early from function
* Some of the other sub-functions don't handle non-texture targets
2020-08-21 11:49:44 +01:00
baldurk 409f256411 Fix event ID indexing for multidraw commands on GL. Closes #2019 2020-08-21 11:49:44 +01:00
Tim Gfrerer 07ee28c97f Allow Python 3.8 to be detected
Adds python 3.8 to the list of python 3 versions. 

Thank you so much for renderdoc!!
2020-08-21 11:07:11 +01:00
baldurk 5c0dadae84 Test that RTV descriptor copies in D3D12 are properly recorded mid-frame 2020-08-20 17:09:51 +01:00
baldurk 3e100109da Test destroying/freeing NULL handles, fix validation errors 2020-08-20 17:02:03 +01:00
baldurk 0b0beb3a20 Call virtual functions by explicit class in constructor 2020-08-20 16:11:05 +01:00
baldurk 81fbf4bcc9 Fix some dodgy memcpy calls 2020-08-20 16:11:05 +01:00
baldurk 112741a74c Remove some parameter name shadowing 2020-08-20 16:11:05 +01:00
baldurk fa24dc8872 Silence some PVS warnings 2020-08-20 16:11:05 +01:00
baldurk b5de095f53 Use explicit enum comparisons to check for empty flags 2020-08-20 15:26:02 +01:00
baldurk 52632ccc1c Fix incorrect array index used in disassembly 2020-08-20 15:26:02 +01:00
baldurk 274185f808 Fix wrong size for memset 2020-08-20 15:26:02 +01:00
baldurk c01dd73bf6 Remove some dead code/variables 2020-08-20 15:26:02 +01:00
baldurk 64f98f286e Add test of heavy descriptor reallocation and reuse 2020-08-20 13:48:17 +01:00
baldurk 077aebc9e1 Fix sanitisation of aspect mask in subresource range 2020-08-20 10:49:23 +01:00
baldurk 83714b825c Remove note about android support being new 2020-08-20 10:47:16 +01:00
baldurk a48ab556f3 Fix compile errors 2020-08-19 19:18:37 +01:00
baldurk ffac439cce Record which queries are reset in each frame & restore them to validity
* It's possible that a frame capture could copy from a query and then reset it,
  without then recording something valid into the query. Then the next replay
  the copy would be unavailable and if WAIT_BIT is set that would lead to a
  device lost.
* We already fill out queries with dummy valid data on create time, so now we
  record any queries that are reset and re-fill them with valid data again.
2020-08-19 18:02:03 +01:00
baldurk 4afc97e6dd Fix backwards assert 2020-08-19 17:57:50 +01:00
baldurk 213aded173 Fix compilation of single flush validate 2020-08-19 16:35:58 +01:00
baldurk 15f35931df Fix wrong string format specifier 2020-08-19 15:21:00 +01:00
baldurk 73cc1f5476 Add specialised rdcarray which implements key/value lookup 2020-08-19 15:21:00 +01:00
baldurk d2e0b7ceb1 Implement move semantics support for rdcarray/pair 2020-08-19 15:21:00 +01:00
baldurk babbdadc36 Cache a single value inline in ImageSubresourceMap
* Having a single subresource (range) is a common case, so avoid allocating
  storage in an array for that, only switch to the array when we have more than
  one range to store.
2020-08-19 14:24:51 +01:00
baldurk 8a350f28c8 Batch updates to background ref cache
* If the background cache is empty also (for a descriptor set that has never
  been written before) we can duplicate it straight from bindFrameRefs).
2020-08-19 14:24:51 +01:00
baldurk 0859aaa163 Change descriptor set lock to spinlock
* We don't expect contention on this, the only time it will contend is when
  actively capturing a frame between updates and submits reading the descriptor
  contents, so we penalise that case while making the background case faster -
  since a spinlock is 'free' to take when there's no contention.
2020-08-19 14:24:51 +01:00
baldurk 6eca4a4cd4 Cache call to FormatImageAspects 2020-08-19 14:24:51 +01:00
baldurk d0f59de405 Re-use descriptors in descriptor pool
* If an application allocates from and resets descriptor pools at very high
  frequency the overhead of freeing and reallocating those descriptor sets can
  be high. Instead use the descriptor pool as a pool for children and look up
  the freelist first for an existing descriptor set before trying to allocate a
  new one.
2020-08-19 14:24:51 +01:00
baldurk 488a9e3faf Block allocate storage for current descriptor set bindings 2020-08-19 14:24:51 +01:00
baldurk 78e2475dad Use a read/write lock for resource record access in resource manager 2020-08-19 14:24:51 +01:00
baldurk 7cc54fea20 Pass resource record into AddBindRefs when available
* This avoids a redundant call to GetResourceRecord when the caller already has
  it directly available.
2020-08-19 14:24:51 +01:00
baldurk 88c6dc27e4 Use plain array instead of set for resource record parents array 2020-08-19 14:24:51 +01:00
Thomas Poulet 7a65dba274 Fix dry-run option in CreatePipelineLibrary
This commit addresses an issue where the application is crashing when receiving nullptr in ppPipelineLibrary. As per the specifications, ppPipelineLibrary can optionally accept nullptr and perform a dry run. Since pipeline libraries are not supported, we return the driver unsupported case.
https://docs.microsoft.com/en-us/windows/win32/api/d3d12/nf-d3d12-id3d12device1-createpipelinelibrary
2020-08-18 14:22:30 +01:00
baldurk 466debe9a4 Clean background frame references every 20 submits
* This means the background references array won't build up even for programs
  that don't present.
2020-08-17 12:44:47 +01:00
baldurk bf8390d313 Fix docker build to work with https apt sources 2020-08-17 10:26:30 +01:00
baldurk 01e05e6d96 Cancel a rename in progress if a different resource is selected 2020-08-17 10:22:23 +01:00
baldurk 7f1748e8fc Don't misbehave when freeing or destroying VK_NULL_HANDLE 2020-08-14 19:48:21 +01:00
baldurk 2b990bdf46 Remove RightToLeft property that was accidentally added 2020-08-14 19:19:16 +01:00
baldurk e7657f6212 Use QTextBoundaryFinder to truncate resource names 2020-08-14 14:58:16 +01:00
baldurk bf2cee8bc5 Fix D3D12On7 presents not properly adding frame capturer 2020-08-14 14:58:15 +01:00
baldurk 73248c8488 Include RenderDoc logfile after test runs 2020-08-14 14:58:12 +01:00
baldurk e11c3523a6 Fix subprocess timeout not properly kicking in 2020-08-14 14:58:08 +01:00
baldurk 407b4740f2 Re-evaluate composite spec constants when data is available. Refs #1908 2020-08-13 12:27:00 +01:00
baldurk bc3f23e867 Add missing bounds check for 32-bit indices 2020-08-13 11:36:07 +01:00
baldurk aac929af8f Go back to reporting normalised vertex inputs on GL as SNorm/UNorm
* This is still accurate, what we're missing is "read data as int, then cast to
  float" which is represented by setting 'floatCast' to true. A normalized cast
  or interpret is accurately represented by saying the input is snorm/unorm
  typed.
2020-08-13 10:22:56 +01:00
baldurk 9df6103be4 Remove debug log left in 2020-08-12 15:15:33 +01:00