Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
bf4e9ff
WIP in migrating vk::instance and replacing header includes to using …
SpinnerX Dec 20, 2025
fc51767
Changed path to vk.cppm to correct directory name
SpinnerX Dec 20, 2025
99f57cd
Replaced headers in demos and vk::physical_device to C++ modules
SpinnerX Dec 20, 2025
2cee7d4
Added migrated logical devices and queue family modules
SpinnerX Dec 20, 2025
73974f2
Replaced types.hpp with types.cppm to be imported as a module
SpinnerX Dec 20, 2025
14b0c1c
Demo 4 works with migrating vulkan surface code to modules
SpinnerX Dec 20, 2025
c5bad47
Swapchain demo works after migrating to modules
SpinnerX Dec 20, 2025
1d927b1
Migraated vulkan graphics pipeline implementation to be imported as C…
SpinnerX Dec 20, 2025
539ad8b
Made vertex_buffer implementation into a C++ module
SpinnerX Dec 20, 2025
6460615
Applied more changes in making vulkan-cpp wrappers to be imported as …
SpinnerX Dec 20, 2025
d663340
Descriptor sets work after migrating to modules
SpinnerX Dec 20, 2025
7b6ac4c
All demos work after migrating to modules and added the texture imple…
SpinnerX Dec 20, 2025
3407ebf
Added buffer_streams.cppm module
SpinnerX Dec 20, 2025
8095f27
Removed the old header and sources to replaced for using the modules …
SpinnerX Dec 20, 2025
931a828
Removed old headers from the demos
SpinnerX Dec 20, 2025
14e3c09
Version update to 4.0
SpinnerX Dec 20, 2025
5893021
Added github actions CI
SpinnerX Dec 20, 2025
4323e25
Revert "Added github actions CI"
SpinnerX Dec 20, 2025
c112926
Added githuhb actions
SpinnerX Dec 20, 2025
5158d4f
Revert "Added githuhb actions"
SpinnerX Dec 20, 2025
60f42ff
Reapply "Added githuhb actions"
SpinnerX Dec 20, 2025
d837b34
Revert "Reapply "Added githuhb actions""
SpinnerX Dec 20, 2025
d4b8a72
Adding CI
SpinnerX Dec 20, 2025
fe3ce1c
Removing CI from this branch
SpinnerX Dec 20, 2025
a0931d4
Adding CI
SpinnerX Dec 20, 2025
ab06879
Removed .github dir
SpinnerX Dec 20, 2025
c4d89ff
Merge branch 'main' of https://github.com/engine3d-dev/vulkan-cpp int…
SpinnerX Dec 20, 2025
b8d676b
Removed generate_compile_commands() call in cmake file
SpinnerX Dec 29, 2025
ee28f17
Actually removed the generate_compile_commands call because it was or…
SpinnerX Dec 29, 2025
2658d48
Did some cleanup to conanfile.py
SpinnerX Dec 29, 2025
363fd5c
Updated the build system to correctly install vulkan-cpp to be consum…
SpinnerX Jan 9, 2026
1fabe37
Fixed the modules installation and re-added cmake-utils functions
SpinnerX Jan 9, 2026
0bd5df9
Fixed vulkan-cpp cmake and conanfile to be consumed by external appli…
SpinnerX Jan 9, 2026
d30aad1
Updated the github actions to build validation
SpinnerX Jan 9, 2026
cc0e878
Merge branch 'main' of https://github.com/engine3d-dev/vulkan-cpp int…
SpinnerX Jan 9, 2026
f81268a
Fixed structure to the github actions
SpinnerX Jan 9, 2026
414a55d
Added Vulkan SDK installation to github actions
SpinnerX Jan 9, 2026
5505724
Updated the vulkan sdk installation to work in the CI
SpinnerX Jan 9, 2026
c2a131c
Fixed incorrect path to mac git workflows
SpinnerX Jan 9, 2026
cdbd4e1
Fixed mac github workflows yml
SpinnerX Jan 9, 2026
f7bbe20
WIP in getting the linux workflows to work
SpinnerX Jan 9, 2026
847f590
Added missing <cstring> include
SpinnerX Jan 9, 2026
16b776c
WIP linux git workflow
SpinnerX Jan 9, 2026
6ab6dfc
WIP linux git workflow
SpinnerX Jan 9, 2026
fdb6bb9
WIP windows.yml fix
SpinnerX Jan 9, 2026
c05ebb8
WIP windows.yml fix
SpinnerX Jan 9, 2026
28dfe52
WIP platform-github actions
SpinnerX Jan 9, 2026
c3344bd
Conformed demo code to clang-format
SpinnerX Jan 9, 2026
6571638
Conformed vulkan-cpp/types.cppm to clang-format
SpinnerX Jan 9, 2026
c1fe73a
Finalizing git workflows
SpinnerX Jan 9, 2026
d1f368b
Removed two demos that werent needed
SpinnerX Jan 9, 2026
deae2e4
Removed tinyobjloader dependency from the conanfile
SpinnerX Jan 9, 2026
234ced3
Finalized demo changes and conformed to clang-format
SpinnerX Jan 9, 2026
9238799
Added missing <vector> include
SpinnerX Jan 9, 2026
6c4e6d5
Updated linux.yml and vulkan-cpp/3.0 to 4.0
SpinnerX Jan 9, 2026
32e9149
WIP linux.yml to update conan version for github actions
SpinnerX Jan 9, 2026
d70aa33
WIP linux.yml
SpinnerX Jan 9, 2026
515027f
WIP deploy_windows.yml
SpinnerX Jan 10, 2026
9c3d02c
WIP deploy_windows.yml
SpinnerX Jan 10, 2026
2c0d124
WIP deploy_windows.yml
SpinnerX Jan 10, 2026
f337b89
WIP deploy_windows.yml
SpinnerX Jan 10, 2026
1b271e5
WIP deploy_windows.yml
SpinnerX Jan 10, 2026
6ae0131
WIP deploy_windows.yml
SpinnerX Jan 10, 2026
91bd29e
WIP deploy_windows.yml
SpinnerX Jan 10, 2026
a220a0b
WIP deploy_windows.yml
SpinnerX Jan 10, 2026
576e9f4
WIP deploy_windows.yml
SpinnerX Jan 10, 2026
40d2481
WIP deploy_windows.yml
SpinnerX Jan 10, 2026
44b93df
WIP deploy_windows.yml
SpinnerX Jan 10, 2026
566f57d
WIP deploy_windows.yml
SpinnerX Jan 10, 2026
3d4664b
WIP windows and linux deployment
SpinnerX Jan 10, 2026
4866794
WIP windows and linux deployment
SpinnerX Jan 10, 2026
1b58c47
WIP linux.yml deployment
SpinnerX Jan 10, 2026
cd1a926
Finalizing deploy_linux.yml
SpinnerX Jan 10, 2026
61314d5
Removing tinyobjloader dependencies from demos 1 to 11, which isnt ne…
SpinnerX Jan 10, 2026
578d10a
Removed tinyobjloader dependency from test_package
SpinnerX Jan 10, 2026
7f1abaf
WIP deploy_mac.yml
SpinnerX Jan 10, 2026
ebd0f6f
WIP deploy_mac.yml
SpinnerX Jan 10, 2026
0622dd5
WIP deploy_mac.yml
SpinnerX Jan 10, 2026
c054910
Finalized deploy_mac.yml changes
SpinnerX Jan 10, 2026
73b920e
Finalized linux.yml workflow
SpinnerX Jan 10, 2026
a606ec7
Cleaned up project cmake
SpinnerX Jan 10, 2026
65c64c5
Cleaned up conanfile.py
SpinnerX Jan 10, 2026
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
45 changes: 0 additions & 45 deletions .github/linux.yml

