Enable reading missing 16-bit component formats in the Blitter

R16_SNORM, R16_UNORM, and R16G16_SNORM are required for computing cube
corner pixels for decompressed EAC formats.

Bug: b/138944025
Change-Id: I35a4d448e04bba7abc0e34250d153affe7fb1db5
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/34829
Presubmit-Ready: Nicolas Capens <nicolascapens@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
diff --git a/src/Device/Blitter.cpp b/src/Device/Blitter.cpp
index 06425db..f6b483e 100644
--- a/src/Device/Blitter.cpp
+++ b/src/Device/Blitter.cpp
@@ -281,9 +281,11 @@
 			c.w = float(0xFF);
 			break;
 		case VK_FORMAT_R16_SINT:
+		case VK_FORMAT_R16_SNORM:
 			c.x = Float(Int(*Pointer<Short>(element)));
 			c.w = float(0x7FFF);
 			break;
+		case VK_FORMAT_R16_UNORM:
 		case VK_FORMAT_R16_UINT:
 			c.x = Float(Int(*Pointer<UShort>(element)));
 			c.w = float(0xFFFF);
@@ -341,6 +343,7 @@
 			c.w = float(0xFF);
 			break;
 		case VK_FORMAT_R16G16_SINT:
+		case VK_FORMAT_R16G16_SNORM:
 			c.x = Float(Int(*Pointer<Short>(element + 0)));
 			c.y = Float(Int(*Pointer<Short>(element + 2)));
 			c.w = float(0x7FFF);