diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 786f7ef..3c055ac 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -77,6 +77,8 @@ jobs: brew install pkg-config autoconf automake || true # for ffmpeg brew install ffmpeg || true + # for building molten vk + brew install python-setuptools || true - name: Prepare msys dependencies if: contains(matrix.os, 'windows') @@ -134,11 +136,15 @@ jobs: cargo clippy --release --verbose --features ${{ matrix.features }} -- -D warnings cargo clippy -p server --release --verbose --features bundled_data_dir -- -D warnings + - name: Screenshots + run: cargo test --release -- "tests::screenshots::create_screenshots" + - name: Prepare artifacts run: | mkdir bin-artifacts || true mv target/release/${{ matrix.bin }} bin-artifacts mv target/release/${{ matrix.server-bin }} bin-artifacts + mv artifacts bin-artifacts || true - name: Upload Artifacts uses: actions/upload-artifact@v4 diff --git a/Cargo.lock b/Cargo.lock index 87b5ceb..3c1d1d1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -513,6 +513,18 @@ dependencies = [ "libloading", ] +[[package]] +name = "ash-molten" +version = "0.20.0+1.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b4c4960621009149a2877457f6875185b894fe1b4f7a602167a3ac00758dc40" +dependencies = [ + "anyhow", + "ash", + "plist", + "serde", +] + [[package]] name = "ash-window" version = "0.13.0" @@ -4423,6 +4435,7 @@ dependencies = [ "anyhow", "arc-swap", "ash", + "ash-molten", "ash-window", "atomic_enum", "base", @@ -7267,6 +7280,19 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" +[[package]] +name = "plist" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42cf17e9a1800f5f396bc67d193dc9411b59012a5876445ef450d449881e1016" +dependencies = [ + "base64 0.22.1", + "indexmap 2.7.0", + "quick-xml 0.32.0", + "serde", + "time", +] + [[package]] name = "png" version = "0.17.16" @@ -7557,6 +7583,15 @@ dependencies = [ "suffix_array", ] +[[package]] +name = "quick-xml" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d3a6e5838b60e0e8fa7a43f22ade549a37d61f8bdbe636d0d7816191de969c2" +dependencies = [ + "memchr", +] + [[package]] name = "quick-xml" version = "0.36.2" @@ -10947,7 +10982,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "597f2001b2e5fc1121e3d5b9791d3e78f05ba6bfa4641053846248e3a13661c3" dependencies = [ "proc-macro2", - "quick-xml", + "quick-xml 0.36.2", "quote", ] diff --git a/lib/graphics-backend/Cargo.toml b/lib/graphics-backend/Cargo.toml index 630b971..3b06b81 100644 --- a/lib/graphics-backend/Cargo.toml +++ b/lib/graphics-backend/Cargo.toml @@ -51,7 +51,11 @@ log = "0.4.22" either = "1.13.0" replace_with = "0.1.7" crossbeam = "0.8.4" +futures = "0.3.31" + +[target.'cfg(target_os = "macos")'.dependencies] +ash-molten = { version = "0.20.0" } -#[cfg(test)] +[dev-dependencies] base-http = { path = "../base-http" } -futures = "0.3.31" + diff --git a/lib/graphics-backend/src/backends/vulkan/instance.rs b/lib/graphics-backend/src/backends/vulkan/instance.rs index 93115fe..cd33f7d 100644 --- a/lib/graphics-backend/src/backends/vulkan/instance.rs +++ b/lib/graphics-backend/src/backends/vulkan/instance.rs @@ -29,7 +29,10 @@ impl Instance { display_requirements: &BackendDisplayRequirements, dbg_mode: GfxDebugModes, ) -> anyhow::Result> { + #[cfg(not(target_os = "macos"))] let entry = unsafe { ash::Entry::load() }?; + #[cfg(target_os = "macos")] + let entry = ash_molten::load(); let extensions = &display_requirements.extensions;