This file was deleted.

38 changes: 0 additions & 38 deletions .github/mac.yml

This file was deleted.

51 changes: 0 additions & 51 deletions .github/windows.yml

This file was deleted.

File renamed without changes.
File renamed without changes.
66 changes: 66 additions & 0 deletions .github/workflows/deploy_linux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: Deploy to Linux

on:
pull_request:
types: [closed]
branches:
- main # Only trigger for PRs merged into main

jobs:
linux_x86_64:
if: github.event.pull_request.merged == true
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Install LLVM's C++ Standard Library
run: sudo apt-get install libc++-20-dev libc++abi-20-dev

- name: Installing pipx
run: sudo apt install pipx

- name: Installing Prerequisites for Linux
run: |
sudo apt-get update
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:deadsnakes/ppa

- name: Install Vulkan SDK
uses: humbletim/[email protected]
with:
vulkan-query-version: 1.4.304.1
vulkan-components: Vulkan-Headers, Vulkan-Loader
vulkan-use-cache: true

- name: Pip installing conan
shell: pwsh
run: pipx install conan

- name: Setting up conan profiles
shell: pwsh
run: conan config install -sf profiles/x86_64/linux/ -tf profiles https://github.com/engine3d-dev/conan-config.git

- name: Setting up Remote Repositories
shell: pwsh
run: |
conan remote add engine3d-conan https://libhal.jfrog.io/artifactory/api/conan/engine3d-conan
conan remote add libhal-trunk https://libhal.jfrog.io/artifactory/api/conan/trunk-conan

