mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-22 08:33:12 -05:00
DecodeState, the draw precheck and DecodePixelStageInfo rejected every nonzero CONSERVATIVE_Z_EXPORT (DB_SHADER_CONTROL bits 13-14). EXPORT_LESS_THAN_Z (1) and EXPORT_GREATER_THAN_Z (2) promise that the exported Z stays on one side of the interpolated Z. The value now reaches the recompiler as a pixel stage field, and a pixel shader that writes FragDepth declares DepthLess or DepthGreater next to DepthReplacing, the SPIR-V modes RADV maps to these values. Vulkan lets those modes only add a depth test of the interpolated Z before shading, so a shader that keeps the promise renders the same. The reserved value 3 still throws. The field is part of the recompile cache key, the draw key and the serialized request (version 7), and ValidateShaders accepts both modes.