Revert "Float only writeColor"

This reverts commit 978e2469e6b98de6784c27cbba69121e054f4351.

Reason for revert: Potentially causing some failures in https://angle-gold.skia.org/diff?grouping=name%3Dhearthstone%26source_type%3Dangle&left=f9178a683907f1c8d806c0970e2468c2&right=af6167f064bfd553d11eaed8d1abb29f&changelist_id=4098332&crs=gerrit

Change-Id: Ie7363edbf4e32a886d0732269c5584248f6a508b
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/70329
Reviewed-by: Alexis Hétu <sugoi@google.com>
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@google.com>
diff --git a/src/Vulkan/BUILD.gn b/src/Vulkan/BUILD.gn
index a7703f0..5556abd 100644
--- a/src/Vulkan/BUILD.gn
+++ b/src/Vulkan/BUILD.gn
@@ -63,6 +63,7 @@
 
   defines += [
      "SWIFTSHADER_ENABLE_ASTC",  # TODO(b/150130101)
+     "SWIFTSHADER_LEGACY_PRECISION=true",  # TODO(chromium:1299047)
      "SWIFTSHADER_ZERO_INITIALIZE_DEVICE_MEMORY",
   ]
 }
diff --git a/src/Vulkan/VkConfig.hpp b/src/Vulkan/VkConfig.hpp
index ca2f5ce..4e2c023 100644
--- a/src/Vulkan/VkConfig.hpp
+++ b/src/Vulkan/VkConfig.hpp
@@ -20,6 +20,10 @@
 #include "Vulkan/VulkanPlatform.hpp"
 #include "spirv-tools/libspirv.h"
 
+#ifndef SWIFTSHADER_LEGACY_PRECISION
+#	define SWIFTSHADER_LEGACY_PRECISION false
+#endif
+
 namespace vk {
 
 // Note: Constant array initialization requires a string literal.
@@ -90,7 +94,7 @@
 
 constexpr int MAX_SAMPLER_ALLOCATION_COUNT = 4000;
 
-constexpr int SUBPIXEL_PRECISION_BITS = 8;
+constexpr int SUBPIXEL_PRECISION_BITS = SWIFTSHADER_LEGACY_PRECISION ? 4 : 8;
 constexpr float SUBPIXEL_PRECISION_FACTOR = static_cast<float>(1 << SUBPIXEL_PRECISION_BITS);
 constexpr int SUBPIXEL_PRECISION_MASK = 0xFFFFFFFF >> (32 - SUBPIXEL_PRECISION_BITS);