- name: Creating Release build for vulkan-cpp
shell: pwsh
run: conan create . -b missing -s build_type=Release -pr linux_x86_64 -c tools.system.package_manager:sudo=True -c tools.system.package_manager:mode=install

- name: Creating Debug build for vulkan-cpp
shell: pwsh
run: conan create . -b missing -s build_type=Debug -pr linux_x86_64 -c tools.system.package_manager:sudo=True -c tools.system.package_manager:mode=install

- name: Creating MinSizeRel build for vulkan-cpp
shell: pwsh
run: conan create . -b missing -s build_type=MinSizeRel -pr linux_x86_64 -c tools.system.package_manager:sudo=True -c tools.system.package_manager:mode=install

- name: Login to JFrog
run: conan remote login -p ${{ secrets.JFROG_USER_TOKEN_ID }} engine3d-conan ${{ secrets.JFROG_USERNAME }}

- name: Uploading vulkan-cpp to engine3d-conan remote repositories
shell: pwsh
run: conan upload vulkan-cpp/4.0 --r=engine3d-conan --confirm
62 changes: 62 additions & 0 deletions .github/workflows/deploy_mac.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: Deploy to MacOS Armv8

on:
pull_request:
types: [closed]
branches:
- main # Only trigger for PRs merged into main

jobs:
macos_armv8:
if: github.event.pull_request.merged == true
runs-on: macos-latest
steps:
- uses: actions/checkout@v4

- name: Install Homebrew
run: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

- name: Install LLVM
run: brew install python pipx llvm@20

- name: Install Vulkan SDK
uses: humbletim/[email protected]
with:
vulkan-query-version: 1.4.304.1
vulkan-components: Vulkan-Headers, Vulkan-Loader
vulkan-use-cache: true

- name: Pipx installing conan
shell: pwsh
run: |
pipx install "conan>=2.18.2"
pipx upgrade conan

- name: Setting up conan profiles
shell: pwsh
run: conan config install -sf profiles/armv8/mac/ -tf profiles https://github.com/engine3d-dev/conan-config.git

- name: Setting up Remote Repositories
shell: pwsh
run: |
conan remote add engine3d-conan https://libhal.jfrog.io/artifactory/api/conan/engine3d-conan
conan remote add libhal-trunk https://libhal.jfrog.io/artifactory/api/conan/trunk-conan

- name: Creating Release build for vulkan-cpp
shell: pwsh
run: conan create . -b missing -s build_type=Release -pr mac_armv8

- name: Creating Debug build for vulkan-cpp
shell: pwsh
run: conan create . -b missing -s build_type=Debug -pr mac_armv8

- name: Creating MinSizeRel build for vulkan-cpp
shell: pwsh
run: conan create . -b missing -s build_type=MinSizeRel -pr mac_armv8

- name: Login to JFrog
run: conan remote login -p ${{ secrets.JFROG_USER_TOKEN_ID }} engine3d-conan ${{ secrets.JFROG_USERNAME }}

