New fragment output types

This code requires flat interpolation to work properly, but otherwise
R16I and R16U types should work properly with this code. Other enums
added here (remaining combinations of R/GR/ABGR, 8/16, I/U) aren't
implemented yet.

Change-Id: Ica4e29d0421611e3178a20aadc01f3645dc793bf
Reviewed-on: https://swiftshader-review.googlesource.com/5460
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
diff --git a/src/Shader/PixelProgram.cpp b/src/Shader/PixelProgram.cpp
index abaff41..590a4b7 100644
--- a/src/Shader/PixelProgram.cpp
+++ b/src/Shader/PixelProgram.cpp
@@ -645,6 +645,18 @@
 			case FORMAT_R32UI:
 			case FORMAT_G32R32UI:
 			case FORMAT_A32B32G32R32UI:
+			case FORMAT_R16I:
+			case FORMAT_G16R16I:
+			case FORMAT_A16B16G16R16I:
+			case FORMAT_R16UI:
+			case FORMAT_G16R16UI:
+			case FORMAT_A16B16G16R16UI:
+			case FORMAT_R8I:
+			case FORMAT_G8R8I:
+			case FORMAT_A8B8G8R8I:
+			case FORMAT_R8UI:
+			case FORMAT_G8R8UI:
+			case FORMAT_A8B8G8R8UI:
 				for(unsigned int q = 0; q < state.multiSample; q++)
 				{
 					Pointer<Byte> buffer = cBuffer[index] + q * *Pointer<Int>(data + OFFSET(DrawData, colorSliceB[index]));