Просмотр исходного кода

vk_shader_decompiler: Skip NDC correction when it is native

Avoid changing gl_Position when the NDC used by the game is [0, 1]
(Vulkan's native).
ReinUsesLisp 6 лет назад
Родитель
Сommit
de918ebeb0

+ 1 - 1
src/video_core/renderer_vulkan/vk_shader_decompiler.cpp

@@ -1841,7 +1841,7 @@ private:
     }
 
     void PreExit() {
-        if (stage == ShaderType::Vertex) {
+        if (stage == ShaderType::Vertex && specialization.ndc_minus_one_to_one) {
             const u32 position_index = out_indices.position.value();
             const Id z_pointer = AccessElement(t_out_float, out_vertex, position_index, 2U);
             const Id w_pointer = AccessElement(t_out_float, out_vertex, position_index, 3U);

+ 1 - 0
src/video_core/renderer_vulkan/vk_shader_decompiler.h

@@ -94,6 +94,7 @@ struct Specialization final {
     Maxwell::PrimitiveTopology primitive_topology{};
     std::optional<float> point_size{};
     std::array<Maxwell::VertexAttribute::Type, Maxwell::NumVertexAttributes> attribute_types{};
+    bool ndc_minus_one_to_one{};
 
     // Tessellation specific
     struct {