Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
202 commits
Select commit Hold shift + click to select a range
e275c44
Add a new sample - subgroups operation
Patryk-Jastrzebski-Mobica Jun 12, 2023
00fe99c
Add ocean fft
Patryk-Jastrzebski-Mobica Jun 13, 2023
fe0326f
Fix grid generation algorithm
Patryk-Jastrzebski-Mobica Jun 14, 2023
0cd32b8
Add compute pipeline and compute queue
Patryk-Jastrzebski-Mobica Jun 14, 2023
44aa375
Add ability to resize the grid in the UI and a few small changes
Patryk-Jastrzebski-Mobica Jun 16, 2023
3ea91d5
Animated grid using the sine and cosine functions
Patryk-Jastrzebski-Mobica Jun 23, 2023
fc9009f
Add a new compute pipeline
Patryk-Jastrzebski-Mobica Jul 5, 2023
8026831
Fixed a descriptor set, the function generating random numbers has be…
Patryk-Jastrzebski-Mobica Jul 6, 2023
b62b93f
Transfer of philips spectrum calculation from GPU to CPU.
Patryk-Jastrzebski-Mobica Aug 18, 2023
db0b8b2
Refactoring and changes in graphic pipeline
Patryk-Jastrzebski-Mobica Sep 6, 2023
b3dce47
Add the FBAttachment type
Krzysztof-Dmitruk-Mobica Sep 12, 2023
063784f
Add butterfly precomp shader and texture
Krzysztof-Dmitruk-Mobica Sep 20, 2023
b2b74ac
Add tilde textures and pipeline
Patryk-Jastrzebski-Mobica Sep 21, 2023
d5f02b8
Refactor and add butterfly and tild texture generation
Patryk-Jastrzebski-Mobica Sep 26, 2023
ea1ec9a
Some fixes
Patryk-Jastrzebski-Mobica Sep 26, 2023
afd5394
Fix access to input buffers
Patryk-Jastrzebski-Mobica Sep 26, 2023
833f876
Add fft pipeline for rows
Patryk-Jastrzebski-Mobica Sep 28, 2023
069325f
Add vertical fft calculation
Patryk-Jastrzebski-Mobica Sep 29, 2023
e2f56c3
Add invert fft and clean-up
Patryk-Jastrzebski-Mobica Sep 29, 2023
bdf453c
Fix validation layer errors and fix tessellation shaders
Patryk-Jastrzebski-Mobica Oct 4, 2023
0cdb18f
some fixes
Patryk-Jastrzebski-Mobica Oct 4, 2023
7616cb0
Fix tilde_h_0 indexation
kdmitruk Oct 4, 2023
1a77ac4
Fix log_2_N rounding
Krzysztof-Dmitruk-Mobica Oct 6, 2023
b5851d4
Some fixes, add tessellation
Patryk-Jastrzebski-Mobica Oct 11, 2023
085e026
Fix a buttlefly pipeline
Patryk-Jastrzebski-Mobica Oct 11, 2023
f6396bb
Add tilde_h_0 shader
Krzysztof-Dmitruk-Mobica Oct 10, 2023
74371bd
Split fft steps into separate calls
Krzysztof-Dmitruk-Mobica Oct 13, 2023
7070474
Fix input data randomization
Krzysztof-Dmitruk-Mobica Oct 13, 2023
20dd48b
Code cleanup
Krzysztof-Dmitruk-Mobica Oct 13, 2023
a318c32
rewrite the grid generation
Patryk-Jastrzebski-Mobica Oct 14, 2023
9db394f
fixed validation layers issues and add changes to ocean pipeline
Patryk-Jastrzebski-Mobica Oct 16, 2023
5595c3e
animation fix
Patryk-Jastrzebski-Mobica Oct 16, 2023
263aed9
add normal map
Patryk-Jastrzebski-Mobica Oct 17, 2023
3a1820b
Fix interpolation of a tessellated grid
Krzysztof-Dmitruk-Mobica Oct 17, 2023
418b72a
some fixes and new ui params
Patryk-Jastrzebski-Mobica Oct 17, 2023
8c6d419
ui update
Patryk-Jastrzebski-Mobica Oct 17, 2023
d10c00b
Add wind coordinate conversion
Krzysztof-Dmitruk-Mobica Oct 17, 2023
364b71a
refactor
Patryk-Jastrzebski-Mobica Oct 18, 2023
c95ec21
shader clean-up
Patryk-Jastrzebski-Mobica Oct 18, 2023
2da30e5
add skybox
Patryk-Jastrzebski-Mobica Oct 18, 2023
a159bf4
rebase
Patryk-Jastrzebski-Mobica Oct 18, 2023
cd0835c
update ui
Patryk-Jastrzebski-Mobica Oct 18, 2023
732a961
fix normal map
Patryk-Jastrzebski-Mobica Oct 18, 2023
6ec6f78
add a new ui elements
Patryk-Jastrzebski-Mobica Oct 18, 2023
651489c
Fix skybox cliping issue
Patryk-Jastrzebski-Mobica Oct 24, 2023
680532d
Add (broken) reflection
Krzysztof-Dmitruk-Mobica Oct 20, 2023
e3d04bd
A rebase fix
Patryk-Jastrzebski-Mobica Oct 24, 2023
33ab6f1
use initialisation functions to initialise objects
Patryk-Jastrzebski-Mobica Oct 25, 2023
00a1ba2
[WIP] reflections experiments
Patryk-Jastrzebski-Mobica Nov 2, 2023
ba96ffa
Convert a README.md file to a README.adoc file
Patryk-Jastrzebski-Mobica Nov 8, 2023
b430bc4
[WIP] Add BRDF reflection
Patryk-Jastrzebski-Mobica Nov 15, 2023
9e57d20
Add pipeline barriers, update README file
Patryk-Jastrzebski-Mobica Nov 20, 2023
cec852f
Add a new sample - subgroups operation
Patryk-Jastrzebski-Mobica Jun 12, 2023
570de4b
Fix build issues after merging main and remove VL errors
Seweryn-Zielas-Mobica Apr 2, 2024
60d9f9b
Fixing synchronization in barriers - still in progress
Seweryn-Zielas-Mobica Apr 14, 2024
9f5540f
Removed write/read hazards
Seweryn-Zielas-Mobica Apr 19, 2024
acdaaf1
Add image memory barriers
Piotr-Plebanski-Mobica Jul 17, 2024
e415e0d
Rebase and update
Piotr-Plebanski-Mobica Jul 17, 2024
8756cb3
Fix tesselation shaders
Piotr-Plebanski-Mobica Jul 17, 2024
163099e
WIP optimize barriers
Piotr-Plebanski-Mobica Sep 30, 2024
c37fdaf
[WIP3] subgroups -Rebase and compilation fix
Patryk-Jastrzebski-Mobica Oct 8, 2024
85d4bab
shaders update
Patryk-Jastrzebski-Mobica Oct 10, 2024
3968ef7
WIP subgroups - fixed normal map generation, fixed reflections
Patryk-Jastrzebski-Mobica Oct 11, 2024
52a231f
Add a new sample - subgroups operation
Patryk-Jastrzebski-Mobica Jun 12, 2023
269d664
Add ocean fft
Patryk-Jastrzebski-Mobica Jun 13, 2023
68fc42b
Add compute pipeline and compute queue
Patryk-Jastrzebski-Mobica Jun 14, 2023
827d8c4
Add ability to resize the grid in the UI and a few small changes
Patryk-Jastrzebski-Mobica Jun 16, 2023
8af8b9c
Animated grid using the sine and cosine functions
Patryk-Jastrzebski-Mobica Jun 23, 2023
88aa8a4
Add a new compute pipeline
Patryk-Jastrzebski-Mobica Jul 5, 2023
d3fd571
Fixed a descriptor set, the function generating random numbers has be…
Patryk-Jastrzebski-Mobica Jul 6, 2023
81233dd
Transfer of philips spectrum calculation from GPU to CPU.
Patryk-Jastrzebski-Mobica Aug 18, 2023
112c260
Refactoring and changes in graphic pipeline
Patryk-Jastrzebski-Mobica Sep 6, 2023
0972161
Add the FBAttachment type
Krzysztof-Dmitruk-Mobica Sep 12, 2023
e92e60a
Add butterfly precomp shader and texture
Krzysztof-Dmitruk-Mobica Sep 20, 2023
33691ae
Add tilde textures and pipeline
Patryk-Jastrzebski-Mobica Sep 21, 2023
259a74d
Refactor and add butterfly and tild texture generation
Patryk-Jastrzebski-Mobica Sep 26, 2023
7501909
Add invert fft and clean-up
Patryk-Jastrzebski-Mobica Sep 29, 2023
64f366d
Some fixes, add tessellation
Patryk-Jastrzebski-Mobica Oct 11, 2023
b7b7798
add skybox
Patryk-Jastrzebski-Mobica Oct 18, 2023
ec7b26c
Convert a README.md file to a README.adoc file
Patryk-Jastrzebski-Mobica Nov 8, 2023
204bfb4
Add pipeline barriers, update README file
Patryk-Jastrzebski-Mobica Nov 20, 2023
c0065a5
Add a new sample - subgroups operation
Patryk-Jastrzebski-Mobica Jun 12, 2023
4d94890
[WIP3] subgroups -Rebase and compilation fix
Patryk-Jastrzebski-Mobica Oct 8, 2024
213059b
Add a new sample - subgroups operation
Patryk-Jastrzebski-Mobica Jun 12, 2023
5fa5527
A rebase fix
Patryk-Jastrzebski-Mobica Oct 24, 2023
acbbaac
[WIP] reflections experiments
Patryk-Jastrzebski-Mobica Nov 2, 2023
f1936a7
Add a new sample - subgroups operation
Patryk-Jastrzebski-Mobica Jun 12, 2023
dae01a0
[WIP] Remove skybox to make sample simpler. Update copyright data and…
Patryk-Jastrzebski-Mobica Oct 15, 2024
8340fc9
[WIP] Add missing description, enable subgroup basic feature in fft_t…
Patryk-Jastrzebski-Mobica Oct 15, 2024
1f26700
Update README and add option to disable/enable subgroups
Patryk-Jastrzebski-Mobica Oct 16, 2024
3751770
Unify vkb::allocated::Allocated and vkb::allocated::HPPAllocated into…
asuessenbach Dec 9, 2024
c6291b8
ci: Reduce CI to unblock Github Action minutes (#1217)
spencer-lunarg Dec 12, 2024
646c3e4
Cleanup: Fix compilation warning (#1244)
jeroenbakker-atmind Dec 16, 2024
3792764
Vulkan 1 3 hello triangle sample (#1230)
alihuawei Dec 16, 2024
04f03b3
Update Android build setup (#1228)
SaschaWillems Dec 16, 2024
2fcc94b
remove shader variants from msaa sample (#1231)
tomadamatkinson Jan 13, 2025
b3cb382
Adjust color attachment barrier (#1255)
SaschaWillems Jan 13, 2025
271b1e9
Update glfw submodule to latest (#1237)
SaschaWillems Jan 13, 2025
8d282d4
Fix 1251: Texture Compression BasisU: Missing device extension (#1264)
jeroenbakker-atmind Jan 27, 2025
40e3b44
Update and fix proposal links (#1262)
SaschaWillems Jan 27, 2025
9af783a
Update HWCPipe submodule (#1273)
JoseEmilio-ARM Feb 24, 2025
58f0693
Fix missing template prefix in DebugInfo::insert() (#1272)
SRSaunders Feb 24, 2025
deb3e20
Use correct device feature (#1271)
SaschaWillems Feb 24, 2025
2e7caa5
Fix portability errors and null device crash on macOS/iOS for hello_t…
SRSaunders Feb 24, 2025
43bbc91
Remove deprecated VK_IMG_format_pvrtc extension (#1265)
jeroenbakker-atmind Feb 24, 2025
da0fbd3
Add note about VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT (#1261)
spencer-lunarg Feb 24, 2025
da8ee80
Refactor instance extension and layer handling (#1256)
asuessenbach Feb 24, 2025
cf4fdf9
Remove shader variants (#1232)
tomadamatkinson Feb 24, 2025
6137284
iOS runtime fixes (#1173)
SRSaunders Feb 24, 2025
04f6080
Dynamic state3 multisample rasterization (#856)
pawel-jastrzebski-mobica Feb 24, 2025
aaccd0c
Replace CLI11 by a simple command line argument handling. (#1274)
asuessenbach Feb 24, 2025
43c23e5
shader_debugprintf: support new VVL-DEBUG-PRINTF message and fix VVL …
SRSaunders Feb 25, 2025
ec0ff94
Unify vkb::CommandBuffer and vkb::core::HPPCommandBuffer into vkb::co…
asuessenbach Mar 10, 2025
0a1640f
Set correct option for building GLFW for Wayland. (#1279)
CatalinTermure Mar 10, 2025
62e90d2
Fix hello_triangle_1_3 debug_callback compilation warning (#1280)
gary-sweet Mar 10, 2025
f3f0e09
Add missing VK_KHR_portability_subset extension to [hpp_]triangle[*] …
SRSaunders Mar 10, 2025
4543129
No point rounding or casting something that's already an int (#1285)
gary-sweet Mar 10, 2025
bbb427f
update the actions/cache version for ios to v4 (#1292)
gpx1000 Mar 10, 2025
6d083b0
downgrade to 4.7.0 tag (#1300)
gpx1000 Mar 20, 2025
8547ce1
fix: correct typo in README for ray tracing reflection sample (#1291)
ZureTz Mar 20, 2025
fa919d7
Fix link for Vulkan 1.3 triangle sample (#1310)
SaschaWillems Mar 24, 2025
9359f16
temp fix for android issue 1299 (#1308)
gpx1000 Mar 24, 2025
6545650
Update iOS CI to use Vulkan SDK 1.4.304.1 as fallback (#1306)
SRSaunders Mar 24, 2025
9709ef8
Add slang support to the framework (#1304)
SaschaWillems Mar 24, 2025
5a0554e
Force correct function overload (#1293)
SaschaWillems Mar 24, 2025
cb6e274
Enable C++ 20 standard globally (#1257)
SaschaWillems Mar 24, 2025
64907c7
Unify vkb::CommandPool and vkb::core::HPPCommandPool into vkb::core::…
asuessenbach Mar 25, 2025
e17bf6e
Update Vulkan SDK to version 1.4.304 (#1281)
asuessenbach Mar 25, 2025
f4c831c
Remove invalid PRE_BUILD keyword from sample_helper.cmake (#1296)
SRSaunders Mar 25, 2025
59202da
Update astc to 4.8.0, enable SSE41 decode, and fix build issues for p…
SRSaunders Mar 25, 2025
d87271c
Remove little used submodule catch2. (#1316)
asuessenbach Apr 3, 2025
73a1184
Update third_party/spirv-cross (#1326)
asuessenbach Apr 4, 2025
f98af0c
Use algorithms from the std::ranges namespace instead of std namespac…
asuessenbach Apr 4, 2025
d6969a9
Fix for dynamic rendering local read (#1327)
gary-sweet Apr 7, 2025
32b73b7
bldsys/cmake/global_options.cmake: removed unused ROOT_PATH_SIZE defi…
kanavin Apr 7, 2025
da65bb4
Make VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT opti…
tdunkleArm Apr 7, 2025
05cba38
framework: Include stdint.h (#1314)
kraj Apr 7, 2025
cec93cb
Actively ignore queue families on image_memory_barrier (#1309)
asuessenbach Apr 7, 2025
dca8e08
Expand und update hello triangle (1.0) sample (#1335)
SaschaWillems May 1, 2025
02d3010
In the Vulkan API, the timeout parameter of vkWaitForFences is of typ…
JingyanChen May 1, 2025
8e20b2b
Switch usage of Vulkan-Hpp to designated initializers (#1332)
asuessenbach May 5, 2025
fd7a1fd
Fix synchronization in Subpasses sample (#1341)
JoseEmilio-ARM May 6, 2025
234a51f
Remove framework goal from Readme (#1344)
SaschaWillems May 19, 2025
eca1226
Remove duplicate text/image from debug_utils README (#1343)
ShabbyX May 19, 2025
3572356
Fix buffer copy size check (#1353)
SaschaWillems May 29, 2025
37c28c9
Wrap vkb::core::CommandBuffers stored stored in vkb::core::CommandPoo…
asuessenbach May 29, 2025
4d40b65
fix check_command_buffers() (#1357)
yknishidate Jun 2, 2025
6b7c69c
Update submodules for astc, fmt, ktx, spdlog and tinyglrf (#1356)
SaschaWillems Jun 2, 2025
edfc68a
Fix hello_triangle for macOS AMD: change VMA to request host coherent…
SRSaunders Jun 2, 2025
d27205d
Fix: Swapchain recreation - validation errors (#1319)
jeroenbakker-atmind Jun 2, 2025
8076db6
Increase base version to Vulkan 1.1 (#1354)
SaschaWillems Jun 12, 2025
f95289c
Unify vkb::RenderFrame and vkb::rendering::HPPRenderFrame into vkb::r…
asuessenbach Jun 12, 2025
3944ae5
Transcoded version of api sample hello_triangle_1_3 based on Vulkan-H…
asuessenbach Jun 18, 2025
2a3a2ac
Replace runtime shader compilation with offline compiled SPIR-V shade…
SaschaWillems Jun 30, 2025
270bd1f
Fix MacOS cmake build instructions (#1363)
wasimabbas-arm Jun 30, 2025
b1f04fa
Improve and fix async compute sample (#1366)
iagoCL Jul 10, 2025
390567e
Fix crash in sample on android (#1371)
SaschaWillems Jul 14, 2025
ff4cc28
Port of latest changes in api sample hello_triangle to hpp_hello_tria…
asuessenbach Jul 14, 2025
47d9b80
Unify vkb::Device and vkb::core::HPPDevice into vkb::core::Device<bin…
asuessenbach Jul 14, 2025
199429d
Implement simple cache for decoded ASTC textures (#1339)
JoseEmilio-ARM Jul 28, 2025
fb5c2f3
fix: fix the surface resize logic when use wayland wsi (#1338)
Kkaiwz Jul 28, 2025
5d014e2
Remove submodule CTPL, replace its functionality by calls to std::asy…
asuessenbach Aug 7, 2025
f731014
Unify vkb::Gui and vkb::HPPGui into vkb::Gui<bindingType> (#1376)
asuessenbach Aug 7, 2025
c4abbef
Add possible Linux WSI options (#1382)
SaschaWillems Aug 11, 2025
e6d9b05
Add CMAKE_OSX_DEPLOYMENT_TARGET to macOS build docs and CI script (#1…
SRSaunders Aug 11, 2025
b8ddd7b
Fix regression on iOS Simulator by including TargetConditionals.h in …
SRSaunders Aug 11, 2025
83ff600
Update shader interfaces to match sample's vertex input description (…
SaschaWillems Aug 11, 2025
10ac965
Fix layer settings regression on Apple platforms for MoltenVK config …
SRSaunders Aug 11, 2025
fdf428b
Fix variable descriptor count info not used in descriptor set creatio…
SaschaWillems Aug 25, 2025
f9ecefa
Update NDK version to r28c for Android (#1401)
kocdemir Aug 25, 2025
667ef71
Update VVL version to 1.4.321.0 for Android (#1400)
kocdemir Aug 25, 2025
62b6b31
Remove vkb::filesystem::init() from astc to fix memory leak and batch…
SRSaunders Aug 25, 2025
6268b39
Unify vkb::Instance and vkb::core::HPPInstance into vkb::core::Instan…
asuessenbach Aug 25, 2025
2ae43ba
Fix use of --width and --height by setting extent earlier (#1392)
gary-sweet Aug 25, 2025
60de2f0
Add Slang and HLSL shaders to first set of samples (#1384)
SaschaWillems Aug 25, 2025
f9f6894
Add example for dynamic_rendering_local_read (#1407)
spencer-lunarg Sep 8, 2025
f44204c
Update Apple min deployment versions and iOS Simulator build config (…
SRSaunders Sep 8, 2025
b996179
Unify vkb::PhysicalDevice and vkb::core::HPPPhysicalDevice into vkb::…
asuessenbach Sep 8, 2025
19c2432
Unify vkb::RenderContext and vkb::rendering::HPPRenderContext into vk…
asuessenbach Oct 6, 2025
d9524ac
add shader quad control sample demonstrating VK_KHR_shader_quad_contr…
gpx1000 Oct 17, 2025
6021c01
Revert "add shader quad control sample demonstrating VK_KHR_shader_qu…
gpx1000 Oct 17, 2025
4446fa5
Fix synchronization validation errors in ray tracing samples (#1414)
piotrprzybyszdev Oct 20, 2025
b2e3694
Add simple_tensor_and_data_graph sample (#1394)
arovir01 Oct 20, 2025
c3d2231
Add missing call to vkCmdSetPrimitiveRestartEnableEXT in sample exend…
asuessenbach Nov 3, 2025
449b8ff
Add link to the GitHub repository to the navigation sidebar (#1425)
SaschaWillems Nov 3, 2025
ee69196
Add missing call to vkCmdSetRenderingInputAttachmentIndicesKHR in sam…
asuessenbach Nov 3, 2025
24b5d90
Make vkb::sg::Node a unified class vkb::scene_graph::Node<bindingType…
asuessenbach Nov 3, 2025
8e966eb
New Fragment Density Map Sample (#1411)
iagoCL Nov 3, 2025
b279952
Fix Scratch Buffer and SBT alignment violations in RT samples (#1417)
skarthik0196 Nov 13, 2025
5bfa6ae
Fix check for unknown command line option. (#1445)
asuessenbach Nov 17, 2025
94b9a65
Move requesting gpu features from VulkanSample::prepare into the vkb:…
asuessenbach Nov 17, 2025
24bf97e
Add Slang shaders to additional samples (#1406)
SaschaWillems Nov 17, 2025
4edb9fd
Change links from "1.x-extensions" to "latest" (#1440)
asuessenbach Nov 17, 2025
bb85a58
Minimal invasive fix for the memory leak in the performance sample mu…
asuessenbach Dec 1, 2025
6a80f80
Fix usage of debug utils labels with secondary command buffers. (#1436)
asuessenbach Dec 1, 2025
5259c1a
Make vkb::sg::Sampler a unified class vkb::scene_graph::components::S…
asuessenbach Dec 1, 2025
2ab57ee
Set default queue priorities to 0.5f (#1426)
SaschaWillems Dec 1, 2025
c639575
fix: Initialize handle to prevent freeing uninitialized pointers. (#1…
Kkaiwz Dec 15, 2025
0154a82
Fix pMaxDeviation parameter type in calibrated_timestamps sample (#1450)
n-amul Dec 15, 2025
97fcdee
Simplify CMake generation step for Windows and refer to CMake docs (#…
jasperdrescher Dec 15, 2025
3a0012e
Merge remote-tracking branch 'upstream/main' into subgroups_operation…
gpx1000 Dec 31, 2025
e68f9d2
Fix pipeline layout binding and shader loading for subgroups operatio…
gpx1000 Dec 31, 2025
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
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .github/docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright (c) 2022-2023, Arm Limited and Contributors
# Copyright (c) 2022-2025, Arm Limited and Contributors
#
# SPDX-License-Identifier: Apache-2.0
#
Expand Down Expand Up @@ -80,7 +80,7 @@ ENV PATH="$PATH:$ANDROID_HOME/platform-tools:${ANDROID_SDK_TOOLS}/tools/bin:$AND
RUN mkdir -p $ANDROID_HOME

# Configure Android NDK
ENV NDK_VERSION=r25b
ENV NDK_VERSION=r28c

RUN set -x && wget -q https://dl.google.com/android/repository/android-ndk-$NDK_VERSION-linux.zip -O /tmp/android-ndk.zip \
&& unzip -qq /tmp/android-ndk.zip -d /usr/local \
Expand Down
80 changes: 66 additions & 14 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
name: "Build ${{ matrix.platform }} in ${{ matrix.build_type }}"
strategy:
matrix:
platform: [windows, ubuntu, macos]
platform: [windows, ubuntu]
build_type: [Debug, Release]
env:
PARALLEL: -j 2
Expand Down Expand Up @@ -52,7 +52,58 @@ jobs:
- if: ${{ matrix.platform != 'windows' }}
name: Configure and build
run: |
cmake -B"build/${{ matrix.platform }}" -DVKB_BUILD_TESTS=ON -DVKB_BUILD_SAMPLES=ON
cmake -B"build/${{ matrix.platform }}" -DVKB_BUILD_TESTS=ON -DVKB_BUILD_SAMPLES=ON -DGLFW_BUILD_WAYLAND=OFF
cmake --build "build/${{ matrix.platform }}" --target vulkan_samples --config ${{ matrix.build_type }} ${{ env.PARALLEL }}

build_v2:
name: "Build ${{ matrix.platform }} in ${{ matrix.build_type }}"
strategy:
matrix:
platform: [windows, ubuntu]
build_type: [Release]
env:
PARALLEL: -j 2
runs-on: "${{ matrix.platform }}-latest"
steps:
- uses: actions/checkout@v4
with:
submodules: "recursive"

- if: ${{ matrix.platform == 'ubuntu' }}
name: Install RandR headers
run: |
sudo apt-get update
sudo apt install xorg-dev libglu1-mesa-dev

- name: Configure
run: cmake -B"build/${{ matrix.platform }}" -DVKB_BUILD_TESTS=ON -DGLFW_BUILD_WAYLAND=OFF

- name: "Build Components ${{ matrix.platform }} in ${{ matrix.build_type }}"
run: cmake --build "build/${{ matrix.platform }}" --target vkb__components --config ${{ matrix.build_type }} ${{ env.PARALLEL }}

build_macos:
needs: build
name: "Build ${{ matrix.platform }} in ${{ matrix.build_type }}"
strategy:
# masoc is 10x expensive to run on GitHub machines, so only build simplest variations
matrix:
platform: [macos]
# Release builds are about 3 times faster than debug builds
build_type: [Release]
env:
PARALLEL: -j 2
runs-on: "${{ matrix.platform }}-latest"
steps:
- uses: actions/checkout@v4
with:
submodules: "recursive"
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2.9
with:
key: ${{ github.job }}-${{ matrix.os }}
- name: Configure and build
run: |
cmake -B"build/${{ matrix.platform }}" -DVKB_BUILD_TESTS=ON -DVKB_BUILD_SAMPLES=ON -DCMAKE_OSX_SYSROOT=macosx -DCMAKE_OSX_DEPLOYMENT_TARGET=13.3
cmake --build "build/${{ matrix.platform }}" --target vulkan_samples --config ${{ matrix.build_type }} ${{ env.PARALLEL }}

build_d2d:
Expand Down Expand Up @@ -89,11 +140,11 @@ jobs:
with:
submodules: "recursive"

- name: set up JDK 11
uses: actions/setup-java@v3
- name: set up JDK
uses: actions/setup-java@v4
with:
java-version: "11"
distribution: "temurin"
java-version: "21"
distribution: "zulu"
cache: gradle
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2.9
Expand All @@ -108,11 +159,13 @@ jobs:
run: NDK_CCACHE=1 NDK_CCACHE_BIN=ccache ./gradlew app:assemble${{ matrix.build_type }} --info

build_ios:
# iOS is 10x expensive to run on GitHub machines, so only run if we know something else fast/simple passed as well
needs: build
name: "Build ios in ${{ matrix.build_type }}"
runs-on: macos-latest
strategy:
matrix:
build_type: [Debug]
build_type: [Release]

steps:
- uses: actions/checkout@v4
Expand All @@ -126,21 +179,20 @@ jobs:

- name: Load VulkanSDK from cache
id: VulkanSDK
uses: actions/cache@v1
uses: actions/cache@v4
with:
path: VulkanSDK
key: vulkan

- name: retrieve VulkanSDK
if: steps.VulkanSDK.outputs.cache-hit != 'true'
run: |
wget https://sdk.lunarg.com/sdk/download/1.3.290.0/mac/vulkansdk-macos-1.3.290.0.dmg
sudo hdiutil attach vulkansdk-macos-1.3.290.0.dmg
sudo /Volumes/vulkansdk-macos-1.3.290.0/InstallVulkan.app/Contents/MacOS/InstallVulkan --root ~/VulkanSDK --accept-licenses --default-answer --confirm-command install com.lunarg.vulkan.ios
sudo hdiutil detach /Volumes/vulkansdk-macos-1.3.290.0
wget https://sdk.lunarg.com/sdk/download/1.4.304.1/mac/vulkansdk-macos-1.4.304.1.zip
unzip vulkansdk-macos-1.4.304.1.zip
sudo InstallVulkan-1.4.304.1.app/Contents/MacOS/InstallVulkan-1.4.304.1 --root ~/VulkanSDK --accept-licenses --default-answer --confirm-command install com.lunarg.vulkan.ios

- name: build_ios
run: |
source ~/VulkanSDK/iOS/setup-env.sh
cmake -H"." -B"build/ios" -DVKB_BUILD_TESTS=ON -DVKB_BUILD_SAMPLES=ON -G Xcode -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_DEPLOYMENT_TARGET=13.0 -DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED=NO
cmake --build "build/ios" --target vulkan_samples --config ${{ matrix.build_type }} -- -sdk iphoneos -allowProvisioningUpdates
cmake -H"." -B"build/ios" -DVKB_BUILD_TESTS=ON -DVKB_BUILD_SAMPLES=ON -G Xcode -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphoneos -DCMAKE_OSX_DEPLOYMENT_TARGET=16.3 -DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED=NO
cmake --build "build/ios" --target vulkan_samples --config ${{ matrix.build_type }} -- -allowProvisioningUpdates
2 changes: 1 addition & 1 deletion .github/workflows/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ jobs:
with:
submodules: "recursive"
- run: git config --global --add safe.directory /__w/Vulkan-Samples/Vulkan-Samples
- run: cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -Bbuild/clang
- run: cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DGLFW_BUILD_WAYLAND=OFF -Bbuild/clang
- run: |
/usr/bin/run-clang-tidy -j $(($(nproc)/2+1)) -p build/clang -header-filter=framework,samples,app -checks=-*,google-*,-google-runtime-references -quiet ${{ needs.changed-files.outputs.all }}

Expand Down
44 changes: 0 additions & 44 deletions .github/workflows/v2.yml

This file was deleted.

1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
assets/scenes
cache
build
.vs
.vscode
Expand Down
12 changes: 0 additions & 12 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,6 @@
[submodule "third_party/glfw"]
path = third_party/glfw
url = https://github.com/glfw/glfw
[submodule "third_party/glslang"]
path = third_party/glslang
url = https://github.com/KhronosGroup/glslang
[submodule "third_party/spirv-cross"]
path = third_party/spirv-cross
url = https://github.com/KhronosGroup/SPIRV-Cross
Expand All @@ -37,25 +34,16 @@
[submodule "third_party/astc"]
path = third_party/astc
url = https://github.com/ARM-software/astc-encoder
[submodule "third_party/CTPL"]
path = third_party/CTPL
url = https://github.com/vit-vit/CTPL
[submodule "third_party/vulkan"]
path = third_party/vulkan
url = https://github.com/KhronosGroup/Vulkan-Headers
[submodule "assets"]
path = assets
url = https://github.com/KhronosGroup/Vulkan-Samples-Assets
shallow = true
[submodule "third_party/cli11"]
path = third_party/cli11
url = https://github.com/CLIUtils/CLI11.git
[submodule "third_party/opencl"]
path = third_party/opencl
url = https://github.com/KhronosGroup/OpenCL-Headers.git
[submodule "third_party/catch2"]
path = third_party/catch2
url = https://github.com/catchorg/Catch2.git
[submodule "third_party/fmt"]
path = third_party/fmt
url = https://github.com/fmtlib/fmt
Expand Down
59 changes: 53 additions & 6 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Copyright (c) 2020-2024, Arm Limited and Contributors
# Copyright (c) 2024, Mobica Limited
# Copyright (c) 2020-2025, Arm Limited and Contributors
# Copyright (c) 2024-2025, Mobica Limited
# Copyright (c) 2024-2025, Sascha Willems
#
# SPDX-License-Identifier: Apache-2.0
#
Expand Down Expand Up @@ -36,6 +37,9 @@ cmake_minimum_required(VERSION 3.16)

project(vulkan_samples)

if(VKB_GENERATE_ANTORA_SITE)
add_subdirectory(antora)
else ()
# search for Vulkan SDK
find_package(Vulkan)

Expand All @@ -53,11 +57,57 @@ if(Vulkan_FOUND)
else()
message(STATUS "Couldn't find DirectX Shader Compiler executable, make sure it is present in Vulkan SDK or add it manually via Vulkan_dxc_EXECUTABLE cmake variable. HLSL shaders won't be compiled.")
endif()
# slang compiler
if(NOT Vulkan_slang_exe_FOUND)
find_program(Vulkan_slang_EXECUTABLE
NAMES slangc
HINTS
"$ENV{VULKAN_SDK}/Bin"
"$ENV{VULKAN_SDK}/bin"
)
endif()
if(Vulkan_slang_EXECUTABLE)
message(STATUS "Found slang Shader Compiler under ${Vulkan_slang_EXECUTABLE}")
else()
message(STATUS "Couldn't find slang Shader Compiler executable, make sure it is present in Vulkan SDK or add it manually via Vulkan_slang_EXECUTABLE cmake variable. Slang shaders won't be compiled.")
endif()
# glsl compiler
if(NOT Vulkan_glslc_exe_FOUND)
find_program(Vulkan_glslc_EXECUTABLE
NAMES glslc
HINTS
"$ENV{VULKAN_SDK}/Bin"
"$ENV{VULKAN_SDK}/bin"
)
endif()
if(Vulkan_glslc_EXECUTABLE)
message(STATUS "Found glslc Shader Compiler under ${Vulkan_glslc_EXECUTABLE}")
else()
message(STATUS "Couldn't find glslc Shader Compiler executable, make sure it is present in Vulkan SDK or add it manually via Vulkan_glslc_EXECUTABLE cmake variable. GLSL shaders won't be compiled.")
endif()
# spvasm compiler
if(NOT Vulkan_spirvas_exe_FOUND)
find_program(Vulkan_spirvas_EXECUTABLE
NAMES spirv-as
HINTS
"$ENV{VULKAN_SDK}/Bin"
"$ENV{VULKAN_SDK}/bin"
)
endif()
if(Vulkan_spirvas_EXECUTABLE)
message(STATUS "Found spirv-as Shader Compiler under ${Vulkan_spirvas_EXECUTABLE}")
else()
message(STATUS "Couldn't find spirv-as Shader Compiler executable, make sure it is present in Vulkan SDK or add it manually via Vulkan_spirvas_EXECUTABLE cmake variable. SPIR-V assembly shaders won't be compiled.")
endif()

endif()

# globally add VKB_DEBUG for the debug build
add_compile_definitions($<$<CONFIG:DEBUG>:VKB_DEBUG>)

#globally define VULKAN_HPP_NO_STRUCT_CONSTRUCTORS to have designated initializers for the vk-structs
add_compile_definitions(VULKAN_HPP_NO_STRUCT_CONSTRUCTORS)

# globally set -fno-strict-aliasing, needed due to using reinterpret_cast
if (NOT MSVC)
add_compile_options(-fno-strict-aliasing)
Expand Down Expand Up @@ -89,8 +139,6 @@ include(component_helper)
# Add third party libraries
add_subdirectory(third_party)

vkb__enable_testing()

# Framework v2.0 components directory
add_subdirectory(components)

Expand All @@ -104,5 +152,4 @@ endif()

# Add vulkan app (runs all samples)
add_subdirectory(app)

add_subdirectory(antora)
endif ()
7 changes: 5 additions & 2 deletions README.adoc
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
////
- Copyright (c) 2019-2024, Arm Limited and Contributors
- Copyright (c) 2019-2025, Arm Limited and Contributors
-
- SPDX-License-Identifier: Apache-2.0
-
Expand Down Expand Up @@ -52,11 +52,14 @@ endif::[]
xref:samples/performance/README.adoc[Performance samples] show the recommended best practice together with real-time profiling information.
They are more advanced but also contain a detailed tutorial with more in-detail explanations.

=== Requirements

The samples are written in C{pp} and require a compiler that supports at least C{pp}20. To run the samples, a device that supports at least Vulkan 1.1 or newer is required. Some samples might require a higher Vulkan version and/or support for certain extensions.

=== Goals

* Create a collection of resources that demonstrate best-practice recommendations in Vulkan
* Create tutorials that explain the implementation of best-practices and include performance analysis guides
* Create a xref:framework/README.adoc[framework] that can be used as reference material and also as a sandbox for advanced experimentation with Vulkan

== Samples

Expand Down
7 changes: 3 additions & 4 deletions antora/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2022-2024 The Khronos Group Inc.
# Copyright 2022-2025 The Khronos Group Inc.
# SPDX-License-Identifier: Apache-2.0

# Configure Vulkan Guide Antora tree with transformed markup files.
Expand All @@ -14,16 +14,15 @@ function(gatherAntoraAssets)
samples
scripts
shaders
third_party
)
set(PAGES_DIR_SEARCH)
set(IMAGES_DIR_SEARCH)
foreach (DIR ${DIRS_TO_SEARCH})
list(APPEND PAGES_DIR_SEARCH ${CMAKE_SOURCE_DIR}/${DIR}/*.adoc)
list(APPEND IMAGES_DIR_SEARCH ${CMAKE_SOURCE_DIR}/${DIR}/*.jpg ${CMAKE_SOURCE_DIR}/${DIR}/*.png ${CMAKE_SOURCE_DIR}/${DIR}/*.gif)
list(APPEND IMAGES_DIR_SEARCH ${CMAKE_SOURCE_DIR}/${DIR}/*.jpg ${CMAKE_SOURCE_DIR}/${DIR}/*.png ${CMAKE_SOURCE_DIR}/${DIR}/*.gif ${CMAKE_SOURCE_DIR}/*.svg)
endforeach ()
file(GLOB PAGES ${CMAKE_SOURCE_DIR}/*.adoc)
file(GLOB IMAGES ${CMAKE_SOURCE_DIR}/*.jpg ${CMAKE_SOURCE_DIR}/*.png ${CMAKE_SOURCE_DIR}/*.gif)
file(GLOB IMAGES ${CMAKE_SOURCE_DIR}/*.jpg ${CMAKE_SOURCE_DIR}/*.png ${CMAKE_SOURCE_DIR}/*.gif ${CMAKE_SOURCE_DIR}/*.svg)
file(GLOB_RECURSE PAGES_R ${PAGES_DIR_SEARCH})
file(GLOB_RECURSE IMAGES_R ${IMAGES_DIR_SEARCH})

Expand Down
Loading