-
865d39ec
by baldurk
at 2020-07-22T18:48:41+01:00
Bump version to 1.10
-
a10f67f2
by baldurk
at 2020-07-22T20:04:58+01:00
Skip OpLine/OpNoLine that appears before function variable declarations
-
2f6ed260
by Kevin McCullough
at 2020-07-23T18:26:21+01:00
Replacing non-ascii characters with -
-
c1617974
by baldurk
at 2020-07-24T16:33:34+01:00
Don't look up viewport if none is bound
-
e147a5a6
by baldurk
at 2020-07-24T16:33:34+01:00
Test OpLine/OpNoLine being intermingled with function header
-
287bb81f
by baldurk
at 2020-07-24T16:33:34+01:00
Add a note about the python module version restriction
-
691ee0c3
by baldurk
at 2020-07-27T16:17:12+01:00
Don't overwrite GL state when creating text-rendering data. Closes #1994
-
fda371cc
by baldurk
at 2020-07-27T16:17:12+01:00
Avoid glTextureBufferRangeEXT if range isn't valid
* This likely indicates that the non-range variant was used originally.
-
e6a2b94b
by baldurk
at 2020-07-27T16:17:13+01:00
Disallow closing progress dialogs early
* Normally the close button is hidden but some platforms don't allow this..
-
1c6c6717
by baldurk
at 2020-07-27T16:17:13+01:00
Change scissor/viewport count when it's not dynamic state
-
624da2fb
by baldurk
at 2020-07-27T16:17:13+01:00
Add test that we don't crash on draws with new viewports
-
d0205430
by baldurk
at 2020-07-28T15:30:45+01:00
Set -fno-strict-aliasing to prevent gcc from breaking tons of code
* Technically the code is incorrect, because the C++ spec is terrible and makes
completely normal things illegal. GCC decides that a couple of % more perf is
worth breaking lots of code, so instead we disable this class of
"optimisation".
-
23fc093a
by baldurk
at 2020-07-29T10:43:57+01:00
Consistently use original command buffer IDs in maps
* If we use the live ID then re-recorded command buffers can cause maps to
slowly grow in size.
-
5af3a4e2
by baldurk
at 2020-07-29T10:59:18+01:00
Add a debug option to embed the log file in captures
-
83478602
by baldurk
at 2020-07-29T14:23:34+01:00
Don't register/unregister frame capturers when swapchains resize
-
c8c281b5
by baldurk
at 2020-07-29T14:52:05+01:00
Test swizzles on byte address buffer loads
-
d03acd3b
by baldurk
at 2020-07-29T15:17:45+01:00
Test reading instanced data via client memory pointers in GL
-
9ce60a0b
by baldurk
at 2020-07-29T15:39:04+01:00
Test that OpenExistingHeapFromAddress can be captured and replayed
-
50cb5a1a
by baldurk
at 2020-07-30T11:23:02+01:00
Lock resource from mapping when diffing in queue execute. Closes #1998
-
bece22e7
by baldurk
at 2020-07-30T15:34:57+01:00
Add some missing filters categorisation for files
-
ee6080eb
by baldurk
at 2020-07-30T15:38:19+01:00
Fix logs for starting frame captures
* We don't have the frame number here anymore so don't print it
-
455eddf3
by baldurk
at 2020-07-30T16:37:01+01:00
Refactor UpdateImageStates to optimise for the case of few updates
-
ed3163b6
by baldurk
at 2020-07-31T14:42:45+01:00
Don't perform library hook on windows when loading as datafile
-
351687eb
by baldurk
at 2020-07-31T16:24:59+01:00
Test that D3D11 shader debugging doesn't internally pollute state
-
39431bb8
by baldurk
at 2020-07-31T17:20:25+01:00
Don't flush mapped memory in driver for detected coherent memory writes
-
caf1e03d
by baldurk
at 2020-08-03T18:30:03+01:00
Strip debug extensions on replay
-
0b061f45
by baldurk
at 2020-08-03T18:30:20+01:00
Stop tracking dirty state at fine-grained detail on vulkan
* Almost all dirty-able resources (memory and images) become dirty almost
immediately, so spending time tracking dirty state is wasted. Instead we treat
these resources as dirty at creation and rely on the postponing logic to avoid
preparing initial states for newly created resources that are not used in the
frame.
* This may cause more 'last-minute' postponed prepares for newly created
resources, which would previously.
-
035073fa
by baldurk
at 2020-08-03T18:30:20+01:00
When updating descriptor bind refs, cache resource references
* This means we don't have to iterate the whole bindrefs array every time we
want to propagate references in the background, but we can submit them in
batch.
-
2d474662
by baldurk
at 2020-08-03T18:30:20+01:00
Combine last write time and last partial use maps into array
* We only care about tracking two things:
1. Resources that have been written very recently. These should not be
postponed as there's a high chance they'll be written mid-frame and so we'd
need their initial contents.
2. Resources that have their last non-complete-write reference was a while ago
However in the second case we can acceptably ignore any resources that haven't
been written recently either, since if the resource hasn't been written and
also hasn't been complete-written then it hasn't been used at all.
* So when updating the non-complete-write time we only do this if the resource
has had a write reference, and intermittently we remove any resources that
haven't had a write at all.
* Postponed resources will be exactly the same set, because we treat a resource
as postponable if we have no write time for it at all so it's fine to remove
old resources from the list. Fewer resources will be skipped, as we now treat
resources that have no known age as non-skippable. However in the majority of
these cases we expect either for the resource to not be used at all (thus the
postpone will never be forced to prepare and we won't serialise anything), or
else if it is used the chances are high it will be used read-only so the
postpone will still be enough.
-
27b541c6
by baldurk
at 2020-08-04T11:22:15+01:00
Always optimise some 3rdparty code like lz4, to speed up debug builds
* We don't need to debug this code and it slows down captures a fair bit if it's
not optimised
-
7b1995a7
by baldurk
at 2020-08-04T13:59:45+01:00
Properly handle offsets on memory maps in vulkan
-
211d8532
by baldurk
at 2020-08-04T14:48:02+01:00
Use GPU readbacks for mapped memory in PCI-E window
* On discrete GPUs that expose PCI-E window memory (device local but still host
visible) this memory is extremely slow to read from on the CPU. It's
significantly faster to issue a command buffer to get the GPU to copy into CPU
memory and wait on that command buffer to finish, then read from the copy.
* We do this for detected coherent writes in queue submit, issuing the copy on
the queue being submitted to. We do *not* do this for memory unmaps or
explicit application flushes. This does mean those will remain slow, however
with no queue to use the synchronisation challenges become more significant
and most applications leave memory persistently mapped.
-
31b7c35b
by baldurk
at 2020-08-04T14:48:51+01:00
Fix logfiles not being deleted if captured application is the last user
* Previously only the UI itself would delete the log if it was the last thing to
close.
-
9f2de545
by baldurk
at 2020-08-04T17:52:10+01:00
Better reserve of written records size
-
9547b049
by baldurk
at 2020-08-05T11:41:31+01:00
Update version number on in-application API documentation
-
0ee1209a
by baldurk
at 2020-08-05T11:41:32+01:00
Mention that Vulkan supports shader debugging in documentation
-
ab6fc1c4
by baldurk
at 2020-08-05T12:15:36+01:00
Don't ever wait for idle when rendering overlay in vulkan
* Instead of waiting for idle, we allocate a command buffer per swapchain image
to render the text overlay and use semaphores and fences to properly
synchronise with other GPU work ongoing.
-
685daffd
by baldurk
at 2020-08-05T13:00:11+01:00
Add missing barrier after filling discard pattern buffer
-
6af18a56
by baldurk
at 2020-08-05T13:22:27+01:00
Patch another form of handle string in vulkan debug messages
-
f29a2df8
by baldurk
at 2020-08-05T14:11:40+01:00
hasData for Create_InitialState is only used on D3D11
-
efd2c034
by baldurk
at 2020-08-07T12:21:05+01:00
Items in initial contents list don't need to be added as written records
* Resources which aren't referenced in the frame don't need initial states
unless we have 'Ref All Resources' enabled. These initial states can be
stripped on replay as they aren't needed.
* We also renamed the WrittenRecords to more explicitly list that this is the
list of resources needing initial contents, whether because they were dirty
(and so had initial contents) or because they were written mid-frame and so
need to be reset.
-
9858f516
by baldurk
at 2020-08-07T12:46:17+01:00
Set default precision specifiers earlier in GLES shader
-
2a138acf
by baldurk
at 2020-08-07T13:39:00+01:00
Don't call glBindFragDataLocation on GLES even if we have a func pointer
* The function is illegal to call regardless of whether we get a non-NULL
function pointer. Core GLES doesn't support glBindFragDataLocation but
fortunately we don't need to call it ourselves unless the user has done some
dynamic binding - which assumes glBindFragDataLocation is available.
-
de7030ea
by baldurk
at 2020-08-07T16:05:06+01:00
Perform descriptor copies immediately. Closes #2009
* When we changed to serialise render target descriptor contents at list record
time we also updated all descriptor writes to happen immediately so we'd get
the latest contents. However we didn't also update copies, so copies before
OMSetRenderTargets weren't properly reflected.
* There's nothing that needs the 'old' copy of descriptors so we can remove any
pending/deferring of updates and do it immediately, which also saves some
tracking.
-
d9fc87ec
by baldurk
at 2020-08-07T16:12:29+01:00
Do our best to determine suffix for unknown file filters. Closes #1993
* We work around a GNOME bug here by ignoring a selected filter if it's the
empty string. For all other unknown filters we try to determine the suffix on
the fly.
-
d1c95642
by baldurk
at 2020-08-10T11:19:57+01:00
Show float casting and normalising of GL vertex attributes. Closes #2013
-
152170dc
by baldurk
at 2020-08-10T14:09:36+01:00
Fix reference data not being updated at right place after map write
-
dd5f4202
by baldurk
at 2020-08-10T15:19:10+01:00
Add barrier and invalidate when reading back memory via GPU
-
c456d16f
by baldurk
at 2020-08-10T15:28:24+01:00
Avoid crash if mapped memory is changed while diffing
-
6bb177ec
by baldurk
at 2020-08-10T16:09:32+01:00
Lazily create readback buffer
* This means we don't allocate a large buffer even though we won't actually use
it. Most important for memory constrained platforms like android.
-
18689e3b
by baldurk
at 2020-08-10T16:12:40+01:00
Fix handling of deprecated debug marker object type enums
-
7f9b5d11
by baldurk
at 2020-08-12T15:15:32+01:00
Detect mapped memory writes to tiled images and skip. Closes #1863
* We track memory bindings to see which regions of a memory object are only used
for tiled images, and discard any writes in case this was accidental detection
of changes by the GPU which we don't want to replay. In the case of aliasing
if there's linear and tiled resources then we still replay the writes.
* Note that we have to take a slower path involving a copy since we can't
serialise straight into memory in this case, so applications should avoid
mapping memory behind
-
50b2964c
by baldurk
at 2020-08-12T15:15:32+01:00
Don't dirty memory on allocation, wait until a buffer is bound
* Otherwise we'll prepare and serialise contents for memory that's only used for
images, which is wasteful at best.
-
b0d3fb12
by baldurk
at 2020-08-12T15:15:33+01:00
Don't perform queue submit until after flushing maps/references
* While active capturing we might do significant work to flush coherent mapped
memory regions and prepare initial contents for postponed resources that are
about to be write-referenced. We need to do that before submitting the actual
work to the queue or else the contents may be corrupted.
-
e2e7c1f8
by baldurk
at 2020-08-12T15:15:33+01:00
Add the ID for the resource underneath image views
* Without this we don't properly cache the references for images, only for
views.
-
d2745998
by baldurk
at 2020-08-12T15:15:33+01:00
Remove IDs from background ref cache as appropriate
* This prevents the cache from growing unbounded.
-
61c6d88b
by baldurk
at 2020-08-12T15:15:33+01:00
Update reftype on rollover from one binding to another
* When we roll over from one binding to another due to descriptor count being
larger than a single binding, we need to update the frame reftype since it
might go from storage to sampled or vice-versa and so change from read-only to
read-write.
-
9df6103b
by baldurk
at 2020-08-12T15:15:33+01:00
Remove debug log left in
-
aac929af
by baldurk
at 2020-08-13T10:22:56+01:00
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.
-
bc3f23e8
by baldurk
at 2020-08-13T11:36:07+01:00
Add missing bounds check for 32-bit indices
-
407b4740
by baldurk
at 2020-08-13T12:27:00+01:00
Re-evaluate composite spec constants when data is available. Refs #1908
-
e11c3523
by baldurk
at 2020-08-14T14:58:08+01:00
Fix subprocess timeout not properly kicking in
-
73248c84
by baldurk
at 2020-08-14T14:58:12+01:00
Include RenderDoc logfile after test runs
-
bf2cee8b
by baldurk
at 2020-08-14T14:58:15+01:00
Fix D3D12On7 presents not properly adding frame capturer
-
e7657f62
by baldurk
at 2020-08-14T14:58:16+01:00
Use QTextBoundaryFinder to truncate resource names
-
2b990bdf
by baldurk
at 2020-08-14T19:19:16+01:00
Remove RightToLeft property that was accidentally added
-
7f1748e8
by baldurk
at 2020-08-14T19:48:21+01:00
Don't misbehave when freeing or destroying VK_NULL_HANDLE
-
01e05e6d
by baldurk
at 2020-08-17T10:22:23+01:00
Cancel a rename in progress if a different resource is selected
-
bf8390d3
by baldurk
at 2020-08-17T10:26:30+01:00
Fix docker build to work with https apt sources
-
466debe9
by baldurk
at 2020-08-17T12:44:47+01:00
Clean background frame references every 20 submits
* This means the background references array won't build up even for programs
that don't present.
-
7a65dba2
by Thomas Poulet
at 2020-08-18T14:22:30+01:00
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
-
88c6dc27
by baldurk
at 2020-08-19T14:24:51+01:00
Use plain array instead of set for resource record parents array
-
7cc54fea
by baldurk
at 2020-08-19T14:24:51+01:00
Pass resource record into AddBindRefs when available
* This avoids a redundant call to GetResourceRecord when the caller already has
it directly available.
-
78e2475d
by baldurk
at 2020-08-19T14:24:51+01:00
Use a read/write lock for resource record access in resource manager
-
488a9e3f
by baldurk
at 2020-08-19T14:24:51+01:00
Block allocate storage for current descriptor set bindings
-
d0f59de4
by baldurk
at 2020-08-19T14:24:51+01:00
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.
-
6eca4a4c
by baldurk
at 2020-08-19T14:24:51+01:00
Cache call to FormatImageAspects
-
0859aaa1
by baldurk
at 2020-08-19T14:24:51+01:00
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.
-
8a350f28
by baldurk
at 2020-08-19T14:24:51+01:00
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).
-
babbdadc
by baldurk
at 2020-08-19T14:24:51+01:00
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.
-
d2e0b7ce
by baldurk
at 2020-08-19T15:21:00+01:00
Implement move semantics support for rdcarray/pair
-
73cc1f54
by baldurk
at 2020-08-19T15:21:00+01:00
Add specialised rdcarray which implements key/value lookup
-
15f35931
by baldurk
at 2020-08-19T15:21:00+01:00
Fix wrong string format specifier
-
213aded1
by baldurk
at 2020-08-19T16:35:58+01:00
Fix compilation of single flush validate
-
4afc97e6
by baldurk
at 2020-08-19T17:57:50+01:00
Fix backwards assert
-
ffac439c
by baldurk
at 2020-08-19T18:02:03+01:00
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.
-
a48ab556
by baldurk
at 2020-08-19T19:18:37+01:00
Fix compile errors
-
83714b82
by baldurk
at 2020-08-20T10:47:16+01:00
Remove note about android support being new
-
077aebc9
by baldurk
at 2020-08-20T10:49:23+01:00
Fix sanitisation of aspect mask in subresource range
-
64f98f28
by baldurk
at 2020-08-20T13:48:17+01:00
Add test of heavy descriptor reallocation and reuse
-
c01dd73b
by baldurk
at 2020-08-20T15:26:02+01:00
Remove some dead code/variables
-
274185f8
by baldurk
at 2020-08-20T15:26:02+01:00
Fix wrong size for memset
-
52632ccc
by baldurk
at 2020-08-20T15:26:02+01:00
Fix incorrect array index used in disassembly
-
b5de095f
by baldurk
at 2020-08-20T15:26:02+01:00
Use explicit enum comparisons to check for empty flags
-
fa24dc88
by baldurk
at 2020-08-20T16:11:05+01:00
Silence some PVS warnings
-
112741a7
by baldurk
at 2020-08-20T16:11:05+01:00
Remove some parameter name shadowing
-
81fbf4bc
by baldurk
at 2020-08-20T16:11:05+01:00
Fix some dodgy memcpy calls
-
0b0beb3a
by baldurk
at 2020-08-20T16:11:05+01:00
Call virtual functions by explicit class in constructor
-
3e100109
by baldurk
at 2020-08-20T17:02:03+01:00
Test destroying/freeing NULL handles, fix validation errors
-
5c0dadae
by baldurk
at 2020-08-20T17:09:51+01:00
Test that RTV descriptor copies in D3D12 are properly recorded mid-frame
-
07ee28c9
by Tim Gfrerer
at 2020-08-21T11:07:11+01:00
Allow Python 3.8 to be detected
Adds python 3.8 to the list of python 3 versions.
Thank you so much for renderdoc!!
-
409f2564
by baldurk
at 2020-08-21T11:49:44+01:00
Fix event ID indexing for multidraw commands on GL. Closes #2019
-
a6871327
by baldurk
at 2020-08-21T11:49:44+01:00
GL renderbuffers do not have mips, return early from function
* Some of the other sub-functions don't handle non-texture targets
-
155d455f
by baldurk
at 2020-08-24T10:04:23+01:00
Fix typo in glClearFramebufferfv variants
-
a32bf777
by baldurk
at 2020-08-24T10:52:30+01:00
Add extra case to assert
-
f013824f
by baldurk
at 2020-08-25T16:16:39+01:00
Cache D3D11 buffers being read-only to speed up bound-for-write checks
-
753806d5
by baldurk
at 2020-08-25T17:24:23+01:00
Add a specialisation for buffer reference add/remove
* This skips some potentially expensive (and redundant) checks if the buffer is
a view.
-
f664d13b
by baldurk
at 2020-08-26T18:46:56+01:00
Clear up queue data when device is destroyed
-
a457aa5a
by baldurk
at 2020-08-26T18:46:56+01:00
Fix handling of CONCURRENT swapchain images
-
62f55a37
by baldurk
at 2020-08-26T18:46:56+01:00
Add proper fence around overlay rendering command buffers
-
d922db6d
by baldurk
at 2020-08-26T19:14:42+01:00
Fix broken re-use of resource shadow deferred ctx pointers. Closes #2023
-
1b844d14
by baldurk
at 2020-08-26T19:27:41+01:00
Add resettable chunk allocator for recording command buffers
-
51b228b0
by baldurk
at 2020-08-26T19:27:42+01:00
Disable resource record chunk locking for command buffers
* The API user is supposed to lock this for us, so don't waste time locking
ourselves.
-
9fd7f447
by baldurk
at 2020-08-26T19:27:42+01:00
Switch thumbnail to bytebuf instead of byte pointer and length
-
55c62dd3
by baldurk
at 2020-08-26T19:27:42+01:00
Serialise timestamps and durations as tick counts, and convert on replay
* When we're capturing programs with high-frequency enough API calls, the
overhead of the math & extra function calls over Timing::GetTick() is
measurable. Removing it and serialising pure tick based durations/timestamps
and then converting on replay gives us identical results and saves time while
background capturing.
-
61d15e00
by baldurk
at 2020-08-26T19:27:42+01:00
Don't create empty GLRenderState for use with MarkDirty
* MarkDirty re-queries the state and doesn't use anything so it's wasted time
initialising a massive structure
-
c5887eb4
by baldurk
at 2020-08-26T19:27:42+01:00
Reduce wasted iteration in GLRenderState::MarkDirty
* Only iterate up to the highest known bind for indexed targets, which will
generally be low or 0.
-
5e79465a
by baldurk
at 2020-08-26T19:27:42+01:00
Avoid use of virtual function call for GetID within GL driver
-
022ba9ce
by baldurk
at 2020-08-26T19:27:42+01:00
Combine GL maps for looking up ID/Resource Record from resource name
-
3a1b4500
by baldurk
at 2020-08-26T19:27:42+01:00
Avoid some unnecessary potentially expensive work on frequent calls
-
f63a9483
by baldurk
at 2020-08-26T19:27:42+01:00
Cache FBO attachments to avoid repeated query & lookup
-
8973ac02
by baldurk
at 2020-08-26T19:52:34+01:00
Don't serialise present chunk for glFrameTerminatorGREMEDY
-
50089207
by baldurk
at 2020-08-26T20:56:28+01:00
Fix 32-bit compile error
-
ecbfeb7d
by baldurk
at 2020-08-27T00:02:17+01:00
Fix linux compilation
-
3f63d153
by baldurk
at 2020-08-27T11:24:45+01:00
Fix extended thumbnail length not being written
-
4eeaaad7
by baldurk
at 2020-08-27T11:26:03+01:00
Fix event counting for single vulkan indirect multidraws. Closes #2025
* We need to count the fake indirect subcommand *before* checking if we're in
range, otherwise replaying up to but not including the draw will miscount and
replay the draw itself.
-
6d810f2c
by baldurk
at 2020-08-27T11:26:18+01:00
Fix naming getting muddled for indirect draws
-
3eaaf593
by baldurk
at 2020-08-27T13:19:21+01:00
Prefer floor rounding for Qt 5.14+ fractional DPI handling
* Non-integer DPI handling is fundamentally a broken concept, because UIs are
essentially pixel art with some vector drawing. Rounding down half fractions
seems to be a better tradeoff than rounding up or trying to render them as-is.
-
9583a267
by baldurk
at 2020-08-27T15:13:21+01:00
Fix typo that trashed durations and didn't convert timestamps
-
680857cb
by baldurk
at 2020-08-27T15:54:01+01:00
Fix structured data conversion to preserve timestamp base
* The timestamp base is queryable from the capture file and settable too, and
conversions preserve un-rebased timestamps. Only rebasing when loading a
capture for replay.
-
684290c4
by baldurk
at 2020-08-27T16:02:18+01:00
LZ4 compress embedded diagnostic log
-
4c8067b6
by baldurk
at 2020-08-27T16:02:53+01:00
Add special case to XML codec for embedded logfiles
-
8c4bb661
by baldurk
at 2020-08-27T17:36:34+01:00
Fix ptrace getting wrong entry point address for some ELFs. Closes #2022
* The entry point is remapped several times:
- ELF header declares it at RVA 0x1234
- [new in this change] The section containing that says it's at addresses
0x1200 - 0x1500, but on disk it's actually at file offset 0x1100 meaning our
entry point is actually 0x100 earlier, at 0x1134
- The ASLR maps the executable section at *file offset* 0x1100 to 0xDEADBEEF00
Importantly when file offset != base RVA, this needs to be taken into
account.
- Finally the entry point is at 0x34 offset into the section because it's
mmapped, so the entry point is 0xDEADBEEF34.
-
cc418495
by baldurk
at 2020-08-27T17:38:16+01:00
Add debug verbose logging toggle to ptrace code
-
220ee1b3
by baldurk
at 2020-08-27T17:57:09+01:00
Ensure RDStyle sets application palette properly
-
9c58c6ad
by baldurk
at 2020-08-27T19:34:12+01:00
32-bit compile fix
-
80ededa2
by thisisjimmyfb
at 2020-08-27T19:35:15+01:00
whitelist GL_OES_surfaceless_context
-
02b7c1bf
by baldurk
at 2020-08-28T19:06:05+01:00
Update toolwindowmanager to 7974fc8
-
0c1b3049
by baldurk
at 2020-08-28T19:06:05+01:00
Verify JSON documents being saved don't contain byte arrays
* Newer Qt versions will base64 the byte arrays even if we've already base64'd
them so they're safe. To prevent this we explicitly convert to QString
afterwards.
-
285c4b95
by baldurk
at 2020-08-28T19:06:05+01:00
Add Qt5Qml.dll stub for 32-bit pyside2 distribution
* When the pyside2 we ship was built it accidentally included a small dependency
on Qt5Qml, which we don't distribute so the pyside2 libraries wouldn't load.
* We can generate a tiny stub with the right exports and load it manually from
the PySide2 folder on 32-bit qrenderdoc builds to allow pyside2 to load
subsequently. The stub source is tiny, and added alongside.
* Putting it in the PySide2 folder means that even if someone puts RenderDoc's
build folder in their PATH, our stub Qt5Qml won't break anything because it
won't be loaded. If they put PySide2 in the PATH it might, but then it's their
fault!
-
716c72f3
by baldurk
at 2020-08-28T19:06:06+01:00
Remove custom FindPySide2.cmake, rely on normal packaging
* It seems PySide2 packaging is much more stable now, so we can generally rely
on the distro packages.
-
482bdbae
by baldurk
at 2020-08-28T19:06:06+01:00
Allow building from a custom Qt more easily on windows
* Setting RENDERDOC_QT_PREFIX64 or RENDERDOC_QT_PREFIX32 environment variables
pointing to a Qt install root will use that instead of the built-in Qt.
-
0e5b08d0
by baldurk
at 2020-08-28T19:06:06+01:00
Fix test compilation on linux
-
75f2dc11
by baldurk
at 2020-08-28T19:06:06+01:00
Fix missing free() calls for miniz allocations
-
30ecf66c
by baldurk
at 2020-08-28T19:06:06+01:00
Fix handling of variable descriptor counts to not allocate maximum size
* We previously ignored the variable descriptor size allowed by descriptor
indexing,
-
05eef7b9
by baldurk
at 2020-08-28T19:27:00+01:00
Temporarily disable chunk allocator on vulkan until reuse is fixed
-
4e8f96ac
by baldurk
at 2020-08-28T20:54:19+01:00
Re-enable chunk allocators on vulkan, reset individual pages
* On vulkan command pools aren't necessarily reset often or at all, individual
command buffers are. So the chunk allocator needs to support freeing subsets
of pages. When a command buffer ends we force that page to finish up and store
a list of the pages the command buffer used, which can then be reset back when
the command buffer is reset.
-
0ca90bd3
by baldurk
at 2020-08-31T10:10:51+01:00
Fix variable descriptor count test
-
052cd255
by baldurk
at 2020-08-31T10:43:19+01:00
Don't initialise AMD extensions during capture
-
8b935a1c
by baldurk
at 2020-08-31T10:51:32+01:00
Wrap and serialise calls through ID3D12CompatibilityDevice
-
d5f45f64
by baldurk
at 2020-08-31T12:38:49+01:00
Allow overriding the python install on windows
* Also document the new requirement for os.add_dll_directory as of python 3.8
-
b5a67962
by baldurk
at 2020-08-31T13:10:38+01:00
Allow qrenderdoc command line python scripts to call sys.exit()
* Previously we'd catch the sys.exit "exception" and print it then show the
window.
-
e61794dd
by baldurk
at 2020-09-01T10:27:45+01:00
Don't forcibly change tab in texture viewer when one is closed
-
d6b36f7a
by baldurk
at 2020-09-01T10:32:48+01:00
Fix handling of saving cubemaps to disk in GL
* GL needs special handling because cubemaps need to be treated partially as
arrays to select the target, then not as arrays when the data is retrieved.
-
eb575e12
by baldurk
at 2020-09-01T10:36:28+01:00
Don't hook vulkan-1.dll, prevents layered implementations from recursing
-
9f5e6a72
by baldurk
at 2020-09-01T10:42:42+01:00
Batch calls to UpdateBackgroundRefCache on descriptor copies
-
865f9002
by baldurk
at 2020-09-01T11:08:01+01:00
Keep remote server connection alive if it disconnects mid-replay
* We need to keep it alive until we've shut down the replay controller, and we
keep that alive until the user explicitly closes the capture.
-
6b2f763b
by baldurk
at 2020-09-01T11:09:03+01:00
Ignore sets of empty name strings on resources
-
83f7a26e
by baldurk
at 2020-09-01T14:03:59+01:00
Query which shader disassembly formats require a pipeline
* This allows us to be a bit more friendly in the UI when we don't have a
particular pipeline associated with a shader.
-
10878bb5
by baldurk
at 2020-09-01T16:39:19+01:00
Never clamp to an invalid index even for invalid inputs
* This prevents a crash as at least index 0 is always a valid scalar lookup.
-
f32262ad
by Andreas Hollandt
at 2020-09-01T16:59:08+01:00
support Intel performance counters on Windows
-
3b9b0d88
by baldurk
at 2020-09-01T17:20:52+01:00
Check that both pyside2 and shiboken2 are found
* It seems like packaging of these two is inconsistent, and pyside2 dev files
being available doesn't always imply shiboken2 dev files are present. Be safe
and check both.
-
55febc88
by baldurk
at 2020-09-01T17:39:05+01:00
Check shiboken2's python version matches python version we're linking to
* We also reverse Python_ADDITIONAL_VERSIONS so it finds the newest one. It
doesn't seem like there's a way in general to make these match, so we hope
that searching from newest to oldest will find the same in both - or at least
it makes it easier for the user to fix by installing the newest in both..
-
31b81ade
by baldurk
at 2020-09-02T10:22:11+01:00
Switch descriptor refs lock back to normal lock
* Unfortunately some programs have extreme contention on this lock due to
multithreaded descriptor set writes enabled by UPDATE_AFTER_BIND.
-
da0c836a
by baldurk
at 2020-09-03T17:26:48+01:00
Cache bufferviewer column width calculation
-
d71d275d
by baldurk
at 2020-09-03T17:45:41+01:00
Don't re-read entire logfile every time, only read from last position
-
3ac8746b
by baldurk
at 2020-09-03T17:45:41+01:00
Auto-size log view columns by hand
* Using the auto-resizing mode of RDHeaderView resizes based on the whole column
every time, which is wasteful when only a few lines are added to a large log.
-
4dbfca23
by baldurk
at 2020-09-03T18:07:46+01:00
Add std::hash overload for ResourceId to allow use in hashmaps/hashsets
-
c39a0bae
by baldurk
at 2020-09-03T18:07:47+01:00
Re-jig Following to hold a reference to TextureViewer
* This simplifies the code flow because we can be sure that we always have
cached read-only/read-write resources (this was true before, but now it's
clear).
-
ec023ac6
by baldurk
at 2020-09-03T18:07:47+01:00
Avoid unnecessary re-layouts when populating thumbnails
-
54286833
by baldurk
at 2020-09-03T18:08:35+01:00
Switch some maps to unordered_map where we only use them for lookups
-
afe3bee9
by baldurk
at 2020-09-03T18:08:39+01:00
Only lock in resource manager while capturing
* On replay currently we only have single-threaded access so the lock is just
overhead
-
56f82f6b
by baldurk
at 2020-09-03T18:09:47+01:00
Optimise UI for large descriptor arrays with few dynamically used binds
* We tune the pipeline state view and texture viewer to only iterate over a
small list of dynamically used binds in the (vastly more common) case where
unused binds are not being shown.
-
0c71c716
by baldurk
at 2020-09-03T18:58:30+01:00
Store command buffer page set in baked commands. Closes #2039
* If we keep the page set in the command buffer and destroy it on reset, we'll
free the pages behind the baked chunks that we stored. If a capture records
and resets a command buffer multiple times within a capture we need to store
multiple baked command buffers.
* So instead we give the baked commands ownership of those pages and reset them
when the baked commands record is destroyed (either because the command buffer
has been reset as it was before - or if we hold onto a reference during
capture then after the capture is done).
-
18a7e3c0
by baldurk
at 2020-09-04T10:32:17+01:00
We shouldn't return physical device entry points in vkGetDeviceProcAddr
* The spec says we only return a function pointer for device or device-child
functions. In practice the loader wraps instances and physical devices so when
calling a direct GDPA returned function the loader won't unwrap it so we won't
get our proper wrapped objects and will crash.
-
0e7bdc4c
by baldurk
at 2020-09-04T10:43:36+01:00
Fix python call to GetDisassemblyTargets
-
c96b05ec
by baldurk
at 2020-09-04T11:29:01+01:00
Fix primitive topology from extended dynamic state not being respected
-
d524eb8c
by baldurk
at 2020-09-04T11:29:12+01:00
Fix overlay bugs with extended dynamic state
-
6de8c53f
by baldurk
at 2020-09-04T11:39:10+01:00
Fix VK_Extended_Dynamic_State
-
55ac2c95
by baldurk
at 2020-09-04T11:50:02+01:00
Tweak handling of failed tests in artifacts log
-
9b37a8b8
by baldurk
at 2020-09-04T12:05:48+01:00
Don't print renderdoc log to stdout when running tests
-
9fc97f60
by baldurk
at 2020-09-04T12:06:09+01:00
Erase m_CurrentResources from the end not the beginning
* Since it's a sorted vector this avoids O(n^2) time to erase everything one by
one.
-
5a6feec9
by baldurk
at 2020-09-04T12:39:04+01:00
Speculative fix for intermittent failure in GL_Multithread_Rendering
* It seems like on nv windows we need to explicitly rebind the main context to
the main thread and give each worker thread its own window, to prevent the
worker thread from being unable to bind its context sometimes.
-
eba6f525
by baldurk
at 2020-09-04T12:51:56+01:00
Add success logs when each renderpass segment is verified
* It makes the log easier to read and so we know which part we're at if a pixel
fails.
-
d55cf930
by baldurk
at 2020-09-04T14:59:17+01:00
Don't make command line parsing a fatal error
-
acd75532
by baldurk
at 2020-09-04T15:00:16+01:00
Load main window initial layout before running python scripts
-
311dcb98
by baldurk
at 2020-09-04T15:02:04+01:00
Default to D3D11 pipeline state at the last minute
* If we default to D3D11 at construction time, if we have persist data (very
likely) and it's for another API then we'll have to destroy the D3D11 viewer
and recreate the other API's viewer.
-
2bfa2c0c
by baldurk
at 2020-09-04T16:39:42+01:00
Move histogram/minmax shaders into vulkan shader cache
* This lets us cache all shaders instead of having some be regenerated outside
the cache and looked up into it.
-
54db5aaf
by baldurk
at 2020-09-04T16:53:38+01:00
Store entries in vulkan shader cache for GLSL generation inputs
* GenerateGLSLShader is reasonably expensive because it uses glslang to
preprocess the shaders. If we can cache the input hash and look up the cache
with that hash then we can skip it entirely.
-
a0eadf47
by baldurk
at 2020-09-04T17:43:32+01:00
Push GCN ISA support checks onto separate thread
* The executables can take a little while to run, so we can do that in parallel
while loading the capture.
-
ecd23041
by baldurk
at 2020-09-04T18:34:28+01:00
Don't delete thread in LambdaThread until destructor
* This means a non-self deleting thread can be waited for or queried about still
after it's completed.
-
a2fa98be
by baldurk
at 2020-09-04T19:39:11+01:00
Move QNetworkAccessManager access onto separate thread
* QNetworkAccessManager is supposed to be asynchronous and threaded internally,
but calling get() the first time can take multiple *seconds* while it
initialises proxy data and loads ssl libraries.
* Qt's threading rules are so strict it's impossible to feasibly move
QNetworkAccessManager to another thread.
* Instead we use Qt's cross-thread signals and slots to move the whole thing
into a wrapper object. It's stupid.
-
fb3c2936
by baldurk
at 2020-09-04T23:23:31+01:00
Create a default SRV/UAV descriptor when needed. Closes #2040
* In D3D12 if the user passes NULL for the UAV or SRV descriptor when calling
Create*View we don't have the runtime to generate a default one for us when we
query, we'll just have nothing stored. So instead when we need to generate a
default "whole resource" descriptor to look up.
-
eaa24f85
by baldurk
at 2020-09-05T00:00:31+01:00
Mac compile fix
-
f446307d
by baldurk
at 2020-09-05T00:21:15+01:00
Add missing Qt header
-
fb178c46
by baldurk
at 2020-09-07T11:44:42+01:00
Fix missing thread sync when checking for GCN ISA support
-
b5222245
by baldurk
at 2020-09-07T11:44:57+01:00
Fix the wrong context params being serialised for implicit thread switch
-
9b46bf7c
by baldurk
at 2020-09-07T11:56:24+01:00
Don't reset chunk allocator mid-capture
* We may still need these chunks for previously submitted frames if we're saving
everything in a capture.
-
8def3179
by baldurk
at 2020-09-07T16:58:49+01:00
Don't use separate xfb objects without ARB_transform_feedback2 extension
* EXT_transform_feedback allow us to use what we want and is core in the minimum
replay version (3.0 for GL/GLES), but it doesn't include separate xfb objects.
-
b1c12ce1
by baldurk
at 2020-09-07T18:09:04+01:00
Don't re-order chunks for indirect draws. Closes #2042
* If we insert chunks next to the recorded commands for indirect draws we need
to update all other commands which are recorded but not submitted which have
chunk indices. Updating this could be very complex if the command buffer
record is only partially complete when the submit happens (which is quite
possible if it's not submitted until later), so instead we abandon trying to
have indirect chunks next to the recorded command chunks since it's not
strictly necessary.
-
47b972c8
by baldurk
at 2020-09-08T12:57:00+01:00
Set priority only after thread is running
-
facf150e
by baldurk
at 2020-09-08T12:57:00+01:00
Properly refresh all rows when filter model changes
-
515d4c5d
by baldurk
at 2020-09-08T12:57:00+01:00
Ignore generated initial states for images with no memory bound
-
218ce2ab
by baldurk
at 2020-09-08T12:57:01+01:00
Set NULL descriptor updates to valid offset/range
-
3d5aabdd
by baldurk
at 2020-09-08T12:57:01+01:00
Make sure to enable bufferDeviceAddressCaptureReplay on replay
* We used to get this 'for free' by serialising our patched device next chains,
but we no longer do that so we need to enable this bit on replay as well.
-
75cb5d18
by baldurk
at 2020-09-08T12:57:01+01:00
When memory has a dedicated allocation buffer, use it for wholeMemBuf
-
3f26f425
by baldurk
at 2020-09-09T16:40:00+01:00
Fix enabling of bufferDeviceAddressCaptureReplay
* We only enable this if we find an existing struct somewhere enabling the base
feature. Otherwise we might try to enable this when it's not supported at all.
-
78f1f8f3
by baldurk
at 2020-09-09T16:40:04+01:00
Remove volatile from Atomic parameter declarations
* This was leaky from windows' InterlockedIncrement etc declarations, and is not
necessary.
-
7cd76164
by baldurk
at 2020-09-09T16:40:07+01:00
Serialise max anisotropy level in GL texture & sampler initial states
-
10a01535
by baldurk
at 2020-09-10T11:49:16+01:00
Make Shiboken2/PySide2 searches QUIET to avoid scary warnings
* By default cmake will print huge scary warnings if the packages aren't
available instead of silently continuing and letting us check, which is a bad
default for optional packages.
-
2eb39ef8
by baldurk
at 2020-09-10T13:34:28+01:00
Check that shiboken/pyside targets exist
* Some ways of installing pyside provide a cmake script that's broken and
doesn't produce actual libraries/headers to link against.
-
3b04aa22
by baldurk
at 2020-09-10T13:34:44+01:00
Reduce the memory footprint of D3D12 objects
-
e9360a81
by baldurk
at 2020-09-10T13:35:16+01:00
Don't pre-allocate such large wrapped pools
* The cost of searching a few more pools to check allocations isn't so bad
especially if we can move IsAlloc() off the hot path. Better that than
allocating 100MB in pools.
-
fb19ccb5
by baldurk
at 2020-09-10T13:35:16+01:00
Don't pool-allocate D3D12 shaders
-
fdeea520
by baldurk
at 2020-09-10T13:35:32+01:00
Refactor and optimise D3D11 refcounting implementation
* In heavy D3D11 workloads the refcounting overhead especially during fast
binding changes was significant. Refactoring the refcounting to work on a
different model and deferring destruction of objects removes most of the
overhead.
-
d671c66b
by baldurk
at 2020-09-10T14:45:46+01:00
Remove reliance on wrapped pool IsAlloc
* In most cases we either know the type, or we can use the generic parent
WrappedDeviceChild11 to get what we want.
-
255f457c
by baldurk
at 2020-09-10T15:30:04+01:00
Fix crash accessing non-running thread
-
809b8f9f
by baldurk
at 2020-09-10T16:41:35+01:00
Add fallback on android if gpu debug layers are broken or inaccessible
-
966db7bd
by baldurk
at 2020-09-10T22:57:22+01:00
Add some more identified markers
-
33a1c9b2
by LukeRoss00
at 2020-09-11T15:31:31+01:00
Update win32_callstack.cpp
Module offset was mistakenly being erased together with .pdb extension
-
0d70327b
by baldurk
at 2020-09-11T16:31:10+01:00
Store resource type directly in VkResourceRecord
# Conflicts:
# renderdoc/driver/vulkan/vk_resources.h
-
8ca96aa8
by baldurk
at 2020-09-11T16:32:17+01:00
Fix arrays of UBOs not displaying properly in vulkan pipeline state
-
925b49da
by baldurk
at 2020-09-11T18:51:27+01:00
Fix handling of instance extensions in vulkan tests
-
6225c83d
by baldurk
at 2020-09-11T20:52:10+01:00
Fix handling of CreateCommandList1
* We would accidentally ignore the first Reset() call by attempting to avoid the
fake Reset() that CreateCommandList creates.
-
50ebd8d3
by baldurk
at 2020-09-12T23:15:17+01:00
Fix mistake enabling BDA capture replay if original BDA wasn't enabled
-
433a51cf
by baldurk
at 2020-09-12T23:15:44+01:00
Fix replay refcounting of D3D11 objects
-
ac8a90eb
by baldurk
at 2020-09-12T23:16:15+01:00
Fix refcounting of D3D12 shader objects
-
76d91d5e
by baldurk
at 2020-09-12T23:18:04+01:00
Don't allow static logfile string to destruct before RenderDoc singleton
-
c455fa9d
by baldurk
at 2020-09-14T12:31:57+01:00
Fix broken Unwrap() on D3D12
-
213e19be
by baldurk
at 2020-09-14T12:33:28+01:00
Fix double-delete of immediate context on D3D11
-
1286f4b2
by baldurk
at 2020-09-14T13:01:14+01:00
Fix issues identified by synchronisation layer
-
f5786077
by Omar El Sheikh
at 2020-09-14T15:19:51+01:00
Added Android Hardware Buffer Extension Support
Added support for the VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER
device extension on Android
*Created necessary hooks for vkGetAndroidHardwareBufferPropertiesANDROID
and vkGetMemoryAndroidHardwareBufferANDROID
-
6236f2b6
by Omar El Sheikh
at 2020-09-14T15:19:51+01:00
Added Struct Handling/Serialization
Added initial support for these structs:
*VkAndroidHardwareBufferPropertiesANDROID
*VkMemoryGetAndroidHardwareBufferInfoANDROID
*VkAndroidHardwareBufferFormatPropertiesANDROID
*VkExternalFormatANDROID
*VkAndroidHardwareBufferUsageANDROID
*VkImportAndroidHardwareBufferInfoANDROID
-
60eb2c5a
by Omar El Sheikh
at 2020-09-14T15:19:51+01:00
Handle pNext Chain for Android External Memory
Updated vk_next_chains.cpp to handle serializing of the new structs
Updated VkCreateInfo function to check for Android External Buffer
Fixes to vk_serialize.cpp to serialize structs properly
-
ce1cfe53
by baldurk
at 2020-09-14T15:27:46+01:00
Provide more specific error on external-imported resources
* When capturing some external memory driver implementations have completely
disjoint memory type bits allowed for external and non-external resources.
This means it is impossible to capture it as external and then replay it as
non-external, leading to a broken capture.
* This is warned about at capture time but easy to miss. Adding this error here
is more likely to be seen and found.
-
8615c5fc
by baldurk
at 2020-09-14T15:30:49+01:00
Speculative support for 10-bit backbuffers on GL
-
c8fcdbae
by baldurk
at 2020-09-14T15:58:20+01:00
Update fetch_shader python example to latest API
-
4ec62818
by baldurk
at 2020-09-15T11:23:34+01:00
Fix disabled convenience test for unit testing DXBC
-
9877b635
by baldurk
at 2020-09-15T11:24:06+01:00
Fix disassembly of relative-addressing operands in DXBC
* Most of the time we can map this to a reflection variable but if we can't, we
must print the correct index.
-
496bbbe9
by baldurk
at 2020-09-15T13:11:37+01:00
Don't allocate chunks from allocator when data is external
* This can lead to lifetime issues if the allocator is reset and now the
external-data pointer or bool can be trashed. Instead if the data allocation
can't come from the allocator, allocate both data and chunk externally.
-
299249d7
by baldurk
at 2020-09-15T13:16:57+01:00
Fix D3D12 command list reset not getting correct init parameters
-
11719a25
by baldurk
at 2020-09-15T17:27:58+01:00
Perform samples in vertex shader for vertex debugging on D3D12
* On D3D11 we just queried the resource & sampler binding from whichever stage
it was on and bound it to the pixel shader. On D3D12 we re-use the root
signature which means we need to fetch the binding in the stage it was used
originally. VS t0,space0 could be different from PS t0,space0.
-
35bbb0d2
by baldurk
at 2020-09-16T11:50:44+01:00
Fix incorrect GL compatibility version check
-
b0d3cad2
by baldurk
at 2020-09-16T14:22:31+01:00
Add logging when new GL sharegroups are created
-
e73ce8f8
by baldurk
at 2020-09-16T14:29:28+01:00
Don't delete from m_CurrentResources when removing resource record
* This is handled when the resource is destroyed itself, we just NULL out the
pointer.
-
9b40bb72
by baldurk
at 2020-09-16T15:33:09+01:00
Fix wrong ID being serialised for deferred contexts
-
6a3b29cb
by baldurk
at 2020-09-16T16:39:07+01:00
Add opt-out flag for vulkan appinfo replacement
-
a3b6adc3
by baldurk
at 2020-09-16T17:03:27+01:00
Linux demos compile fix
-
720a58a2
by baldurk
at 2020-09-17T12:57:59+01:00
Disable very spammy warning in release builds
* The warning is real, this is a problem with the application, but some programs
cause a lot of barriers to hit this.
-
9d642c12
by baldurk
at 2020-09-17T13:08:32+01:00
Remove unused call to GetPDP2 for Vulkan12Properties
-
56f76f6f
by baldurk
at 2020-09-17T13:24:49+01:00
Don't try to read primitive ID in pipeline that contains a GS
* We can't do it unless the GS writes primitive ID, which we could check for but
is highly unlikely.
-
4809615a
by baldurk
at 2020-09-17T15:05:21+01:00
Don't print hit information until we know it's a drawcall
-
0ed941be
by baldurk
at 2020-09-17T17:23:25+01:00
Don't display window cycling message on platforms without keyboard input
-
381fdbe0
by baldurk
at 2020-09-17T17:43:28+01:00
Fix missing format argument in error message
-
e17eddad
by baldurk
at 2020-09-18T17:24:00+01:00
Bump version to 1.11
-
25bb8e3d
by baldurk
at 2020-09-19T15:02:24+01:00
Restore D3D11 driver bug workaround
-
aaae5d4a
by baldurk
at 2020-09-19T15:02:36+01:00
Separate out calls to vkBindBufferMemory2
-
92040f46
by baldurk
at 2020-09-20T11:23:06+01:00
Fix a crash with D3D11 SWAP_EFFECT_FLIP_DISCARD swapchains. Closes #2055
* DXGI is entangled with the API unfortunately, such that for D3D11
DXGI_SWAP_EFFECT_FLIP_DISCARD can only access buffer 0 (like
DXGI_SWAP_EFFECT_DISCARD) but for D3D12 it can access any buffer. This is
naturally undocumented.
-
48f04009
by Jordan Justen
at 2020-09-21T02:17:15-07:00
Merge tag 'v1.10' into debian/master
v1.10
-
73a0df26
by Jordan Justen
at 2020-09-21T02:41:09-07:00
Start 1.10+dfsg-1 changelog
Signed-off-by: Jordan Justen <jljusten@debian.org>
-
0e862882
by Jordan Justen
at 2020-09-21T02:46:35-07:00
debian/copyright: Remove qrenderdoc/3rdparty/pyside from dfsg source
Signed-off-by: Jordan Justen <jljusten@debian.org>
-
1f039cea
by Jordan Justen
at 2020-09-21T02:48:37-07:00
debian/patches: Rebase patches for v1.10
Signed-off-by: Jordan Justen <jljusten@debian.org>
-
e9dcd4b5
by baldurk
at 2020-09-21T14:37:29+01:00
Fix out of bounds check to not allow indexing 1 too far in members array
-
2481957f
by baldurk
at 2020-09-21T14:39:20+01:00
When shader debugging is cancelled, still display partial debug trace
-
9bc2ef77
by baldurk
at 2020-09-21T16:39:47+01:00
Record and track CREATE_NOT_RESIDENT heap flag
* We don't replay it, all resources are resident on replay. At record time we
need to know the residency status to make resources resident when necessary.
-
c8c138a7
by baldurk
at 2020-09-21T17:23:49+01:00
Fix handling of VkDeviceGroupDeviceCreateInfo structs
-
28463fd7
by baldurk
at 2020-09-21T18:18:23+01:00
Ensure view instancing array is properly copied in D3D12 pipeline desc
-
3c39f17d
by baldurk
at 2020-09-23T11:37:43+01:00
Reserve enough space for DXIL constants up front to prevent resizes
-
2d7a717e
by baldurk
at 2020-09-24T22:28:58+01:00
Fix shader function being called on non-shaders corrupting memory
-
8b2a521a
by baldurk
at 2020-09-24T22:29:12+01:00
Fix crash when no scissor regions are bound at D3D12 draw
-
2ea17af7
by baldurk
at 2020-09-25T10:51:12+01:00
Fix unwrap of inline uniform block descriptor writes
* We don't unwrap any of the data but we must still unwrap the descriptor set.
-
72468006
by baldurk
at 2020-09-28T23:03:28+01:00
Ensure pixel shader debugging has access to root signature
-
3c180d90
by baldurk
at 2020-09-28T23:03:38+01:00
Make buffer initial state padding more generous on GL
-
5ae5cb8b
by baldurk
at 2020-10-01T10:41:53+01:00
Don't remove resource records for stale resources on GL
* If we destroy a resource e.g. FBO 4 in a captured frame, its record will stay
alive until the end. When we delete that record we don't want to remove the
record that is now recorded for FBO 4 since that might be a new resource that
has been created. If the ID doesn't match then the original resource
destruction has already been processed and the record is now orphaned, so
nothing has to happen.
-
f975ef3c
by baldurk
at 2020-10-01T11:54:56+01:00
Add protection against the use of 0-sized buffers in GL
-
631a73fa
by baldurk
at 2020-10-01T11:55:19+01:00
Don't assert on replay thread for CancelReplayLoop
* This is the one function that CAN be called from another thread by definition
since the replay thread is blocked running the replay loop.
-
8e77703c
by baldurk
at 2020-10-01T11:55:48+01:00
When fetching API validation messages in GL, only fetch 'live' messages
* Any messages we add ourselves will already have an event ID so we keep them
separately.
-
12260fe8
by baldurk
at 2020-10-01T13:23:19+01:00
Apply UNDEFINED discard pattern for initial RP layout. Closes #2058
-
7541b49c
by baldurk
at 2020-10-01T15:33:15+01:00
Fix readback window being always allocated. Closes #2060
* This should only be allocated when the config flag isn't disabled and when
it's needed, but we were always allocating it during capture.
* We also only allocate as much as is needed, since it seems on AMD linux the
CPU memory can actually be quite arbitrarily constrained.
-
55c57f7e
by baldurk
at 2020-10-01T15:56:52+01:00
Display stencil values in binary and decimal in tooltips. Closes #2052
-
58f4dc6f
by baldurk
at 2020-10-01T16:59:25+01:00
Fix crash if duplicate root signature pointer is returned
* If we make internal replay root signatures live resources they could clash
with a replayed resource and end up with two entries in the live resource
list, which will double delete on shutdown.
-
98c17191
by baldurk
at 2020-10-01T17:00:38+01:00
Fix copy-paste error reading from wrong properties in RTV/DSV desc
-
d8638853
by baldurk
at 2020-10-01T17:48:35+01:00
Disable KHR_buffer_device_address on AMD windows for now
* It seems to be broken at the moment unfortunately, at least for our internal
use cases (shader debugging and bindless feedback)
-
8f635905
by baldurk
at 2020-10-01T17:48:35+01:00
Make more config flags non-debug.
* Only performance-sensitive flags should be debug only. Otherwise there's no
strong reason to limit these to non-official builds.
-
eeb04690
by baldurk
at 2020-10-02T10:45:57+01:00
Fix GL/DX interop for buffers
-
e1d025e4
by baldurk
at 2020-10-02T12:53:38+01:00
Don't fetch buffer data if it's not yet initialised
-
cc9aec21
by baldurk
at 2020-10-02T14:19:06+01:00
Fix display of UINT casted textures on D3D12
-
501eeff6
by baldurk
at 2020-10-02T15:19:45+01:00
Fix wrong FBO attachment being specified for readback
-
c66dfec7
by baldurk
at 2020-10-02T15:19:45+01:00
Force a remap if texture type changed even if format didn't
-
1b35c939
by baldurk
at 2020-10-02T16:26:51+01:00
Optimise texture zoo tests with fast path
* Pixel picking is a bottleneck, so do a render to a headless output and read
that back as a way of quickly checking that all of the subresource is OK at
once.
-
4518fda3
by baldurk
at 2020-10-02T16:43:11+01:00
Test entry points that could be applied to wrong resource types
-
9e17b91a
by baldurk
at 2020-10-02T17:41:58+01:00
Test different variations of DXGI swapchains on D3D11 and D3D12
-
41746240
by baldurk
at 2020-10-02T17:47:31+01:00
Test that glFrameTerminatorGREMEDY works in GL_Parameter_Zoo
-
164bd49d
by Rémi Palandri
at 2020-10-05T17:08:02+01:00
update vulkan/volk to 1.2.155
-
99171cc7
by baldurk
at 2020-10-05T17:46:14+01:00
Fix vulkan GetInstanceProcAddr to return NULL when instance is NULL
* Few functions should actually be queriable without an instance.
-
6e9565eb
by baldurk
at 2020-10-06T10:25:37+01:00
Always bounds check number of descriptors even if range isn't unbounded
-
96ab4c25
by baldurk
at 2020-10-06T10:28:27+01:00
Allow arrays to have a larger varOffset than 16 bytes in assert
-
1cbd062a
by baldurk
at 2020-10-06T16:11:22+01:00
Protect against captures that try to allocate memory from invalid types
-
90437b3a
by baldurk
at 2020-10-06T17:16:49+01:00
Fix return of only dynamically used resources
* If the range wasn't contiguous, some resources would be skipped
-
99811dd6
by baldurk
at 2020-10-06T18:39:48+01:00
Ensure draw index is correct when replaying draws
-
45f3f5ef
by baldurk
at 2020-10-06T18:40:53+01:00
Don't overwrite a known failed depth test with a suspected pass
* We only use the manual depth test to detect failures mid-modification
-
89af50a7
by baldurk
at 2020-10-06T18:59:25+01:00
Force depth writes when fetching shader output in pixel history
* If depth is disabled this will do nothing, but if depth is enabled this
ensures we actually get the depth value from the fragment.
-
a616f951
by Jordan Justen
at 2020-10-09T03:01:44-07:00
d/changelog: Release 1.10+dfsg-1 to unstable
Signed-off-by: Jordan Justen <jljusten@debian.org>
-
7bcdf9b3
by Jannik
at 2020-10-12T11:44:51+01:00
Fix copy of loop variable in SPIRV by using reference
-
bf4d68fb
by baldurk
at 2020-10-13T21:31:16+01:00
Account for D3D11 UAV start slot when displaying bindings
-
8af614fa
by baldurk
at 2020-10-13T21:31:16+01:00
Protect against invalid queries in GL/Vulkan
-
03ae60e4
by baldurk
at 2020-10-13T21:31:16+01:00
Fix GL_Multithread_Rendering test on linux
-
72deab20
by baldurk
at 2020-10-13T21:31:16+01:00
Don't modify renderstate inside InitPostVSBuffers
-
78762cbd
by baldurk
at 2020-10-13T21:31:16+01:00
Pre-populated dynamic state at the start of partial command buffers
-
4f06deda
by baldurk
at 2020-10-13T21:31:16+01:00
Add query for whether extended instruction set exists
-
a58bafc1
by baldurk
at 2020-10-13T21:31:16+01:00
Remove unused legacy code
-
17a13654
by baldurk
at 2020-10-13T21:31:16+01:00
Add better type hinting for extended dynamic state functions
-
5d38292c
by Eugen Brusilovskyy
at 2020-10-15T11:30:01+01:00
FIX: wrong array layer index passed to cube image array in debugger
-
aba72e1e
by baldurk
at 2020-10-15T11:59:28+01:00
Print symbol resolution progress in GL_Callstacks test to avoid timeout
-
cb2d1971
by baldurk
at 2020-10-15T11:59:28+01:00
Allow debugging when SPV_KHR_non_semantic_info is used in shader
-
da5ce0e7
by baldurk
at 2020-10-15T11:59:28+01:00
Escape and truncate any multiline strings in SPIR-V disassembly
-
f6c2d64b
by baldurk
at 2020-10-15T11:59:28+01:00
Fix pointer alias change detection in SPIR-V debugging
-
0049ed2e
by baldurk
at 2020-10-15T12:11:03+01:00
Compile fix for linux
-
e213cfaf
by Kevin McCullough
at 2020-10-15T22:19:44+01:00
Modifying the TextureList to use EventBrowser-style chooser.
-
7fc06ee7
by baldurk
at 2020-10-16T16:13:30+01:00
Fix rendering of selected/highlighted rich resource text
-
c2a21a91
by baldurk
at 2020-10-16T16:13:30+01:00
Don't emit redundant change signals when nothing changed
-
8d647e55
by baldurk
at 2020-10-16T16:13:30+01:00
Avoid recalculating header view sizes when irrelevant roles change
-
42c5ab84
by baldurk
at 2020-10-16T16:13:30+01:00
Show dynamically unused slots as unused (italic text) on vulkan pipeline
-
5ccf25c3
by baldurk
at 2020-10-16T16:13:30+01:00
Fix compilation of QTDebug qrenderdoc target
-
8cc414a8
by baldurk
at 2020-10-16T16:13:30+01:00
Check for errors creating streamout query
-
58fbbc22
by baldurk
at 2020-10-19T10:35:51+01:00
Add missing tests to linux demos build
-
c22ff8fc
by baldurk
at 2020-10-19T16:56:04+01:00
Force sRGB rendering in multithreaded test
-
a95d51e2
by baldurk
at 2020-10-19T17:00:25+01:00
Deliberately 'leak' winsock to avoid deadlock on shutdown. Closes #2079
-
c56e1f0a
by baldurk
at 2020-10-19T17:43:58+01:00
Don't enumerate GPUs in child process helper
-
fc976d2d
by baldurk
at 2020-10-19T17:44:11+01:00
Set depthBounds feature properly so it can be checked for support
-
804f659e
by baldurk
at 2020-10-19T17:44:37+01:00
Only warn if an image is seemingly reported as supported
* Some drivers return VK_SUCCESS even for formats that aren't supported.
-
b2746eed
by baldurk
at 2020-10-20T12:44:24+01:00
Update vulkan headers to 1.2.158
-
4cdc46a5
by baldurk
at 2020-10-20T12:44:24+01:00
Update SPIR-V grammar and generated headers
-
d1bc1c68
by baldurk
at 2020-10-20T12:44:24+01:00
Increase warning level on SPIR-V debugging source files
-
96553556
by baldurk
at 2020-10-20T12:44:25+01:00
Implement support for VK_KHR_copy_commands2
-
0c84eb25
by baldurk
at 2020-10-20T12:44:25+01:00
Implement support for VK_KHR_shader_terminate_invocation
-
d1574f4f
by baldurk
at 2020-10-20T12:54:10+01:00
Implement support for VK_EXT_image_robustness
-
bd36f07b
by baldurk
at 2020-10-20T13:08:47+01:00
Implement support for VK_EXT_shader_atomic_float
-
ebafbdb1
by baldurk
at 2020-10-20T13:21:43+01:00
Implement support for VK_EXT_shader_image_atomic_int64
-
17e80ae9
by baldurk
at 2020-10-20T14:33:46+01:00
Fix forward references in LLVM constants block
-
632e9302
by baldurk
at 2020-10-20T16:12:45+01:00
Cache whether chunks are from an allocator
* If chunks come from an allocator they can't be safely deleted because the
allocator may have been reset and recorded over where these chunks were with
other data. Fortunately we don't need to do anything to delete them, so
storing the allocator status up front is sufficient.
-
88748858
by baldurk
at 2020-10-21T10:06:43+01:00
Don't add graphics binding usage for dispatches or vice-versa in D3D11
-
75c31562
by baldurk
at 2020-10-21T10:24:35+01:00
Add note that python scripting on Android is unreliable and unsupported
* It may work since the python scripting is generally not Android specific, but
Android itself is quite likely going to cause problems that are out of scope.
-
31bf9f45
by baldurk
at 2020-10-21T11:26:27+01:00
Don't mark commands as submitted if we didn't have a queue yet
-
806187f6
by baldurk
at 2020-10-21T14:14:20+01:00
Save and load edited shaders as capture modifications
* When a shader edit is loaded with a capture, it's loaded as "pending" and not
immediately applied.
-
53fc6ba0
by baldurk
at 2020-10-21T14:36:16+01:00
Add test that feature level 9.x programs can be captured on D3D11
-
26f680f6
by baldurk
at 2020-10-21T14:57:42+01:00
Check that sampler updates to immutable sampler descriptors are ignored
-
298e33fc
by baldurk
at 2020-10-21T21:51:41+01:00
Ignore brew update errors in CI builds
-
8e19fa70
by baldurk
at 2020-10-22T14:11:00+01:00
Don't rely on potentially stale cached pipeline state for IsOutput check
-
3a687217
by baldurk
at 2020-10-22T14:11:00+01:00
Allow repeated calls to CopyTex2DMSToArray on GL
* Normally the function creates its output to enforce storage (for texture
views) but repeated calls would break that, so we only create when the output
texture ID is 0.
-
d5033632
by baldurk
at 2020-10-22T14:11:00+01:00
Fix issues with MSAA quad overdraw overlays
-
3f8fb1e1
by baldurk
at 2020-10-22T14:11:01+01:00
Add MSAA case to overlay tests
-
ec73718c
by baldurk
at 2020-10-22T14:48:33+01:00
Test that overlays work on D3D12 with no viewport or scissor bound
-
8bdd9585
by baldurk
at 2020-10-22T15:10:17+01:00
Test D3D discards with NULL region or rects
-
db7b2606
by baldurk
at 2020-10-22T15:38:58+01:00
Fix wrong count being used in GL loop ending active queries
-
8c05c44a
by baldurk
at 2020-10-22T15:39:12+01:00
Don't bind a range for buffers bound without range (offset/size == 0)
-
a83485d1
by baldurk
at 2020-10-22T15:40:15+01:00
Test that counters and mesh output still work even if in use in capture
-
5cd83365
by baldurk
at 2020-10-22T15:48:30+01:00
Add basic texture sampling tests to D3D11 shader debug tests
-
cf8e8a15
by baldurk
at 2020-10-22T16:02:59+01:00
Test dimension fetching in D3D12 shader debugging with NULL desc struct
-
4017dbca
by baldurk
at 2020-10-23T13:57:38+01:00
Add Kevin McCullough to credits docs page
-
9779c563
by baldurk
at 2020-10-23T13:57:38+01:00
Ensure edited shaders mark a capture as modified for saving
-
369120cd
by baldurk
at 2020-10-23T13:57:38+01:00
Link @1234 type text to EIDs in the comments viewer
-
57aca86c
by baldurk
at 2020-10-23T14:19:13+01:00
Remove unused and redundant numChildren union member in SDObjectPODData
-
3d93b7bb
by baldurk
at 2020-10-23T18:01:05+01:00
Add missing override statements
-
8a4183ae
by baldurk
at 2020-10-23T18:16:42+01:00
Add missing <QRegularExpression> header
-
7040032d
by baldurk
at 2020-10-26T10:19:06+00:00
Fix missing surface registers for headless/direct surfaces
-
e8f6156d
by baldurk
at 2020-10-26T10:19:42+00:00
Compile fixes in linux process handling
-
985ce847
by baldurk
at 2020-10-26T10:19:53+00:00
Remove unused SSE vector from compressonator
-
117e1604
by baldurk
at 2020-10-26T10:24:40+00:00
Add an error message and don't add child process for invalid ident
-
394896a3
by baldurk
at 2020-10-26T10:24:47+00:00
Hide list of children completely in structured data
* This makes it easier to enforce object ownership, as well as gives us options
for e.g. generating structure data on demand lazily.
-
39f4e826
by baldurk
at 2020-10-27T14:04:45+00:00
Add test of performance with large descriptor sets
-
c58f3eda
by baldurk
at 2020-10-27T15:15:19+00:00
Support lazy-generating structured data objects for large arrays
* For certain very large arrays it can be nice to defer generation of structured
data until it's needed, since often maybe only a handful of elements may be
needed (or commonly none at all).
-
935cb113
by baldurk
at 2020-10-27T15:15:19+00:00
Add new string type rdcinflexiblestr specifically for structured data
* This is a string type which heavily optimises for immutability and minimal
storage. It only contains one pointer to the string data and always
reallocates on modify. For compile-time literals it doesn't modify or
allocate.
* On x64 we use the top bit in a tagged pointer to store a flag of whether it's
heap or literal, on other platforms it uses a separate field (meaning another
pointer sized value effectively, including padding).
* This is best for structured data which tends to use a lot of immutable strings
for type/name information, and only a few for actual string data (which are
only allocated once and aren't modified after that). Similarly we rarely want
to know only the size of any of these strings, we want the whole string so not
explicitly storing the size is not a big deal.
* Overall this reduces SDObject from 128 bytes to 80 bytes.
-
c468dafe
by baldurk
at 2020-10-27T15:15:19+00:00
Don't stringify ResourceIds in structured data
* Users should stringify the actual value themselves if so desired. This reduces
the number of string allocations in the structured data since ResourceIds are
common.
-
7830f566
by baldurk
at 2020-10-27T15:15:20+00:00
Return string literals for more bitfield values
* If a bitfield is precisely equal to one known value, return a literal for it.
Similarly for 0, for both bitfields and regular enums. This helps reduce the
number of heap allocated strings generated while serialising.
-
6fbd8511
by baldurk
at 2020-10-27T15:15:20+00:00
Store parent pointer in SDObject
-
1ceeb159
by baldurk
at 2020-10-27T15:15:20+00:00
Add lazy-populating item model for SDObjects
* We also add intermediate paging nodes for large arrays to ease expansions
-
05034e7b
by baldurk
at 2020-10-27T15:15:20+00:00
Ignore deprecated declaration warnings in python modules
-
978d240e
by baldurk
at 2020-10-28T09:41:54+00:00
Compile fixes
-
0a56df5a
by baldurk
at 2020-10-28T10:09:57+00:00
Remove deprecated set-env from github actions
-
6b67a6c1
by baldurk
at 2020-10-28T11:56:38+00:00
Fix proxy serialisation of SDObject to set parent pointer correctly
-
40002634
by baldurk
at 2020-10-28T12:08:36+00:00
Fix order of operations error when shutting down remote replay
-
03b7229b
by baldurk
at 2020-10-28T13:34:08+00:00
Support choosing multiview viewport in vertex debugging on vulkan
-
3d46e105
by baldurk
at 2020-10-28T14:14:42+00:00
Compile fix on some compilers
-
769f5d05
by baldurk
at 2020-10-28T14:20:01+00:00
Fix issue where mapped memory updates weren't masked. Closes #2083
* After simplification memory that's only used for tiled resources would have a
single interval with finish() == UINT64_MAX, which failed the iteration check.
-
fc6348cc
by baldurk
at 2020-10-28T14:38:57+00:00
Ensure any lazy arrays are fully populated before serialisation
-
e734cfe0
by baldurk
at 2020-10-28T14:50:17+00:00
Fix lazy generator not storing string database and user data
* We need this to properly serialise on some drivers.
-
d397b7fd
by baldurk
at 2020-10-28T15:08:00+00:00
Fix nit-picky OSX compile error
-
2c248935
by baldurk
at 2020-10-28T15:25:01+00:00
Fix structured serialisation of specially handled structs
* Anything which has an explicit "If writing, set up element" rather than merely
serialising directly.
* Also e.g. for ResourceIds, when structurising grabbing the ID of an object
will get the live ID, so we need to get the original ID.
-
f9deead6
by baldurk
at 2020-10-28T19:07:52+00:00
Add open-source nvapi release headers
-
351e61b8
by baldurk
at 2020-10-28T19:07:52+00:00
Move existing minimal nvapi/nvencode hooks to NV project
-
584746e4
by baldurk
at 2020-10-29T10:16:14+00:00
Support capturing & replaying shader extensions with nvapi in DX11&12
-
05b59b8e
by baldurk
at 2020-10-29T10:16:14+00:00
Post-process DXBC to remove vendor extension UAV and format instructions
-
f79ced7a
by baldurk
at 2020-10-29T10:16:14+00:00
Add support for debugging uint64 vendor atomics
* This still is subject to the general limitation that RenderDoc only simulates
one thread or at most one pixel quad.
-
eb967af9
by baldurk
at 2020-10-29T10:34:24+00:00
Add missing added parameter to tests calling DebugVertex
-
19489feb
by baldurk
at 2020-10-29T11:27:31+00:00
Update microsoft/setup-msbuild action to latest
-
bb2a8a43
by baldurk
at 2020-10-29T12:03:27+00:00
Ensure we reset any android capture settings on close
* If no capture is loaded after launching a program, the capture settings can
still be present and cause problems with future launches of applications
depending on the Android version.
-
810e57e6
by baldurk
at 2020-10-29T12:49:08+00:00
Fix error serialising contents of UAV descriptors
-
34658094
by baldurk
at 2020-10-29T12:51:29+00:00
Add test that different list/queue types are handled in D3D12
-
ffd88278
by baldurk
at 2020-10-29T15:08:50+00:00
Add test that tries to stress reallocation/pool allocation of commands
-
b9a6212c
by baldurk
at 2020-10-29T15:08:50+00:00
When running tests if --pyrenderdoc is omitted, try default location
-
7dec9933
by baldurk
at 2020-10-29T15:45:04+00:00
Test that creating and destroying contexts doens't have side effects
-
ed0138a2
by baldurk
at 2020-10-29T16:12:33+00:00
Test that debugging sampling from vert shaders in D3D12 works correctly
* We also test that pixel shaders can be debugged even if they have
DENY_ROOT_SIGNATURE_ACCESS enabled.
-
55b84f4e
by baldurk
at 2020-10-29T16:27:31+00:00
Test that creating root signatures identical to internal sigs works OK
-
d5107ec3
by baldurk
at 2020-10-30T16:27:57+00:00
Report tiled resources as unsupported on D3D11
-
4dae8721
by baldurk
at 2020-10-30T16:28:03+00:00
Add extra error in case of failed file I/O
-
caa8bb5b
by baldurk
at 2020-10-30T16:28:03+00:00
Fix incremental build dependencies in python modules
-
b8f647c1
by baldurk
at 2020-10-30T16:28:03+00:00
Default to float over unorm for FP16 typeless formats
* Given no other information FP16 is much more common than UNORM16. We don't
know which type to use but float is a better choice.
-
695ffaaf
by baldurk
at 2020-10-30T16:28:03+00:00
When viewing a texture from pipeline state, default to view typecast
-
7c6dae32
by baldurk
at 2020-10-30T16:28:03+00:00
Add logging when deleting contexts/share groups
-
85488929
by baldurk
at 2020-10-30T16:49:57+00:00
Add support for new D3D interfaces
* Nothing interesting/useful is supported here, we just add new interfaces that
we recognise even though the user can't use them since we don't report support
for the new features.
* This also makes it easier to track future changes when we're not behind..
-
41c57c0b
by baldurk
at 2020-10-30T16:49:57+00:00
Tidy up logging of unknown interface queries
-
5006a787
by baldurk
at 2020-11-02T21:11:50+00:00
Account for inverse viewport height when picking vertices
-
9a0e1c55
by baldurk
at 2020-11-03T18:24:15+00:00
Treat internal D3D12 descriptors as volatile, not static
-
0eea63c2
by baldurk
at 2020-11-03T18:32:55+00:00
Always show UnpackedSignature for root signatures
* We want to display this even if the root signature was de-duplicated to
another handle.
-
d80300b3
by baldurk
at 2020-11-03T18:55:49+00:00
Don't use IDs to identify redundant root signature binds
* If we compare the underlying pointer we know for sure if it's the same or
different.
-
24ec36b4
by baldurk
at 2020-11-03T23:32:21+00:00
Batch moves of indirect drawcall nodes
-
c7e1ea08
by baldurk
at 2020-11-04T15:15:17+00:00
Add support for capture/replay of AGS shader extensions
-
47680e38
by baldurk
at 2020-11-04T15:16:07+00:00
All nvapi opcodes are treated as supported
* Some can't be debugged, but we can capture/replay/disassemble all opcodes so
don't block them.
-
791a3a6f
by baldurk
at 2020-11-04T15:16:16+00:00
Print used nvapi version
-
6352786d
by baldurk
at 2020-11-04T17:24:23+00:00
Fix post-processing of AMD shader ops
-
8be0da2c
by baldurk
at 2020-11-04T17:48:49+00:00
Add a test of AMD shader operations
-
e69eacf9
by trietch
at 2020-11-05T17:11:10+00:00
Add Fedora dependencies
-
2bfccb13
by baldurk
at 2020-11-05T21:29:16+00:00
Properly apply vertexOffset for builtin in indexed draws
-
ab28d102
by baldurk
at 2020-11-09T12:25:20+00:00
Fix bug allowing users to close unclosable texture viewer panels
-
d9121a7f
by baldurk
at 2020-11-09T12:25:21+00:00
Add half.hpp 2.1.0 from http://half.sourceforge.net/
-
b21f9da8
by baldurk
at 2020-11-09T12:25:21+00:00
Add helpers for dispatching in bit-width-agnostic ways
-
80a7ffc3
by baldurk
at 2020-11-09T12:25:21+00:00
Update GLSL.450 extended instructions to support all bit-widths
-
7bdede5d
by baldurk
at 2020-11-09T12:25:21+00:00
Update CalculateSampleGather/CalculateMathOp to support all bit-sizes
* Texture sampling we still do at only 32-bit precision (for inputs and
outputs). Math operations are done at the correct bit-width.
-
3c65545c
by baldurk
at 2020-11-09T12:25:21+00:00
Add helpers for accessing 'special' properties in pointer/image vars
-
9309b09a
by baldurk
at 2020-11-09T12:25:21+00:00
Convert main SPIR-V dispatch loop to handle any bit width
-
24764c57
by baldurk
at 2020-11-09T12:25:21+00:00
Continue type walking from the correct point in type hierarchy
-
7f8e5555
by baldurk
at 2020-11-09T12:25:21+00:00
Update remaining I/O handling to support non-32-bit types
* This includes the shader input interface, and storage/cbuffer access.
-
58625ad3
by baldurk
at 2020-11-09T12:25:21+00:00
Allow debugging SPIR-V shaders that use non-32bit type capabilities/exts
-
063131d2
by baldurk
at 2020-11-09T16:02:48+00:00
Enable and expand float64 tests in VK_Shader_Debug_Zoo
-
44b1ab7e
by baldurk
at 2020-11-09T16:02:48+00:00
Fix patching of indirect draws not storing indexed baseVertex correctly
-
d9eab23b
by baldurk
at 2020-11-09T16:02:48+00:00
Fix clipping when rendering RichResourceText documents
-
e3e3d274
by baldurk
at 2020-11-09T16:29:29+00:00
Ignore root signature RST0 chunk in DXBC container
-
d5a51dd1
by baldurk
at 2020-11-09T16:29:39+00:00
Ignore uselist block in DXIL container
-
944070fd
by baldurk
at 2020-11-09T17:59:53+00:00
Fix warnings with clang build of half library
* Comma operator problems when doing math functions that return two parameters
(e.g quotient).
* Passing bool tag type through varargs - the varargs aren't actually used and
there's an overload for true_type, so we can instead accept false_type.
* gcc seems to declare numeric_limits as a struct, so friend'ing it as a class
throws a warning. Since we only care about C++11 we can omit the tag from the
friend declaration.
-
8ca89b9c
by baldurk
at 2020-11-10T10:06:12+00:00
Further compile fixes for half library
-
561a15e1
by baldurk
at 2020-11-10T11:26:24+00:00
Add some missing GL enums
-
daaff290
by baldurk
at 2020-11-10T11:31:53+00:00
Fix crashes with overlays on rasterizer discard enabled pipelines
* None of the overlays do anything when rasterizer discard is enabled, so just
skip most work.
-
5f6f00d1
by baldurk
at 2020-11-10T12:40:52+00:00
Fix vulkan vertex shader debugging populating inputs
-
b402dfee
by baldurk
at 2020-11-10T13:02:08+00:00
Don't set program I/O bindings on GL unless it has a vertex/pixel shader
* For separable programs we'll query out I/O bindings for e.g. only the geometry
pipeline, but we shouldn't try to set those outputs with
glBindFragDataLocation. Normally we'd expect these bindings to be queried as
-1 at capture time, but just be sure.
-
c0876f25
by baldurk
at 2020-11-10T13:02:28+00:00
Fix multisampled array framebuffer attachments in initial states
-
bd5b79bd
by baldurk
at 2020-11-10T13:18:31+00:00
Tweak Repeat_Load to do two reload tests before grabbing baseline
-
804fddcd
by baldurk
at 2020-11-10T13:57:27+00:00
Allow python extensions to be loaded from app folder as well as user
* This will let us distribute extensions with the renderdoc builds.
-
38886ab5
by baldurk
at 2020-11-10T14:36:09+00:00
Fix memory leak if only baked commands are freed on vulkan
-
dc957b4c
by baldurk
at 2020-11-12T10:58:32+00:00
Fix typo and clarify AlphaMapping use. Closes #2090
-
1375a176
by baldurk
at 2020-11-12T10:58:43+00:00
Add missing plugin file to installer manifest
-
63209239
by baldurk
at 2020-11-12T17:04:43+00:00
When VB stride is 0 read enough data for any single attribute
-
9fa89e39
by baldurk
at 2020-11-13T14:23:19+00:00
Disable mesa device select layer. Closes #2093
-
705eb10c
by baldurk
at 2020-11-16T10:35:56+00:00
Set correct type when interpreting R10G10B10A2_UNORM vertex inputs
-
0d4194af
by baldurk
at 2020-11-16T12:20:15+00:00
Cache id so we don't reference iterator after deletion
-
e0147928
by baldurk
at 2020-11-16T18:24:31+00:00
For 3D texture views the depth is the original texture's depth
* The number of layers is only the depth for array textures.
-
a4573899
by baldurk
at 2020-11-16T18:33:35+00:00
Thumbnails with automatic scale shouldn't always be linear sampled on GL
-
91d8c30c
by baldurk
at 2020-11-18T13:11:58+00:00
Fix python object conversion for NULL QWidgets
-
ab2f4e40
by baldurk
at 2020-11-18T15:41:20+00:00
Fix exception handling in wrapped python callbacks
-
0aefcced
by baldurk
at 2020-11-18T18:21:20+00:00
Add a small interface into Qt widgets to our own python wrapping
* This by no means replaces PySide2, but it allows python extensions to write
simple UIs without needing to rely on PySide2, which might not be available
(generally all windows builds have it as well as recent binary linux builds,
but local windows builds may not and most linux builds probably won't).
-
916c431d
by baldurk
at 2020-11-18T19:05:03+00:00
Compile fixes
-
ef0b3fe8
by baldurk
at 2020-11-18T19:14:35+00:00
Add virtual destructor
-
d0bf0f6e
by baldurk
at 2020-11-19T14:47:10+00:00
Add Superluminal PerformanceAPI annotation support
-
1dc1b4d1
by baldurk
at 2020-11-19T14:47:11+00:00
Add some profile markers in common hotspots
-
3f5a9114
by baldurk
at 2020-11-19T14:47:11+00:00
Refactor CustomPaintWidget to handle widget recreation internally
* This allows us to expose to to python as a easy-to-use "replay output ready"
widget.
-
ee0267d7
by baldurk
at 2020-11-19T14:47:11+00:00
Fix missing sRGB conversion of clear background color
-
23e66418
by baldurk
at 2020-11-19T16:51:20+00:00
Compile fixes on linux
-
bd9d88b3
by baldurk
at 2020-11-19T17:34:11+00:00
Add missing includes
-
f0d00b5a
by baldurk
at 2020-11-20T13:10:38+00:00
Don't allow command pool/allocator reset until capture is finished
* Even after transitioning to background capturing we can't allow reset or else
we could record over chunks that we have yet to write to disk.
-
58e16414
by baldurk
at 2020-11-20T17:02:33+00:00
Add a number of control functions to the Qt python interface
-
88300000
by baldurk
at 2020-11-20T17:02:33+00:00
Ensure ResourceId declares all operators
* This improves things in the MSVS debugger which otherwise sometimes complains
of no suitable copy constructor for ResourceId
-
efac5ad7
by baldurk
at 2020-11-20T17:02:33+00:00
Disable runtime and security checks in development builds
* This provides a decent speed boost and these have never caught any issues
before. Asan/gflags/valgrind etc do a better job of this when needed.
-
8d4b45cd
by baldurk
at 2020-11-20T18:15:00+00:00
Fix paramref documentation reference
-
7a6b044f
by baldurk
at 2020-11-23T15:19:24+00:00
Use comparison state not shadow sampler type for pipeline state
-
c9f1c9ea
by baldurk
at 2020-11-24T16:12:20+00:00
Update to AGS 6.0.1
-
0e946991
by baldurk
at 2020-11-24T16:29:18+00:00
Don't add fragment execution mode for compute-shader math pipeline
-
a34d7b19
by baldurk
at 2020-11-24T16:29:36+00:00
Don't bind Qt signals multiple times for custom paint widgets
-
d3013af9
by baldurk
at 2020-11-24T16:43:46+00:00
Fix annotations on output storage buffer for math operations
-
abf7e3bd
by baldurk
at 2020-11-24T16:44:08+00:00
Only declare half type if shaderFloat16 is supported
* Without this, the 16-bit storage only refers to ints (if that feature is
available).
-
883e0232
by baldurk
at 2020-11-24T16:47:35+00:00
Avoid use of EXT_direct_state_access in tests
* Mesa doesn't implement the EXT version, only the KHR version
-
ecafa4f1
by baldurk
at 2020-11-25T14:06:35+00:00
Tweak lock order to avoid a deadlock during capture
* During capture we hold the transition lock for writing, so we need to try to
lock that first (if we're going to) before locking the queue's lock. Otherwise
another thread could come in and get the queue's lock while we're holding the
transition lock, then we deadlock against each other.
-
3f394aa5
by baldurk
at 2020-11-25T16:56:16+00:00
Handle multiple pages in a row being too full
* When resetting pagesets in a granular fashion from the chunk allocator, it's
possible to almost (or completely) exhaust a page but not have it be bumped
out of the free list, then one more new full free pages is pushed. When that
free page is exhausted we'll retire it then assume the next one is usable -
but it is still not valid. We need to loop until we find a page with enough
space.
-
593a903c
by baldurk
at 2020-11-26T10:26:37+00:00
Enable sRGB framebuffer immediately on GL output window
-
b8f7029d
by baldurk
at 2020-11-26T11:39:28+00:00
Refactor chunk-allocator to two level pool and allocator
* This fixes a bug with granular command buffer resetting. On vulkan we assume
each command buffer owns the entirety of the pages it uses, so they can be
reset all together. However there's nothing to stop an application from
allocating from the same pool on the same thread interleaved to two command
buffers. It's unexpected because of the threading rules but perfectly legal.
* In this case we need to ensure that the command buffers have disjoint sets of
pages because they may not be reset together and one may be in used while
another is reset and even re-recorded over. This can't be achieved with a
single allocator, so instead we split the pool (that owns/provides/frees
pages) from the allocator (that grabs whole pages and suballocates for
chunks).
-
16b2ccc6
by baldurk
at 2020-11-27T09:50:35+00:00
Fix preprocessing empty filenames in #line statements
-
c27c7146
by baldurk
at 2020-11-27T11:08:06+00:00
Fix compilation on stable builds
-
6c265622
by baldurk
at 2020-11-27T14:19:33+00:00
Remove duplicate documentation entry for GlobalEnvironment
-
949cff30
by baldurk
at 2020-11-27T14:30:01+00:00
Add some Qt python interfaces not included in docs
-
c5480aa6
by baldurk
at 2020-11-27T15:57:25+00:00
Add some simple protection against binding bad GL texture handles
-
7937f4bf
by Jordan Justen
at 2020-11-29T17:19:35-08:00
Merge tag 'v1.11' into debian/master
v1.11
-
3a88ce47
by Jordan Justen
at 2020-11-29T17:21:21-08:00
d/changelog: Start 1.11+dfsg-1 changelog
Signed-off-by: Jordan Justen <jljusten@debian.org>
-
b20a76c5
by Jordan Justen
at 2020-11-29T17:24:46-08:00
d/patches: Rebase patches for v1.11
Signed-off-by: Jordan Justen <jljusten@debian.org>
-
1b37f78a
by Jordan Justen
at 2020-11-30T01:48:01-08:00
d/control: Update Standards-Version to 4.5.1
Signed-off-by: Jordan Justen <jljusten@debian.org>
-
d512b118
by Jordan Justen
at 2020-11-30T02:27:13-08:00
d/changelog: Release 1.11+dfsg-1 to unstable
Signed-off-by: Jordan Justen <jljusten@debian.org>
-
6d906a40
by Jordan Justen
at 2020-12-21T14:07:28-08:00
Merge tag 'debian/1.11+dfsg-1' into debian/experimental
renderdoc Debian release 1.11+dfsg-1
-
16821c1d
by Jordan Justen
at 2020-12-21T14:11:51-08:00
debian/changelog: Start 1.11+dfsg-2 changelog
Signed-off-by: Jordan Justen <jljusten@debian.org>
-
689c7eda
by Jordan Justen
at 2020-12-21T16:05:40-08:00
debian/copyright: Add swig Examples and Lib directories
Signed-off-by: Jordan Justen <jljusten@debian.org>
-
f660ff4c
by Jordan Justen
at 2020-12-21T16:05:40-08:00
debian/copyright: Add swig CCache directory
Signed-off-by: Jordan Justen <jljusten@debian.org>
-
d4a98705
by Jordan Justen
at 2020-12-21T16:05:40-08:00
debian/copyright: Add swig Tools/config/* files
Signed-off-by: Jordan Justen <jljusten@debian.org>
-
c5590736
by Jordan Justen
at 2020-12-21T17:09:43-08:00
fixup! debian: Split out librenderdoc package
-
dead19f4
by Jordan Justen
at 2020-12-21T17:25:05-08:00
d/changelog: Release 1.11+dfsg-2 to experimental
Signed-off-by: Jordan Justen <jljusten@debian.org>