baldurk
24f9f487c2
Track state during reading on per-cmd buffer basis
...
* The command buffer chunks can be interleaved so we can't track just
using the one render state.
2016-02-07 18:49:52 +01:00
baldurk
ee175febb8
Add initialisers for a couple of missing things in pipeline state
2016-02-07 18:49:52 +01:00
baldurk
b4fb266af9
Generate linux json from windows json, to avoid having two files
...
* The linux json file has a different name but this isn't important.
Currently I'm not sure how the json/lib will be placed (will it be
installed somewhere and the json point at /opt/renderdoc/ or what?)
2016-02-07 18:49:51 +01:00
baldurk
bb2394183c
Add ability to re-record all cmd buffers (for whole-frame timing)
2016-02-07 18:49:50 +01:00
baldurk
8134642812
Let drawcall callbacks specify that all cmd buffers should be re-done
2016-02-07 18:49:49 +01:00
baldurk
4814c58ab8
Rename *Partial* funcs to Rerecord, as it won't be just partial
...
* When doing a full-frame counter record, we will rerecord every command
buffer.
2016-02-07 18:49:48 +01:00
baldurk
251a9773c2
remove min/max event IDs from FetchCounters - always times whole frame
2016-02-07 18:49:47 +01:00
baldurk
8cf39364f5
Set outputs/depthOut values in FetchDrawcalls
2016-02-07 18:49:46 +01:00
baldurk
0a4957320d
Implement GPU counters via timestamp query pools
2016-02-07 18:49:45 +01:00
baldurk
b024786cc2
When doing a partial replay of a subsection, explicitly jump to each EID
...
* The reason being that the actual recorded events are interleaved with
others (either on the queue or the cmd buffer), so we have to skip
over those. The events are duplicated where they are inserted by EID
and refer to the original offsets.
2016-02-07 18:49:44 +01:00
baldurk
4d7f7fe357
Don't disable depth/stencil tests, only writes
2016-02-07 18:49:43 +01:00
baldurk
794065eedb
Crash fix
2016-02-07 18:49:43 +01:00
baldurk
db22eb64fb
Implement quad overdraw display modes (not quite 100% yet)
2016-02-07 18:49:42 +01:00
baldurk
d8f8a97c9e
Don't do single draw via ReplayLog if we're doing it directly
2016-02-07 18:49:41 +01:00
baldurk
00e0946112
Support initing postvs for a whole pass via a per-draw callback
2016-02-07 18:49:40 +01:00
baldurk
7aca368cc7
Fix resourceformat check (was 'working' before because null != null)
2016-02-07 18:49:39 +01:00
baldurk
ca6eee8b8f
Remove start event ID from replaylog call.
...
* Any uses of this for replaying subsections of the frame are to be
implemented under the replay driver level, as it's too onerous to
require that the replay driver be able to replay arbitrary subsections
or to communicate granularity up to the above layer.
2016-02-07 18:49:38 +01:00
baldurk
e05614c6bf
Set up drawcall previous/next/parent IDs in replay drivers
2016-02-07 18:49:37 +01:00
baldurk
459196fd21
Shift responsibility for 'whole pass' type processing to replay drivers
...
* Note, currently broken as the drivers don't have previous/next EIDs
set up on their drawcalls
2016-02-07 18:49:36 +01:00
baldurk
b2bbe4541a
Length in vkCmdPushConstants is in byte units (but multiple of 4)
2016-02-07 18:49:35 +01:00
baldurk
b3029b6ddf
Changed command buffers to be handled properly as pooled objects
2016-02-07 18:49:34 +01:00
baldurk
290b695a6b
Linux compile fixes
2016-02-07 18:49:33 +01:00
baldurk
a3bf43c852
Tweak cell header merging in buffer viewer to merge all columns
...
* There's some kind of flickering/lag that goes on when you horizontally
scroll but it's minor and I can't figure out how to fix it for now.
2016-02-07 18:49:32 +01:00
baldurk
e286d34a53
Handle GLSL being passed into shader module creation function
2016-02-07 18:49:32 +01:00
baldurk
599a378d9c
Display descriptors by iterating the sets and looking up reflection
...
* This lets disabled/empty sets be displayed more correctly
2016-02-07 18:49:31 +01:00
baldurk
183919853f
Proper null checks in C# operator ==
2016-02-07 18:49:30 +01:00
baldurk
0493d661b0
Don't check for wrappers since on capture wrappers aren't registered
2016-02-07 18:49:29 +01:00
baldurk
495a35d44e
Don't unwrap the partial result cmd pool
2016-02-07 18:49:28 +01:00
baldurk
bc10ce84ba
Use semaphores to synchronise unbind/bind of sparse mappings
...
* For non-image mappings (image opaque and buffer) we unbind the whole
resource then bind the initial mapping. This means two batches though
so needs to be synchronised.
2016-02-07 18:49:27 +01:00
baldurk
78d34fe0e6
If we're not adding wrappers during capture, don't remove them either!
2016-02-07 18:49:26 +01:00
baldurk
9f4cc2880d
Treat duplicate handles correctly while in replay
...
* For those types that I think it's valid for them to be duplicated, we
look up if an existing wrapper is present and if so use that - and
just use ReplaceResource.
* If it turns out some other types are duplicated, the handling can be
added easily.
2016-02-07 18:49:25 +01:00
baldurk
0156f641dd
Don't add wrappers while capturing - allows duplicate handles in capture
...
* If we don't add objects into the real->wrapper map, then duplicate
objects returned from the driver are fine. We will naturally create a
unique handle for each and we don't have to worry about clashes, as
the application will see each unique handle and free them separately
since it's not allowed to *rely* on duplicate handles. Then when they
destroy the unique handles, we'll end up destroying the duplicates
multiple times.
2016-02-07 18:49:25 +01:00
baldurk
506c38bcbb
Remove use of GetWrapper while capturing
2016-02-07 18:49:24 +01:00
baldurk
d64946f5f2
Update generator/module version handling to latest SPIR-V spec
2016-02-07 18:49:23 +01:00
baldurk
e0bbed0b34
Pass shader specialization data to pipeline state (just data, not in UI)
2016-02-07 18:49:22 +01:00
baldurk
4b7c33d531
Fixes for vulkan for BGRA changes, add R4G4 special format
2016-02-07 18:49:21 +01:00
baldurk
f8df435826
Warn don't assert on VkDeviceQueueCreateInfo having the wrong sType
2016-02-07 18:49:20 +01:00
baldurk
e3375d7927
For now, disable the fake non-coherent memory type adding
2016-02-07 18:49:19 +01:00
baldurk
839801e4a6
Save image initial states by slice and by mip, not whole-mip-at-once
...
* Particularly using the offsets gained from GetImageSubresourceLayout
could cause problems, so instead we pack the slices and mips into the
buffer ourselves just using the per-subresource size.
2016-02-07 18:49:18 +01:00
baldurk
ae557c5bb3
If a flush is not serialised due to not capturing, mark resource dirty
2016-02-07 18:49:17 +01:00
baldurk
52e90a08e9
Mark resource clean when record is deleted, not when resource is
...
* This means any resources which we keep around for the duration of the
frame can be correctly identified as dirty or not.
2016-02-07 18:49:17 +01:00
baldurk
bf950e0c00
Be very careful to release our own wrapper before the real resource
...
* This is because if we release the real resource first, another thread
could allocate the same resource pointer back and get a double
wrapper.
2016-02-07 18:49:16 +01:00
baldurk
2678548351
Handle ID for return value not being present without crashing
2016-02-07 18:49:15 +01:00
baldurk
525740303a
Don't delete temp array memory
2016-02-07 18:49:14 +01:00
baldurk
a864b757c4
Move drawcall timings as post 1.0 since it probably won't get done
...
* It needs better support for replaying subsections of the frame
2016-02-07 18:49:13 +01:00
baldurk
51a289c786
Set up json like an implicit layer
2016-02-07 18:49:12 +01:00
baldurk
71e3c8b38b
Demote sparse texture TODOs to low
2016-02-07 18:49:11 +01:00
baldurk
1056b5411d
Fix 32-bit compilation, assuming local modifications to vulkan.h
...
* When the final header is ready we'll roll it into the source directly
rather than assuming the SDK is installed anywhere, and apply a local
change to get type-safety on 32-bit (which only works on C++). Similar
to the GL header's modification for a typed GLenum.
2016-02-07 18:49:10 +01:00
baldurk
9c9fa89a90
Mark texture display as done for now (pending testing)
2016-02-07 18:49:09 +01:00
baldurk
f07e3b1100
Remove RESTYPE_BUFFER for vulkan
2016-02-07 18:49:09 +01:00