fix(m12): harden vkd3d-proton migration and protected-game launches - #395
Conversation
|
How in the world did you get Elden Ring to launch offline? I'm thoroughly impressed. I've had so many issues with that. My only resolution has been the renamed protected executable. |
|
Also the bundle was re-uploaded with a new set so that's what caused the hash mismatch, it just needs to know about the new set. If you ever want the source, it is here: https://github.com/metalsharp/MetalSharp/releases/tag/bundles |
|
Now adding geometry shader support. This was the leading cause of failures. |
|
Oh wait I'm on it too! Forgot to check my mails |
|
There's only 6 geometry shaders in elden ring, my codex translated them manually it looks quite good but I haven't tested throughly. It's a very ad hoc solution though, if an update brings new shaders the support won't work. The cleaner path would be to implement general support for translating any geometry shaders at the translation layer level (SPIR-V afaiu), but that's a bit more involved, idk if it's realistic to try and do that. If you can get it working, it would be super cool though! |
Summary
This follows the core M12/vkd3d-proton migration already merged in #377 and hardens it for production use:
.dll.orig, and repairing modern Goldberg settings and Steam CEF behaviorValidation
cargo test: 749 passedcargo fmt --all -- --checkcargo clippy --all-targets -- -D warningscargo build --releasetools/ci/check-clang-format.shReady for M12 via vkd3d-proton, no blockers or warningssteam_api64.dllin both.dll.origand the per-app cacheValidated payloads:
d3d12.dll:9b9be3098f45ec3921ed316e7c7bc421790d28a31795722153dc3e532d18aedcd3d12core.dll:844b044e570a37028236b1328a12a8efbe606385a007ac0bac402c683d882746libMoltenVK.dylib:fe9b0ec34f7cefd0497e741d83d919ad5a6b912b1e9abea9c4ef1d1531c9392dRelease dependency
The published graphics bundle must be rebuilt and released with the pinned payloads above. The previous release bundle intentionally makes readiness fail and falls M12 back to DXMT because its vkd3d-proton/MoltenVK hashes do not match. The VKMT MoltenVK source patch is a separate upstream dependency and is not included here.
Known limitations