-
Notifications
You must be signed in to change notification settings - Fork 14
[DO NOT SQUASH] Fast-forward third_party/gfxreconstruct to e30fe1f85 #654
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
base: main
Are you sure you want to change the base?
Conversation
e30fe1f85 Deduplicate Unknown block warnings
51562a7d7 Fix replay crash in wayland when clicking (#2542)
9778b688c Convert FileTransformer to BlockParser/ParsedBlock
d457c7261 Reduce busy-waiting for vkGetQueryPoolResults & vkGetEventStatus (#2533)
7eb9174b0 Document the process for debugging the Android capture layer
8febeb123 Update Vulkan-Headers to 1.4.335
d9c89578e Added shared_ptr support to DataSpan
cbac0829f Reserve api call id 0x1343 (#2509)
af049fe01 Fix issues with -m rebind, correction to use capture-time memory-indices (#2528)
d582d32f0 Improve developer build times by hiding SHA
1af01f016 VDR: Same BCB different QS
3596b6740 Track fence-states during capture, adjust statewrite (#2524)
584184025 update test suite reference (#2518)
3d1d1e490 Multi CopyBufferRegion over to same DXR buffer
bafe116cc Fix issues around AS track&replace (-m rebind) (#2520)
8cdff7ab1 VDR: Move VDR option fro CLI into the input json
4a971c494 Update header to 1.4.333 (#2517)
7554d28d4 Make file processing visits idiomatic
afa2dba96 Housekeeping -- clean ups from deferred decompress
47061e5a4 Housekeeping: Migrate block parsing to own files
5e3c05471 Add Deferred Decompression support
0030f0f9a Prevent "partial block" false positives
0e4d3c777 android: Fix screenshot command logging
aeead3312 Performance improvement of WriteBoundResourceStaging (#2380)
28ad0882c Enhanced barrier support (#2496)
06e4d794f Chekc UseAddressReplacement for trimming (#2500)
ee77c474b Update test suite reference hash
504cfaf15 Update hash in test_suite.ref
4b11d1af7 Fix sparse rebind support (#2458)
959f05e7f Zlib compressor
59b2b82cf Fix variable declaration in `OverrideQueueSubmit{2}` (#2503)
62f56d459 VDR: Dump acceleration structures
54ad64015 VulkanResourceInitializer follow-up (#2504)
61ffc6f89 Skip clang-format on items under "/external/" folder
fcd47b137 Update test_suite.ref file
bdcd4eb8d Beau single commit (#2495)
e112ec84a Refactor parsing from file processing -- in situ
f8e145f08 doc: spelling corrections (#2439)
a1f61d39a VDR: Different descriptor same buffer
a69e997fa clang-format
18a631c85 make trigger key definition case insensitive
4f1fa3aa9 Fix CMake unit tests build directory
7292484eb Fix error message for loading pipeline cache file (#2485)
fff16a642 Add missing cases in PreProcessExternalObject
6cf50dc98 Add support for frame marker detection and patch
bda1d41f8 fix "run our of pool memory" (#2482)
ce7fe4e25 codegen: Enforce NULL pNext for VU-mandated structs
31983a3e0 VDR: Handle dynamic rendering from secondaries
d561b6f53 Fix handling of desc layouts in asset files
773bd816a VDR: Report images that cannot be dumped in output json
2d1b0893e VDR: Filter image subresource ranges from input json
f9d6bf8d3 Add workflow_dispatch to release workflow
4bb34a47d Fix Android release build
a82d24f70 Fixes for GitHub Ubuntu release workflow
8ea30c7d2 Better staging-buffer sizes for VulkanResourceInit (#2466)
4ddd52063 Sync replay NDK version with layer NDK version (#2467)
dd701da1c encode: Fix buffer size calculation for image copy
7a5df4b06 Remove redundant codegen of need_feature_generation (#2469)
d094377c8 Change compressor interface, takes data() not container
9230ac5d0 Add backported Span (lite) and use in file processing
4f8470df5 Revert "Increment version to 1.0.6"
e84c52aa4 Increment version to 1.0.6
9bd5005c8 Improve performance of async pipeline compilation in certain cases (#2448)
c1a92e69c Improve recapture HandleId offset for convert output
9628b3ec3 Preserve Handle IDs when --pcj N is used
3ceede8c0 Generate default Handle IDs for injected commands
77eb35ccc Preserve Handle IDs through multiple recaptures
853c731f9 Generate generated_openxr_replay_consumer.cpp
039e69ce4 Make `gfxrecon-replay --capture` keep Handle IDs
21d758a58 Set C++ dialect to c++20 (#2389)
12d7268dd Check ReadSpan result for incomplete blocks
576752504 Fix in shader copy of AHB buffers
b6b6809ad Fix typos, code duplication and compilation warnings (#2450)
7e37c8004 Add D3D12 replay support for shared resources (#2179)
0cbd81794 Const clean decoder and consumer interfaces
f45788cf1 Prevent deletion of shared swapchain image (#2435)
c365eecd5 Address assert releasing buffer to full pool.
d89915cd0 Add team responsible for reviewing PRs or assigning review of PRs (#2445)
68e41a909 Fix tracking of deleted AS input-buffers during capture (#2441)
08f45dffb VDR: Two small fixes
b894b4033 Reuse memory to reduce memory usage for rebind (#2413)
fcb110ae2 Skip Unsupported Meta-data Block
9c57db1f6 Fix gfxrecon-convert null dereference (#2443)
3ac8ab76c VDR: Enable dumping of stencil aspect
3c5496297 Remove duplicate function
6960043e5 VDR: Ability to request dumping of specific subresources
17bba9d2b Fix dark colors when capture uses an SRGB swapchain-format (#2438)
e0f95848e Uniform allocation callbacks behavior in `VulkanRebindAllocator` (#2437)
832329917 Convert field reads to BlockBuffer reads
3131d856b Do all read to BlockBuffer, read all fields from buffer
bfe60d6a2 Add FStream ReadSpan support zero copy playback
8ed781272 Rework tracking of AccelerationStructures (part2) (#2405)
e88949a45 Remove obsolete warning message
c45c990a9 Add graphics::vulkan_struct_add_pnext utility function. (#2434)
614fbd35c Fix a few errors and warnings found by clang-check (#2404)
ec62e15f7 Add `--present-mode` option (#2407)
ddca611ea Set correct replay physical device (#2423)
f98ec4473 Update to Vulkan Header 1.4.328 (#2433)
d1f4c5473 Fix color-distortion when capture uses HDR color-format (#2429)
752e96db0 Integrate BlockSkipping into Base ProcessorBlocks
1732603e4 VDR: Fetch draw indirect params only once
6b0ea8ffb Rewrite preload loop to avoid a ProcessBlocks variant
048feebb3 Add back open input stream caching with real cache
8c751b901 Refactor FileProcessor file access
a55543178 cleanup copy-pasted comments
141fbba22 Acceleration-Handle lookup by address, with option for aliasing
4c5bc764b Vulkan header update to 1.4.326 (#2410)
458cc4510 Update AgilitySDK to 1.616.1 (#2406)
c4b011265 fix typo in fixEtensions (#2409)
df28664bf Make capture manager fences thread safe (#2340)
02267e568 Fix ID3D10Blob trimmed capture
6db683206 Fix Composition/CoreWindow SwapChain replay
8611f537a Add forgotten documentation for `GFXRECON_CAPTURE_PROCESS_NAME`
3c67f4a1d Address feedback
b6e0d2021 respond to review feedback
348795191 Add Architectural Principles
c043c291b Rework tracking of AccelerationStructures (#2399)
f9dfbc932 VDR: Small amends for 2330
18e5916dd Add sccache to reuse intermediates across ci runs
9ea669a50 ci: Update MacOS dependencies
b299a9d86 ci: Fix test app run permissions
cda5cd076 Correct read errors with preload enabled
a0cc8b61a VDR: Delegate refactoring
2ce9f3e3d Correct an assertion, add comment (#2392)
ef1ae3f1f Set extension properties (#2386)
2299a38ff Fake support for `VK_GOOGLE_display_timing` (#2272)
20b5f5f8b Fix in ReadImageResources
f7c93a76e VDR: Filter semaphores on same submission
8470bcaf4 ReadImageResources report intermediate errors (#2370)
9c715b34b Zero file handle pointer after close
02ada94fd Check before dereferencing file processor (#2377)
89ba8d637 Bug fix in resource initializer (#2378)
b1e3d7098 Check allocate fail (#2381)
2d99fd3a7 Avoid redundant active_files_ find ops
69657e1eb Add ApiCallId for VK_EXT_descriptor_buffer (#2297)
cd9efce77 Use replay log settings when doing recapture
8f8716901 Fix `VulkanRebindAllocator::AllocateAHBMemory` (#2371)
fbb4d6e1e replay: Wait when GetStatus is expected to be VK_SUCCESS
61a8ceee3 Fix crash when primary cmd-buf has invalid inheritance-data (#2366)
5785f04cb Add more descriptive error log on wsi creation failure (#2357)
3e69334f7 Remove invalid assert for inline uniform block (#2339)
a27d483b5 VulkanAddressReplacer: Fix gpu-stalls on radv by adjusting sync-stage (#2369)
0d62cc1d2 Add maximum enum-value for format::MetaDataType (#2348)
3f6df9d36 VulkanAddressReplacer: Support for inline-uniform-blocks (#2359)
5a9bae172 script: Build generator
897521ce6 VDR: Fix in indirect draw calls (#2365)
4b18892b9 Update Windows SDK to 10.0.26100.0 (#2364)
0d0325f2f Fix `CommonCaptureManager::IsCaptureModeDisabled()`
98c6559e0 Fix for trimming AccelerationStructures (#2332)
7d93ff43a --deduplicate-device for RenderDoc and DXVK (#2325)
020b822cf D3D12 draw call trimming - skip unused command lists
e836a43fa Set correct cmd_buf_info (#2353)
08fa7467c Vdr fixes for dispatch (#2354)
3c84d987d VulkanAddressReplacer: Align dispatch gpu read/write-access to 8byte (#2336)
b5261dcae Bugfix for QueueBindSparse and rebind (#2338)
9a2d7750c Allocator supports more functions (#2286)
433fe7d3d VDR: Fix in detecting transfer queue
72bbd0570 VDR: Amend 2315
24bc73e37 VDR: Choose correct structure type with CreateRenderPass2*
384f26cba VDR: Add option to compress files that are dumped raw (#2315)
10506d5a4 Disable MetaCommand Support From Capture (#2324)
36b365dd7 Add portability-support for vkCmdTraceRaysIndirectKHR (#2302)
5699ee93d Update clang-format instructions for VS
5b1d31e4c Add replay `--capture` support to Android
8368d2ff1 Customize recapture's Enumerate*ExtensionProperties
2b120c726 Add the `gfxrecon-replay --capture` feature
1e9a99662 Add Vulkan recapture entry points and func table
fadc70a6f Move more common code to VulkanEntryBase
0f0cc76c8 Use fence to sync resource init (#2305)
cc81393c3 Fix `VK_EXT_frame_boundary` fake support
df1981d69 Revert "Fix `VK_EXT_frame_boundary` fake support"
8d436f5e3 Fix `VK_EXT_frame_boundary` fake support
8f74f0fac capture: Get settings from VkLayerSettingsEXT
bfaa54570 util: Path variable expansion for dynamic file paths
c08c52f7e VulkanAddressReplacer: wait for (timeline-)semaphores (#2283)
09814acf6 convert: Fix binary out dir when stdout used
b4e5157ed Misc capture/replay and multithreading fixes (#2287)
959602fc0 Account for buffer memory being freed before the resources it is bound to (#2288)
4d1bf0772 Fix D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT heap's state writting (#2293)
64a67a069 [openxr] Force static linkage on all platforms to openxr loader
aaac4192d test: Android Mock
478a94ac3 VDR: Fix copy of count buffer (#2295)
07854ddb2 CMake: Make platform detection on Windows more robust
20b0dc5bc test: Fix test launcher
f59702689 VDR: Handle vkCmdBindDescriptorSets2(KHR)
4e208d633 Fix Vulkan WSI instance extensions
c6ca3e0da android, build: Do not build 32b Android by default (#2307)
git-subtree-dir: third_party/gfxreconstruct
git-subtree-split: e30fe1f85e431473119f660822f51ddf90ed1c0e
python generate_vulkan.py Dive moved abolute_path_ in google#338 Use new FileInputStream Synchronize Vulkan-Headers ``` cd third_party/Vulkan-Headers git fetch git checkout $(git -C ../gfxreconstruct/external/Vulkan-Headers rev-parse HEAD) ``` WIP Remove Process*Marker so it builds Revert "WIP Remove Process*Marker so it builds" This reverts commit fb4cd46887f639911f76afafc9cf3da6ebb84a52. Try to kepe things in file processor swuah me
|
At 466d6fd: |
StoreBlockInfo wasn't being called. It was originally in ReadBlockHeader, then was shuffled into PeekBlockHeader by LunarG/gfxreconstruct@3131d85; the two functions are very similar so it probably tripped up the auto conflict resolition. But in that same commit, PreloadFileProcessor stopped using PeekBlockHeader. So there are no more callers |
subtree pullin order to get Improve developer build times by hiding SHAConflicts
FileProcessor
FileProcessorwas refactored. While this doesn't alter functionality, it breaks some of our modifications:ProcessStateMarker()was removed. Its logic now lives inProcessVisitor,DispatchVisitor,ProcessStateEndMarker(), andProcessStateBeginMarker().ProcessFrameMarker()was removed. Its logic now lives inProcessVisitor,DispatchVisitor, andProcessFrameEndMarker()ReadBlockHeader()was effectively replaced. Its logic now lives largely inBlockProcessor. There is still a function with the same name but it's functionally different.ActiveFileContextnow stores aFileInputStreamPtrinstead of a filename. All file operations useFileInputStreamPtrSeekActiveFile()signature was modified to take aFileInputStreamPtrinstead of astd::stringThis broke the following features:
Single frame looping
We need to react to State End and Frame End markers. Now, we mark
FileProcessor::ProcessStateEndMarker()andFileProcessor::ProcessFrameEndMarker()as virtual and override those inDiveFileProcessor. (Although, in the future, this functionality should be moved intoDiveVulkanReplayConsumer. This derives fromMarkerConsumerBaseand provides the same functions for consumers to override but in a more stable way).Given the changes to
FileProcessor, we can drastically simplify theDiveFileProcessor::ProcessFrameEndMarker()implementation. The previous implementation started with a copy ofFileProcessor::ProcessFrameMarker()then modified to support looping. Now, the only thing that we need to work around is the assert inFileProcessor::ProcessFrameDelimiter()(which ensures frames are processed in order) by manipulating the capture frame number.Now that all file operations (seek, tell) require
FileInputStreamPtr, we store a weak reference to the GFXR file instead of astd::stringinDiveFileProcessor.FileProcessor::TellFile()was moved toFileInputStream::FileTell(). This class abstracts the file descriptor so it's a logical place to expose a tell API.Since
DiveFileProcessorrelies onSeekActiveFile(), ensure the required function is still virtual.PM4 Dump, RenderDoc Capture
Like single frame looping, this is fixed by making
FileProcessor::ProcessStateEndMarker()andFileProcessor:ProcessFrameEndMarker()virtual. (Also like single frame looping, this should be moved intoDiveVulkanReplayConsumer.)Block Modification
FileProcessor::StoreBlockInfo()is used to expose block information to derived classes. I ensured that the call is still in what I believe is the best place to get the block info before any reading occurs.VulkanReplayConsumerBase
Some queue flag variables were renamed. When applying our patch, the names were updated.
replay_settings.h
Ensured that our flags for GPU time and single frame looping are still present.
android_main
Despite the addition of
--capture(a.k.a. "recapture"), ensured that Dive additions persist.