- name: Uploading vulkan-cpp to engine3d-conan remote repositories
shell: pwsh
run: conan upload vulkan-cpp/4.0 --r=engine3d-conan --confirm
67 changes: 67 additions & 0 deletions .github/workflows/deploy_windows.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name: Deploy to Windows

on:
pull_request:
types: [closed]
branches:
- main # Only trigger for PRs merged into main

jobs:
windows_x86_64:
if: github.event.pull_request.merged == true
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Installing Choco
shell: pwsh
run: Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

- name: Install tooling with Choco
shell: pwsh
run: |
choco install cmake.install --version=3.31.6
cmake --version
choco install llvm --version=20.1.4
clang++ --version
choco install git make mingw

- name: Install Vulkan SDK
uses: humbletim/[email protected]
with:
vulkan-query-version: 1.4.304.1
vulkan-components: Vulkan-Headers, Vulkan-Loader
vulkan-use-cache: true


- name: Pip installing conan
shell: pwsh
run: pip install conan

- name: Setting up conan profiles
shell: pwsh
run: conan config install -sf profiles/x86_64/Windows/ -tf profiles https://github.com/engine3d-dev/conan-config.git

- name: Setting up Remote Repositories
shell: pwsh
run: |
conan remote add engine3d-conan https://libhal.jfrog.io/artifactory/api/conan/engine3d-conan
conan remote add libhal-trunk https://libhal.jfrog.io/artifactory/api/conan/trunk-conan

- name: Creating Release build for vulkan-cpp
shell: pwsh
run: conan create . -b missing -s build_type=Release -pr windows_x86_64

- name: Creating Debug build for vulkan-cpp
shell: pwsh
run: conan create . -b missing -s build_type=Debug -pr windows_x86_64

- name: Creating MinSizeRel build for vulkan-cpp
shell: pwsh
run: conan create . -b missing -s build_type=MinSizeRel -pr windows_x86_64

- name: Login to JFrog
run: conan remote login -p ${{ secrets.JFROG_USER_TOKEN_ID }} engine3d-conan ${{ secrets.JFROG_USERNAME }}

- name: Uploading vulkan-cpp to engine3d-conan remote repositories
shell: pwsh
run: conan upload vulkan-cpp/4.0 --r=engine3d-conan --confirm
56 changes: 56 additions & 0 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: Linux Platform Build

on: [pull_request]

jobs:
linux-build:
name: "Linux-Build"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

# - name: Install LLVM
# run: wget https://apt.llvm.org/llvm.sh && chmod +x llvm.sh && sudo ./llvm.sh

- name: Install LLVM's C++ Standard Library
run: sudo apt-get install libc++-20-dev libc++abi-20-dev

- name: Installing pipx
run: sudo apt install pipx

- name: Installing Prerequisites for Linux
run: |
sudo apt-get update
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:deadsnakes/ppa

- name: Install Vulkan SDK
uses: humbletim/[email protected]
with:
vulkan-query-version: 1.4.304.1
vulkan-components: Vulkan-Headers, Vulkan-Loader
vulkan-use-cache: true

- name: Installing Conan
run: pipx install "conan>=2.18.1"

- name: Setting up Conan Profiles
run: conan config install -sf profiles/x86_64/linux/ -tf profiles https://github.com/engine3d-dev/conan-config.git

- name: Adding Conan remote dependencies
run: |
conan remote add engine3d-conan https://libhal.jfrog.io/artifactory/api/conan/engine3d-conan
conan remote add libhal-trunk https://libhal.jfrog.io/artifactory/api/conan/trunk-conan

- name: Creating Release build for vulkan-cpp
shell: pwsh
run: conan create . -b missing -s build_type=Release -pr linux_x86_64 -c tools.system.package_manager:sudo=True -c tools.system.package_manager:mode=install

- name: Creating Debug build for vulkan-cpp
shell: pwsh
run: conan create . -b missing -s build_type=Debug -pr linux_x86_64 -c tools.system.package_manager:sudo=True -c tools.system.package_manager:mode=install

- name: Creating MinSizeRel build for vulkan-cpp
shell: pwsh
run: conan create . -b missing -s build_type=MinSizeRel -pr linux_x86_64 -c tools.system.package_manager:sudo=True -c tools.system.package_manager:mode=install

Loading
Loading