diff --git a/CMakeLists.txt b/CMakeLists.txt
index b88ab64e53..a68aa27e2b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -285,6 +285,10 @@ if (ARCHITECTURE_arm64 AND (ANDROID OR ${CMAKE_SYSTEM_NAME} STREQUAL "Linux"))
     add_definitions(-DHAS_NCE=1)
 endif()
 
+if (YUZU_LOG_BY_LINE)
+    add_definitions(-DYUZU_LOG_BY_LINE=1)
+endif()
+
 # Configure C++ standard
 # ===========================
 
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp
index d52ec296ed..5dab8b62ea 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp
+++ b/src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp
@@ -54,14 +54,6 @@ std::optional<OutAttr> OutputAttrPointer(EmitContext& ctx, IR::Attribute attr) {
         }
     }
 
-    for (u32 i = 0; i < ctx.profile.max_user_clip_distances; ++i) {
-        if (!clip_distance_written.test(i)) {
-            const Id idx = ctx.Const(i);
-            const Id element = OutputAccessChain(ctx, ctx.output_f32, ctx.clip_distances, idx);
-            ctx.OpStore(element, ctx.Const(0.0f));
-        }
-    }
-
     switch (attr) {
     case IR::Attribute::PointSize:
         return ctx.output_point_size;
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_special.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_special.cpp
index 7140ed6f4a..fe5e70a63b 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv_special.cpp
+++ b/src/shader_recompiler/backend/spirv/emit_spirv_special.cpp
@@ -108,7 +108,17 @@ void EmitPrologue(EmitContext& ctx) {
                 ctx.OpStore(element_info.id, value);
                 element += num;
             }
-        }        
+        }
+
+        if (Sirit::ValidId(ctx.clip_distances)) {
+            for (u32 i = 0; i < ctx.profile.max_user_clip_distances; ++i) {
+                if (!clip_distance_written.test(i)) {
+                    const Id idx = ctx.Const(i);
+                    const Id element = ctx.OpAccessChain(ctx.output_f32, ctx.clip_distances, idx);
+                    ctx.OpStore(element, ctx.Const(0.0f));
+                }
+            }
+        }
     }
     if (ctx.stage == Stage::VertexB || ctx.stage == Stage::Geometry) {
         SetFixedPipelinePointSize(ctx);