EAC fix

Fixed 2 issues:
- Added missing VK_FORMAT_R16* formats in SamplerCore
- Made sure the minimum signed EAC value also gets bit shifted

Bug b/119620767

Change-Id: I3189001316cc0c65d3be9a9bd2e986df4f7a3690
Tests: dEQP-VK.*eac*
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/30908
Tested-by: Alexis Hétu <sugoi@google.com>
Presubmit-Ready: Alexis Hétu <sugoi@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
diff --git a/src/Device/ETC_Decoder.cpp b/src/Device/ETC_Decoder.cpp
index a9f4e4c..c40f7da 100644
--- a/src/Device/ETC_Decoder.cpp
+++ b/src/Device/ETC_Decoder.cpp
@@ -30,7 +30,7 @@
 	{
 		short min = isSigned ? -1023 : 0;
 		short max = isSigned ? 1023 : 2047;
-		return (value < min) ? min : ((value > max) ? max : value) << 5;
+		return ((value < min) ? min : ((value > max) ? max : value)) << 5;
 	}
 
 	struct bgra8
diff --git a/src/Pipeline/SamplerCore.cpp b/src/Pipeline/SamplerCore.cpp
index bca6f37..d63b401 100644
--- a/src/Pipeline/SamplerCore.cpp
+++ b/src/Pipeline/SamplerCore.cpp
@@ -212,8 +212,6 @@
 			}
 		}
 
-		int componentCount = textureComponentCount();
-
 		if(state.textureFilter != FILTER_GATHER)
 		{
 			switch(state.textureFormat)
@@ -241,33 +239,32 @@
 			case VK_FORMAT_R32G32B32A32_UINT:
 				break;
 			case VK_FORMAT_R8_SNORM:
-			case VK_FORMAT_R8G8_SNORM:
-			case VK_FORMAT_R8G8B8A8_SNORM:
 			case VK_FORMAT_R8_UNORM:
-			case VK_FORMAT_R5G6B5_UNORM_PACK16:
-			case VK_FORMAT_R8G8_UNORM:
-			case VK_FORMAT_R16G16_UNORM:
-			case VK_FORMAT_R16G16B16A16_UNORM:
-			case VK_FORMAT_B8G8R8A8_UNORM:
-			case VK_FORMAT_B8G8R8A8_SRGB:
-			case VK_FORMAT_R8G8B8A8_UNORM:
-			case VK_FORMAT_R8G8B8A8_SRGB:
-			case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:
-			case VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:
-			case VK_FORMAT_B10G11R11_UFLOAT_PACK32:
-				if(componentCount < 2) c.y = Float4(0.0f);
-				if(componentCount < 3) c.z = Float4(0.0f);
-				if(componentCount < 4) c.w = Float4(1.0f);
-				break;
+			case VK_FORMAT_R16_SNORM:
+			case VK_FORMAT_R16_UNORM:
 			case VK_FORMAT_R32_SFLOAT:
 			case VK_FORMAT_R16_SFLOAT:
 			case VK_FORMAT_D32_SFLOAT:
 			case VK_FORMAT_D16_UNORM:
 				c.y = Float4(0.0f);
+			case VK_FORMAT_R8G8_SNORM:
+			case VK_FORMAT_R8G8_UNORM:
+			case VK_FORMAT_R16G16_SNORM:
+			case VK_FORMAT_R16G16_UNORM:
 			case VK_FORMAT_R32G32_SFLOAT:
 			case VK_FORMAT_R16G16_SFLOAT:
 				c.z = Float4(0.0f);
+			case VK_FORMAT_R5G6B5_UNORM_PACK16:
+			case VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:
+			case VK_FORMAT_B10G11R11_UFLOAT_PACK32:
+			case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:
 				c.w = Float4(1.0f);
+			case VK_FORMAT_R8G8B8A8_SNORM:
+			case VK_FORMAT_R16G16B16A16_UNORM:
+			case VK_FORMAT_B8G8R8A8_UNORM:
+			case VK_FORMAT_B8G8R8A8_SRGB:
+			case VK_FORMAT_R8G8B8A8_UNORM:
+			case VK_FORMAT_R8G8B8A8_SRGB:
 			case VK_FORMAT_R32G32B32A32_SFLOAT:
 			case VK_FORMAT_R16G16B16A16_SFLOAT:
 			case VK_FORMAT_A2B10G10R10_UNORM_PACK32: