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

Davidp dr dev 01.devmods #23

Closed
wants to merge 236 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
236 commits
Select commit Hold shift + click to select a range
e19ff75
Update to Vulkan-Headers v1.3.265 (#1286)
andrew-lunarg Oct 3, 2023
f3c98d6
Updated Android Project Version to Match Desktop
andrew-lunarg Oct 3, 2023
911dcfc
Typo Fix in VkFrameBoundaryEXT::pTag Workaround
andrew-lunarg Oct 4, 2023
3f647be
Update to Vulkan-Headers v1.3.266
andrew-lunarg Oct 3, 2023
b489c6a
Removed Dead Copied Code
andrew-lunarg Oct 5, 2023
bdc643c
temporarily set Vulkan API version for SDK build
bradgrantham-lunarg Oct 5, 2023
e46148e
Revert "Use Vulkan-Headers to find current Vulkan Version (#1272)" (#…
bradgrantham-lunarg Oct 6, 2023
125af20
Fix null function pointers for layer extensions
mikes-lunarg Jan 19, 2023
6ffb01a
Add capture support for VK_ANDROID_frame_boundary
mikes-lunarg Jan 17, 2023
bf1e76b
Updated Vulkan-Headers to v1.3.267
andrew-lunarg Oct 6, 2023
fa81103
Skip creating CopyCmdData for offscreen
locke-lunarg Oct 2, 2023
e7c5b82
Disabled Patching VkFrameBoundaryEXT.pTag XML
andrew-lunarg Oct 12, 2023
0b8ebcd
Updated Vulkan-Headers to v1.3.268
andrew-lunarg Oct 13, 2023
78797a9
Permit annotations to be written when trimming is activated
rurra-amd Sep 13, 2023
83b83ec
Fix formatting
rurra-amd Sep 19, 2023
8562c10
Address review comments
rurra-amd Oct 17, 2023
7388f75
Spaces instead of tabs
rurra-amd Oct 17, 2023
b297192
C++ Code Indenter for Codegen (#1310)
andrew-lunarg Oct 17, 2023
b40adaa
Fix in ProcessInitImageCommand
panos-lunarg Oct 10, 2023
0ffdfc6
Move massive switch statement out of template function
etang-cw Oct 18, 2023
77886df
genscript: Address python warning introduced by Python 3.12
davidlunarg Oct 23, 2023
e4c160d
Remove redundant calls to VulkanCaptureManager::Get() (#1279)
charles-lunarg Oct 24, 2023
eb9e1a7
Fix rename playback hang (#1316)
igorbrsn Oct 25, 2023
d77e3e2
If SetPrivateData data is null, clear tracked data
davidd-lunarg Oct 17, 2023
c988668
increment version number for next release
bradgrantham-lunarg Oct 26, 2023
c46523a
Remove unnecessary files from Android compilation
panos-lunarg Oct 27, 2023
1b96116
Renamed Field of Decoded_D3D12_STATE_SUBOBJECT
andrew-lunarg Nov 1, 2023
fe11b59
Upgrade to Agility SDK 1.610.5 (#1324)
davidd-lunarg Nov 1, 2023
fb2f85d
Removed Empty Default Cases (#1328)
andrew-lunarg Nov 3, 2023
f5a683f
build: remove requirement on distutils (#1332)
lunarpapillo Nov 7, 2023
8d06c92
Enable zstd for Android
panos-lunarg Nov 7, 2023
dec1a57
Fix optimize tool's exit code on error (#1339)
panos-lunarg Nov 8, 2023
8ed54df
Fix trim trace replay memory requirement mismatch error
mizhen Oct 13, 2023
2e86074
Don't batch resource data reads for trim capture
davidd-lunarg Nov 3, 2023
491e85a
Improve decode block error logging
MarkY-LunarG Nov 15, 2023
5a54e8e
Factored out MetadataConsumerBase
andrew-lunarg Nov 7, 2023
6e65645
Factored out MarkerConsumerBase
andrew-lunarg Nov 7, 2023
a763300
Abstracting out vulkan resource reader class
panos-lunarg Nov 9, 2023
ca08427
Calculating sizes with Vulkan Utility Library
panos-lunarg Nov 20, 2023
740ba84
Added WriteToImageResourceStaging
panos-lunarg Nov 21, 2023
ebd175e
Fix formatting error
panos-lunarg Nov 22, 2023
5ead3b0
Better handle for RT trimmed captures from optimize tool
panos-lunarg Nov 22, 2023
df9dd93
Add support for staging buffer/image for the Rebind Allocator. (#1275)
laurentiu-erhan-arm Nov 22, 2023
a57d814
Methond to Method
andrew-lunarg Nov 25, 2023
be08673
Marked Consumer Process Funcs as Override (#1370)
andrew-lunarg Nov 27, 2023
548080b
Better D3D12 Convert to JSON (#1362)
andrew-lunarg Dec 1, 2023
844b6a1
Removed Lambda Indirection For MetaCommand to JSON (#1383)
andrew-lunarg Dec 4, 2023
6b213aa
Reordered Integer Compare Before String (#1384)
andrew-lunarg Dec 5, 2023
96dfba4
Added handling missing VK_EXT_swapchain_colorspace (#1287)
naomipappe Dec 5, 2023
e224898
Adding the capture options to annotation for display with info tool (…
naomipappe Dec 6, 2023
3ca0286
Fix CommandHandleType::NumHandleTypes not last of enum (#1390)
marius-pelegrin-arm Dec 8, 2023
0eb4058
Fix missing parens in to_binary_fixed_width (#1386)
charles-lunarg Dec 8, 2023
668850b
exit with 0 if capture wasn't optimizable (#1389)
bradgrantham-lunarg Dec 11, 2023
80241d6
Fix forgotten handles in VulkanStateWriter (#1391)
marius-pelegrin-arm Dec 12, 2023
9ac344d
Fix typos (#1352)
marius-pelegrin-arm Dec 13, 2023
b6f8a4b
Update headers to 1.3.273
locke-lunarg Dec 12, 2023
be2d204
Fix memory exception during memcpy in ApplyBatchedResourceInitInfo
xooiamd Dec 14, 2023
6bb707d
Fix deferred operation handling error
mizhen Dec 11, 2023
89eca99
Fix an error when target app provide null handle for deferred operation
mizhen Aug 23, 2023
fae8327
Fix replay issue on some hardware
mizhen Nov 2, 2023
af796d3
Address code review comment
mizhen Dec 8, 2023
017561e
Update Android_HowTo
MarkY-LunarG Dec 28, 2023
3c16275
return EX_DATAERR for now (#1397)
bradgrantham-lunarg Jan 5, 2024
ca613e8
android: Fix build warning
MarkY-LunarG Jan 8, 2024
ad85498
Update headers to 1.3.275
locke-lunarg Jan 8, 2024
a2baaac
Fix missing s typo in JSON output (#1401)
charles-lunarg Jan 9, 2024
4c155f8
Fix multi-threading issue with using real Vulkan handle
mizhen Jan 8, 2024
8c967a7
Update copyright info
mizhen Aug 11, 2023
732c91a
Address review comments
mizhen Aug 14, 2023
2ce1b9c
Address code review comments
mizhen Jan 8, 2024
1353691
Address code review comments
mizhen Aug 16, 2023
278ceb7
Address code review comments
mizhen Aug 17, 2023
1af83f0
Fix the null pointer issue for State Object for trim capture.
feimao-gfxr Jan 18, 2024
380ba3d
increment release version number in anticipation of 1.0.3
bradgrantham-lunarg Jan 23, 2024
3662c5a
Add macOS support (#1317)
etang-cw Jan 24, 2024
118b535
Check return value of GetRayTracingCaptureReplayShaderGroupHandlesKHR…
charles-lunarg Jan 24, 2024
6e0c65a
Remove execute permissions
MarkY-LunarG Jan 30, 2024
e41b85e
Fix pNext chains unproperly copied in VulkanStateTracker
marius-pelegrin-arm Nov 15, 2023
871f506
Update generated source for new header
MarkY-LunarG Jan 25, 2024
872a549
Add capture handling for new resource create funcs
davidd-lunarg Dec 5, 2023
f85f770
Add replay handling for new resource create funcs
davidd-lunarg Dec 5, 2023
0bc49ed
Fix trimming for some resources created for UAV
davidd-lunarg Jan 4, 2024
8b9352c
Fix a crash when using acceleration structures with DescriptorUpdateT…
naomipappe Nov 15, 2023
a4b495f
Fixing convert not displaying all image/buffer info
naomipappe Nov 15, 2023
a4a4640
Changes to support future desc templates
MarkY-LunarG Jan 25, 2024
03b4aef
Fixes a crash on replaying a fastforwarded trace
naomipappe Nov 23, 2023
01e56c8
Fix `OverrideAllocateMemory` for trimmed traces
marius-pelegrin-arm Oct 6, 2023
fc05196
Fix for acceleration structure tracking in the state tracker (#1418)
panos-lunarg Feb 8, 2024
84f5c47
gfxrecon-convert: Emit index field when writing metadata JSON blocks …
nickdriscoll-lunarg Feb 19, 2024
e6bc7ec
Add --flush-inside-measurement-range option
marius-pelegrin-arm Jul 20, 2023
3ac271f
vulkan: Update Usage and replay script
MarkY-LunarG Feb 9, 2024
5e842b7
Command list resource tracking - first pass
davidlunarg Oct 26, 2023
1aeef9d
Insert missing newline in generated file generated_vulkan_replay_cons…
davidlunarg Nov 8, 2023
46b9ab1
Add debug code, will wanto back out most of this change
davidlunarg Nov 16, 2023
30134e3
More changes.
davidlunarg Nov 17, 2023
c346dad
Define cb save struct. Save cur cb in struct. Compiles.
davidlunarg Nov 28, 2023
1c87e0a
Param buffer is passed to replay funcs in call_info
davidlunarg Nov 29, 2023
5807857
Can capture a cmd buf as raw data from capture file
davidlunarg Nov 29, 2023
8a0f011
Replay of saved cmd buffer works.
davidlunarg Nov 29, 2023
00861d4
g_decoder is no more, decoder added to ApiCallInfo.
davidlunarg Nov 30, 2023
554def7
Fixes to handle nesting of begincmdbuf/endcmdbuf. Remove some unneede…
davidlunarg Dec 1, 2023
305201d
Dump vkCube drawcals seems to work
panos-lunarg Dec 7, 2023
adcd47e
Dump resources starts tracking descriptors
panos-lunarg Dec 7, 2023
0865eb7
Moved indices in replay options
panos-lunarg Dec 7, 2023
f65f324
Doing some primitive resource tracking
panos-lunarg Dec 7, 2023
09dcdcd
Separate color from depth attachments
panos-lunarg Dec 8, 2023
35c671b
Dumping depth attachment
panos-lunarg Dec 8, 2023
1017515
Dumping compute resources seems to work
panos-lunarg Dec 11, 2023
3a88fac
Dumping storage buffers to binary files
panos-lunarg Dec 11, 2023
4a31572
Each pipeline has its own descriptors
panos-lunarg Dec 11, 2023
998d990
Perhaps draw calls can be isolated
panos-lunarg Dec 12, 2023
412174d
Basic logic for dumping multiple DCs
panos-lunarg Dec 14, 2023
1c1cb36
Convert DIS and TR indices into vectors like for DCs
panos-lunarg Dec 15, 2023
c8c3d34
Rename member variable names to align with project's coding style
panos-lunarg Dec 15, 2023
fe94fdf
Log errors for error codes from Vulkan calls
panos-lunarg Dec 15, 2023
f67474b
Switch to unordered_maps
panos-lunarg Dec 15, 2023
a5d6101
Back up mutable resources
panos-lunarg Dec 18, 2023
e680778
Handle multiple render passes
panos-lunarg Dec 20, 2023
3da8062
Handle subpasses
panos-lunarg Dec 22, 2023
1b72fad
Support the rest of the vkCmdDraw* api entries
panos-lunarg Dec 22, 2023
e7fd1d4
Fixed Android build
panos-lunarg Dec 22, 2023
59c73dc
Better handle of subpasses
panos-lunarg Dec 22, 2023
491e24d
Render area should be per render pass, not per sub pass
panos-lunarg Dec 24, 2023
5e798b0
DumpAttachments function belongs better to CommandBufferStack
panos-lunarg Dec 24, 2023
c5e5086
Timming submission and dumping times
panos-lunarg Dec 24, 2023
88f14e1
Mulitple subpasses broke multiple render passes
panos-lunarg Dec 26, 2023
c2d8004
Handling VK_FORMAT_X8_D24
panos-lunarg Dec 26, 2023
c1bae9a
More fixes for render pass handling
panos-lunarg Dec 27, 2023
f373bd2
Support mulitple BeginCommandBuffer
panos-lunarg Dec 27, 2023
9773fa0
Use FindCommandBufferStack instead of searching manually
panos-lunarg Dec 28, 2023
1a5e35e
Update vkCmd[Begin|End]RenderPass2 and vkCmdNextSubpass2
panos-lunarg Dec 30, 2023
d2221e2
Deleted commented out code
panos-lunarg Dec 30, 2023
1c36e06
Dumping render targets right before draw calls is now possible
panos-lunarg Jan 2, 2024
a7581ba
Add --dump-resources command line option for Vulkun
davidlunarg Dec 21, 2023
96afaf3
CLI params now correctly passed to VulkanReplayResourceDump class
davidlunarg Dec 23, 2023
a243ab4
Draw calls from command line are now stored in vector of vectors
davidlunarg Dec 26, 2023
1f6bf9a
Fixes to last merge
davidlunarg Jan 2, 2024
f667445
Add --dump-resources-before-draw option
davidlunarg Jan 2, 2024
bf581b1
Merged DavidP's changes
panos-lunarg Jan 3, 2024
36ffd33
Dumping before draw calls broke dumping after draw calls
panos-lunarg Jan 3, 2024
3fa1f25
Small fix for cmdNextSubpass
panos-lunarg Jan 3, 2024
d045b64
Fix compile error when D3D12 not enabled. Cmd line args work now.
davidlunarg Jan 3, 2024
c2d1cd1
Keep hardcoded index values in vulkan_replay_options.h
panos-lunarg Jan 4, 2024
c7ab33c
Perform shader reflection using SPIRV-Reflect
panos-lunarg Jan 6, 2024
54f5869
Removed some stale variables
panos-lunarg Jan 9, 2024
399f2ae
Remove SPIRV-Reflect submodule and include precompiled binaries
panos-lunarg Jan 9, 2024
de6c986
VulkanReplayResourceDump can now handle empty vectors
panos-lunarg Jan 9, 2024
bcfc857
Minor clean up for render targets
panos-lunarg Jan 9, 2024
f5a14be
Track bound pipeline
panos-lunarg Jan 9, 2024
c179011
VulkanResourcesUtil can skip image transition
panos-lunarg Jan 11, 2024
08196a5
More fixes for render passes in dump resources
panos-lunarg Jan 11, 2024
1a93272
Two new formats for image writter
panos-lunarg Jan 11, 2024
40d8dfa
Add spirv_refect precompiled static lib
davidlunarg Jan 11, 2024
e1614b1
Added some error checking logic in image writer
panos-lunarg Jan 12, 2024
ca72916
Delete existing dump files on Android
panos-lunarg Jan 12, 2024
eaf073a
Code generation for dump resources
panos-lunarg Jan 14, 2024
e501a56
Command line interface: reworked args including adding json file arg
davidlunarg Jan 17, 2024
f3fff30
Moved jsoncpp lib to appropriate folders
panos-lunarg Jan 18, 2024
18b688f
Update spirv-reflect header file
davidlunarg Jan 18, 2024
e83cf19
Rework cli to allow for multiple subpasses
davidlunarg Jan 23, 2024
9b78f18
Fix an error check
davidlunarg Jan 23, 2024
283710e
Dispatch/TraceRays dump resources initial commit
panos-lunarg Jan 24, 2024
404528b
Fix some leftovers from merge with dev
panos-lunarg Jan 25, 2024
8b70384
Fixes for Dispatch/TraceRays dump resources
panos-lunarg Jan 25, 2024
85cc91a
Removed redundant dumping resources replay option boolean
panos-lunarg Jan 25, 2024
fda6473
Added hard coded indices for temple run on the S22
panos-lunarg Jan 25, 2024
795e813
Fix D3D12 build
davidlunarg Jan 25, 2024
49dc96e
Don't initialize dump resources indices from global variables.
davidlunarg Jan 25, 2024
1b1d476
Dumping CmdTraceRays resources is now handled by resource dump class
panos-lunarg Jan 26, 2024
c0bb27a
Fixes in Override pipelines creations
panos-lunarg Jan 29, 2024
c2b6a69
Integrated format conversion into png writter
panos-lunarg Jan 30, 2024
f6b8cf7
Y inversion of image can be handled in WriteBmpImage
panos-lunarg Jan 30, 2024
6afa101
Dumping resources before Dispatch/TraceRays
panos-lunarg Jan 30, 2024
76b3057
Removed printfs from PerformReflectionOnShaderModule
panos-lunarg Jan 30, 2024
11226af
Move dump resources arg parsing into a separate file
davidlunarg Jan 26, 2024
c959b33
clang-format changes
davidlunarg Jan 26, 2024
c027f22
Fix namespace declarations in parse_dump_resources_cli.*
davidlunarg Jan 30, 2024
0b52a20
Integrade dump resource json parsing in Android
panos-lunarg Jan 31, 2024
f670910
Fix for dumping Dispatch/TraceRays
panos-lunarg Jan 31, 2024
259afcd
Implement scaling of dump images
davidlunarg Jan 31, 2024
e62a6cd
Fix dump of 16-bit depth to png files
davidlunarg Jan 31, 2024
8d1f7a9
Dumping unhandled formats as plain binary files
panos-lunarg Jan 31, 2024
d063651
Dump resource image format can be configured from CL
panos-lunarg Jan 31, 2024
b440882
Some minor fixes for scaling for dump resources
panos-lunarg Feb 1, 2024
1e9c9aa
Enable dump resources scaling in Android too
panos-lunarg Feb 1, 2024
ca09d6e
Removed hard-coded dump resources indices
panos-lunarg Feb 1, 2024
d1dc804
Some fixes for the scaling path in VulkanResourcesUtil
panos-lunarg Feb 1, 2024
4f758e0
An attempt for better handling of errors during submissions
panos-lunarg Feb 1, 2024
7d4ee9f
Renamed function
panos-lunarg Feb 2, 2024
815f0c6
Do some more elaborate sanity checks on dump resource indices
panos-lunarg Feb 2, 2024
3b9f07f
Random small fixes in dump resources
panos-lunarg Feb 5, 2024
438cf60
Added support for R16G16B16A16_SFLOAT in the image writter
panos-lunarg Feb 8, 2024
f29f1aa
Buffer writer was leaking file descriptors
panos-lunarg Feb 12, 2024
2eb16fd
Narrow down dumped resources
panos-lunarg Feb 12, 2024
531cf5b
Some clean up in the dumped filenames
panos-lunarg Feb 12, 2024
8fe7f8c
Removed stale timing logic
panos-lunarg Feb 12, 2024
3cbe4c1
Removed render pass info printfs
panos-lunarg Feb 12, 2024
f858f5e
Filename generation moved to separate functions
panos-lunarg Feb 12, 2024
b39af56
Change class and file names for consistency
panos-lunarg Feb 12, 2024
43591fb
Stricter indices checks in the cli json parser
panos-lunarg Feb 14, 2024
6091c5b
Fixes for png writer
panos-lunarg Feb 14, 2024
2c8c43c
Bmp writer can dump the whole line into the file
panos-lunarg Feb 14, 2024
3055a7a
Hide conversion buffer inside ConvertIntoTemporaryBuffer
panos-lunarg Feb 14, 2024
9ddcf80
Don't assert when resource dumping is disabled
panos-lunarg Feb 15, 2024
80e8751
Handle empty render passes
panos-lunarg Feb 15, 2024
3d1de06
Allow for equal consequtive indices in the QueueSubmit index list
panos-lunarg Feb 15, 2024
1ac7734
Another fix for multiple render passes
panos-lunarg Feb 15, 2024
74f2117
Command line option for dump resources output directory
panos-lunarg Feb 16, 2024
821edbb
Copied dump resources command line options to Android usage doc
panos-lunarg Feb 16, 2024
d9c7c57
Small fix for VulkanReplayConsumerBodyGenerator
panos-lunarg Feb 16, 2024
ca99941
Renamed the resourcer dumper variable with a more meaningful name
panos-lunarg Feb 16, 2024
c4e9a11
Removed most of debug printfs from the dump resources class
panos-lunarg Feb 16, 2024
efbece0
Temporarily disabling mutable resources backup/restoring
panos-lunarg Feb 16, 2024
06b14be
Fixes in VulkanResourcesUtil
panos-lunarg Feb 16, 2024
1b55f49
Abstract out blit logic in VulkanResourcesUtil
panos-lunarg Feb 19, 2024
1601d45
Fixes in the dumping context destructors
panos-lunarg Feb 19, 2024
2353109
Fix hangs when dumping from multiple command buffers
panos-lunarg Feb 20, 2024
26f627c
Change cli help text
davidlunarg Feb 1, 2024
3c3decf
Fix error message
davidlunarg Feb 6, 2024
f9433d6
json output partial implementation
davidlunarg Feb 6, 2024
18c177a
cli arg parsing fixes, fix an incorrecty merged file
davidlunarg Feb 19, 2024
1a671d1
Additional json output implementation
davidlunarg Feb 20, 2024
e7eb974
Replace all whitespace with spaces in dump resources command input line
davidlunarg Feb 21, 2024
5039de4
Clear json output at start of each block
davidlunarg Feb 21, 2024
60f9d3f
Include all target images in json output
davidlunarg Feb 21, 2024
65ef7b7
Fix Android compilation after merging json output patches
panos-lunarg Feb 22, 2024
d9a8068
Implement json output for TraceRays and Dispatch
davidlunarg Feb 22, 2024
817a42a
Improved --dump-resources arg error messsages
davidlunarg Feb 22, 2024
6274919
Add jsoncpp precompiles binaries for x86 and x86_64 for Android builds
panos-lunarg Feb 23, 2024
8c4ae04
Recompiled SPIRV-Reflect android binaries for x86 and x86_64
panos-lunarg Feb 23, 2024
edf5a34
Temporarily disable png format for dump resources
panos-lunarg Feb 23, 2024
eb3bc4e
Added win32 jsoncpp.lib and spirv-reflect-static.lib to external/prec…
davidlunarg Feb 23, 2024
8d5cdb1
Moved variable members at end of class declaration
panos-lunarg Feb 26, 2024
9934303
Use static jsoncpp library on Windows
davidlunarg Feb 26, 2024
ef26649
Add more block indices to dump resources json output
davidlunarg Feb 26, 2024
cc2fc08
Fix linux build
panos-lunarg Feb 27, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
55 changes: 55 additions & 0 deletions .github/workflows/ci_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,61 @@ jobs:
name: ${{ matrix.config.artifact }}
path: .\gfxreconstruct-dev

macOS:
name: ${{ matrix.config.name }}
runs-on: ${{ matrix.config.os }}
strategy:
fail-fast: false
matrix:
config:
- {
name: "macOS Release",
os: macos-latest,
artifact: "gfxreconstruct-dev-macOS-release",
type: "release",
build_dir: "build"
}
- {
name: "macOS Debug",
os: macos-latest,
artifact: "gfxreconstruct-dev-macOS-debug",
type: "debug",
build_dir: "dbuild"
}
steps:
- name: Clone repository
uses: actions/checkout@v1
- name: Cache dependencies
id: cache-deps
uses: actions/cache@v3
with:
path: ~/deps
key: ${{ matrix.config.os }} deps ${{ hashFiles('.github/workflows/scripts/build-dependencies-macos.sh') }}
- name: Build dependencies
if: steps.cache-deps.outputs.cache-hit != 'true'
run: .github/workflows/scripts/build-dependencies-macos.sh
- name: Run build script
run: |
python3 scripts/build.py --skip-check-code-style --skip-tests --config ${{ matrix.config.type }} --cmake-extra "CMAKE_PREFIX_PATH=$HOME/deps" --cmake-extra CMAKE_OSX_DEPLOYMENT_TARGET=11.0
- name: Prepare artifacts
run: |
cp LICENSE.txt ${{ matrix.config.build_dir }}/darwin/universal/output/bin/
cp LICENSE_ThirdParty.txt ${{ matrix.config.build_dir }}/darwin/universal/output/bin/
cp USAGE_desktop_Vulkan.md ${{ matrix.config.build_dir }}/darwin/universal/output/bin/
cp layer/vk_layer_settings.txt ${{ matrix.config.build_dir }}/darwin/universal/output/bin/
mv ${{ matrix.config.build_dir }}/darwin/universal/output/bin gfxreconstruct-dev
mv ${{ matrix.config.build_dir }}/darwin/universal/output/lib*/*.dylib gfxreconstruct-dev/
mv ${{ matrix.config.build_dir }}/darwin/universal/output/share/vulkan/explicit_layer.d/*.json gfxreconstruct-dev/
# GitHub's artifact uploader doesn't preserve permissions, so zip everything ourselves
# This will result in a zip in a zip, but Finder's unzip will conveniently unzip both at once, so it's not too bad
cd gfxreconstruct-dev
zip -r9 "../${{ matrix.config.artifact }}.zip" *
- name: Upload artifacts
uses: actions/upload-artifact@v1
with:
name: ${{ matrix.config.artifact }}
path: ${{ matrix.config.artifact }}.zip

android:
name: ${{ matrix.config.name }}
runs-on: ${{ matrix.config.os }}
Expand Down
48 changes: 48 additions & 0 deletions .github/workflows/scripts/build-dependencies-macos.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
#!/bin/bash

set -e

export MACOSX_DEPLOYMENT_TARGET=11.0

INSTALLDIR="${INSTALLDIR:-"$HOME/deps"}"
NPROCS="${NPROCS:-$(getconf _NPROCESSORS_ONLN)}"
ZSTD=1.5.5
LZ4=1.9.4

mkdir deps-build
cd deps-build

export PKG_CONFIG_PATH="$INSTALLDIR/lib/pkgconfig:$PKG_CONFIG_PATH"
export CFLAGS="-I$INSTALLDIR/include -Os $CFLAGS"
export CXXFLAGS="-I$INSTALLDIR/include -Os $CXXFLAGS"

cat > SHASUMS <<EOF
9c4396cc829cfae319a6e2615202e82aad41372073482fce286fac78646d3ee4 zstd-$ZSTD.tar.gz
0b0e3aa07c8c063ddf40b082bdf7e37a1562bda40a0ff5272957f3e987e0e54b lz4-$LZ4.tar.gz
EOF

curl -L \
-O "https://github.com/facebook/zstd/releases/download/v$ZSTD/zstd-$ZSTD.tar.gz" \
-O "https://github.com/lz4/lz4/releases/download/v$LZ4/lz4-$LZ4.tar.gz" \

shasum -a 256 --check SHASUMS

echo "Installing lz4..."
tar xf "lz4-$LZ4.tar.gz"
cd "lz4-$LZ4"
cmake -B build-dir build/cmake -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DBUILD_SHARED_LIBS=OFF -DBUILD_STATIC_LIBS=ON -DCMAKE_BUILD_TYPE=MinSizeRel
make -C build-dir "-j$NPROCS"
make -C build-dir install
cd ..

echo "Installing zstd..."
tar xf "zstd-$ZSTD.tar.gz"
cd "zstd-$ZSTD"
cmake -B build-dir build/cmake -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DZSTD_BUILD_SHARED=OFF -DCMAKE_BUILD_TYPE=MinSizeRel
make -C build-dir "-j$NPROCS"
make -C build-dir install
cd ..

echo "Cleaning up..."
cd ..
rm -r deps-build
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,6 @@ __pycache__/
.vscode/
*.db
*.pyc
*.rdbg
._*
.DS_Store
41 changes: 29 additions & 12 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" "${CMAKE_SOURCE_DIR}/external/
# Version info
set(GFXRECONSTRUCT_PROJECT_VERSION_MAJOR 1)
set(GFXRECONSTRUCT_PROJECT_VERSION_MINOR 0)
set(GFXRECONSTRUCT_PROJECT_VERSION_PATCH 0)
set(GFXRECONSTRUCT_PROJECT_VERSION_PATCH 3)

set(GFXRECON_PROJECT_VERSION_SHA1 "unknown-build-source")

Expand Down Expand Up @@ -104,6 +104,7 @@ option(BUILD_WERROR "Build with warnings as errors" ON)
include("CodeStyle")
include("Lint")
include("Test")
include("FindVulkanVersion")

# Apply misc build directives to the given target
macro(common_build_directives TARGET)
Expand Down Expand Up @@ -202,6 +203,7 @@ if(MSVC)
endif() # GFXRECON_AGS_SUPPORT
endif() # D3D12_SUPPORT


else(MSVC)
# Turn off D3D12 support for non MSVC builds.
set(D3D12_SUPPORT OFF)
Expand All @@ -217,6 +219,10 @@ else(MSVC)
endif()
endif(MSVC)

if(APPLE)
add_link_options(-Wl,-dead_strip -Wl,-dead_strip_dylibs)
endif()

# GFXReconstruct provided find modules
if(WIN32)
find_package(Detours)
Expand All @@ -225,7 +231,11 @@ endif() # WIN32
find_package(LZ4)
find_package(ZSTD)

if(UNIX)
if(MSVC)
find_package(jsoncpp)
endif() # MSVC

if(UNIX AND NOT APPLE)
option(BUILD_WSI_XCB_SUPPORT "Build XCB WSI support" ON)
option(BUILD_WSI_WAYLAND_SUPPORT "Build Wayland WSI support" ON)
option(BUILD_WSI_DISPLAY_SUPPORT "Build direct-to-display swapchain support" ON)
Expand All @@ -237,20 +247,20 @@ if(UNIX)
if(BUILD_WSI_WAYLAND_SUPPORT)
find_package(WAYLAND)
endif()
endif(UNIX)
endif(UNIX AND NOT APPLE)

# CMake provided find modules
if(BUILD_STATIC)
find_library(ZLIB NAMES libz.a REQUIRED PATH_SUFFIXES lib lib/x86_64-linux-gnu lib64)
else()
find_package(ZLIB)
endif()
if(UNIX)
if(UNIX AND NOT APPLE)
option(BUILD_WSI_XLIB_SUPPORT "Build Xlib WSI support" ON)
if(BUILD_WSI_XLIB_SUPPORT)
find_package(X11)
endif()
endif(UNIX)
endif(UNIX AND NOT APPLE)

add_library(windows_specific INTERFACE)

Expand All @@ -274,25 +284,32 @@ target_compile_definitions(linux_specific INTERFACE _FILE_OFFSET_BITS=64 PAGE_GU
$<$<BOOL:${BUILD_WSI_DISPLAY_SUPPORT}>:VK_USE_PLATFORM_DISPLAY_KHR>
$<$<BOOL:${HEADLESS}>:VK_USE_PLATFORM_HEADLESS>)

add_library(macos_specific INTERFACE)
target_compile_definitions(macos_specific INTERFACE
VK_USE_PLATFORM_METAL_EXT
$<$<BOOL:${HEADLESS}>:VK_USE_PLATFORM_HEADLESS>)

add_library(platform_specific INTERFACE)
target_link_libraries(platform_specific INTERFACE
$<$<BOOL:${WIN32}>:windows_specific>
$<$<NOT:$<BOOL:${WIN32}>>:linux_specific>)
$<$<BOOL:${APPLE}>:macos_specific>
$<$<NOT:$<OR:$<BOOL:${WIN32}>,$<BOOL:${APPLE}>>>:linux_specific>)

if(BUILD_WERROR)
if(MSVC)
target_compile_options(platform_specific INTERFACE /WX)
else()
target_compile_options(platform_specific INTERFACE -Werror)
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
# TODO: Actually fix these warnings
target_compile_options(platform_specific INTERFACE -Wno-error=switch)
endif()
endif()
endif()

if(NOT EXISTS ${CMAKE_SOURCE_DIR}/external/Vulkan-Headers)
message(FATAL_ERROR "The Vulkan-Headers submodule has not been initialized! Please run `git submodule update --init` in the source directory.")
endif()

add_subdirectory(${CMAKE_SOURCE_DIR}/external/Vulkan-Headers)
target_compile_definitions(Vulkan-Headers INTERFACE VK_NO_PROTOTYPES VK_ENABLE_BETA_EXTENSIONS)
add_library(vulkan_registry INTERFACE)
target_include_directories(vulkan_registry INTERFACE ${CMAKE_SOURCE_DIR}/external/Vulkan-Headers/include)
target_compile_definitions(vulkan_registry INTERFACE VK_NO_PROTOTYPES VK_ENABLE_BETA_EXTENSIONS)

add_library(vulkan_memory_allocator INTERFACE)
target_compile_options(vulkan_memory_allocator INTERFACE
Expand Down
37 changes: 36 additions & 1 deletion HOWTO_android.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,13 +57,48 @@ is to be used in all cases below for `{gfxreconstruct_root}`.
git clone --recurse-submodules https://github.com/KhronosGroup/Vulkan-Samples.git
```

Alternatively, if this is not the first time the tree is cloned, simply enter
the folder containing the source and update to the latest, but also make sure
that the submodules are re-inited and updated (because additional submodules may
have been added).

```bash
cd Vulkan-Samples
git pull
git submodule init
git submodule update --recursive
```

### 3. Enter the Vulkan Samples source directory

```bash
cd Vulkan-Samples
```

### 4. Build the gradle files
### 4. Build the necessary Android files

To build/setup the Vulkan-Samples source for Android, follow the instructions in
[the README](https://github.com/KhronosGroup/Vulkan-Samples/blob/main/docs/build.adoc#android)
found in that GitHub repo.

Follow these instructions up until the instructions to activate the build using
Gradle, and then stop until GFXReconstruct has been enabled.

In a nutshell, the following command should be executed to generate the
necessary files, but it has been known to change:

#### Current Vulkan-Samples Android generation

On a clean tree, the first step is to generate the necessary Android files:

```bash
python3 scripts/generate.py android
```

#### Previous Vulkan-Samples Android generation

On some older versions of `Vulkan-Samples` the Android files were
generated using a different script:

```bash
./bldsys/scripts/generate_android_gradle.sh
Expand Down
39 changes: 34 additions & 5 deletions USAGE_android.md
Original file line number Diff line number Diff line change
Expand Up @@ -751,7 +751,9 @@ usage: gfxrecon.py replay [-h] [--push-file LOCAL_FILE] [--version] [--pause-fra
[--measurement-file DEVICE_FILE] [--quit-after-measurement-range]
[--flush-measurement-range] [-m MODE]
[--swapchain MODE] [--use-captured-swapchain-indices]
[file]
[--use-colorspace-fallback] [--dump-resources <dump-args>]
[--dump-resources-before-draw] [--dump-resources-scale <scale>]
[--dump-resources-dir <fir>] [file]

Launch the replay tool.

Expand Down Expand Up @@ -858,17 +860,44 @@ optional arguments:
If this is specified the replayer will flush and wait
for all current GPU work to finish at the start and end
of the measurement range. (forwarded to replay tool)
--flush-inside-measurement-range
If this is specified the replayer will flush and wait
for all current GPU work to finish at the end of each
frame inside the measurement range. (forwarded to replay tool)
--use-colorspace-fallback
Swap the swapchain color space if unsupported by replay device.
Check if color space is not supported by replay device and swap
to VK_COLOR_SPACE_SRGB_NONLINEAR_KHR. (forwarded to replay tool).
--dump-resources <filename>
Extract --dump-resources args from the specified file, with each line in the file containing a comma or space separated
list of the parameters to --dump-resources. The file can contain multiple lines specifying multiple dumps.
--dump-resources <filename>.json
Extract --dump-resource args from the specified json file. The format for the json file is documented in detail
in the gfxreconstruct documentation.
--dump-resources-image-format <format>
Image file format to use for image resource dumping.
Available formats are:
bmp Bitmap file format. This is the default format.
png Png file format.
--dump-resources-before-draw
In addition to dumping gpu resources after the CmdDraw, CmdDispatch and CmdTraceRays calls specified by the
--dump-resources argument, also dump resources before those calls.
--dump-resources-scale <scale>
Scale images generated by dump resources by the given scale factor. The scale factor must be a floating point number
greater than 0. Values greater than 10 are capped at 10. Default value is 1.0.
--dump-resources-dir <dir>
Directory to write dump resources output files. Default is the current working directory.
```

The command will force-stop an active replay process before starting the replay
activity with the following:

```bash
adb shell am force-stop com.lunarg.gfxreconstruct.replay
adb shell am start -n "com.lunarg.gfxreconstruct.replay/android.app.NativeActivity" \
-a android.intent.action.MAIN \
-c android.intent.category.LAUNCHER \
--es "args" \
adb shell am start -n "com.lunarg.gfxreconstruct.replay/android.app.NativeActivity" \
-a android.intent.action.MAIN \
-c android.intent.category.LAUNCHER \
--es "args" \
"<arg-list>"
```

Expand Down
45 changes: 44 additions & 1 deletion USAGE_desktop_Vulkan.md
Original file line number Diff line number Diff line change
Expand Up @@ -394,7 +394,10 @@ gfxrecon-replay [-h | --help] [--version] [--gpu <index>]
[--measurement-file <file>] [--quit-after-measurement-range]
[--flush-measurement-range]
[--log-level <level>] [--log-file <file>] [--log-debugview]
[--api <api>] [--no-debug-popup] <file>
[--api <api>] [--no-debug-popup] [--use-colorspace-fallback]
[--dump-resources <dump-args>] [--dump-resources-before-draw]
[--dump-resources-scale <scale>] [--dump-resources-dir <dir>]
[--dump-resources-image-format <format>] <file>

Required arguments:
<file> Path to the capture file to replay.
Expand Down Expand Up @@ -531,6 +534,46 @@ Optional arguments:
If this is specified the replayer will flush
and wait for all current GPU work to finish at the
start and end of the measurement range.
--flush-inside-measurement-range
If this is specified the replayer will flush and wait
for all current GPU work to finish at the end of each
frame inside the measurement range.
--use-colorspace-fallback
Swap the swapchain color space if unsupported by replay device.
Check if color space is not supported by replay device and
fallback to VK_COLOR_SPACE_SRGB_NONLINEAR_KHR.
--dump-resources BeginCommandBuffer=<n>,Draw=<n>,BeginRenderPass=<n>,NextSubPass=<n>,EndRenderPass=<n>,Dispatch=<n>,TraceRays=<n>,QueueSubmit=<n>
Dump gpu resources after the given vmCmdDraw*, vkCmdDispatch, or vkCmdTraceRaysKHR is replayed. The parameter for
each is a block index from the capture file. The additional parameters are used to identify during which occurence
of the vkCmdDraw/VkCmdDispath/VkCmdTrancRaysKHR resources will be dumped. NextSubPass can be repeated 0 or more times to
indicate subpasses withing a render pass. Note that the minimal set of parameters must be one of:
BeginCmdBuffer, Draw, BeginRenderPass, EndRenderPass, and QueueSubmit
BeginCmdBuffer, Dispatch and QueueSubmit
BeginCmdBuffer, TraceRays and QueueSubmit
--dump-resources <filename>
Extract --dump-resources args from the specified file, with each line in the file containing a comma or space separated
list of the parameters to --dump-resources. The file can contain multiple lines specifying multiple dumps.
--dump-resources <filename>.json
Extract --dump-resource args from the specified json file. The format for the json file is documented in detail
in the gfxreconstruct documentation.
--dump-resources-image-format <format>
Image file format to use for image resource dumping.
Available formats are:
bmp Bitmap file format. This is the default format.
png Png file format.
--dump-resources-before-draw
In addition to dumping gpu resources after the CmdDraw, CmdDispatch and CmdTraceRays calls specified by the
--dump-resources argument, also dump resources before those calls.
--dump-resources-scale <scale>
Scale images generated by dump resources by the given scale factor. The scale factor must be a floating point number
greater than 0. Values greater than 10 are capped at 10. Default value is 1.0.

--dump-resources-dir <dir>
Directory to write dump resources output files. Default is the current working directory.

--dump-resources-image-format <format>
Image file format to use when dumping image resources. Available formats are: bmp, png

```

### Key Controls
Expand Down
Loading
Loading