VkLayer_steam_fossilize64.dll 是 Steam 客户端在 64 位 Windows 环境中安装的 Vulkan 隐式层动态链接库。它不由普通游戏直接调用,而是通过 Khronos Vulkan Loader 的隐式层机制被自动加载。Steam 会在注册表 HKEY_CURRENT_USER\\SOFTWARE\\Khronos\\Vulkan\\ImplicitLayers 或 HKEY_LOCAL_MACHINE\\SOFTWARE\\Khronos\\Vulkan\\ImplicitLayers 中写入该 DLL 的路径与启用状态。当 Vulkan 应用调用 vkCreateInstance 时,Loader 会枚举并加载已启用的隐式层,VkLayer_steam_fossilize64.dll 因此进入进程地址空间。
该层的实现基础是 Valve 开源的 Fossilize 库。Fossilize 用于序列化、存储、重放 Vulkan 管线状态对象及相关元数据。VkLayer_steam_fossilize64.dll 作为 Vulkan Layer,会在应用创建图形管线、计算管线、着色器模块、渲染通道、管线布局、描述符集布局时进行拦截,把 VkGraphicsPipelineCreateInfo、VkComputePipelineCreateInfo、VkShaderModuleCreateInfo、VkRenderPassCreateInfo 等结构中的状态、SPIR-V 字节码、专用常量、混合状态、光栅化状态、深度模板状态序列化为 Fossilize 记录。这些记录通常写入 Steam 的着色器缓存或 Fossilize 数据库,并可在不同运行会话、驱动版本、Steam 云缓存之间复用。
在回放阶段,层会根据已记录的管线状态提前创建 VkPipeline 或填充 VkPipelineCache,使游戏在实际渲染前完成管线构建。Vulkan 驱动无需在场景加载或战斗过程中临时编译大量着色器,从而降低首帧卡顿、加载等待和 CPU 峰值。对于启用 Steam 着色器预缓存的游戏,该 DLL 是缓存收集、上传、下发、回放链路中的关键一环。
| 场景 | 表现 |
|---|---|
| 注册表仍指向该 DLL | Vulkan Loader 加载隐式层失败,可能输出 Layer VkLayer_steam_fossilize64.dll failed to load 或 vkCreateInstance failed,严格应用会报 VK_ERROR_INITIALIZATION_FAILED 并无法启动。 |
| 应用忽略层错误 | 游戏可进入,但 Steam 的管线缓存捕获与回放失效,首次运行、驱动更新、游戏补丁后着色器编译时间明显增加,出现卡顿、掉帧、加载缓慢。 |
| 缓存同步与完整性 | Steam 云着色器缓存无法正常收集或分发,跨设备预编译效果下降;部分校验、反作弊或启动器可能提示组件缺失。 |