Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reuse asset file #1729

Draft
wants to merge 99 commits into
base: dev
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
ec46a9b
Distinguish between muttable and immutable descriptors
panos-lunarg Jul 11, 2024
6cea230
Track descriptors and transfer commands that affect assets
panos-lunarg Jul 11, 2024
66700a3
State writer checks for dirty flag before dumping and prints statistics
panos-lunarg Jul 12, 2024
cae0083
Move asset tracking in command buffer
panos-lunarg Jul 14, 2024
7a280d2
Print exec time of WriteResourceMemoryState
panos-lunarg Jul 14, 2024
e9c9c3b
Track non swapchain images attachments with stope_op_store
panos-lunarg Jul 15, 2024
237082f
A fix in TrackMappedAssetsWrites
panos-lunarg Jul 15, 2024
58c88b5
Print runtime of whole WriteState()
panos-lunarg Jul 15, 2024
8b172cb
Write and read new metacomands
panos-lunarg Jul 18, 2024
a3caba2
Add a file stack in file processor
panos-lunarg Jul 21, 2024
f989f67
ExecuteBlocksFromFile meta command
panos-lunarg Jul 22, 2024
825e7db
Abstract out composition of kExecuteBlocksFromFile in state writer
panos-lunarg Jul 22, 2024
bec0074
FileProcessor: Use correct number of blocks
panos-lunarg Jul 22, 2024
f675d22
Store descriptor state in asset file
panos-lunarg Jul 22, 2024
4afce37
Convert now should understand ExecuteBlocksFromFile metacommand
panos-lunarg Jul 22, 2024
b6493dd
Writing a header in the asset file, makes it legible to convert
panos-lunarg Jul 22, 2024
8c633ba
Rename referenced_assets variable
panos-lunarg Jul 23, 2024
597c06d
TrackMappedAssetsWrites should be working correctly now
panos-lunarg Jul 23, 2024
5b1366f
Create asset file at the right moment
panos-lunarg Jul 24, 2024
bff7f4a
Group similar functions together
panos-lunarg Jul 24, 2024
12bdb82
Unify tracked images and buffers
panos-lunarg Jul 24, 2024
9b3a06a
Ability to override path to asset path during replay
panos-lunarg Jul 24, 2024
dc5612d
Rename file processor variables
panos-lunarg Jul 24, 2024
69acf80
Guard assets map with a mutex
panos-lunarg Jul 24, 2024
1203210
Fix for asset-file-path replay argument
panos-lunarg Jul 24, 2024
064c873
Asset file generation is optional and off by default
panos-lunarg Jul 29, 2024
61f369c
Added some documentation
panos-lunarg Jul 30, 2024
41aca5a
Several transfero commands were omitted by mistake
panos-lunarg Jul 30, 2024
b6618d7
Add mesh/task shader draw calls
panos-lunarg Jul 30, 2024
e229c2f
Code formatting
panos-lunarg Jul 30, 2024
b15626a
Fix windows and android builds
panos-lunarg Jul 30, 2024
5a164ca
Some clean ups
panos-lunarg Aug 1, 2024
6b727dc
Fix 32bit build
panos-lunarg Aug 1, 2024
d3f8775
Expose WriteAssetsGFXR through the layer
panos-lunarg Aug 2, 2024
9ecd5d9
Dump assets is also controled by an android setting
panos-lunarg Aug 3, 2024
9d61e61
Fix formatting
panos-lunarg Aug 3, 2024
1347c03
Fix windows build
panos-lunarg Aug 3, 2024
7dd6184
Fix formatting
panos-lunarg Aug 3, 2024
d3d889f
Track secondary command buffers
panos-lunarg Aug 5, 2024
b54bdd4
Fix bug in SetDescriptorUpdateTemplateInfo
panos-lunarg Aug 5, 2024
120cac6
There should be 3 encoded values
panos-lunarg Aug 6, 2024
382df46
Rename a function
panos-lunarg Aug 6, 2024
e3ca6ab
No need to clear map
panos-lunarg Aug 6, 2024
16f8681
Track dynamic rendering
panos-lunarg Aug 8, 2024
e4967e6
Handle VK_DESCRIPTOR_TYPE_MUTABLE_VALVE
panos-lunarg Aug 8, 2024
306cb51
These are Post functions, not Pre
panos-lunarg Aug 8, 2024
a70a0a5
Reverted DescriptorUpdateTemplate
panos-lunarg Aug 8, 2024
f8ebd58
Fix windows build
panos-lunarg Aug 8, 2024
d9e597d
Fix in TrackBeginRendering
panos-lunarg Aug 8, 2024
dc86e8e
CmdBindDescriptorSets can bind VK_NULL_HANDLE desc set handles
panos-lunarg Aug 9, 2024
ef45a13
GetTrackedMemoryRegions should lock the mutex
panos-lunarg Aug 10, 2024
5eda5e7
Fix a couple of typos
panos-lunarg Aug 10, 2024
1572b15
Scan only dirty regions
panos-lunarg Aug 10, 2024
b04347d
Write state file for each frame
panos-lunarg Aug 9, 2024
e0070a3
Deactivate state file status when done with trim ranges
panos-lunarg Aug 11, 2024
4e40c45
Enable state file loading for android
panos-lunarg Aug 11, 2024
0abbfc8
Override path
panos-lunarg Aug 11, 2024
6dd2681
Removed couple of stray printfs
panos-lunarg Aug 12, 2024
9c2c86b
Writing state files is control by an env var
panos-lunarg Aug 12, 2024
dc1547e
--override-path now works for gfxrecon-convert too
panos-lunarg Aug 12, 2024
5aeb8aa
Fixes for other file processor users
panos-lunarg Aug 12, 2024
0dc5578
Add few comments in ExecuteBlocksFromFile metacommand
panos-lunarg Aug 13, 2024
d820d67
Specifying state file for replay is enough
panos-lunarg Aug 15, 2024
3fb6efb
Fix override-path for convert
panos-lunarg Aug 17, 2024
5a790c0
Track resource <-> descriptor set connections
panos-lunarg Aug 17, 2024
2262c34
Small cleanup in CommonCaptureManager
panos-lunarg Aug 20, 2024
bc1db1d
Correct some mess ups after rebasing with dev
panos-lunarg Aug 20, 2024
f34065a
Typo fix
panos-lunarg Aug 21, 2024
3319b30
Changed incosistent function name
panos-lunarg Aug 21, 2024
aa09680
Missing error check in file processor
panos-lunarg Aug 22, 2024
ded80f1
An attempt to standarize block indices
panos-lunarg Aug 22, 2024
9bb958e
Got rid of --override-path
panos-lunarg Aug 24, 2024
329a5cb
Handles are pointers. Print hex values
panos-lunarg Aug 26, 2024
71903fb
Hush some warnings when we know it's ok
panos-lunarg Aug 26, 2024
6ce6882
Removed forgotten references to asset and override path
panos-lunarg Aug 26, 2024
b172897
Detect self referencing ExecuteBlocksFromFile commands
panos-lunarg Aug 28, 2024
fc2fe1f
Minor var renames and optimization
panos-lunarg Aug 30, 2024
d8cc332
Copy paste mistake enabled state files along with asset
panos-lunarg Aug 31, 2024
ad4a2c6
Asset files type changed to .gfxa
panos-lunarg Aug 31, 2024
2b13f13
Convert now recognizes asset files
panos-lunarg Aug 31, 2024
92e1804
Frame number is now written in asset file
panos-lunarg Aug 31, 2024
0bb3291
Asset file consumer
panos-lunarg Aug 31, 2024
b073091
Keep asset file information per frame
panos-lunarg Sep 2, 2024
dcfce01
Asset consumer tracks greatest detect id
panos-lunarg Sep 3, 2024
0a79e38
Something is starting to work
panos-lunarg Sep 6, 2024
fe69ffb
Utilize graphics::vulkan_struct_get_pnext
panos-lunarg Sep 6, 2024
89533b2
Fixes in the replay consumer generator
panos-lunarg Sep 8, 2024
5193a55
Things seem to work
panos-lunarg Sep 9, 2024
4d6bd1c
init_from_asset_file flag hack
panos-lunarg Sep 9, 2024
5c70695
Remove more instrumentation
panos-lunarg Sep 9, 2024
2674af4
Add framework/encode/custom_exported_layer_funcs.h
panos-lunarg Sep 9, 2024
640b192
Fix win build
panos-lunarg Sep 9, 2024
d93fd22
Fix tests
panos-lunarg Sep 9, 2024
5104c7b
Correct frame counting
panos-lunarg Sep 10, 2024
9cd2a06
Drop GIPA in favor of VkLayerSettingsCreateInfoEXT
panos-lunarg Sep 10, 2024
2ec3894
Remove init_from_asset_file and clang-format
panos-lunarg Sep 11, 2024
045909d
Notify capture laye about frame state begin/end markers
panos-lunarg Sep 12, 2024
813bcf8
Fix windows build
panos-lunarg Sep 12, 2024
46ede91
clang-format
panos-lunarg Sep 12, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions USAGE_android.md
Original file line number Diff line number Diff line change
Expand Up @@ -306,6 +306,9 @@ option values.
| Capture Specific Frames | debug.gfxrecon.capture_frames | STRING | Specify one or more comma-separated frame ranges to capture. Each range will be written to its own file. A frame range can be specified as a single value, to specify a single frame to capture, or as two hyphenated values, to specify the first and last frame to capture. Frame ranges should be specified in ascending order and cannot overlap. Note that frame numbering is 1-based (i.e. the first frame is frame 1). Example: `200,301-305` will create two capture files, one containing a single frame and one containing five frames. Default is: Empty string (all frames are captured). |
| Quit after capturing frame ranges | debug.gfxrecon.quit_after_capture_frames | BOOL | Setting it to `true` will force the application to terminate once all frame ranges specified by `debug.gfxrecon.capture_frames` have been captured. Default is: `false` |
| Capture trigger for Android | debug.gfxrecon.capture_android_trigger | BOOL | Set during runtime to `true` to start capturing and to `false` to stop. If not set at all then it is disabled (non-trimmed capture). Default is not set. |
| Use asset file | debug.gfxrecon.capture_use_asset_file | BOOL | When set to `true` assets (images, buffers and descriptors) will be stored separately into an asset file instead of the capture file. |
| Dump assets | debug.gfxrecon.capture_android_dump_assets | BOOL | Setting this triggers a dump of all assets into the asset file. Since android options cannot be set by the layer, dumping is done whenever this option switches between from `false` to `true` or from `true` to `false`. Default is: `false` |
| Write state files | debug.gfxrecon.capture_write_state_files | BOOL | When set to `true` for each frame captured its corresponding state will be stored in a separate capture file. Specifying a specific state file can start replaying from the corresponding frame. Default is: `false` |
| Capture File Compression Type | debug.gfxrecon.capture_compression_type | STRING | Compression format to use with the capture file. Valid values are: `LZ4`, `ZLIB`, `ZSTD`, and `NONE`. Default is: `LZ4` |
| Capture File Timestamp | debug.gfxrecon.capture_file_timestamp | BOOL | Add a timestamp to the capture file as described by [Timestamps](#timestamps). Default is: `true` |
| Capture File Flush After Write | debug.gfxrecon.capture_file_flush | BOOL | Flush output stream after each packet is written to the capture file. Default is: `false` |
Expand Down Expand Up @@ -467,6 +470,17 @@ An existing capture file can be trimmed by replaying the capture with the captur
enabled and a trimming frame range or capture trigger enabled. (However, replay for
some content may be fast enough using the trigger property may be difficult.)

### Asset files

When doing a trimmed capture, `debug.gfxrecon.capture_use_asset_file` gives the
option to dump all assets (images, buffers and descriptors) separetly in a
different capture file called the asset file. When this option is enabled
assets are tracked and only those that are changed during a tracking period
(outside of a trim range) are dumped into the asset file. This first time a
trim range is encountered (or the hotkey is pressed) all assets will be dumped,
but the next time this happens only the assets that have been changed will be
dumped. This should speed up the dumping process.

### Capture Limitations

#### Conflicts With Crash Detection Libraries
Expand Down
Loading
Loading