Bug 1426596 - Rebase(
Bug 1415754)
MozReview-Commit-ID: 7e9fWIv3gWN
--- 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),