Fix clearing the geometry shader state in copytexture, and errors generated by a BGRA backbuffer format.

TRAC #22545

Signed-off-by: Geoff Lang
Signed-off-by: Nicolas Capens
Author: Jamie Madill

git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1893 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/libGLESv2.cpp b/src/libGLESv2/libGLESv2.cpp
index 52bf8d7..dfa9795 100644
--- a/src/libGLESv2/libGLESv2.cpp
+++ b/src/libGLESv2/libGLESv2.cpp
@@ -1331,6 +1331,7 @@
                 if (colorbufferFormat != GL_ALPHA8_EXT &&
                     colorbufferFormat != GL_RGBA4 &&
                     colorbufferFormat != GL_RGB5_A1 &&
+                    colorbufferFormat != GL_BGRA8_EXT &&
                     colorbufferFormat != GL_RGBA8_OES)
                 {
                     return gl::error(GL_INVALID_OPERATION);
@@ -1342,6 +1343,7 @@
                     colorbufferFormat != GL_RGB8_OES &&
                     colorbufferFormat != GL_RGBA4 &&
                     colorbufferFormat != GL_RGB5_A1 &&
+                    colorbufferFormat != GL_BGRA8_EXT &&
                     colorbufferFormat != GL_RGBA8_OES)
                 {
                     return gl::error(GL_INVALID_OPERATION);
@@ -1351,6 +1353,7 @@
               case GL_RGBA:
                 if (colorbufferFormat != GL_RGBA4 &&
                     colorbufferFormat != GL_RGB5_A1 &&
+                    colorbufferFormat != GL_BGRA8_EXT &&
                     colorbufferFormat != GL_RGBA8_OES)
                  {
                      return gl::error(GL_INVALID_OPERATION);
diff --git a/src/libGLESv2/renderer/Renderer11.cpp b/src/libGLESv2/renderer/Renderer11.cpp
index 2aa342c..79fa83a 100644
--- a/src/libGLESv2/renderer/Renderer11.cpp
+++ b/src/libGLESv2/renderer/Renderer11.cpp
@@ -2648,6 +2648,7 @@
     }
 
     mDeviceContext->PSSetShader(ps, NULL, 0);
+    mDeviceContext->GSSetShader(NULL, NULL, 0);
 
     // Unset the currently bound shader resource to avoid conflicts
     static ID3D11ShaderResourceView *const nullSRV = NULL;