Bug 1426596 - Rebase(Bug 1415754) draft
authorChih-Yi Leu <subsevenx2001@gmail.com>
Wed, 10 Jan 2018 11:12:55 +0800
changeset 720340 da1cef27984079289bec92c93181e90e290e47b4
parent 720339 3f00988adc583df1db394a93427a819a057ae12d
child 720341 7d9ac475b4311fbf3714e32f270809b16a9bb037
push id95513
push userbmo:cleu@mozilla.com
push dateMon, 15 Jan 2018 09:32:04 +0000
bugs1426596, 1415754
milestone59.0a1
Bug 1426596 - Rebase(Bug 1415754) MozReview-Commit-ID: 7e9fWIv3gWN
gfx/angle/src/libANGLE/renderer/d3d/d3d11/StreamProducerD3DTexture.cpp
gfx/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp
--- a/gfx/angle/src/libANGLE/renderer/d3d/d3d11/StreamProducerD3DTexture.cpp
+++ b/gfx/angle/src/libANGLE/renderer/d3d/d3d11/StreamProducerD3DTexture.cpp
@@ -60,16 +60,19 @@ egl::Error GetGLDescFromTex(ID3D11Textur
             out->internalFormat = GL_R8;
             break;
         case DXGI_FORMAT_R8G8_UNORM:
             out->internalFormat = GL_RG8;
             break;
         case DXGI_FORMAT_R8G8B8A8_UNORM:
             out->internalFormat = GL_RGBA8;
             break;
+        case DXGI_FORMAT_B8G8R8A8_UNORM:
+            out->internalFormat = GL_BGRA8_EXT;
+            break;
 
         default:
             return egl::EglBadParameter() << "Unsupported format";
     }
 
     if (planeIndex > maxPlaneIndex)  // Just kidding, there's no plane out there.
         return egl::EglBadParameter() << "Plane out of range";
 
--- a/gfx/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp
+++ b/gfx/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp
@@ -208,17 +208,22 @@ EGLint SwapChain11::resetOffscreenColorB
     // See EGL_ANGLE_d3d_share_handle_client_buffer and EGL_ANGLE_d3d_texture_client_buffer
     if (mAppCreatedShareHandle || mD3DTexture != nullptr)
     {
         if (mAppCreatedShareHandle)
         {
             ID3D11Resource *tempResource11;
             HRESULT result = device->OpenSharedResource(mShareHandle, __uuidof(ID3D11Resource),
                                                         (void **)&tempResource11);
-            ASSERT(SUCCEEDED(result));
+            if (FAILED(result))
+            {
+                ERR() << "Could not open shared handle. " << gl::FmtHR(result);
+                release();
+                return EGL_BAD_SURFACE;
+            }
 
             mOffscreenTexture.set(d3d11::DynamicCastComObject<ID3D11Texture2D>(tempResource11),
                                   backbufferFormatInfo);
             SafeRelease(tempResource11);
         }
         else if (mD3DTexture != nullptr)
         {
             mOffscreenTexture.set(d3d11::DynamicCastComObject<ID3D11Texture2D>(mD3DTexture),