From 1e444971dd4f70a6edf281ce648e136c01d08ab6 Mon Sep 17 00:00:00 2001 From: antono2 Date: Tue, 22 Sep 2026 21:54:16 +0200 Subject: [PATCH 1/8] ci: pin graphics stack and make demo window mutation explicit --- .github/workflows/compile.yml | 82 ++++++++++++++++++++++++++++------- README.md | 2 + examples/glfw_vulkan/main.c.v | 4 +- 3 files changed, 71 insertions(+), 17 deletions(-) diff --git a/.github/workflows/compile.yml b/.github/workflows/compile.yml index ece1b1f..0873445 100644 --- a/.github/workflows/compile.yml +++ b/.github/workflows/compile.yml @@ -20,33 +20,36 @@ jobs: GLFW_INCLUDE: /usr/include GLFW_LIB: /usr/lib/x86_64-linux-gnu steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: path: source/demo - - uses: actions/checkout@v7 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: antono2/imgui + ref: 6e985d01bb08b49efbdf70f4a1f72e7fd0c1b09c path: source/modules/antono2/imgui submodules: recursive - - uses: actions/checkout@v7 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: antono2/vulkan + ref: v2.0.0 path: source/modules/antono2/vulkan - - uses: actions/checkout@v7 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: antono2/glfw + ref: e9a367938577919b4a5140a477c1250112978d8e path: source/modules/antono2/glfw - - uses: actions/checkout@v7 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: vlang/v ref: 1f128c94619fb6e4863c5f81883e1b860405c8fa path: toolchain/v - - uses: actions/checkout@v7 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: vlang/vc ref: 4a1ba4d772f19c2752c9850d3b5421c71f54a4d6 path: toolchain/v/vc - - uses: actions/checkout@v7 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: vlang/tccbin ref: d6e7ac1b1bcc98aed734a6ecbfa8509f24606c74 @@ -74,35 +77,36 @@ jobs: env: VMODULES: ${{ github.workspace }}/source/modules steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: path: source/demo - - uses: actions/checkout@v7 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: antono2/imgui + ref: 6e985d01bb08b49efbdf70f4a1f72e7fd0c1b09c path: source/modules/antono2/imgui submodules: recursive - - uses: actions/checkout@v7 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: antono2/vulkan - ref: d9ad9fc5151aa19f58cd2fed1b6bcda9b210f098 + ref: v2.0.0 path: source/modules/antono2/vulkan - - uses: actions/checkout@v7 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: antono2/glfw ref: 3d7c1ddacb7215a7bbeb5fef0d7a68c90ba392ed path: source/modules/antono2/glfw - - uses: actions/checkout@v7 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: vlang/v ref: 1f128c94619fb6e4863c5f81883e1b860405c8fa path: toolchain/v - - uses: actions/checkout@v7 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: vlang/vc ref: 4a1ba4d772f19c2752c9850d3b5421c71f54a4d6 path: toolchain/v/vc - - uses: actions/checkout@v7 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: zeux/volk ref: 58689c063427f5bad4f133625049b1a3c5dd8287 @@ -161,6 +165,54 @@ jobs: if (-not (Test-Path $Artifact)) { throw "Missing Windows artifact: $Artifact" } } + linux-v-master: + name: Advisory current V master and dependency masters + continue-on-error: true + runs-on: ubuntu-24.04 + timeout-minutes: 45 + env: + VMODULES: ${{ github.workspace }}/source/modules + VULKAN_SDK: /usr + GLFW_INCLUDE: /usr/include + GLFW_LIB: /usr/lib/x86_64-linux-gnu + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 + with: + path: source/demo + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 + with: + repository: antono2/imgui + ref: master + path: source/modules/antono2/imgui + submodules: recursive + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 + with: + repository: antono2/vulkan + ref: master + path: source/modules/antono2/vulkan + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 + with: + repository: antono2/glfw + ref: master + path: source/modules/antono2/glfw + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 + with: + repository: vlang/v + ref: master + path: toolchain/v + - name: Build current V master + run: | + make -C toolchain/v + echo "$GITHUB_WORKSPACE/toolchain/v" >> "$GITHUB_PATH" + - name: Install native dependencies + run: sudo apt-get update && sudo apt-get install -y build-essential cmake libglfw3-dev libvulkan-dev libvulkan-volk-dev pkg-config + - name: Build and compile demo with V3 + run: | + cd source/modules/antono2/imgui + v run build_vimgui.vsh --linkage shared --glfw system + cd "$GITHUB_WORKSPACE" + v -no-memory-limit -path "$VMODULES/antono2|@vlib|@vmodules" -cc gcc -o "$RUNNER_TEMP/v_imgui_demo" source/demo + required-checks: if: always() needs: [ubuntu24, windows2022] diff --git a/README.md b/README.md index fef69c9..17e6379 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,8 @@ This repository contains the GLFW/Vulkan example used to validate the [`antono2/imgui`](https://github.com/antono2/imgui) V bindings. +The required CI builds use `antono2.vulkan@v2.0.0` and fixed ImGui, GLFW, +and V compiler revisions. An advisory job checks their moving master branches. ## Recommended quick start diff --git a/examples/glfw_vulkan/main.c.v b/examples/glfw_vulkan/main.c.v index bc31083..6420275 100644 --- a/examples/glfw_vulkan/main.c.v +++ b/examples/glfw_vulkan/main.c.v @@ -151,7 +151,7 @@ pub fn main() { if fb_width > 0 && fb_height > 0 && (app.swapchain_rebuild || app.main_window_data.width != fb_width || app.main_window_data.height != fb_height) { impl_vulkan.set_min_image_count(app.min_image_count) - impl_vulkan.create_or_resize_window(app.instance, app.physical_device, app.device, wd, app.queue_family, app.allocator, fb_width, fb_height, app.min_image_count) + impl_vulkan.create_or_resize_window(app.instance, app.physical_device, app.device, mut wd, app.queue_family, app.allocator, fb_width, fb_height, app.min_image_count) app.main_window_data.frame_index = 0 app.swapchain_rebuild = false } @@ -468,7 +468,7 @@ pub fn (mut app App) setup_vulkan_window(mut wd &impl_vulkan.Window, surface vk. // Create SwapChain, RenderPass, Framebuffer, etc. assert app.min_image_count >= 2 - impl_vulkan.create_or_resize_window(app.instance, app.physical_device, app.device, wd, app.queue_family, app.allocator, width, height, app.min_image_count) + impl_vulkan.create_or_resize_window(app.instance, app.physical_device, app.device, mut wd, app.queue_family, app.allocator, width, height, app.min_image_count) } pub fn (mut app App) frame_render(mut wd impl_vulkan.Window, draw_data &imgui.ImDrawData) { From e0e75cd520f96090cec8e110294b047bacc4c4bb Mon Sep 17 00:00:00 2001 From: antono2 Date: Tue, 22 Sep 2026 21:57:46 +0200 Subject: [PATCH 2/8] ci: use V3-compatible ImGui revision --- .github/workflows/compile.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/compile.yml b/.github/workflows/compile.yml index 0873445..3379508 100644 --- a/.github/workflows/compile.yml +++ b/.github/workflows/compile.yml @@ -26,7 +26,7 @@ jobs: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: antono2/imgui - ref: 6e985d01bb08b49efbdf70f4a1f72e7fd0c1b09c + ref: 755f42ea3bf35a35fdf2eb36703d00c6a43bf48a path: source/modules/antono2/imgui submodules: recursive - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 @@ -83,7 +83,7 @@ jobs: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: antono2/imgui - ref: 6e985d01bb08b49efbdf70f4a1f72e7fd0c1b09c + ref: 755f42ea3bf35a35fdf2eb36703d00c6a43bf48a path: source/modules/antono2/imgui submodules: recursive - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 From 8b7c1957ca2b96ae474f3a5289f1b089b122d149 Mon Sep 17 00:00:00 2001 From: antono2 Date: Tue, 22 Sep 2026 22:00:11 +0200 Subject: [PATCH 3/8] ci: use cleaned ImGui release candidate --- .github/workflows/compile.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/compile.yml b/.github/workflows/compile.yml index 3379508..7d34e15 100644 --- a/.github/workflows/compile.yml +++ b/.github/workflows/compile.yml @@ -26,7 +26,7 @@ jobs: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: antono2/imgui - ref: 755f42ea3bf35a35fdf2eb36703d00c6a43bf48a + ref: 2f0cab3 path: source/modules/antono2/imgui submodules: recursive - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 @@ -83,7 +83,7 @@ jobs: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: antono2/imgui - ref: 755f42ea3bf35a35fdf2eb36703d00c6a43bf48a + ref: 2f0cab3 path: source/modules/antono2/imgui submodules: recursive - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 From 5036bce0e7fb6652190a9c0b110fd9ca31dd9431 Mon Sep 17 00:00:00 2001 From: antono2 Date: Tue, 22 Sep 2026 22:00:30 +0200 Subject: [PATCH 4/8] ci: use full ImGui commit pin --- .github/workflows/compile.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/compile.yml b/.github/workflows/compile.yml index 7d34e15..477a241 100644 --- a/.github/workflows/compile.yml +++ b/.github/workflows/compile.yml @@ -26,7 +26,7 @@ jobs: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: antono2/imgui - ref: 2f0cab3 + ref: 2f0cab347957cc77d016fbc4442be4848e475aeb path: source/modules/antono2/imgui submodules: recursive - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 @@ -83,7 +83,7 @@ jobs: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: antono2/imgui - ref: 2f0cab3 + ref: 2f0cab347957cc77d016fbc4442be4848e475aeb path: source/modules/antono2/imgui submodules: recursive - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 From 3349e3daa0211d3710297921db98ba5a611224ea Mon Sep 17 00:00:00 2001 From: antono2 Date: Tue, 22 Sep 2026 22:16:39 +0200 Subject: [PATCH 5/8] ci: require pinned V3 frontend and consume fixed ImGui --- .github/workflows/compile.yml | 55 +++++++++++++++++++++++++++++++++-- 1 file changed, 53 insertions(+), 2 deletions(-) diff --git a/.github/workflows/compile.yml b/.github/workflows/compile.yml index 477a241..11f3c79 100644 --- a/.github/workflows/compile.yml +++ b/.github/workflows/compile.yml @@ -26,7 +26,7 @@ jobs: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: antono2/imgui - ref: 2f0cab347957cc77d016fbc4442be4848e475aeb + ref: 6171c5eb98c363724b9aad297a7549909d182231 path: source/modules/antono2/imgui submodules: recursive - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 @@ -83,7 +83,7 @@ jobs: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: antono2/imgui - ref: 2f0cab347957cc77d016fbc4442be4848e475aeb + ref: 6171c5eb98c363724b9aad297a7549909d182231 path: source/modules/antono2/imgui submodules: recursive - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 @@ -165,6 +165,57 @@ jobs: if (-not (Test-Path $Artifact)) { throw "Missing Windows artifact: $Artifact" } } + strict-v3-frontend: + name: Required pinned V3 frontend + runs-on: ubuntu-24.04 + timeout-minutes: 45 + env: + VMODULES: ${{ github.workspace }}/source/modules + VULKAN_SDK: /usr + GLFW_INCLUDE: /usr/include + GLFW_LIB: /usr/lib/x86_64-linux-gnu + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 + with: + path: source/demo + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 + with: + repository: antono2/imgui + ref: 6171c5eb98c363724b9aad297a7549909d182231 + path: source/modules/antono2/imgui + submodules: recursive + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 + with: + repository: antono2/vulkan + ref: 57cb3b5495c9441ce180f28e48ae34df6332da52 + path: source/modules/antono2/vulkan + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 + with: + repository: antono2/glfw + ref: e9a367938577919b4a5140a477c1250112978d8e + path: source/modules/antono2/glfw + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 + with: + repository: vlang/v + ref: f59b886d2564e37d8626d715236fdfa928e13dda + path: toolchain/v + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 + with: + repository: vlang/vc + ref: 4598bc7e4894c154b27391e4442005fff2fbbd68 + path: toolchain/v/vc + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 + with: + repository: vlang/tccbin + ref: d6e7ac1b1bcc98aed734a6ecbfa8509f24606c74 + path: toolchain/v/thirdparty/tcc + - name: Build pinned V3 compiler + run: | + make -C toolchain/v local=1 + echo "$GITHUB_WORKSPACE/toolchain/v" >> "$GITHUB_PATH" + - name: Check demo with V3 + run: v -new-compiler -check -path "$VMODULES/antono2|@vlib|@vmodules" source/demo + linux-v-master: name: Advisory current V master and dependency masters continue-on-error: true From 98d3e3e49a3f85a556e3c5e0257445cfe687143b Mon Sep 17 00:00:00 2001 From: antono2 Date: Tue, 22 Sep 2026 22:26:18 +0200 Subject: [PATCH 6/8] ci: test final V3-compatible ImGui binding revision --- .github/workflows/compile.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/compile.yml b/.github/workflows/compile.yml index 11f3c79..3095c14 100644 --- a/.github/workflows/compile.yml +++ b/.github/workflows/compile.yml @@ -26,7 +26,7 @@ jobs: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: antono2/imgui - ref: 6171c5eb98c363724b9aad297a7549909d182231 + ref: cbe8c5a6c6c84f823e3c90105b561d7b9be1dac4 path: source/modules/antono2/imgui submodules: recursive - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 @@ -83,7 +83,7 @@ jobs: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: antono2/imgui - ref: 6171c5eb98c363724b9aad297a7549909d182231 + ref: cbe8c5a6c6c84f823e3c90105b561d7b9be1dac4 path: source/modules/antono2/imgui submodules: recursive - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 @@ -181,7 +181,7 @@ jobs: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: antono2/imgui - ref: 6171c5eb98c363724b9aad297a7549909d182231 + ref: cbe8c5a6c6c84f823e3c90105b561d7b9be1dac4 path: source/modules/antono2/imgui submodules: recursive - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 From 5358663feec9fed72521eed34dede1bc5cc52be0 Mon Sep 17 00:00:00 2001 From: antono2 Date: Tue, 22 Sep 2026 22:31:47 +0200 Subject: [PATCH 7/8] ci: consume corrected ImPlot aliases --- .github/workflows/compile.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/compile.yml b/.github/workflows/compile.yml index 3095c14..2cf8e85 100644 --- a/.github/workflows/compile.yml +++ b/.github/workflows/compile.yml @@ -26,7 +26,7 @@ jobs: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: antono2/imgui - ref: cbe8c5a6c6c84f823e3c90105b561d7b9be1dac4 + ref: c031892d7466f3ea72b1bb9c3f2e0d08b427b014 path: source/modules/antono2/imgui submodules: recursive - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 @@ -83,7 +83,7 @@ jobs: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: antono2/imgui - ref: cbe8c5a6c6c84f823e3c90105b561d7b9be1dac4 + ref: c031892d7466f3ea72b1bb9c3f2e0d08b427b014 path: source/modules/antono2/imgui submodules: recursive - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 @@ -181,7 +181,7 @@ jobs: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: antono2/imgui - ref: cbe8c5a6c6c84f823e3c90105b561d7b9be1dac4 + ref: c031892d7466f3ea72b1bb9c3f2e0d08b427b014 path: source/modules/antono2/imgui submodules: recursive - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 From f96db794abfdd130f27f9e76eb3c8263ecc502d7 Mon Sep 17 00:00:00 2001 From: antono2 Date: Tue, 22 Sep 2026 23:15:16 +0200 Subject: [PATCH 8/8] ci: pin merged ImGui and Vulkan compatibility commits --- .github/workflows/compile.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/compile.yml b/.github/workflows/compile.yml index 2cf8e85..1c11a6b 100644 --- a/.github/workflows/compile.yml +++ b/.github/workflows/compile.yml @@ -26,7 +26,7 @@ jobs: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: antono2/imgui - ref: c031892d7466f3ea72b1bb9c3f2e0d08b427b014 + ref: ddda851313cfe08038c32694123763dff34d2a4e path: source/modules/antono2/imgui submodules: recursive - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 @@ -83,7 +83,7 @@ jobs: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: antono2/imgui - ref: c031892d7466f3ea72b1bb9c3f2e0d08b427b014 + ref: ddda851313cfe08038c32694123763dff34d2a4e path: source/modules/antono2/imgui submodules: recursive - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 @@ -181,13 +181,13 @@ jobs: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: antono2/imgui - ref: c031892d7466f3ea72b1bb9c3f2e0d08b427b014 + ref: ddda851313cfe08038c32694123763dff34d2a4e path: source/modules/antono2/imgui submodules: recursive - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: antono2/vulkan - ref: 57cb3b5495c9441ce180f28e48ae34df6332da52 + ref: 42e6c381e37952ef07f4cd560c9996fd2435cd41 path: source/modules/antono2/vulkan - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: