From 91084b9a8311dcf60706bcc8e912e6101d2ed555 Mon Sep 17 00:00:00 2001 From: Erik Date: Sun, 23 Aug 2026 18:09:04 +0200 Subject: [PATCH] perf(sky): skip the night-sky lattice entirely while the day fade is zero The enhanced sky multiplied the full 4-tier star lattice by a night factor of 0.0 all day long. Early-out when the star layer's lighting product says daytime, so the pack's night sky costs nothing outside dusk-to-dawn. sky.frag.spv re-pinned. Co-Authored-By: Claude Fable 5 --- src/AcDream.App/Rendering/Shaders/sky.frag | 6 ++++++ .../Shaders/spv/shaders.manifest.json | 2 +- .../Rendering/Shaders/spv/sky.frag.spv | Bin 26316 -> 26428 bytes .../Gpu/Vk/VulkanShaderManifestTests.cs | 2 +- 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/AcDream.App/Rendering/Shaders/sky.frag b/src/AcDream.App/Rendering/Shaders/sky.frag index db25c71e..a511ef4b 100644 --- a/src/AcDream.App/Rendering/Shaders/sky.frag +++ b/src/AcDream.App/Rendering/Shaders/sky.frag @@ -191,6 +191,12 @@ void main() { // ~1.0 at noon. Stars at full strength only under a dark sky. float dayL = dot(vTint, vec3(0.299, 0.587, 0.114)); float night = 1.0 - smoothstep(0.18, 0.45, dayL); + if (night < 0.004) { + // Daytime: the whole lattice would multiply to zero — skip it + // so the enhanced sky costs nothing outside dusk-to-dawn. + fragColor = vec4(0.0, 0.0, 0.0, 1.0); + return; + } vec3 sky = nightSky(normalize(vDir), uint(uParamB)); // Additive pipeline (forced for this draw): rgb adds over the dome. fragColor = vec4(sky * night, 1.0); diff --git a/src/AcDream.App/Rendering/Shaders/spv/shaders.manifest.json b/src/AcDream.App/Rendering/Shaders/spv/shaders.manifest.json index 1029e342..dd84a830 100644 --- a/src/AcDream.App/Rendering/Shaders/spv/shaders.manifest.json +++ b/src/AcDream.App/Rendering/Shaders/spv/shaders.manifest.json @@ -316,7 +316,7 @@ }, { "stage": "frag", - "sourceSha256": "a6efd09f396b17ae6a19ffc4be400ac9b035056cbad26aee3447459cd98341f0", + "sourceSha256": "e7ccdb4d5fece2ceeb48eb43aaa827424df2b68614987eeb3dfb7880dff8ea83", "compiled": true } ] diff --git a/src/AcDream.App/Rendering/Shaders/spv/sky.frag.spv b/src/AcDream.App/Rendering/Shaders/spv/sky.frag.spv index 54f0a5690a91c24962d27f36fd695dafe14fd2ff..f6fc74417a2ed6bcd1bca4f8f9d420bb6bf8abb2 100644 GIT binary patch literal 26428 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 Z2w{KY^;=WcBYkx}a$Wj_E4Tse{{e&frl9}; literal 26316 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 btVbUp>~Fk&Ysz}0udYX~OP_HC*P{JDfKQJm diff --git a/tests/AcDream.App.Tests/Rendering/Gpu/Vk/VulkanShaderManifestTests.cs b/tests/AcDream.App.Tests/Rendering/Gpu/Vk/VulkanShaderManifestTests.cs index 4a1a467a..6a54192b 100644 --- a/tests/AcDream.App.Tests/Rendering/Gpu/Vk/VulkanShaderManifestTests.cs +++ b/tests/AcDream.App.Tests/Rendering/Gpu/Vk/VulkanShaderManifestTests.cs @@ -52,7 +52,7 @@ public sealed class VulkanShaderManifestTests // override, retail's GameSky::Draw @0x00506FF0 rule (see // SkyFogRuleTests). A deliberate default-path change, reviewed // with the world-fog-range fix in the same commit. - ["sky.frag.spv"] = "2d2de4080c7f4b0885aee4441e37a1725d3f30661b45773bcb39383674b1718b", + ["sky.frag.spv"] = "e307a7f3cf84aada86db7c2859c55841a650b46732f12149986562cef0a90ca8", ["sky.vert.spv"] = "3b51945fa4ff1be1604144df92866bdd47aade22f9dd90267591ef36adb28cde", ["terrain_modern.frag.spv"] = "7b3cdb01b837ed77ee20559a81c1ce5c9d5395300efcc072560ab0be3c5a1af9", ["terrain_modern.vert.spv"] = "9f4cb221ea6aed94a8d23af6cb8e3f3ed96c3cce6e50d135a72d3b55667b1557",