From eac8cb954c91f33970def746d833ac3fd245caeb Mon Sep 17 00:00:00 2001 From: firestar99 Date: Thu, 4 Dec 2025 11:57:00 +0100 Subject: [PATCH 1/8] rename crates `ash` -> `mygraphics`, `shaders` -> `mygraphics-shaders`, bulk move --- graphics/{shaders => mygraphics-shaders}/Cargo.toml | 0 graphics/{shaders => mygraphics-shaders}/src/lib.rs | 0 graphics/{ash => mygraphics}/Cargo.toml.liquid | 0 graphics/{ash => mygraphics}/build.rs.liquid | 0 graphics/{ash => mygraphics}/src/device.rs | 0 graphics/{ash => mygraphics}/src/graphics.rs | 0 graphics/{ash => mygraphics}/src/main.rs | 0 graphics/{ash => mygraphics}/src/single_command_buffer.rs | 0 graphics/{ash => mygraphics}/src/swapchain.rs | 0 9 files changed, 0 insertions(+), 0 deletions(-) rename graphics/{shaders => mygraphics-shaders}/Cargo.toml (100%) rename graphics/{shaders => mygraphics-shaders}/src/lib.rs (100%) rename graphics/{ash => mygraphics}/Cargo.toml.liquid (100%) rename graphics/{ash => mygraphics}/build.rs.liquid (100%) rename graphics/{ash => mygraphics}/src/device.rs (100%) rename graphics/{ash => mygraphics}/src/graphics.rs (100%) rename graphics/{ash => mygraphics}/src/main.rs (100%) rename graphics/{ash => mygraphics}/src/single_command_buffer.rs (100%) rename graphics/{ash => mygraphics}/src/swapchain.rs (100%) diff --git a/graphics/shaders/Cargo.toml b/graphics/mygraphics-shaders/Cargo.toml similarity index 100% rename from graphics/shaders/Cargo.toml rename to graphics/mygraphics-shaders/Cargo.toml diff --git a/graphics/shaders/src/lib.rs b/graphics/mygraphics-shaders/src/lib.rs similarity index 100% rename from graphics/shaders/src/lib.rs rename to graphics/mygraphics-shaders/src/lib.rs diff --git a/graphics/ash/Cargo.toml.liquid b/graphics/mygraphics/Cargo.toml.liquid similarity index 100% rename from graphics/ash/Cargo.toml.liquid rename to graphics/mygraphics/Cargo.toml.liquid diff --git a/graphics/ash/build.rs.liquid b/graphics/mygraphics/build.rs.liquid similarity index 100% rename from graphics/ash/build.rs.liquid rename to graphics/mygraphics/build.rs.liquid diff --git a/graphics/ash/src/device.rs b/graphics/mygraphics/src/device.rs similarity index 100% rename from graphics/ash/src/device.rs rename to graphics/mygraphics/src/device.rs diff --git a/graphics/ash/src/graphics.rs b/graphics/mygraphics/src/graphics.rs similarity index 100% rename from graphics/ash/src/graphics.rs rename to graphics/mygraphics/src/graphics.rs diff --git a/graphics/ash/src/main.rs b/graphics/mygraphics/src/main.rs similarity index 100% rename from graphics/ash/src/main.rs rename to graphics/mygraphics/src/main.rs diff --git a/graphics/ash/src/single_command_buffer.rs b/graphics/mygraphics/src/single_command_buffer.rs similarity index 100% rename from graphics/ash/src/single_command_buffer.rs rename to graphics/mygraphics/src/single_command_buffer.rs diff --git a/graphics/ash/src/swapchain.rs b/graphics/mygraphics/src/swapchain.rs similarity index 100% rename from graphics/ash/src/swapchain.rs rename to graphics/mygraphics/src/swapchain.rs From 2c814bac4468a5fbef53189651fed2b00189deac Mon Sep 17 00:00:00 2001 From: firestar99 Date: Thu, 4 Dec 2025 11:58:45 +0100 Subject: [PATCH 2/8] rename crates `ash` -> `mygraphics`, `shaders` -> `mygraphics-shaders`, manual adjustments --- graphics/Cargo.toml.liquid | 4 ++-- graphics/mygraphics-shaders/Cargo.toml | 2 +- graphics/mygraphics/Cargo.toml.liquid | 4 ++-- graphics/mygraphics/build.rs.liquid | 2 +- graphics/mygraphics/src/graphics.rs | 2 +- graphics/mygraphics/src/main.rs | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/graphics/Cargo.toml.liquid b/graphics/Cargo.toml.liquid index 97e1458..7794d07 100644 --- a/graphics/Cargo.toml.liquid +++ b/graphics/Cargo.toml.liquid @@ -1,7 +1,7 @@ [workspace] members = [ - "ash", - "shaders" + "mygraphics", + "mygraphics-shaders" ] resolver = "3" diff --git a/graphics/mygraphics-shaders/Cargo.toml b/graphics/mygraphics-shaders/Cargo.toml index c6b52e0..0860c8b 100644 --- a/graphics/mygraphics-shaders/Cargo.toml +++ b/graphics/mygraphics-shaders/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "graphics-shaders" +name = "mygraphics-shaders" version = "0.1.0" edition = "2024" diff --git a/graphics/mygraphics/Cargo.toml.liquid b/graphics/mygraphics/Cargo.toml.liquid index 4574e79..4ecf8ff 100644 --- a/graphics/mygraphics/Cargo.toml.liquid +++ b/graphics/mygraphics/Cargo.toml.liquid @@ -1,5 +1,5 @@ [package] -name = "graphics-ash" +name = "mygraphics" publish = false version.workspace = true authors.workspace = true @@ -18,7 +18,7 @@ use-compiled-tools = ["spirv-builder/use-compiled-tools"] {% endif -%} [dependencies] -graphics-shaders = { path = "../shaders" } +mygraphics-shaders = { path = "../mygraphics-shaders" } ash.workspace = true ash-window.workspace = true diff --git a/graphics/mygraphics/build.rs.liquid b/graphics/mygraphics/build.rs.liquid index 0f69a40..7debc6e 100644 --- a/graphics/mygraphics/build.rs.liquid +++ b/graphics/mygraphics/build.rs.liquid @@ -9,7 +9,7 @@ use std::path::PathBuf; pub fn main() -> anyhow::Result<()> { let manifest_dir = env!("CARGO_MANIFEST_DIR"); - let crate_path = [manifest_dir, "..", "shaders"] + let crate_path = [manifest_dir, "..", "mygraphics-shaders"] .iter() .copied() .collect::(); diff --git a/graphics/mygraphics/src/graphics.rs b/graphics/mygraphics/src/graphics.rs index 18c6437..6bcc6b1 100644 --- a/graphics/mygraphics/src/graphics.rs +++ b/graphics/mygraphics/src/graphics.rs @@ -3,7 +3,7 @@ use crate::single_command_buffer::SingleCommandBuffer; use crate::swapchain::DrawFrame; use anyhow::Context; use ash::vk; -use graphics_shaders::ShaderConstants; +use mygraphics_shaders::ShaderConstants; use std::sync::Arc; /// Manages the creation and recreation of [`MyRenderPipeline`], whenever new shader code ([`Self::set_shader_code`]) diff --git a/graphics/mygraphics/src/main.rs b/graphics/mygraphics/src/main.rs index 45bdd81..afd8720 100644 --- a/graphics/mygraphics/src/main.rs +++ b/graphics/mygraphics/src/main.rs @@ -74,7 +74,7 @@ use crate::device::MyDevice; use crate::graphics::{MyRenderPipelineManager, MyRenderer}; use crate::swapchain::MySwapchainManager; use ash::util::read_spv; -use graphics_shaders::ShaderConstants; +use mygraphics_shaders::ShaderConstants; use raw_window_handle::HasDisplayHandle as _; use winit::event_loop::ActiveEventLoop; use winit::{ From 292cd45266016d7711d7a66f8d743d6fa0056e52 Mon Sep 17 00:00:00 2001 From: firestar99 Date: Thu, 4 Dec 2025 11:59:19 +0100 Subject: [PATCH 3/8] rename crates `ash` -> `mygraphics`, `shaders` -> `mygraphics-shaders`, xtask generate --- generated/graphics/cargo-gpu/Cargo.toml | 4 ++-- .../cargo-gpu/{shaders => mygraphics-shaders}/Cargo.toml | 2 +- .../cargo-gpu/{shaders => mygraphics-shaders}/src/lib.rs | 0 generated/graphics/cargo-gpu/{ash => mygraphics}/Cargo.toml | 4 ++-- generated/graphics/cargo-gpu/{ash => mygraphics}/build.rs | 2 +- .../graphics/cargo-gpu/{ash => mygraphics}/src/device.rs | 0 .../ash => cargo-gpu/mygraphics}/src/graphics.rs | 2 +- .../{spirv-builder/ash => cargo-gpu/mygraphics}/src/main.rs | 2 +- .../{ash => mygraphics}/src/single_command_buffer.rs | 0 .../graphics/cargo-gpu/{ash => mygraphics}/src/swapchain.rs | 0 generated/graphics/spirv-builder/Cargo.toml | 4 ++-- .../spirv-builder/{shaders => mygraphics-shaders}/Cargo.toml | 2 +- .../spirv-builder/{shaders => mygraphics-shaders}/src/lib.rs | 0 .../graphics/spirv-builder/{ash => mygraphics}/Cargo.toml | 4 ++-- generated/graphics/spirv-builder/{ash => mygraphics}/build.rs | 2 +- .../graphics/spirv-builder/{ash => mygraphics}/src/device.rs | 0 .../ash => spirv-builder/mygraphics}/src/graphics.rs | 2 +- .../{cargo-gpu/ash => spirv-builder/mygraphics}/src/main.rs | 2 +- .../{ash => mygraphics}/src/single_command_buffer.rs | 0 .../spirv-builder/{ash => mygraphics}/src/swapchain.rs | 0 20 files changed, 16 insertions(+), 16 deletions(-) rename generated/graphics/cargo-gpu/{shaders => mygraphics-shaders}/Cargo.toml (87%) rename generated/graphics/cargo-gpu/{shaders => mygraphics-shaders}/src/lib.rs (100%) rename generated/graphics/cargo-gpu/{ash => mygraphics}/Cargo.toml (84%) rename generated/graphics/cargo-gpu/{ash => mygraphics}/build.rs (92%) rename generated/graphics/cargo-gpu/{ash => mygraphics}/src/device.rs (100%) rename generated/graphics/{spirv-builder/ash => cargo-gpu/mygraphics}/src/graphics.rs (99%) rename generated/graphics/{spirv-builder/ash => cargo-gpu/mygraphics}/src/main.rs (99%) rename generated/graphics/cargo-gpu/{ash => mygraphics}/src/single_command_buffer.rs (100%) rename generated/graphics/cargo-gpu/{ash => mygraphics}/src/swapchain.rs (100%) rename generated/graphics/spirv-builder/{shaders => mygraphics-shaders}/Cargo.toml (87%) rename generated/graphics/spirv-builder/{shaders => mygraphics-shaders}/src/lib.rs (100%) rename generated/graphics/spirv-builder/{ash => mygraphics}/Cargo.toml (88%) rename generated/graphics/spirv-builder/{ash => mygraphics}/build.rs (91%) rename generated/graphics/spirv-builder/{ash => mygraphics}/src/device.rs (100%) rename generated/graphics/{cargo-gpu/ash => spirv-builder/mygraphics}/src/graphics.rs (99%) rename generated/graphics/{cargo-gpu/ash => spirv-builder/mygraphics}/src/main.rs (99%) rename generated/graphics/spirv-builder/{ash => mygraphics}/src/single_command_buffer.rs (100%) rename generated/graphics/spirv-builder/{ash => mygraphics}/src/swapchain.rs (100%) diff --git a/generated/graphics/cargo-gpu/Cargo.toml b/generated/graphics/cargo-gpu/Cargo.toml index e5a1763..f28b950 100644 --- a/generated/graphics/cargo-gpu/Cargo.toml +++ b/generated/graphics/cargo-gpu/Cargo.toml @@ -1,7 +1,7 @@ [workspace] members = [ - "ash", - "shaders" + "mygraphics", + "mygraphics-shaders" ] resolver = "3" diff --git a/generated/graphics/cargo-gpu/shaders/Cargo.toml b/generated/graphics/cargo-gpu/mygraphics-shaders/Cargo.toml similarity index 87% rename from generated/graphics/cargo-gpu/shaders/Cargo.toml rename to generated/graphics/cargo-gpu/mygraphics-shaders/Cargo.toml index c6b52e0..0860c8b 100644 --- a/generated/graphics/cargo-gpu/shaders/Cargo.toml +++ b/generated/graphics/cargo-gpu/mygraphics-shaders/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "graphics-shaders" +name = "mygraphics-shaders" version = "0.1.0" edition = "2024" diff --git a/generated/graphics/cargo-gpu/shaders/src/lib.rs b/generated/graphics/cargo-gpu/mygraphics-shaders/src/lib.rs similarity index 100% rename from generated/graphics/cargo-gpu/shaders/src/lib.rs rename to generated/graphics/cargo-gpu/mygraphics-shaders/src/lib.rs diff --git a/generated/graphics/cargo-gpu/ash/Cargo.toml b/generated/graphics/cargo-gpu/mygraphics/Cargo.toml similarity index 84% rename from generated/graphics/cargo-gpu/ash/Cargo.toml rename to generated/graphics/cargo-gpu/mygraphics/Cargo.toml index d074c7c..35b36ee 100644 --- a/generated/graphics/cargo-gpu/ash/Cargo.toml +++ b/generated/graphics/cargo-gpu/mygraphics/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "graphics-ash" +name = "mygraphics" publish = false version.workspace = true authors.workspace = true @@ -11,7 +11,7 @@ repository.workspace = true workspace = true [dependencies] -graphics-shaders = { path = "../shaders" } +mygraphics-shaders = { path = "../mygraphics-shaders" } ash.workspace = true ash-window.workspace = true diff --git a/generated/graphics/cargo-gpu/ash/build.rs b/generated/graphics/cargo-gpu/mygraphics/build.rs similarity index 92% rename from generated/graphics/cargo-gpu/ash/build.rs rename to generated/graphics/cargo-gpu/mygraphics/build.rs index 17c3e01..0219afa 100644 --- a/generated/graphics/cargo-gpu/ash/build.rs +++ b/generated/graphics/cargo-gpu/mygraphics/build.rs @@ -4,7 +4,7 @@ use std::path::PathBuf; pub fn main() -> anyhow::Result<()> { let manifest_dir = env!("CARGO_MANIFEST_DIR"); - let crate_path = [manifest_dir, "..", "shaders"] + let crate_path = [manifest_dir, "..", "mygraphics-shaders"] .iter() .copied() .collect::(); diff --git a/generated/graphics/cargo-gpu/ash/src/device.rs b/generated/graphics/cargo-gpu/mygraphics/src/device.rs similarity index 100% rename from generated/graphics/cargo-gpu/ash/src/device.rs rename to generated/graphics/cargo-gpu/mygraphics/src/device.rs diff --git a/generated/graphics/spirv-builder/ash/src/graphics.rs b/generated/graphics/cargo-gpu/mygraphics/src/graphics.rs similarity index 99% rename from generated/graphics/spirv-builder/ash/src/graphics.rs rename to generated/graphics/cargo-gpu/mygraphics/src/graphics.rs index 18c6437..6bcc6b1 100644 --- a/generated/graphics/spirv-builder/ash/src/graphics.rs +++ b/generated/graphics/cargo-gpu/mygraphics/src/graphics.rs @@ -3,7 +3,7 @@ use crate::single_command_buffer::SingleCommandBuffer; use crate::swapchain::DrawFrame; use anyhow::Context; use ash::vk; -use graphics_shaders::ShaderConstants; +use mygraphics_shaders::ShaderConstants; use std::sync::Arc; /// Manages the creation and recreation of [`MyRenderPipeline`], whenever new shader code ([`Self::set_shader_code`]) diff --git a/generated/graphics/spirv-builder/ash/src/main.rs b/generated/graphics/cargo-gpu/mygraphics/src/main.rs similarity index 99% rename from generated/graphics/spirv-builder/ash/src/main.rs rename to generated/graphics/cargo-gpu/mygraphics/src/main.rs index 45bdd81..afd8720 100644 --- a/generated/graphics/spirv-builder/ash/src/main.rs +++ b/generated/graphics/cargo-gpu/mygraphics/src/main.rs @@ -74,7 +74,7 @@ use crate::device::MyDevice; use crate::graphics::{MyRenderPipelineManager, MyRenderer}; use crate::swapchain::MySwapchainManager; use ash::util::read_spv; -use graphics_shaders::ShaderConstants; +use mygraphics_shaders::ShaderConstants; use raw_window_handle::HasDisplayHandle as _; use winit::event_loop::ActiveEventLoop; use winit::{ diff --git a/generated/graphics/cargo-gpu/ash/src/single_command_buffer.rs b/generated/graphics/cargo-gpu/mygraphics/src/single_command_buffer.rs similarity index 100% rename from generated/graphics/cargo-gpu/ash/src/single_command_buffer.rs rename to generated/graphics/cargo-gpu/mygraphics/src/single_command_buffer.rs diff --git a/generated/graphics/cargo-gpu/ash/src/swapchain.rs b/generated/graphics/cargo-gpu/mygraphics/src/swapchain.rs similarity index 100% rename from generated/graphics/cargo-gpu/ash/src/swapchain.rs rename to generated/graphics/cargo-gpu/mygraphics/src/swapchain.rs diff --git a/generated/graphics/spirv-builder/Cargo.toml b/generated/graphics/spirv-builder/Cargo.toml index cba5b4e..8cda13c 100644 --- a/generated/graphics/spirv-builder/Cargo.toml +++ b/generated/graphics/spirv-builder/Cargo.toml @@ -1,7 +1,7 @@ [workspace] members = [ - "ash", - "shaders" + "mygraphics", + "mygraphics-shaders" ] resolver = "3" diff --git a/generated/graphics/spirv-builder/shaders/Cargo.toml b/generated/graphics/spirv-builder/mygraphics-shaders/Cargo.toml similarity index 87% rename from generated/graphics/spirv-builder/shaders/Cargo.toml rename to generated/graphics/spirv-builder/mygraphics-shaders/Cargo.toml index c6b52e0..0860c8b 100644 --- a/generated/graphics/spirv-builder/shaders/Cargo.toml +++ b/generated/graphics/spirv-builder/mygraphics-shaders/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "graphics-shaders" +name = "mygraphics-shaders" version = "0.1.0" edition = "2024" diff --git a/generated/graphics/spirv-builder/shaders/src/lib.rs b/generated/graphics/spirv-builder/mygraphics-shaders/src/lib.rs similarity index 100% rename from generated/graphics/spirv-builder/shaders/src/lib.rs rename to generated/graphics/spirv-builder/mygraphics-shaders/src/lib.rs diff --git a/generated/graphics/spirv-builder/ash/Cargo.toml b/generated/graphics/spirv-builder/mygraphics/Cargo.toml similarity index 88% rename from generated/graphics/spirv-builder/ash/Cargo.toml rename to generated/graphics/spirv-builder/mygraphics/Cargo.toml index c144a55..972e8a8 100644 --- a/generated/graphics/spirv-builder/ash/Cargo.toml +++ b/generated/graphics/spirv-builder/mygraphics/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "graphics-ash" +name = "mygraphics" publish = false version.workspace = true authors.workspace = true @@ -15,7 +15,7 @@ default = ["use-compiled-tools"] use-installed-tools = ["spirv-builder/use-installed-tools"] use-compiled-tools = ["spirv-builder/use-compiled-tools"] [dependencies] -graphics-shaders = { path = "../shaders" } +mygraphics-shaders = { path = "../mygraphics-shaders" } ash.workspace = true ash-window.workspace = true diff --git a/generated/graphics/spirv-builder/ash/build.rs b/generated/graphics/spirv-builder/mygraphics/build.rs similarity index 91% rename from generated/graphics/spirv-builder/ash/build.rs rename to generated/graphics/spirv-builder/mygraphics/build.rs index 278e9b8..5993ae2 100644 --- a/generated/graphics/spirv-builder/ash/build.rs +++ b/generated/graphics/spirv-builder/mygraphics/build.rs @@ -3,7 +3,7 @@ use std::path::PathBuf; pub fn main() -> anyhow::Result<()> { let manifest_dir = env!("CARGO_MANIFEST_DIR"); - let crate_path = [manifest_dir, "..", "shaders"] + let crate_path = [manifest_dir, "..", "mygraphics-shaders"] .iter() .copied() .collect::(); diff --git a/generated/graphics/spirv-builder/ash/src/device.rs b/generated/graphics/spirv-builder/mygraphics/src/device.rs similarity index 100% rename from generated/graphics/spirv-builder/ash/src/device.rs rename to generated/graphics/spirv-builder/mygraphics/src/device.rs diff --git a/generated/graphics/cargo-gpu/ash/src/graphics.rs b/generated/graphics/spirv-builder/mygraphics/src/graphics.rs similarity index 99% rename from generated/graphics/cargo-gpu/ash/src/graphics.rs rename to generated/graphics/spirv-builder/mygraphics/src/graphics.rs index 18c6437..6bcc6b1 100644 --- a/generated/graphics/cargo-gpu/ash/src/graphics.rs +++ b/generated/graphics/spirv-builder/mygraphics/src/graphics.rs @@ -3,7 +3,7 @@ use crate::single_command_buffer::SingleCommandBuffer; use crate::swapchain::DrawFrame; use anyhow::Context; use ash::vk; -use graphics_shaders::ShaderConstants; +use mygraphics_shaders::ShaderConstants; use std::sync::Arc; /// Manages the creation and recreation of [`MyRenderPipeline`], whenever new shader code ([`Self::set_shader_code`]) diff --git a/generated/graphics/cargo-gpu/ash/src/main.rs b/generated/graphics/spirv-builder/mygraphics/src/main.rs similarity index 99% rename from generated/graphics/cargo-gpu/ash/src/main.rs rename to generated/graphics/spirv-builder/mygraphics/src/main.rs index 45bdd81..afd8720 100644 --- a/generated/graphics/cargo-gpu/ash/src/main.rs +++ b/generated/graphics/spirv-builder/mygraphics/src/main.rs @@ -74,7 +74,7 @@ use crate::device::MyDevice; use crate::graphics::{MyRenderPipelineManager, MyRenderer}; use crate::swapchain::MySwapchainManager; use ash::util::read_spv; -use graphics_shaders::ShaderConstants; +use mygraphics_shaders::ShaderConstants; use raw_window_handle::HasDisplayHandle as _; use winit::event_loop::ActiveEventLoop; use winit::{ diff --git a/generated/graphics/spirv-builder/ash/src/single_command_buffer.rs b/generated/graphics/spirv-builder/mygraphics/src/single_command_buffer.rs similarity index 100% rename from generated/graphics/spirv-builder/ash/src/single_command_buffer.rs rename to generated/graphics/spirv-builder/mygraphics/src/single_command_buffer.rs diff --git a/generated/graphics/spirv-builder/ash/src/swapchain.rs b/generated/graphics/spirv-builder/mygraphics/src/swapchain.rs similarity index 100% rename from generated/graphics/spirv-builder/ash/src/swapchain.rs rename to generated/graphics/spirv-builder/mygraphics/src/swapchain.rs From ee52624afda61d5cd8aa8cfa49c62ea5abf10086 Mon Sep 17 00:00:00 2001 From: firestar99 Date: Thu, 4 Dec 2025 12:00:51 +0100 Subject: [PATCH 4/8] move ash_renderer into `mod ash`, bulk move --- graphics/mygraphics/src/{ => ash_renderer}/device.rs | 0 graphics/mygraphics/src/{ => ash_renderer}/graphics.rs | 0 graphics/mygraphics/src/{main.rs => ash_renderer/mod.rs} | 0 .../mygraphics/src/{ => ash_renderer}/single_command_buffer.rs | 0 graphics/mygraphics/src/{ => ash_renderer}/swapchain.rs | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename graphics/mygraphics/src/{ => ash_renderer}/device.rs (100%) rename graphics/mygraphics/src/{ => ash_renderer}/graphics.rs (100%) rename graphics/mygraphics/src/{main.rs => ash_renderer/mod.rs} (100%) rename graphics/mygraphics/src/{ => ash_renderer}/single_command_buffer.rs (100%) rename graphics/mygraphics/src/{ => ash_renderer}/swapchain.rs (100%) diff --git a/graphics/mygraphics/src/device.rs b/graphics/mygraphics/src/ash_renderer/device.rs similarity index 100% rename from graphics/mygraphics/src/device.rs rename to graphics/mygraphics/src/ash_renderer/device.rs diff --git a/graphics/mygraphics/src/graphics.rs b/graphics/mygraphics/src/ash_renderer/graphics.rs similarity index 100% rename from graphics/mygraphics/src/graphics.rs rename to graphics/mygraphics/src/ash_renderer/graphics.rs diff --git a/graphics/mygraphics/src/main.rs b/graphics/mygraphics/src/ash_renderer/mod.rs similarity index 100% rename from graphics/mygraphics/src/main.rs rename to graphics/mygraphics/src/ash_renderer/mod.rs diff --git a/graphics/mygraphics/src/single_command_buffer.rs b/graphics/mygraphics/src/ash_renderer/single_command_buffer.rs similarity index 100% rename from graphics/mygraphics/src/single_command_buffer.rs rename to graphics/mygraphics/src/ash_renderer/single_command_buffer.rs diff --git a/graphics/mygraphics/src/swapchain.rs b/graphics/mygraphics/src/ash_renderer/swapchain.rs similarity index 100% rename from graphics/mygraphics/src/swapchain.rs rename to graphics/mygraphics/src/ash_renderer/swapchain.rs From dfb09742aade1d796763af4533d088ebfda675f7 Mon Sep 17 00:00:00 2001 From: firestar99 Date: Thu, 4 Dec 2025 11:46:36 +0100 Subject: [PATCH 5/8] move ash_renderer into `mod ash`, manual adjustments --- .../mygraphics/src/ash_renderer/graphics.rs | 6 +- graphics/mygraphics/src/ash_renderer/mod.rs | 78 +------------------ .../src/ash_renderer/single_command_buffer.rs | 2 +- .../mygraphics/src/ash_renderer/swapchain.rs | 2 +- graphics/mygraphics/src/main.rs | 77 ++++++++++++++++++ 5 files changed, 85 insertions(+), 80 deletions(-) create mode 100644 graphics/mygraphics/src/main.rs diff --git a/graphics/mygraphics/src/ash_renderer/graphics.rs b/graphics/mygraphics/src/ash_renderer/graphics.rs index 6bcc6b1..b860caf 100644 --- a/graphics/mygraphics/src/ash_renderer/graphics.rs +++ b/graphics/mygraphics/src/ash_renderer/graphics.rs @@ -1,6 +1,6 @@ -use crate::device::MyDevice; -use crate::single_command_buffer::SingleCommandBuffer; -use crate::swapchain::DrawFrame; +use crate::ash_renderer::device::MyDevice; +use crate::ash_renderer::single_command_buffer::SingleCommandBuffer; +use crate::ash_renderer::swapchain::DrawFrame; use anyhow::Context; use ash::vk; use mygraphics_shaders::ShaderConstants; diff --git a/graphics/mygraphics/src/ash_renderer/mod.rs b/graphics/mygraphics/src/ash_renderer/mod.rs index afd8720..3b8a69d 100644 --- a/graphics/mygraphics/src/ash_renderer/mod.rs +++ b/graphics/mygraphics/src/ash_renderer/mod.rs @@ -1,78 +1,6 @@ -// FIXME(eddyb) update/review these lints. -// -// BEGIN - Embark standard lints v0.4 -// do not change or add/remove here, but one can add exceptions after this section -// for more info see: -//#![deny(unsafe_code)] // impractical in this crate dealing with unsafe `ash` -#![warn( - clippy::all, - clippy::await_holding_lock, - clippy::char_lit_as_u8, - clippy::checked_conversions, - clippy::dbg_macro, - clippy::debug_assert_with_mut_call, - clippy::doc_markdown, - clippy::empty_enum, - clippy::enum_glob_use, - clippy::exit, - clippy::expl_impl_clone_on_copy, - clippy::explicit_deref_methods, - clippy::explicit_into_iter_loop, - clippy::fallible_impl_from, - clippy::filter_map_next, - clippy::float_cmp_const, - clippy::fn_params_excessive_bools, - clippy::if_let_mutex, - clippy::implicit_clone, - clippy::imprecise_flops, - clippy::inefficient_to_string, - clippy::invalid_upcast_comparisons, - clippy::large_types_passed_by_value, - clippy::let_unit_value, - clippy::linkedlist, - clippy::lossy_float_literal, - clippy::macro_use_imports, - clippy::manual_ok_or, - clippy::map_err_ignore, - clippy::map_flatten, - clippy::map_unwrap_or, - clippy::match_same_arms, - clippy::match_wildcard_for_single_variants, - clippy::mem_forget, - clippy::mut_mut, - clippy::mutex_integer, - clippy::needless_borrow, - clippy::needless_continue, - clippy::option_option, - clippy::path_buf_push_overwrite, - clippy::ptr_as_ptr, - clippy::ref_option_ref, - clippy::rest_pat_in_fully_bound_structs, - clippy::same_functions_in_if_condition, - clippy::semicolon_if_nothing_returned, - clippy::string_add_assign, - clippy::string_add, - clippy::string_lit_as_bytes, - clippy::string_to_string, - clippy::todo, - clippy::trait_duplication_in_bounds, - clippy::unimplemented, - clippy::unnested_or_patterns, - clippy::unused_self, - clippy::useless_transmute, - clippy::verbose_file_reads, - clippy::zero_sized_map_values, - future_incompatible, - nonstandard_style, - rust_2018_idioms -)] -// END - Embark standard lints v0.4 -// crate-specific exceptions: -// #![allow()] - -use crate::device::MyDevice; -use crate::graphics::{MyRenderPipelineManager, MyRenderer}; -use crate::swapchain::MySwapchainManager; +use crate::ash_renderer::device::MyDevice; +use crate::ash_renderer::graphics::{MyRenderPipelineManager, MyRenderer}; +use crate::ash_renderer::swapchain::MySwapchainManager; use ash::util::read_spv; use mygraphics_shaders::ShaderConstants; use raw_window_handle::HasDisplayHandle as _; diff --git a/graphics/mygraphics/src/ash_renderer/single_command_buffer.rs b/graphics/mygraphics/src/ash_renderer/single_command_buffer.rs index 15137a1..e02a198 100644 --- a/graphics/mygraphics/src/ash_renderer/single_command_buffer.rs +++ b/graphics/mygraphics/src/ash_renderer/single_command_buffer.rs @@ -1,4 +1,4 @@ -use crate::device::MyDevice; +use crate::ash_renderer::device::MyDevice; use ash::vk; use std::sync::Arc; diff --git a/graphics/mygraphics/src/ash_renderer/swapchain.rs b/graphics/mygraphics/src/ash_renderer/swapchain.rs index 7142187..5b2ae94 100644 --- a/graphics/mygraphics/src/ash_renderer/swapchain.rs +++ b/graphics/mygraphics/src/ash_renderer/swapchain.rs @@ -1,4 +1,4 @@ -use crate::device::MyDevice; +use crate::ash_renderer::device::MyDevice; use anyhow::Context; use ash::vk; use raw_window_handle::{HasDisplayHandle, HasWindowHandle}; diff --git a/graphics/mygraphics/src/main.rs b/graphics/mygraphics/src/main.rs new file mode 100644 index 0000000..5d49d93 --- /dev/null +++ b/graphics/mygraphics/src/main.rs @@ -0,0 +1,77 @@ +// FIXME(eddyb) update/review these lints. +// +// BEGIN - Embark standard lints v0.4 +// do not change or add/remove here, but one can add exceptions after this section +// for more info see: +//#![deny(unsafe_code)] // impractical in this crate dealing with unsafe `ash` +#![warn( + clippy::all, + clippy::await_holding_lock, + clippy::char_lit_as_u8, + clippy::checked_conversions, + clippy::dbg_macro, + clippy::debug_assert_with_mut_call, + clippy::doc_markdown, + clippy::empty_enum, + clippy::enum_glob_use, + clippy::exit, + clippy::expl_impl_clone_on_copy, + clippy::explicit_deref_methods, + clippy::explicit_into_iter_loop, + clippy::fallible_impl_from, + clippy::filter_map_next, + clippy::float_cmp_const, + clippy::fn_params_excessive_bools, + clippy::if_let_mutex, + clippy::implicit_clone, + clippy::imprecise_flops, + clippy::inefficient_to_string, + clippy::invalid_upcast_comparisons, + clippy::large_types_passed_by_value, + clippy::let_unit_value, + clippy::linkedlist, + clippy::lossy_float_literal, + clippy::macro_use_imports, + clippy::manual_ok_or, + clippy::map_err_ignore, + clippy::map_flatten, + clippy::map_unwrap_or, + clippy::match_same_arms, + clippy::match_wildcard_for_single_variants, + clippy::mem_forget, + clippy::mut_mut, + clippy::mutex_integer, + clippy::needless_borrow, + clippy::needless_continue, + clippy::option_option, + clippy::path_buf_push_overwrite, + clippy::ptr_as_ptr, + clippy::ref_option_ref, + clippy::rest_pat_in_fully_bound_structs, + clippy::same_functions_in_if_condition, + clippy::semicolon_if_nothing_returned, + clippy::string_add_assign, + clippy::string_add, + clippy::string_lit_as_bytes, + clippy::string_to_string, + clippy::todo, + clippy::trait_duplication_in_bounds, + clippy::unimplemented, + clippy::unnested_or_patterns, + clippy::unused_self, + clippy::useless_transmute, + clippy::verbose_file_reads, + clippy::zero_sized_map_values, + future_incompatible, + nonstandard_style, + rust_2018_idioms +)] +// END - Embark standard lints v0.4 +// crate-specific exceptions: +// #![allow()] + +pub mod ash_renderer; + +pub fn main() -> anyhow::Result<()> { + ash_renderer::main() +} From fbaeec3cf73fec02749a70866d32ecc91f71a0df Mon Sep 17 00:00:00 2001 From: firestar99 Date: Thu, 4 Dec 2025 12:01:51 +0100 Subject: [PATCH 6/8] move ash_renderer into `mod ash`, xtask generate --- .../src/{ => ash_renderer}/device.rs | 0 .../src/{ => ash_renderer}/graphics.rs | 6 +- .../mygraphics/src/ash_renderer/mod.rs | 100 ++++++++++++++++++ .../ash_renderer}/single_command_buffer.rs | 2 +- .../mygraphics/src/ash_renderer}/swapchain.rs | 2 +- .../graphics/cargo-gpu/mygraphics/src/main.rs | 99 +---------------- .../src/{ => ash_renderer}/device.rs | 0 .../src/{ => ash_renderer}/graphics.rs | 6 +- .../mygraphics/src/ash_renderer/mod.rs | 100 ++++++++++++++++++ .../ash_renderer}/single_command_buffer.rs | 2 +- .../mygraphics/src/ash_renderer}/swapchain.rs | 2 +- .../spirv-builder/mygraphics/src/main.rs | 99 +---------------- 12 files changed, 214 insertions(+), 204 deletions(-) rename generated/graphics/cargo-gpu/mygraphics/src/{ => ash_renderer}/device.rs (100%) rename generated/graphics/cargo-gpu/mygraphics/src/{ => ash_renderer}/graphics.rs (98%) create mode 100644 generated/graphics/cargo-gpu/mygraphics/src/ash_renderer/mod.rs rename generated/graphics/{spirv-builder/mygraphics/src => cargo-gpu/mygraphics/src/ash_renderer}/single_command_buffer.rs (96%) rename generated/graphics/{spirv-builder/mygraphics/src => cargo-gpu/mygraphics/src/ash_renderer}/swapchain.rs (99%) rename generated/graphics/spirv-builder/mygraphics/src/{ => ash_renderer}/device.rs (100%) rename generated/graphics/spirv-builder/mygraphics/src/{ => ash_renderer}/graphics.rs (98%) create mode 100644 generated/graphics/spirv-builder/mygraphics/src/ash_renderer/mod.rs rename generated/graphics/{cargo-gpu/mygraphics/src => spirv-builder/mygraphics/src/ash_renderer}/single_command_buffer.rs (96%) rename generated/graphics/{cargo-gpu/mygraphics/src => spirv-builder/mygraphics/src/ash_renderer}/swapchain.rs (99%) diff --git a/generated/graphics/cargo-gpu/mygraphics/src/device.rs b/generated/graphics/cargo-gpu/mygraphics/src/ash_renderer/device.rs similarity index 100% rename from generated/graphics/cargo-gpu/mygraphics/src/device.rs rename to generated/graphics/cargo-gpu/mygraphics/src/ash_renderer/device.rs diff --git a/generated/graphics/cargo-gpu/mygraphics/src/graphics.rs b/generated/graphics/cargo-gpu/mygraphics/src/ash_renderer/graphics.rs similarity index 98% rename from generated/graphics/cargo-gpu/mygraphics/src/graphics.rs rename to generated/graphics/cargo-gpu/mygraphics/src/ash_renderer/graphics.rs index 6bcc6b1..b860caf 100644 --- a/generated/graphics/cargo-gpu/mygraphics/src/graphics.rs +++ b/generated/graphics/cargo-gpu/mygraphics/src/ash_renderer/graphics.rs @@ -1,6 +1,6 @@ -use crate::device::MyDevice; -use crate::single_command_buffer::SingleCommandBuffer; -use crate::swapchain::DrawFrame; +use crate::ash_renderer::device::MyDevice; +use crate::ash_renderer::single_command_buffer::SingleCommandBuffer; +use crate::ash_renderer::swapchain::DrawFrame; use anyhow::Context; use ash::vk; use mygraphics_shaders::ShaderConstants; diff --git a/generated/graphics/cargo-gpu/mygraphics/src/ash_renderer/mod.rs b/generated/graphics/cargo-gpu/mygraphics/src/ash_renderer/mod.rs new file mode 100644 index 0000000..3b8a69d --- /dev/null +++ b/generated/graphics/cargo-gpu/mygraphics/src/ash_renderer/mod.rs @@ -0,0 +1,100 @@ +use crate::ash_renderer::device::MyDevice; +use crate::ash_renderer::graphics::{MyRenderPipelineManager, MyRenderer}; +use crate::ash_renderer::swapchain::MySwapchainManager; +use ash::util::read_spv; +use mygraphics_shaders::ShaderConstants; +use raw_window_handle::HasDisplayHandle as _; +use winit::event_loop::ActiveEventLoop; +use winit::{ + event::{Event, WindowEvent}, + event_loop::{ControlFlow, EventLoop}, +}; + +pub mod device; +pub mod graphics; +pub mod single_command_buffer; +pub mod swapchain; + +pub fn main() -> anyhow::Result<()> { + let enable_debug_layer = std::env::var("DEBUG_LAYER") + .map(|e| !(e == "0" || e == "false")) + .unwrap_or(false); + + // runtime setup + let event_loop = EventLoop::new()?; + // FIXME(eddyb) incomplete `winit` upgrade, follow the guides in: + // https://github.com/rust-windowing/winit/releases/tag/v0.30.0 + #[allow(deprecated)] + let window = event_loop.create_window( + winit::window::Window::default_attributes() + .with_title("Rust GPU - ash") + .with_inner_size(winit::dpi::LogicalSize::new( + f64::from(1280), + f64::from(720), + )), + )?; + + let extensions = ash_window::enumerate_required_extensions(window.display_handle()?.as_raw())?; + let device = MyDevice::new(extensions, enable_debug_layer)?; + let mut swapchain = MySwapchainManager::new(device.clone(), window)?; + let mut renderer = MyRenderer::new(MyRenderPipelineManager::new( + device.clone(), + swapchain.surface_format.format, + get_shaders()?, + )?)?; + + let start = std::time::Instant::now(); + let mut event_handler = + move |event: Event<_>, event_loop_window_target: &ActiveEventLoop| match event { + Event::AboutToWait => swapchain.render(|frame| { + let extent = frame.extent; + let push_constants = ShaderConstants { + width: extent.width, + height: extent.height, + time: start.elapsed().as_secs_f32(), + }; + + renderer.render_frame(frame, push_constants)?; + Ok(()) + }), + Event::WindowEvent { event, .. } => { + match event { + WindowEvent::KeyboardInput { + event: + winit::event::KeyEvent { + logical_key: + winit::keyboard::Key::Named(winit::keyboard::NamedKey::Escape), + state: winit::event::ElementState::Pressed, + .. + }, + .. + } + | WindowEvent::CloseRequested => event_loop_window_target.exit(), + WindowEvent::Resized(_) => { + swapchain.should_recreate(); + } + _ => {} + } + + Ok(()) + } + _ => { + event_loop_window_target.set_control_flow(ControlFlow::Poll); + Ok(()) + } + }; + + // FIXME(eddyb) incomplete `winit` upgrade, follow the guides in: + // https://github.com/rust-windowing/winit/releases/tag/v0.30.0 + #[allow(deprecated)] + event_loop.run(move |event, event_loop_window_target| { + event_handler(event, event_loop_window_target).unwrap(); + })?; + Ok(()) +} + +pub fn get_shaders() -> anyhow::Result> { + // set in the build script + const SPV_BYTES: &[u8] = include_bytes!(env!("SHADER_SPV_PATH")); + Ok(read_spv(&mut std::io::Cursor::new(SPV_BYTES))?) +} diff --git a/generated/graphics/spirv-builder/mygraphics/src/single_command_buffer.rs b/generated/graphics/cargo-gpu/mygraphics/src/ash_renderer/single_command_buffer.rs similarity index 96% rename from generated/graphics/spirv-builder/mygraphics/src/single_command_buffer.rs rename to generated/graphics/cargo-gpu/mygraphics/src/ash_renderer/single_command_buffer.rs index 15137a1..e02a198 100644 --- a/generated/graphics/spirv-builder/mygraphics/src/single_command_buffer.rs +++ b/generated/graphics/cargo-gpu/mygraphics/src/ash_renderer/single_command_buffer.rs @@ -1,4 +1,4 @@ -use crate::device::MyDevice; +use crate::ash_renderer::device::MyDevice; use ash::vk; use std::sync::Arc; diff --git a/generated/graphics/spirv-builder/mygraphics/src/swapchain.rs b/generated/graphics/cargo-gpu/mygraphics/src/ash_renderer/swapchain.rs similarity index 99% rename from generated/graphics/spirv-builder/mygraphics/src/swapchain.rs rename to generated/graphics/cargo-gpu/mygraphics/src/ash_renderer/swapchain.rs index 7142187..5b2ae94 100644 --- a/generated/graphics/spirv-builder/mygraphics/src/swapchain.rs +++ b/generated/graphics/cargo-gpu/mygraphics/src/ash_renderer/swapchain.rs @@ -1,4 +1,4 @@ -use crate::device::MyDevice; +use crate::ash_renderer::device::MyDevice; use anyhow::Context; use ash::vk; use raw_window_handle::{HasDisplayHandle, HasWindowHandle}; diff --git a/generated/graphics/cargo-gpu/mygraphics/src/main.rs b/generated/graphics/cargo-gpu/mygraphics/src/main.rs index afd8720..5d49d93 100644 --- a/generated/graphics/cargo-gpu/mygraphics/src/main.rs +++ b/generated/graphics/cargo-gpu/mygraphics/src/main.rs @@ -70,103 +70,8 @@ // crate-specific exceptions: // #![allow()] -use crate::device::MyDevice; -use crate::graphics::{MyRenderPipelineManager, MyRenderer}; -use crate::swapchain::MySwapchainManager; -use ash::util::read_spv; -use mygraphics_shaders::ShaderConstants; -use raw_window_handle::HasDisplayHandle as _; -use winit::event_loop::ActiveEventLoop; -use winit::{ - event::{Event, WindowEvent}, - event_loop::{ControlFlow, EventLoop}, -}; - -pub mod device; -pub mod graphics; -pub mod single_command_buffer; -pub mod swapchain; +pub mod ash_renderer; pub fn main() -> anyhow::Result<()> { - let enable_debug_layer = std::env::var("DEBUG_LAYER") - .map(|e| !(e == "0" || e == "false")) - .unwrap_or(false); - - // runtime setup - let event_loop = EventLoop::new()?; - // FIXME(eddyb) incomplete `winit` upgrade, follow the guides in: - // https://github.com/rust-windowing/winit/releases/tag/v0.30.0 - #[allow(deprecated)] - let window = event_loop.create_window( - winit::window::Window::default_attributes() - .with_title("Rust GPU - ash") - .with_inner_size(winit::dpi::LogicalSize::new( - f64::from(1280), - f64::from(720), - )), - )?; - - let extensions = ash_window::enumerate_required_extensions(window.display_handle()?.as_raw())?; - let device = MyDevice::new(extensions, enable_debug_layer)?; - let mut swapchain = MySwapchainManager::new(device.clone(), window)?; - let mut renderer = MyRenderer::new(MyRenderPipelineManager::new( - device.clone(), - swapchain.surface_format.format, - get_shaders()?, - )?)?; - - let start = std::time::Instant::now(); - let mut event_handler = - move |event: Event<_>, event_loop_window_target: &ActiveEventLoop| match event { - Event::AboutToWait => swapchain.render(|frame| { - let extent = frame.extent; - let push_constants = ShaderConstants { - width: extent.width, - height: extent.height, - time: start.elapsed().as_secs_f32(), - }; - - renderer.render_frame(frame, push_constants)?; - Ok(()) - }), - Event::WindowEvent { event, .. } => { - match event { - WindowEvent::KeyboardInput { - event: - winit::event::KeyEvent { - logical_key: - winit::keyboard::Key::Named(winit::keyboard::NamedKey::Escape), - state: winit::event::ElementState::Pressed, - .. - }, - .. - } - | WindowEvent::CloseRequested => event_loop_window_target.exit(), - WindowEvent::Resized(_) => { - swapchain.should_recreate(); - } - _ => {} - } - - Ok(()) - } - _ => { - event_loop_window_target.set_control_flow(ControlFlow::Poll); - Ok(()) - } - }; - - // FIXME(eddyb) incomplete `winit` upgrade, follow the guides in: - // https://github.com/rust-windowing/winit/releases/tag/v0.30.0 - #[allow(deprecated)] - event_loop.run(move |event, event_loop_window_target| { - event_handler(event, event_loop_window_target).unwrap(); - })?; - Ok(()) -} - -pub fn get_shaders() -> anyhow::Result> { - // set in the build script - const SPV_BYTES: &[u8] = include_bytes!(env!("SHADER_SPV_PATH")); - Ok(read_spv(&mut std::io::Cursor::new(SPV_BYTES))?) + ash_renderer::main() } diff --git a/generated/graphics/spirv-builder/mygraphics/src/device.rs b/generated/graphics/spirv-builder/mygraphics/src/ash_renderer/device.rs similarity index 100% rename from generated/graphics/spirv-builder/mygraphics/src/device.rs rename to generated/graphics/spirv-builder/mygraphics/src/ash_renderer/device.rs diff --git a/generated/graphics/spirv-builder/mygraphics/src/graphics.rs b/generated/graphics/spirv-builder/mygraphics/src/ash_renderer/graphics.rs similarity index 98% rename from generated/graphics/spirv-builder/mygraphics/src/graphics.rs rename to generated/graphics/spirv-builder/mygraphics/src/ash_renderer/graphics.rs index 6bcc6b1..b860caf 100644 --- a/generated/graphics/spirv-builder/mygraphics/src/graphics.rs +++ b/generated/graphics/spirv-builder/mygraphics/src/ash_renderer/graphics.rs @@ -1,6 +1,6 @@ -use crate::device::MyDevice; -use crate::single_command_buffer::SingleCommandBuffer; -use crate::swapchain::DrawFrame; +use crate::ash_renderer::device::MyDevice; +use crate::ash_renderer::single_command_buffer::SingleCommandBuffer; +use crate::ash_renderer::swapchain::DrawFrame; use anyhow::Context; use ash::vk; use mygraphics_shaders::ShaderConstants; diff --git a/generated/graphics/spirv-builder/mygraphics/src/ash_renderer/mod.rs b/generated/graphics/spirv-builder/mygraphics/src/ash_renderer/mod.rs new file mode 100644 index 0000000..3b8a69d --- /dev/null +++ b/generated/graphics/spirv-builder/mygraphics/src/ash_renderer/mod.rs @@ -0,0 +1,100 @@ +use crate::ash_renderer::device::MyDevice; +use crate::ash_renderer::graphics::{MyRenderPipelineManager, MyRenderer}; +use crate::ash_renderer::swapchain::MySwapchainManager; +use ash::util::read_spv; +use mygraphics_shaders::ShaderConstants; +use raw_window_handle::HasDisplayHandle as _; +use winit::event_loop::ActiveEventLoop; +use winit::{ + event::{Event, WindowEvent}, + event_loop::{ControlFlow, EventLoop}, +}; + +pub mod device; +pub mod graphics; +pub mod single_command_buffer; +pub mod swapchain; + +pub fn main() -> anyhow::Result<()> { + let enable_debug_layer = std::env::var("DEBUG_LAYER") + .map(|e| !(e == "0" || e == "false")) + .unwrap_or(false); + + // runtime setup + let event_loop = EventLoop::new()?; + // FIXME(eddyb) incomplete `winit` upgrade, follow the guides in: + // https://github.com/rust-windowing/winit/releases/tag/v0.30.0 + #[allow(deprecated)] + let window = event_loop.create_window( + winit::window::Window::default_attributes() + .with_title("Rust GPU - ash") + .with_inner_size(winit::dpi::LogicalSize::new( + f64::from(1280), + f64::from(720), + )), + )?; + + let extensions = ash_window::enumerate_required_extensions(window.display_handle()?.as_raw())?; + let device = MyDevice::new(extensions, enable_debug_layer)?; + let mut swapchain = MySwapchainManager::new(device.clone(), window)?; + let mut renderer = MyRenderer::new(MyRenderPipelineManager::new( + device.clone(), + swapchain.surface_format.format, + get_shaders()?, + )?)?; + + let start = std::time::Instant::now(); + let mut event_handler = + move |event: Event<_>, event_loop_window_target: &ActiveEventLoop| match event { + Event::AboutToWait => swapchain.render(|frame| { + let extent = frame.extent; + let push_constants = ShaderConstants { + width: extent.width, + height: extent.height, + time: start.elapsed().as_secs_f32(), + }; + + renderer.render_frame(frame, push_constants)?; + Ok(()) + }), + Event::WindowEvent { event, .. } => { + match event { + WindowEvent::KeyboardInput { + event: + winit::event::KeyEvent { + logical_key: + winit::keyboard::Key::Named(winit::keyboard::NamedKey::Escape), + state: winit::event::ElementState::Pressed, + .. + }, + .. + } + | WindowEvent::CloseRequested => event_loop_window_target.exit(), + WindowEvent::Resized(_) => { + swapchain.should_recreate(); + } + _ => {} + } + + Ok(()) + } + _ => { + event_loop_window_target.set_control_flow(ControlFlow::Poll); + Ok(()) + } + }; + + // FIXME(eddyb) incomplete `winit` upgrade, follow the guides in: + // https://github.com/rust-windowing/winit/releases/tag/v0.30.0 + #[allow(deprecated)] + event_loop.run(move |event, event_loop_window_target| { + event_handler(event, event_loop_window_target).unwrap(); + })?; + Ok(()) +} + +pub fn get_shaders() -> anyhow::Result> { + // set in the build script + const SPV_BYTES: &[u8] = include_bytes!(env!("SHADER_SPV_PATH")); + Ok(read_spv(&mut std::io::Cursor::new(SPV_BYTES))?) +} diff --git a/generated/graphics/cargo-gpu/mygraphics/src/single_command_buffer.rs b/generated/graphics/spirv-builder/mygraphics/src/ash_renderer/single_command_buffer.rs similarity index 96% rename from generated/graphics/cargo-gpu/mygraphics/src/single_command_buffer.rs rename to generated/graphics/spirv-builder/mygraphics/src/ash_renderer/single_command_buffer.rs index 15137a1..e02a198 100644 --- a/generated/graphics/cargo-gpu/mygraphics/src/single_command_buffer.rs +++ b/generated/graphics/spirv-builder/mygraphics/src/ash_renderer/single_command_buffer.rs @@ -1,4 +1,4 @@ -use crate::device::MyDevice; +use crate::ash_renderer::device::MyDevice; use ash::vk; use std::sync::Arc; diff --git a/generated/graphics/cargo-gpu/mygraphics/src/swapchain.rs b/generated/graphics/spirv-builder/mygraphics/src/ash_renderer/swapchain.rs similarity index 99% rename from generated/graphics/cargo-gpu/mygraphics/src/swapchain.rs rename to generated/graphics/spirv-builder/mygraphics/src/ash_renderer/swapchain.rs index 7142187..5b2ae94 100644 --- a/generated/graphics/cargo-gpu/mygraphics/src/swapchain.rs +++ b/generated/graphics/spirv-builder/mygraphics/src/ash_renderer/swapchain.rs @@ -1,4 +1,4 @@ -use crate::device::MyDevice; +use crate::ash_renderer::device::MyDevice; use anyhow::Context; use ash::vk; use raw_window_handle::{HasDisplayHandle, HasWindowHandle}; diff --git a/generated/graphics/spirv-builder/mygraphics/src/main.rs b/generated/graphics/spirv-builder/mygraphics/src/main.rs index afd8720..5d49d93 100644 --- a/generated/graphics/spirv-builder/mygraphics/src/main.rs +++ b/generated/graphics/spirv-builder/mygraphics/src/main.rs @@ -70,103 +70,8 @@ // crate-specific exceptions: // #![allow()] -use crate::device::MyDevice; -use crate::graphics::{MyRenderPipelineManager, MyRenderer}; -use crate::swapchain::MySwapchainManager; -use ash::util::read_spv; -use mygraphics_shaders::ShaderConstants; -use raw_window_handle::HasDisplayHandle as _; -use winit::event_loop::ActiveEventLoop; -use winit::{ - event::{Event, WindowEvent}, - event_loop::{ControlFlow, EventLoop}, -}; - -pub mod device; -pub mod graphics; -pub mod single_command_buffer; -pub mod swapchain; +pub mod ash_renderer; pub fn main() -> anyhow::Result<()> { - let enable_debug_layer = std::env::var("DEBUG_LAYER") - .map(|e| !(e == "0" || e == "false")) - .unwrap_or(false); - - // runtime setup - let event_loop = EventLoop::new()?; - // FIXME(eddyb) incomplete `winit` upgrade, follow the guides in: - // https://github.com/rust-windowing/winit/releases/tag/v0.30.0 - #[allow(deprecated)] - let window = event_loop.create_window( - winit::window::Window::default_attributes() - .with_title("Rust GPU - ash") - .with_inner_size(winit::dpi::LogicalSize::new( - f64::from(1280), - f64::from(720), - )), - )?; - - let extensions = ash_window::enumerate_required_extensions(window.display_handle()?.as_raw())?; - let device = MyDevice::new(extensions, enable_debug_layer)?; - let mut swapchain = MySwapchainManager::new(device.clone(), window)?; - let mut renderer = MyRenderer::new(MyRenderPipelineManager::new( - device.clone(), - swapchain.surface_format.format, - get_shaders()?, - )?)?; - - let start = std::time::Instant::now(); - let mut event_handler = - move |event: Event<_>, event_loop_window_target: &ActiveEventLoop| match event { - Event::AboutToWait => swapchain.render(|frame| { - let extent = frame.extent; - let push_constants = ShaderConstants { - width: extent.width, - height: extent.height, - time: start.elapsed().as_secs_f32(), - }; - - renderer.render_frame(frame, push_constants)?; - Ok(()) - }), - Event::WindowEvent { event, .. } => { - match event { - WindowEvent::KeyboardInput { - event: - winit::event::KeyEvent { - logical_key: - winit::keyboard::Key::Named(winit::keyboard::NamedKey::Escape), - state: winit::event::ElementState::Pressed, - .. - }, - .. - } - | WindowEvent::CloseRequested => event_loop_window_target.exit(), - WindowEvent::Resized(_) => { - swapchain.should_recreate(); - } - _ => {} - } - - Ok(()) - } - _ => { - event_loop_window_target.set_control_flow(ControlFlow::Poll); - Ok(()) - } - }; - - // FIXME(eddyb) incomplete `winit` upgrade, follow the guides in: - // https://github.com/rust-windowing/winit/releases/tag/v0.30.0 - #[allow(deprecated)] - event_loop.run(move |event, event_loop_window_target| { - event_handler(event, event_loop_window_target).unwrap(); - })?; - Ok(()) -} - -pub fn get_shaders() -> anyhow::Result> { - // set in the build script - const SPV_BYTES: &[u8] = include_bytes!(env!("SHADER_SPV_PATH")); - Ok(read_spv(&mut std::io::Cursor::new(SPV_BYTES))?) + ash_renderer::main() } From 2c92e73da53a83cdecf37e53358f9c30573dfd98 Mon Sep 17 00:00:00 2001 From: firestar99 Date: Thu, 4 Dec 2025 12:05:00 +0100 Subject: [PATCH 7/8] global `fn enable_debug_layer()` --- .../graphics/cargo-gpu/mygraphics/src/ash_renderer/mod.rs | 7 ++----- generated/graphics/cargo-gpu/mygraphics/src/main.rs | 6 ++++++ .../spirv-builder/mygraphics/src/ash_renderer/mod.rs | 7 ++----- generated/graphics/spirv-builder/mygraphics/src/main.rs | 6 ++++++ graphics/mygraphics/src/ash_renderer/mod.rs | 7 ++----- graphics/mygraphics/src/main.rs | 6 ++++++ 6 files changed, 24 insertions(+), 15 deletions(-) diff --git a/generated/graphics/cargo-gpu/mygraphics/src/ash_renderer/mod.rs b/generated/graphics/cargo-gpu/mygraphics/src/ash_renderer/mod.rs index 3b8a69d..d987d4f 100644 --- a/generated/graphics/cargo-gpu/mygraphics/src/ash_renderer/mod.rs +++ b/generated/graphics/cargo-gpu/mygraphics/src/ash_renderer/mod.rs @@ -1,6 +1,7 @@ use crate::ash_renderer::device::MyDevice; use crate::ash_renderer::graphics::{MyRenderPipelineManager, MyRenderer}; use crate::ash_renderer::swapchain::MySwapchainManager; +use crate::enable_debug_layer; use ash::util::read_spv; use mygraphics_shaders::ShaderConstants; use raw_window_handle::HasDisplayHandle as _; @@ -16,10 +17,6 @@ pub mod single_command_buffer; pub mod swapchain; pub fn main() -> anyhow::Result<()> { - let enable_debug_layer = std::env::var("DEBUG_LAYER") - .map(|e| !(e == "0" || e == "false")) - .unwrap_or(false); - // runtime setup let event_loop = EventLoop::new()?; // FIXME(eddyb) incomplete `winit` upgrade, follow the guides in: @@ -35,7 +32,7 @@ pub fn main() -> anyhow::Result<()> { )?; let extensions = ash_window::enumerate_required_extensions(window.display_handle()?.as_raw())?; - let device = MyDevice::new(extensions, enable_debug_layer)?; + let device = MyDevice::new(extensions, enable_debug_layer())?; let mut swapchain = MySwapchainManager::new(device.clone(), window)?; let mut renderer = MyRenderer::new(MyRenderPipelineManager::new( device.clone(), diff --git a/generated/graphics/cargo-gpu/mygraphics/src/main.rs b/generated/graphics/cargo-gpu/mygraphics/src/main.rs index 5d49d93..1035edc 100644 --- a/generated/graphics/cargo-gpu/mygraphics/src/main.rs +++ b/generated/graphics/cargo-gpu/mygraphics/src/main.rs @@ -75,3 +75,9 @@ pub mod ash_renderer; pub fn main() -> anyhow::Result<()> { ash_renderer::main() } + +pub fn enable_debug_layer() -> bool { + std::env::var("DEBUG_LAYER") + .map(|e| !(e == "0" || e == "false")) + .unwrap_or(false) +} diff --git a/generated/graphics/spirv-builder/mygraphics/src/ash_renderer/mod.rs b/generated/graphics/spirv-builder/mygraphics/src/ash_renderer/mod.rs index 3b8a69d..d987d4f 100644 --- a/generated/graphics/spirv-builder/mygraphics/src/ash_renderer/mod.rs +++ b/generated/graphics/spirv-builder/mygraphics/src/ash_renderer/mod.rs @@ -1,6 +1,7 @@ use crate::ash_renderer::device::MyDevice; use crate::ash_renderer::graphics::{MyRenderPipelineManager, MyRenderer}; use crate::ash_renderer::swapchain::MySwapchainManager; +use crate::enable_debug_layer; use ash::util::read_spv; use mygraphics_shaders::ShaderConstants; use raw_window_handle::HasDisplayHandle as _; @@ -16,10 +17,6 @@ pub mod single_command_buffer; pub mod swapchain; pub fn main() -> anyhow::Result<()> { - let enable_debug_layer = std::env::var("DEBUG_LAYER") - .map(|e| !(e == "0" || e == "false")) - .unwrap_or(false); - // runtime setup let event_loop = EventLoop::new()?; // FIXME(eddyb) incomplete `winit` upgrade, follow the guides in: @@ -35,7 +32,7 @@ pub fn main() -> anyhow::Result<()> { )?; let extensions = ash_window::enumerate_required_extensions(window.display_handle()?.as_raw())?; - let device = MyDevice::new(extensions, enable_debug_layer)?; + let device = MyDevice::new(extensions, enable_debug_layer())?; let mut swapchain = MySwapchainManager::new(device.clone(), window)?; let mut renderer = MyRenderer::new(MyRenderPipelineManager::new( device.clone(), diff --git a/generated/graphics/spirv-builder/mygraphics/src/main.rs b/generated/graphics/spirv-builder/mygraphics/src/main.rs index 5d49d93..1035edc 100644 --- a/generated/graphics/spirv-builder/mygraphics/src/main.rs +++ b/generated/graphics/spirv-builder/mygraphics/src/main.rs @@ -75,3 +75,9 @@ pub mod ash_renderer; pub fn main() -> anyhow::Result<()> { ash_renderer::main() } + +pub fn enable_debug_layer() -> bool { + std::env::var("DEBUG_LAYER") + .map(|e| !(e == "0" || e == "false")) + .unwrap_or(false) +} diff --git a/graphics/mygraphics/src/ash_renderer/mod.rs b/graphics/mygraphics/src/ash_renderer/mod.rs index 3b8a69d..d987d4f 100644 --- a/graphics/mygraphics/src/ash_renderer/mod.rs +++ b/graphics/mygraphics/src/ash_renderer/mod.rs @@ -1,6 +1,7 @@ use crate::ash_renderer::device::MyDevice; use crate::ash_renderer::graphics::{MyRenderPipelineManager, MyRenderer}; use crate::ash_renderer::swapchain::MySwapchainManager; +use crate::enable_debug_layer; use ash::util::read_spv; use mygraphics_shaders::ShaderConstants; use raw_window_handle::HasDisplayHandle as _; @@ -16,10 +17,6 @@ pub mod single_command_buffer; pub mod swapchain; pub fn main() -> anyhow::Result<()> { - let enable_debug_layer = std::env::var("DEBUG_LAYER") - .map(|e| !(e == "0" || e == "false")) - .unwrap_or(false); - // runtime setup let event_loop = EventLoop::new()?; // FIXME(eddyb) incomplete `winit` upgrade, follow the guides in: @@ -35,7 +32,7 @@ pub fn main() -> anyhow::Result<()> { )?; let extensions = ash_window::enumerate_required_extensions(window.display_handle()?.as_raw())?; - let device = MyDevice::new(extensions, enable_debug_layer)?; + let device = MyDevice::new(extensions, enable_debug_layer())?; let mut swapchain = MySwapchainManager::new(device.clone(), window)?; let mut renderer = MyRenderer::new(MyRenderPipelineManager::new( device.clone(), diff --git a/graphics/mygraphics/src/main.rs b/graphics/mygraphics/src/main.rs index 5d49d93..1035edc 100644 --- a/graphics/mygraphics/src/main.rs +++ b/graphics/mygraphics/src/main.rs @@ -75,3 +75,9 @@ pub mod ash_renderer; pub fn main() -> anyhow::Result<()> { ash_renderer::main() } + +pub fn enable_debug_layer() -> bool { + std::env::var("DEBUG_LAYER") + .map(|e| !(e == "0" || e == "false")) + .unwrap_or(false) +} From 09c64c4f322751a4010e4bf22f478cc8e2949ba2 Mon Sep 17 00:00:00 2001 From: firestar99 Date: Thu, 4 Dec 2025 12:06:09 +0100 Subject: [PATCH 8/8] ci: allow `workflow_dispatch` pipeline creation --- .github/workflows/ci.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 5a1e26e..f4fa22b 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -4,6 +4,7 @@ on: - main pull_request: merge_group: + workflow_dispatch: name: CI