diff --git a/src/Pipeline/PixelProgram.cpp b/src/Pipeline/PixelProgram.cpp
index da26158..1bd924a 100644
--- a/src/Pipeline/PixelProgram.cpp
+++ b/src/Pipeline/PixelProgram.cpp
@@ -155,6 +155,10 @@
 		c[i].y = routine.outputs[i * 4 + 1];
 		c[i].z = routine.outputs[i * 4 + 2];
 		c[i].w = routine.outputs[i * 4 + 3];
+		outputMasks[i] = ((spirvShader->outputs[i * 4 + 0].Type != SpirvShader::ATTRIBTYPE_UNUSED) ? 0x1 : 0x0) |
+		                 ((spirvShader->outputs[i * 4 + 1].Type != SpirvShader::ATTRIBTYPE_UNUSED) ? 0x2 : 0x0) |
+		                 ((spirvShader->outputs[i * 4 + 2].Type != SpirvShader::ATTRIBTYPE_UNUSED) ? 0x4 : 0x0) |
+		                 ((spirvShader->outputs[i * 4 + 3].Type != SpirvShader::ATTRIBTYPE_UNUSED) ? 0x8 : 0x0);
 	}
 
 	clampColor(c);
diff --git a/src/Pipeline/PixelRoutine.cpp b/src/Pipeline/PixelRoutine.cpp
index 9a7a61c..e888883 100644
--- a/src/Pipeline/PixelRoutine.cpp
+++ b/src/Pipeline/PixelRoutine.cpp
@@ -44,6 +44,11 @@
 			routine.inputs[i] = Float4(0.0f);
 		}
 	}
+
+	for(int i = 0; i < RENDERTARGETS; i++)
+	{
+		outputMasks[i] = 0xF;
+	}
 }
 
 PixelRoutine::~PixelRoutine()
@@ -1272,7 +1277,7 @@
 			break;
 	}
 
-	int rgbaWriteMask = state.colorWriteActive(index);
+	int rgbaWriteMask = state.colorWriteActive(index) & outputMasks[index];
 	int bgraWriteMask = (rgbaWriteMask & 0x0000000A) | (rgbaWriteMask & 0x00000001) << 2 | (rgbaWriteMask & 0x00000004) >> 2;
 
 	switch(state.targetFormat[index])
@@ -2144,7 +2149,7 @@
 			UNSUPPORTED("VkFormat: %d", int(state.targetFormat[index]));
 	}
 
-	int rgbaWriteMask = state.colorWriteActive(index);
+	int rgbaWriteMask = state.colorWriteActive(index) & outputMasks[index];
 	int bgraWriteMask = (rgbaWriteMask & 0x0000000A) | (rgbaWriteMask & 0x00000001) << 2 | (rgbaWriteMask & 0x00000004) >> 2;
 
 	Int xMask;  // Combination of all masks
diff --git a/src/Pipeline/PixelRoutine.hpp b/src/Pipeline/PixelRoutine.hpp
index 72d4253..d9d4f21 100644
--- a/src/Pipeline/PixelRoutine.hpp
+++ b/src/Pipeline/PixelRoutine.hpp
@@ -37,6 +37,8 @@
 	Float4 w;     // Used as is
 	Float4 rhw;   // Reciprocal w
 
+	uint32_t outputMasks[RENDERTARGETS];  // TODO(b/162348737): Determine whether unwritten output should be left untouched
+
 	SpirvRoutine routine;
 	const vk::DescriptorSet::Bindings &descriptorSets;
 
