Remove Sampler::State::srgb

sRGB decode is controlled by format, not extra state. There is also no
565 sRGB format in Vulkan.

Also remove the 5 and 6bit sRGB LUTs since they are no longer used.

Change-Id: Iea8770a50e4ef77004dc66d4a9867df62e7c2aaf
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/30368
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Tested-by: Chris Forbes <chrisforbes@google.com>
diff --git a/src/Device/Sampler.cpp b/src/Device/Sampler.cpp
index 520f011..19e2365 100644
--- a/src/Device/Sampler.cpp
+++ b/src/Device/Sampler.cpp
@@ -88,7 +88,6 @@
 			state.addressingModeV = getAddressingModeV();
 			state.addressingModeW = getAddressingModeW();
 			state.mipmapFilter = mipmapFilter();
-			state.sRGB = (sRGB && textureFormat.isSRGBreadable()) || textureFormat.isSRGBformat();
 			state.swizzle = swizzle;
 			state.highPrecisionFiltering = highPrecisionFiltering;
 			state.compare = getCompareFunc();
@@ -278,11 +277,6 @@
 		addressingModeW = addressingMode;
 	}
 
-	void Sampler::setReadSRGB(bool sRGB)
-	{
-		this->sRGB = sRGB;
-	}
-
 	void Sampler::setMaxAnisotropy(float maxAnisotropy)
 	{
 		texture.maxAnisotropy = maxAnisotropy;
diff --git a/src/Device/Sampler.hpp b/src/Device/Sampler.hpp
index 9f0e72f..af6c428 100644
--- a/src/Device/Sampler.hpp
+++ b/src/Device/Sampler.hpp
@@ -157,7 +157,6 @@
 			AddressingMode addressingModeV;
 			AddressingMode addressingModeW;
 			MipmapType mipmapFilter;
-			bool sRGB;
 			VkComponentMapping swizzle;
 			bool highPrecisionFiltering;
 			CompareFunc compare;
@@ -182,7 +181,6 @@
 		void setAddressingModeU(AddressingMode addressingMode);
 		void setAddressingModeV(AddressingMode addressingMode);
 		void setAddressingModeW(AddressingMode addressingMode);
-		void setReadSRGB(bool sRGB);
 		void setMaxAnisotropy(float maxAnisotropy);
 		void setHighPrecisionFiltering(bool highPrecisionFiltering);
 		void setCompareFunc(CompareFunc compare);
diff --git a/src/Pipeline/Constants.cpp b/src/Pipeline/Constants.cpp
index a7f5a6b..45e8b50 100644
--- a/src/Pipeline/Constants.cpp
+++ b/src/Pipeline/Constants.cpp
@@ -267,16 +267,6 @@
 			sRGBtoLinear8_16[i] = (unsigned short)(sw::sRGBtoLinear((float)i / 0xFF) * 0xFFFF + 0.5f);
 		}
 
-		for(int i = 0; i < 64; i++)
-		{
-			sRGBtoLinear6_16[i] = (unsigned short)(sw::sRGBtoLinear((float)i / 0x3F) * 0xFFFF + 0.5f);
-		}
-
-		for(int i = 0; i < 32; i++)
-		{
-			sRGBtoLinear5_16[i] = (unsigned short)(sw::sRGBtoLinear((float)i / 0x1F) * 0xFFFF + 0.5f);
-		}
-
 		for(int i = 0; i < 0x1000; i++)
 		{
 			linearToSRGB12_16[i] = (unsigned short)(clamp(sw::linearToSRGB((float)i / 0x0FFF) * 0xFFFF + 0.5f, 0.0f, (float)0xFFFF));
diff --git a/src/Pipeline/Constants.hpp b/src/Pipeline/Constants.hpp
index eac6e6a..e3e2ee8 100644
--- a/src/Pipeline/Constants.hpp
+++ b/src/Pipeline/Constants.hpp
@@ -68,8 +68,6 @@
 		word4 mask565Q[8];
 
 		unsigned short sRGBtoLinear8_16[256];
-		unsigned short sRGBtoLinear6_16[64];
-		unsigned short sRGBtoLinear5_16[32];
 
 		unsigned short linearToSRGB12_16[4096];
 		unsigned short sRGBtoLinear12_16[4096];
diff --git a/src/Pipeline/SamplerCore.cpp b/src/Pipeline/SamplerCore.cpp
index d60baa8..4c56de6 100644
--- a/src/Pipeline/SamplerCore.cpp
+++ b/src/Pipeline/SamplerCore.cpp
@@ -1684,22 +1684,13 @@
 		}
 		else ASSERT(false);
 
