Fix implementation format for default renderbuffer.

The spec defines that the initial state for a newly bound renderbuffer
has a format of RGBA4. However, when querying the number of red/green/
blue/alpha/depth/stencil bits, we should report the actual number of
bits allocated (0), and not assert.

Bug chromium:765912
Bug b/25351344

Change-Id: Icc3eb59e76bcbd6f0f2f16a2a75ace706ae17251
Reviewed-on: https://swiftshader-review.googlesource.com/12148
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/OpenGL/libGLESv2/Renderbuffer.cpp b/src/OpenGL/libGLESv2/Renderbuffer.cpp
index 9b92698..4c4e448 100644
--- a/src/OpenGL/libGLESv2/Renderbuffer.cpp
+++ b/src/OpenGL/libGLESv2/Renderbuffer.cpp
@@ -423,7 +423,7 @@
 	mWidth = 0;
 	mHeight = 0;
 	format = GL_RGBA4;
-	internalFormat = sw::FORMAT_A8B8G8R8;
+	internalFormat = sw::FORMAT_NULL;
 	mSamples = 0;
 }
 
diff --git a/src/OpenGL/libGLESv2/utilities.cpp b/src/OpenGL/libGLESv2/utilities.cpp
index 4f95002..8282975 100644
--- a/src/OpenGL/libGLESv2/utilities.cpp
+++ b/src/OpenGL/libGLESv2/utilities.cpp
@@ -1588,6 +1588,8 @@
 	{
 		switch(stencilFormat)
 		{
+		case sw::FORMAT_NULL:
+			return 0;
 		case sw::FORMAT_D24FS8:
 		case sw::FORMAT_D24S8:
 		case sw::FORMAT_D32FS8_TEXTURE:
@@ -1616,6 +1618,8 @@
 	{
 		switch(colorFormat)
 		{
+		case sw::FORMAT_NULL:
+			return 0;
 		case sw::FORMAT_A16B16G16R16F:
 		case sw::FORMAT_A16B16G16R16I:
 		case sw::FORMAT_A16B16G16R16UI:
@@ -1652,6 +1656,8 @@
 	{
 		switch(colorFormat)
 		{
+		case sw::FORMAT_NULL:
+			return 0;
 		case sw::FORMAT_R16F:
 		case sw::FORMAT_G16R16F:
 		case sw::FORMAT_B16G16R16F:
@@ -1716,6 +1722,8 @@
 	{
 		switch(colorFormat)
 		{
+		case sw::FORMAT_NULL:
+			return 0;
 		case sw::FORMAT_G16R16F:
 		case sw::FORMAT_B16G16R16F:
 		case sw::FORMAT_A16B16G16R16F:
@@ -1771,6 +1779,8 @@
 	{
 		switch(colorFormat)
 		{
+		case sw::FORMAT_NULL:
+			return 0;
 		case sw::FORMAT_B16G16R16F:
 		case sw::FORMAT_A16B16G16R16F:
 		case sw::FORMAT_X16B16G16R16I:
@@ -1815,6 +1825,7 @@
 	{
 		switch(depthFormat)
 		{
+		case sw::FORMAT_NULL:           return 0;
 	//	case sw::FORMAT_D16_LOCKABLE:   return 16;
 		case sw::FORMAT_D32:            return 32;
 	//	case sw::FORMAT_D15S1:          return 15;