summaryrefslogtreecommitdiffstats
path: root/src/angle/patches
diff options
context:
space:
mode:
authorAndrew Knight <andrew.knight@digia.com>2013-04-03 19:57:09 +0300
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-04-08 11:35:44 +0200
commit710ad8ce1bd5d01ce048851d210ac3831ca17dde (patch)
treebb3f645e57a7887341113275c9caa2583f7e2dfa /src/angle/patches
parent8307ab784eb4d8d22441ee61f02cb381684ca3a2 (diff)
Upgrade ANGLE to DX11 Proto
Upgrades ANGLE to dx11proto (dx11-MRT-support tag), which splits out support for DirectX9 & DirectX11. The DX9 codepath is used by default; CONFIG+=angle_d3d11 must be passed to the ANGLE project to build for DX11. Existing patches to ANGLE have been updated (or removed if no longer needed), and a patch has been added to make DX9/DX11 codepaths mutually exclusive. Change-Id: Ibe13befadb94f04883eca449d0ee1f0da955ff92 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Axel Waggershauser <awagger@gmail.com>
Diffstat (limited to 'src/angle/patches')
-rw-r--r--src/angle/patches/0001-Dynamically-resolve-functions-of-dwmapi.dll.patch22
-rw-r--r--src/angle/patches/0003-Fix-Float16ToFloat32.py.patch54
-rw-r--r--src/angle/patches/0004-Fix-black-screen-after-minimizing-OpenGL-window-with.patch30
-rw-r--r--src/angle/patches/0005-Fix-build-when-SSE2-is-not-available.patch40
-rw-r--r--src/angle/patches/0006-ANGLE-Do-not-reset-the-share-handle-when-resetting-t.patch32
-rw-r--r--src/angle/patches/0006-Make-DX9-DX11-mutually-exclusive.patch140
-rw-r--r--src/angle/patches/0007-ANGLE-Fix-typedefs-for-Win64.patch14
7 files changed, 192 insertions, 140 deletions
diff --git a/src/angle/patches/0001-Dynamically-resolve-functions-of-dwmapi.dll.patch b/src/angle/patches/0001-Dynamically-resolve-functions-of-dwmapi.dll.patch
index f58cfe2d03..b259aa3f80 100644
--- a/src/angle/patches/0001-Dynamically-resolve-functions-of-dwmapi.dll.patch
+++ b/src/angle/patches/0001-Dynamically-resolve-functions-of-dwmapi.dll.patch
@@ -1,7 +1,7 @@
-From a5ed22f7c9aa51eebbd3ec48904a4c0999dcced6 Mon Sep 17 00:00:00 2001
-From: Friedemann Kleint <Friedemann.Kleint@digia.com>
-Date: Tue, 6 Nov 2012 09:22:18 +0100
-Subject: [PATCH] Dynamically resolve functions of dwmapi.dll.
+From 211954dffc6a0ee52db130017ae4bea00e80748f Mon Sep 17 00:00:00 2001
+From: Friedemann Kleint <Friedemann.Klient@digia.com>
+Date: Mon, 18 Mar 2013 15:35:13 +0200
+Subject: [PATCH 1/6] Dynamically resolve functions of dwmapi.dll.
The library is not present on Windows XP, for which /DELAYLOAD
is used in ANGLE. However, as this causes problems with MinGW,
@@ -10,24 +10,24 @@ use dynamic resolution.
Task-number: QTBUG-27741
Change-Id: I16214d6f98a184d89858c50ee5306371ea25469e
---
- src/3rdparty/angle/src/libEGL/Surface.cpp | 39 +++++++++++++++++++++--------
+ src/3rdparty/angle/src/libEGL/Surface.cpp | 39 ++++++++++++++++++++++++++++-----------
1 file changed, 28 insertions(+), 11 deletions(-)
diff --git a/src/3rdparty/angle/src/libEGL/Surface.cpp b/src/3rdparty/angle/src/libEGL/Surface.cpp
-index 732c404..34df14c 100644
+index 78203b0..5ece724 100644
--- a/src/3rdparty/angle/src/libEGL/Surface.cpp
+++ b/src/3rdparty/angle/src/libEGL/Surface.cpp
-@@ -73,6 +73,9 @@ Surface::~Surface()
+@@ -71,6 +71,9 @@ Surface::~Surface()
bool Surface::initialize()
{
+ typedef HRESULT (STDAPICALLTYPE *PtrDwmIsCompositionEnabled)(BOOL*);
+ typedef HRESULT (STDAPICALLTYPE *PtrDwmSetPresentParameters)(HWND, DWM_PRESENT_PARAMETERS *);
+
- ASSERT(!mSwapChain && !mOffscreenTexture && !mDepthStencil);
-
if (!resetSwapChain())
-@@ -82,17 +85,31 @@ bool Surface::initialize()
+ return false;
+
+@@ -78,17 +81,31 @@ bool Surface::initialize()
// to minimize the amount of queuing done by DWM between our calls to
// present and the actual screen.
if (mWindow && (getComparableOSVersion() >= versionWindowsVista)) {
@@ -71,5 +71,5 @@ index 732c404..34df14c 100644
}
--
-1.7.10.msysgit.1
+1.8.1.msysgit.1
diff --git a/src/angle/patches/0003-Fix-Float16ToFloat32.py.patch b/src/angle/patches/0003-Fix-Float16ToFloat32.py.patch
deleted file mode 100644
index c37ab43fb9..0000000000
--- a/src/angle/patches/0003-Fix-Float16ToFloat32.py.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From e4f894847ebefe54f9a9f9911c38dc3efe77c260 Mon Sep 17 00:00:00 2001
-From: Jason Barron <jason.barron@digia.com>
-Date: Tue, 16 Oct 2012 10:34:32 +0200
-Subject: [PATCH 3/3] Fix Float16ToFloat32.py.
-
-To ensure generation of compilable code, the script should
-be using the alternate form of the hex string formatter to
-be sure it gets prefixed by '0x'.
-
-Also remove an extra '=' character.
-
-This issue has been reported upstream to the ANGLE team:
-
- http://code.google.com/p/angleproject/issues/detail?id=376
-
-Change-Id: I8ccf017afcfbd2c2f52ed291b89f29ba597c9c41
----
- src/3rdparty/angle/src/libGLESv2/Float16ToFloat32.py | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/src/3rdparty/angle/src/libGLESv2/Float16ToFloat32.py b/src/3rdparty/angle/src/libGLESv2/Float16ToFloat32.py
-index ae646ff..fb2964e 100644
---- a/src/3rdparty/angle/src/libGLESv2/Float16ToFloat32.py
-+++ b/src/3rdparty/angle/src/libGLESv2/Float16ToFloat32.py
-@@ -56,22 +56,22 @@ namespace gl
-
- print "const static unsigned g_mantissa[2048] = {"
- for i in range(0, 2048):
-- print " %08x," % convertMantissa(i)
-+ print " %#10x," % convertMantissa(i)
- print "};\n"
-
- print "const static unsigned g_exponent[64] = {"
- for i in range(0, 64):
-- print " %08x," % convertExponent(i)
-+ print " %#10x," % convertExponent(i)
- print "};\n"
-
- print "const static unsigned g_offset[64] = {"
- for i in range(0, 64):
-- print " %08x," % convertOffset(i)
-+ print " %#10x," % convertOffset(i)
- print "};\n"
-
- print """float float16ToFloat32(unsigned short h)
- {
-- unsigned i32 = =g_mantissa[g_offset[h >> 10] + (h & 0x3ff)] + g_exponent[h >> 10];
-+ unsigned i32 = g_mantissa[g_offset[h >> 10] + (h & 0x3ff)] + g_exponent[h >> 10];
- return *(float*) &i32;
- }
- }
---
-1.7.11.msysgit.1
-
diff --git a/src/angle/patches/0004-Fix-black-screen-after-minimizing-OpenGL-window-with.patch b/src/angle/patches/0004-Fix-black-screen-after-minimizing-OpenGL-window-with.patch
index 372b9238af..29852c57fa 100644
--- a/src/angle/patches/0004-Fix-black-screen-after-minimizing-OpenGL-window-with.patch
+++ b/src/angle/patches/0004-Fix-black-screen-after-minimizing-OpenGL-window-with.patch
@@ -1,7 +1,8 @@
-From 85e9ba49580e307e1213c87cdbfdc301848f497f Mon Sep 17 00:00:00 2001
+From 0b8f4889511d7aa8f9f07b16dbf204f378e127a6 Mon Sep 17 00:00:00 2001
From: Miikka Heikkinen <miikka.heikkinen@digia.com>
-Date: Tue, 20 Nov 2012 13:23:27 +0200
-Subject: [PATCH] Fix black screen after minimizing OpenGL window with ANGLE
+Date: Mon, 18 Mar 2013 16:27:07 +0200
+Subject: [PATCH 3/6] Fix black screen after minimizing OpenGL window with
+ ANGLE
CreateTexture will fail on zero dimensions, so just release old target
and reset dimensions when resetSwapChain is called with zero size area.
@@ -10,14 +11,14 @@ Task-number: QTBUG-27994
Change-Id: I1e500c4fd4b92f7d9ea2a49a44f3fb930b575cd1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
---
- src/3rdparty/angle/src/libEGL/Surface.cpp | 16 ++++++++++++++++
- 1 files changed, 16 insertions(+), 0 deletions(-)
+ src/3rdparty/angle/src/libGLESv2/renderer/SwapChain9.cpp | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
-diff --git a/src/3rdparty/angle/src/libEGL/Surface.cpp b/src/3rdparty/angle/src/libEGL/Surface.cpp
-index 8e920ab..174b403 100644
---- a/src/3rdparty/angle/src/libEGL/Surface.cpp
-+++ b/src/3rdparty/angle/src/libEGL/Surface.cpp
-@@ -224,6 +224,22 @@ bool Surface::resetSwapChain(int backbufferWidth, int backbufferHeight)
+diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/SwapChain9.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/SwapChain9.cpp
+index 0324d01..f57a874 100644
+--- a/src/3rdparty/angle/src/libGLESv2/renderer/SwapChain9.cpp
++++ b/src/3rdparty/angle/src/libGLESv2/renderer/SwapChain9.cpp
+@@ -137,6 +137,21 @@ EGLint SwapChain9::reset(int backbufferWidth, int backbufferHeight, EGLint swapI
pShareHandle = &mShareHandle;
}
@@ -32,14 +33,13 @@ index 8e920ab..174b403 100644
+
+ mWidth = backbufferWidth;
+ mHeight = backbufferHeight;
-+ mPresentIntervalDirty = false;
+
-+ return true;
++ return EGL_SUCCESS;
+ }
+
result = device->CreateTexture(backbufferWidth, backbufferHeight, 1, D3DUSAGE_RENDERTARGET,
- mConfig->mRenderTargetFormat, D3DPOOL_DEFAULT, &mOffscreenTexture, pShareHandle);
- if (FAILED(result))
+ gl_d3d9::ConvertRenderbufferFormat(mBackBufferFormat), D3DPOOL_DEFAULT,
+ &mOffscreenTexture, pShareHandle);
--
-1.7.4.msysgit.0
+1.8.1.msysgit.1
diff --git a/src/angle/patches/0005-Fix-build-when-SSE2-is-not-available.patch b/src/angle/patches/0005-Fix-build-when-SSE2-is-not-available.patch
index 7519e3ba63..72211aeee0 100644
--- a/src/angle/patches/0005-Fix-build-when-SSE2-is-not-available.patch
+++ b/src/angle/patches/0005-Fix-build-when-SSE2-is-not-available.patch
@@ -1,7 +1,7 @@
-From 45a06cc846dbe451bf42c5b3f617729f208743b1 Mon Sep 17 00:00:00 2001
+From 61abac6f8da2ed1ca3ab74c8c65e5fd1be3d85ad Mon Sep 17 00:00:00 2001
From: Andy Shaw <andy.shaw@digia.com>
-Date: Wed, 28 Nov 2012 15:38:58 +0100
-Subject: [PATCH] Fix build when SSE2 is not available.
+Date: Mon, 18 Mar 2013 16:36:40 +0200
+Subject: [PATCH 4/6] Fix build when SSE2 is not available.
Although SSE2 support is detected at runtime it still may not be
available at build time, so we have to ensure it only uses SSE2
@@ -9,41 +9,41 @@ when it is available at build time too.
Change-Id: I86c45a6466ab4cec79aa0f62b0d5230a78ad825a
---
- src/3rdparty/angle/src/libGLESv2/Texture.cpp | 4 ++++
- 1 files changed, 4 insertions(+), 0 deletions(-)
+ src/3rdparty/angle/src/libGLESv2/renderer/Image9.cpp | 4 ++++
+ 1 file changed, 4 insertions(+)
-diff --git a/src/3rdparty/angle/src/libGLESv2/Texture.cpp b/src/3rdparty/angle/src/libGLESv2/Texture.cpp
-index af430bf..0ea475d 100644
---- a/src/3rdparty/angle/src/libGLESv2/Texture.cpp
-+++ b/src/3rdparty/angle/src/libGLESv2/Texture.cpp
-@@ -378,11 +378,13 @@ void Image::loadData(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height
+diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/Image9.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/Image9.cpp
+index b3dcc59..53030b7 100644
+--- a/src/3rdparty/angle/src/libGLESv2/renderer/Image9.cpp
++++ b/src/3rdparty/angle/src/libGLESv2/renderer/Image9.cpp
+@@ -373,11 +373,13 @@ void Image9::loadData(GLint xoffset, GLint yoffset, GLsizei width, GLsizei heigh
switch (mInternalFormat)
{
case GL_ALPHA8_EXT:
+#if defined(__SSE2__)
- if (supportsSSE2())
+ if (gl::supportsSSE2())
{
- loadAlphaDataSSE2(width, height, inputPitch, input, locked.Pitch, locked.pBits);
+ loadAlphaDataToBGRASSE2(width, height, inputPitch, input, locked.Pitch, locked.pBits);
}
else
+#endif
{
- loadAlphaData(width, height, inputPitch, input, locked.Pitch, locked.pBits);
+ loadAlphaDataToBGRA(width, height, inputPitch, input, locked.Pitch, locked.pBits);
}
-@@ -418,11 +420,13 @@ void Image::loadData(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height
- loadRGB565Data(width, height, inputPitch, input, locked.Pitch, locked.pBits);
+@@ -413,11 +415,13 @@ void Image9::loadData(GLint xoffset, GLint yoffset, GLsizei width, GLsizei heigh
+ loadRGB565DataToBGRA(width, height, inputPitch, input, locked.Pitch, locked.pBits);
break;
case GL_RGBA8_OES:
+#if defined(__SSE2__)
- if (supportsSSE2())
+ if (gl::supportsSSE2())
{
- loadRGBAUByteDataSSE2(width, height, inputPitch, input, locked.Pitch, locked.pBits);
+ loadRGBAUByteDataToBGRASSE2(width, height, inputPitch, input, locked.Pitch, locked.pBits);
}
else
+#endif
{
- loadRGBAUByteData(width, height, inputPitch, input, locked.Pitch, locked.pBits);
+ loadRGBAUByteDataToBGRA(width, height, inputPitch, input, locked.Pitch, locked.pBits);
}
---
-1.7.9.msysgit.0
+--
+1.8.1.msysgit.1
diff --git a/src/angle/patches/0006-ANGLE-Do-not-reset-the-share-handle-when-resetting-t.patch b/src/angle/patches/0006-ANGLE-Do-not-reset-the-share-handle-when-resetting-t.patch
deleted file mode 100644
index 7d4c7af3f8..0000000000
--- a/src/angle/patches/0006-ANGLE-Do-not-reset-the-share-handle-when-resetting-t.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 7a2483c26eebf1c06924143108186eae59d85d98 Mon Sep 17 00:00:00 2001
-From: Zeno Albisser <zeno@webkit.org>
-Date: Fri, 30 Nov 2012 13:20:44 +0100
-Subject: [PATCH] ANGLE: Do not reset the share handle when resetting the swap
- chain.
-
-This change only affects the ANGLE_surface_d3d_texture_2d_share_handle
-extension. The patch is necessary to have WebGL running in Qt/WebKit2.
-
-If the share handle is reset, we are loosing the reference to the
-EGLSurface and cannot actually reuse it in a different context anymore.
-
-Change-Id: I0138432dd8ff60ea57e7e591cfa2f8db1d324f53
----
- src/3rdparty/angle/src/libEGL/Surface.cpp | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/src/3rdparty/angle/src/libEGL/Surface.cpp b/src/3rdparty/angle/src/libEGL/Surface.cpp
-index 174b403..d9e1887 100644
---- a/src/3rdparty/angle/src/libEGL/Surface.cpp
-+++ b/src/3rdparty/angle/src/libEGL/Surface.cpp
-@@ -217,7 +217,6 @@ bool Surface::resetSwapChain(int backbufferWidth, int backbufferHeight)
- mDepthStencil = NULL;
- }
-
-- mShareHandle = NULL;
- HANDLE *pShareHandle = NULL;
- if (!mWindow && mDisplay->shareHandleSupported())
- {
---
-1.7.9.5
-
diff --git a/src/angle/patches/0006-Make-DX9-DX11-mutually-exclusive.patch b/src/angle/patches/0006-Make-DX9-DX11-mutually-exclusive.patch
new file mode 100644
index 0000000000..1e7ab82771
--- /dev/null
+++ b/src/angle/patches/0006-Make-DX9-DX11-mutually-exclusive.patch
@@ -0,0 +1,140 @@
+From a5c113dda327ad3015312c2836b794929d4771ff Mon Sep 17 00:00:00 2001
+From: Andrew Knight <andrew.knight@digia.com>
+Date: Thu, 21 Mar 2013 17:12:02 +0200
+Subject: [PATCH 5/6] Make DX9/DX11 mutually exclusive
+
+ANGLE dx11proto supports DX9 fallback when DX11 is unavailable. This
+patch removes the fallback mechanism and requires that the library be
+chosen at build time (by defining ANGLE_ENABLE_D3D11). This is required
+for WinRT, because d3d9 is not a support library on that platform.
+---
+ src/3rdparty/angle/src/common/RefCountObject.cpp | 1 -
+ src/3rdparty/angle/src/common/debug.cpp | 4 ++++
+ src/3rdparty/angle/src/libGLESv2/Texture.cpp | 6 +++++-
+ src/3rdparty/angle/src/libGLESv2/precompiled.h | 9 ++++++---
+ src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp | 37 +++++++++++--------------------------
+ 5 files changed, 26 insertions(+), 31 deletions(-)
+
+diff --git a/src/3rdparty/angle/src/common/RefCountObject.cpp b/src/3rdparty/angle/src/common/RefCountObject.cpp
+index 0364adf..c1ef90c 100644
+--- a/src/3rdparty/angle/src/common/RefCountObject.cpp
++++ b/src/3rdparty/angle/src/common/RefCountObject.cpp
+@@ -1,4 +1,3 @@
+-#include "precompiled.h"
+ //
+ // Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style license that can be
+diff --git a/src/3rdparty/angle/src/common/debug.cpp b/src/3rdparty/angle/src/common/debug.cpp
+index 2333740..438d397 100644
+--- a/src/3rdparty/angle/src/common/debug.cpp
++++ b/src/3rdparty/angle/src/common/debug.cpp
+@@ -8,7 +8,11 @@
+
+ #include "common/debug.h"
+ #include "common/system.h"
++#ifdef ANGLE_ENABLE_D3D11
++typedef DWORD D3DCOLOR;
++#else
+ #include <d3d9.h>
++#endif
+
+ namespace gl
+ {
+diff --git a/src/3rdparty/angle/src/libGLESv2/Texture.cpp b/src/3rdparty/angle/src/libGLESv2/Texture.cpp
+index ae83037..461357a 100644
+--- a/src/3rdparty/angle/src/libGLESv2/Texture.cpp
++++ b/src/3rdparty/angle/src/libGLESv2/Texture.cpp
+@@ -14,7 +14,11 @@
+ #include "libGLESv2/main.h"
+ #include "libGLESv2/mathutil.h"
+ #include "libGLESv2/utilities.h"
+-#include "libGLESv2/renderer/Blit.h"
++#if defined(ANGLE_ENABLE_D3D11)
++# define D3DFMT_UNKNOWN DXGI_FORMAT_UNKNOWN
++#else
++# include "libGLESv2/renderer/Blit.h"
++#endif
+ #include "libGLESv2/Renderbuffer.h"
+ #include "libGLESv2/renderer/Image.h"
+ #include "libGLESv2/renderer/Renderer.h"
+diff --git a/src/3rdparty/angle/src/libGLESv2/precompiled.h b/src/3rdparty/angle/src/libGLESv2/precompiled.h
+index a850d57..b8b043c 100644
+--- a/src/3rdparty/angle/src/libGLESv2/precompiled.h
++++ b/src/3rdparty/angle/src/libGLESv2/precompiled.h
+@@ -32,9 +32,12 @@
+ #include <unordered_map>
+ #include <vector>
+
+-#include <d3d9.h>
+-#include <D3D11.h>
+-#include <dxgi.h>
++#if defined(ANGLE_ENABLE_D3D11)
++# include <D3D11.h>
++# include <dxgi.h>
++#else
++# include <d3d9.h>
++#endif
+ #include <D3Dcompiler.h>
+
+ #ifdef _MSC_VER
+diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp
+index 8fd3425..64e52c1 100644
+--- a/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp
++++ b/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp
+@@ -10,14 +10,13 @@
+ #include "libGLESv2/main.h"
+ #include "libGLESv2/Program.h"
+ #include "libGLESv2/renderer/Renderer.h"
+-#include "libGLESv2/renderer/Renderer9.h"
+-#include "libGLESv2/renderer/Renderer11.h"
+-#include "libGLESv2/utilities.h"
+-
+-#if !defined(ANGLE_ENABLE_D3D11)
+-// Enables use of the Direct3D 11 API, when available
+-#define ANGLE_ENABLE_D3D11 0
++#if defined(ANGLE_ENABLE_D3D11)
++# include "libGLESv2/renderer/Renderer11.h"
++# define D3DERR_OUTOFVIDEOMEMORY MAKE_HRESULT( 1, 0x876, 380 )
++#else
++# include "libGLESv2/renderer/Renderer9.h"
+ #endif
++#include "libGLESv2/utilities.h"
+
+ #if !defined(ANGLE_COMPILE_OPTIMIZATION_LEVEL)
+ #define ANGLE_COMPILE_OPTIMIZATION_LEVEL D3DCOMPILE_OPTIMIZATION_LEVEL3
+@@ -174,27 +173,13 @@ rx::Renderer *glCreateRenderer(egl::Display *display, HDC hDc, bool softwareDevi
+ {
+ rx::Renderer *renderer = NULL;
+ EGLint status = EGL_BAD_ALLOC;
+-
+- if (ANGLE_ENABLE_D3D11)
+- {
+- renderer = new rx::Renderer11(display, hDc);
+-
+- if (renderer)
+- {
+- status = renderer->initialize();
+- }
+-
+- if (status == EGL_SUCCESS)
+- {
+- return renderer;
+- }
+-
+- // Failed to create a D3D11 renderer, try creating a D3D9 renderer
+- delete renderer;
+- }
+
++#if defined(ANGLE_ENABLE_D3D11)
++ renderer = new rx::Renderer11(display, hDc);
++#else
+ renderer = new rx::Renderer9(display, hDc, softwareDevice);
+-
++#endif
++
+ if (renderer)
+ {
+ status = renderer->initialize();
+--
+1.8.1.msysgit.1
+
diff --git a/src/angle/patches/0007-ANGLE-Fix-typedefs-for-Win64.patch b/src/angle/patches/0007-ANGLE-Fix-typedefs-for-Win64.patch
index ed744bbbd9..63e5bd635b 100644
--- a/src/angle/patches/0007-ANGLE-Fix-typedefs-for-Win64.patch
+++ b/src/angle/patches/0007-ANGLE-Fix-typedefs-for-Win64.patch
@@ -1,21 +1,19 @@
-From cf01d1953de652910734d0e01b032da99194590d Mon Sep 17 00:00:00 2001
+From a8f8f0858f59e6b8e344dfb0bb87e264aac0a13f Mon Sep 17 00:00:00 2001
From: Jonathan Liu <net147@gmail.com>
-Date: Tue, 18 Dec 2012 00:37:11 +1100
-Subject: [PATCH] ANGLE: Fix typedefs for Win64
+Date: Thu, 21 Mar 2013 17:28:54 +0200
+Subject: [PATCH 6/6] ANGLE: Fix typedefs for Win64
The long int type is incorrect for Windows 64-bit as LLP64 is used
there.
-
-Change-Id: If4ccf49d6bb0cd7ba4ff2997cebfdbe5e7e9711c
---
src/3rdparty/angle/include/KHR/khrplatform.h | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/3rdparty/angle/include/KHR/khrplatform.h b/src/3rdparty/angle/include/KHR/khrplatform.h
-index 8ec0d19..56c676c 100644
+index b169773..18a104e 100644
--- a/src/3rdparty/angle/include/KHR/khrplatform.h
+++ b/src/3rdparty/angle/include/KHR/khrplatform.h
-@@ -221,10 +221,17 @@ typedef signed char khronos_int8_t;
+@@ -222,10 +222,17 @@ typedef signed char khronos_int8_t;
typedef unsigned char khronos_uint8_t;
typedef signed short int khronos_int16_t;
typedef unsigned short int khronos_uint16_t;
@@ -34,5 +32,5 @@ index 8ec0d19..56c676c 100644
#if KHRONOS_SUPPORT_FLOAT
/*
--
-1.8.0.1
+1.8.1.msysgit.1