-		if(state.sRGB)
+		if (state.textureFormat.isSRGBformat())
 		{
-			if(state.textureFormat == VK_FORMAT_R5G6B5_UNORM_PACK16)
+			for(int i = 0; i < textureComponentCount(); i++)
 			{
-				sRGBtoLinear16_5_16(c.x);
-				sRGBtoLinear16_6_16(c.y);
-				sRGBtoLinear16_5_16(c.z);
-			}
-			else
-			{
-				for(int i = 0; i < textureComponentCount(); i++)
+				if(isRGBComponent(i))
 				{
-					if(isRGBComponent(i))
-					{
-						sRGBtoLinear16_8_16(c[i]);
-					}
+					sRGBtoLinear16_8_16(c[i]);
 				}
 			}
 		}
@@ -2278,30 +2269,6 @@
 		c = Insert(c, *Pointer<Short>(LUT + 2 * Int(Extract(c, 3))), 3);
 	}
 
-	void SamplerCore::sRGBtoLinear16_6_16(Short4 &c)
-	{
-		c = As<UShort4>(c) >> 10;
-
-		Pointer<Byte> LUT = Pointer<Byte>(constants + OFFSET(Constants,sRGBtoLinear6_16));
-
-		c = Insert(c, *Pointer<Short>(LUT + 2 * Int(Extract(c, 0))), 0);
-		c = Insert(c, *Pointer<Short>(LUT + 2 * Int(Extract(c, 1))), 1);
-		c = Insert(c, *Pointer<Short>(LUT + 2 * Int(Extract(c, 2))), 2);
-		c = Insert(c, *Pointer<Short>(LUT + 2 * Int(Extract(c, 3))), 3);
-	}
-
-	void SamplerCore::sRGBtoLinear16_5_16(Short4 &c)
-	{
-		c = As<UShort4>(c) >> 11;
-
-		Pointer<Byte> LUT = Pointer<Byte>(constants + OFFSET(Constants,sRGBtoLinear5_16));
-
-		c = Insert(c, *Pointer<Short>(LUT + 2 * Int(Extract(c, 0))), 0);
-		c = Insert(c, *Pointer<Short>(LUT + 2 * Int(Extract(c, 1))), 1);
-		c = Insert(c, *Pointer<Short>(LUT + 2 * Int(Extract(c, 2))), 2);
-		c = Insert(c, *Pointer<Short>(LUT + 2 * Int(Extract(c, 3))), 3);
-	}
-
 	bool SamplerCore::hasFloatTexture() const
 	{
 		return state.textureFormat.isFloatFormat();
diff --git a/src/Pipeline/SamplerCore.hpp b/src/Pipeline/SamplerCore.hpp
index 9255e60..2aad2c9 100644
--- a/src/Pipeline/SamplerCore.hpp
+++ b/src/Pipeline/SamplerCore.hpp
@@ -96,8 +96,6 @@
 		void convertSigned15(Float4 &cf, Short4 &ci);
 		void convertUnsigned16(Float4 &cf, Short4 &ci);
 		void sRGBtoLinear16_8_16(Short4 &c);
-		void sRGBtoLinear16_6_16(Short4 &c);
-		void sRGBtoLinear16_5_16(Short4 &c);
 
 		bool hasFloatTexture() const;
 		bool hasUnnormalizedIntegerTexture() const;
diff --git a/src/Pipeline/SpirvShaderSampling.cpp b/src/Pipeline/SpirvShaderSampling.cpp
index 6c546e5..905551f 100644
--- a/src/Pipeline/SpirvShaderSampling.cpp
+++ b/src/Pipeline/SpirvShaderSampling.cpp
@@ -80,7 +80,6 @@
 	samplerState.addressingModeW = convertAddressingMode(2, sampler->addressModeW, imageView->getType());
 
 	samplerState.mipmapFilter = convertMipmapMode(sampler);
-	samplerState.sRGB = imageView->getFormat().isSRGBformat();
 	samplerState.swizzle = imageView->getComponentMapping();
 	samplerState.highPrecisionFiltering = false;
 	samplerState.compare = COMPARE_BYPASS;                  ASSERT(sampler->compareEnable == VK_FALSE);  // TODO(b/129523279)