mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 19:35:51 +00:00
Bug 629538 - Upgrade ANGLE to r550 - 2/3 - r=vlad, a=blocking2.0
This commit is contained in:
parent
3a128e9a04
commit
28f3b24534
@ -1,16 +1,14 @@
|
||||
This is the ANGLE project, from http://code.google.com/p/angleproject/.
|
||||
|
||||
Current revision: r515
|
||||
Current revision: r550
|
||||
|
||||
Local patches:
|
||||
Applied local patches:
|
||||
angle-shared.patch - add declspec dllexport/dllimport support on win32
|
||||
|
||||
angle-fixes.patch - fix angle issues 51 & 52
|
||||
|
||||
angle-nspr-misc.patch - don't bother with ANGLE_OS detection with NSPR
|
||||
|
||||
angle-pbuffers.patch - add pbuffer support to ANGLE, and d3d texture handle query (angle issue 91)
|
||||
|
||||
== Visual Studio Solution Files ==
|
||||
|
||||
The VS solution/project files that are used to build ANGLE are built
|
||||
|
@ -1,37 +1,14 @@
|
||||
Fixes for angle defects 51 and 52
|
||||
|
||||
Index: src/libGLESv2/Texture.cpp
|
||||
===================================================================
|
||||
--- src/libGLESv2/Texture.cpp (revision 474)
|
||||
+++ src/libGLESv2/Texture.cpp (working copy)
|
||||
@@ -1207,6 +1207,9 @@
|
||||
mHeight = height << level;
|
||||
mImageArray[0].format = internalFormat;
|
||||
mType = type;
|
||||
+
|
||||
+ if (mColorbufferProxy.get())
|
||||
+ mColorbufferProxy->setStorage(new TextureColorbufferProxy(this, GL_TEXTURE_2D));
|
||||
# HG changeset patch
|
||||
# Parent 50279bda70bb802be20e508ef1f2d7deebf9bc64
|
||||
diff --git a/gfx/angle/src/libGLESv2/Renderbuffer.cpp b/gfx/angle/src/libGLESv2/Renderbuffer.cpp
|
||||
--- a/gfx/angle/src/libGLESv2/Renderbuffer.cpp
|
||||
+++ b/gfx/angle/src/libGLESv2/Renderbuffer.cpp
|
||||
@@ -241,61 +241,61 @@ Colorbuffer::~Colorbuffer()
|
||||
}
|
||||
}
|
||||
|
||||
return !textureOkay;
|
||||
@@ -2081,6 +2084,12 @@
|
||||
mImageArray[0][0].height = width << level;
|
||||
|
||||
mImageArray[0][0].format = internalFormat;
|
||||
+
|
||||
+ for (int i = 0; i < 6; i++)
|
||||
+ {
|
||||
+ if (mFaceProxies[i].get())
|
||||
+ mFaceProxies[i]->setStorage(new TextureColorbufferProxy(this, GL_TEXTURE_CUBE_MAP_POSITIVE_X + i));
|
||||
+ }
|
||||
}
|
||||
|
||||
return !textureOkay;
|
||||
Index: src/libGLESv2/Renderbuffer.cpp
|
||||
===================================================================
|
||||
--- src/libGLESv2/Renderbuffer.cpp (revision 474)
|
||||
+++ src/libGLESv2/Renderbuffer.cpp (working copy)
|
||||
@@ -246,12 +246,12 @@
|
||||
bool Colorbuffer::isColorbuffer() const
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -47,7 +24,7 @@ Index: src/libGLESv2/Renderbuffer.cpp
|
||||
|
||||
return es2dx::GetRedSize(description.Format);
|
||||
}
|
||||
@@ -259,12 +259,12 @@
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -63,7 +40,7 @@ Index: src/libGLESv2/Renderbuffer.cpp
|
||||
|
||||
return es2dx::GetGreenSize(description.Format);
|
||||
}
|
||||
@@ -272,12 +272,12 @@
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -79,7 +56,7 @@ Index: src/libGLESv2/Renderbuffer.cpp
|
||||
|
||||
return es2dx::GetBlueSize(description.Format);
|
||||
}
|
||||
@@ -285,12 +285,12 @@
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -95,11 +72,20 @@ Index: src/libGLESv2/Renderbuffer.cpp
|
||||
|
||||
return es2dx::GetAlphaSize(description.Format);
|
||||
}
|
||||
Index: src/libGLESv2/Renderbuffer.h
|
||||
===================================================================
|
||||
--- src/libGLESv2/Renderbuffer.h (revision 474)
|
||||
+++ src/libGLESv2/Renderbuffer.h (working copy)
|
||||
@@ -109,10 +109,10 @@
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
IDirect3DSurface9 *Colorbuffer::getRenderTarget()
|
||||
diff --git a/gfx/angle/src/libGLESv2/Renderbuffer.h b/gfx/angle/src/libGLESv2/Renderbuffer.h
|
||||
--- a/gfx/angle/src/libGLESv2/Renderbuffer.h
|
||||
+++ b/gfx/angle/src/libGLESv2/Renderbuffer.h
|
||||
@@ -104,20 +104,20 @@ class Colorbuffer : public RenderbufferS
|
||||
explicit Colorbuffer(IDirect3DSurface9 *renderTarget);
|
||||
explicit Colorbuffer(const Texture* texture);
|
||||
Colorbuffer(int width, int height, GLenum format, GLsizei samples);
|
||||
|
||||
~Colorbuffer();
|
||||
|
||||
bool isColorbuffer() const;
|
||||
|
||||
@ -114,3 +100,54 @@ Index: src/libGLESv2/Renderbuffer.h
|
||||
|
||||
IDirect3DSurface9 *getRenderTarget();
|
||||
|
||||
protected:
|
||||
IDirect3DSurface9 *mRenderTarget;
|
||||
|
||||
private:
|
||||
DISALLOW_COPY_AND_ASSIGN(Colorbuffer);
|
||||
diff --git a/gfx/angle/src/libGLESv2/Texture.cpp b/gfx/angle/src/libGLESv2/Texture.cpp
|
||||
--- a/gfx/angle/src/libGLESv2/Texture.cpp
|
||||
+++ b/gfx/angle/src/libGLESv2/Texture.cpp
|
||||
@@ -1313,16 +1313,19 @@ bool Texture2D::redefineTexture(GLint le
|
||||
mTexture = NULL;
|
||||
dropTexture();
|
||||
}
|
||||
|
||||
mWidth = width << level;
|
||||
mHeight = height << level;
|
||||
mImageArray[0].format = internalFormat;
|
||||
mType = type;
|
||||
+
|
||||
+ if (mColorbufferProxy.get())
|
||||
+ mColorbufferProxy->setStorage(new TextureColorbufferProxy(this, GL_TEXTURE_2D));
|
||||
}
|
||||
|
||||
return !textureOkay;
|
||||
}
|
||||
|
||||
void Texture2D::setImage(GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint unpackAlignment, const void *pixels)
|
||||
{
|
||||
redefineTexture(level, internalFormat, width, height, type);
|
||||
@@ -2210,16 +2213,22 @@ bool TextureCubeMap::redefineTexture(GLi
|
||||
}
|
||||
|
||||
mWidth = width << level;
|
||||
mImageArray[0][0].width = width << level;
|
||||
mHeight = width << level;
|
||||
mImageArray[0][0].height = width << level;
|
||||
|
||||
mImageArray[0][0].format = internalFormat;
|
||||
+
|
||||
+ for (int i = 0; i < 6; i++)
|
||||
+ {
|
||||
+ if (mFaceProxies[i].get())
|
||||
+ mFaceProxies[i]->setStorage(new TextureColorbufferProxy(this, GL_TEXTURE_CUBE_MAP_POSITIVE_X + i));
|
||||
+ }
|
||||
}
|
||||
|
||||
return !textureOkay;
|
||||
}
|
||||
|
||||
void TextureCubeMap::copyImage(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, Framebuffer *source)
|
||||
{
|
||||
IDirect3DSurface9 *renderTarget = source->getRenderTarget();
|
||||
|
@ -1,9 +1,14 @@
|
||||
# HG changeset patch
|
||||
# Parent f0e6e4c311dd940147f1589d72cc87f8ce755697
|
||||
# Parent 3f4e2a35c49bb865018798a76b62c169d8e3537b
|
||||
diff --git a/gfx/angle/src/compiler/osinclude.h b/gfx/angle/src/compiler/osinclude.h
|
||||
--- a/gfx/angle/src/compiler/osinclude.h
|
||||
+++ b/gfx/angle/src/compiler/osinclude.h
|
||||
@@ -12,8 +12,10 @@
|
||||
@@ -7,17 +7,19 @@
|
||||
#ifndef __OSINCLUDE_H
|
||||
#define __OSINCLUDE_H
|
||||
|
||||
//
|
||||
// This file contains contains os-specific datatypes and
|
||||
// declares any os-specific functions.
|
||||
//
|
||||
|
||||
@ -15,3 +20,7 @@ diff --git a/gfx/angle/src/compiler/osinclude.h b/gfx/angle/src/compiler/osinclu
|
||||
#elif defined(__APPLE__) || defined(__linux__) || \
|
||||
defined(__FreeBSD__) || defined(__OpenBSD__) || \
|
||||
defined(__sun)
|
||||
#define ANGLE_OS_POSIX
|
||||
#else
|
||||
#error Unsupported platform.
|
||||
#endif
|
||||
|
@ -1,3 +1,5 @@
|
||||
# HG changeset patch
|
||||
# Parent 0f2a334e5049bffe457bd31d3d8f5550af7ba299
|
||||
diff --git a/gfx/angle/include/GLSLANG/ShaderLang.h b/gfx/angle/include/GLSLANG/ShaderLang.h
|
||||
--- a/gfx/angle/include/GLSLANG/ShaderLang.h
|
||||
+++ b/gfx/angle/include/GLSLANG/ShaderLang.h
|
||||
@ -38,31 +40,7 @@ diff --git a/gfx/angle/include/GLSLANG/ShaderLang.h b/gfx/angle/include/GLSLANG/
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
@@ -73,21 +93,21 @@ typedef enum {
|
||||
SH_OBJECT_CODE = 0x0004,
|
||||
SH_ATTRIBUTES_UNIFORMS = 0x0008
|
||||
} ShCompileOptions;
|
||||
|
||||
//
|
||||
// Driver must call this first, once, before doing any other
|
||||
// compiler operations.
|
||||
//
|
||||
-int ShInitialize();
|
||||
+ANGLE_API int ShInitialize();
|
||||
//
|
||||
// Driver should call this at shutdown.
|
||||
//
|
||||
-int ShFinalize();
|
||||
+ANGLE_API int ShFinalize();
|
||||
|
||||
//
|
||||
// Implementation dependent built-in resources (constants and extensions).
|
||||
// The names for these resources has been obtained by stripping gl_/GL_.
|
||||
//
|
||||
typedef struct
|
||||
{
|
||||
// Constants.
|
||||
@@ -103,17 +123,17 @@ typedef struct
|
||||
@@ -107,17 +127,17 @@ typedef struct
|
||||
// Extensions.
|
||||
// Set to 1 to enable the extension, else 0.
|
||||
int OES_standard_derivatives;
|
||||
@ -81,7 +59,7 @@ diff --git a/gfx/angle/include/GLSLANG/ShaderLang.h b/gfx/angle/include/GLSLANG/
|
||||
//
|
||||
// If handle creation fails, 0 will be returned.
|
||||
//
|
||||
@@ -123,19 +143,19 @@ typedef void* ShHandle;
|
||||
@@ -127,19 +147,19 @@ typedef void* ShHandle;
|
||||
// Driver calls these to create and destroy compiler objects.
|
||||
//
|
||||
// Returns the handle of constructed compiler.
|
||||
@ -103,7 +81,7 @@ diff --git a/gfx/angle/include/GLSLANG/ShaderLang.h b/gfx/angle/include/GLSLANG/
|
||||
// handle: Specifies the handle of compiler to be used.
|
||||
// shaderStrings: Specifies an array of pointers to null-terminated strings
|
||||
// containing the shader source code.
|
||||
@@ -152,17 +172,17 @@ void ShDestruct(ShHandle handle);
|
||||
@@ -156,17 +176,17 @@ void ShDestruct(ShHandle handle);
|
||||
// SH_INTERMEDIATE_TREE: Writes intermediate tree to info log.
|
||||
// Can be queried by calling ShGetInfoLog().
|
||||
// SH_OBJECT_CODE: Translates intermediate tree to glsl or hlsl shader.
|
||||
@ -122,7 +100,7 @@ diff --git a/gfx/angle/include/GLSLANG/ShaderLang.h b/gfx/angle/include/GLSLANG/
|
||||
|
||||
// Returns a parameter from a compiled shader.
|
||||
// Parameters:
|
||||
@@ -178,53 +198,53 @@ int ShCompile(
|
||||
@@ -182,53 +202,53 @@ int ShCompile(
|
||||
// variable name including the null
|
||||
// termination character.
|
||||
// SH_ACTIVE_UNIFORMS: the number of active uniform variables.
|
||||
@ -180,7 +158,7 @@ diff --git a/gfx/angle/include/GLSLANG/ShaderLang.h b/gfx/angle/include/GLSLANG/
|
||||
|
||||
// Returns information about an active uniform variable.
|
||||
// Parameters:
|
||||
@@ -235,17 +255,17 @@ void ShGetActiveAttrib(const ShHandle ha
|
||||
@@ -239,17 +259,17 @@ void ShGetActiveAttrib(const ShHandle ha
|
||||
// other than NULL is passed.
|
||||
// size: Returns the size of the uniform variable.
|
||||
// type: Returns the data type of the uniform variable.
|
||||
|
@ -6,6 +6,26 @@
|
||||
#ifndef _COMPILER_INTERFACE_INCLUDED_
|
||||
#define _COMPILER_INTERFACE_INCLUDED_
|
||||
|
||||
#ifdef MOZILLA_VERSION
|
||||
#include "nscore.h"
|
||||
|
||||
#ifdef WIN32
|
||||
# if !defined(MOZ_ENABLE_LIBXUL) && !defined(MOZ_STATIC_BUILD)
|
||||
# ifdef ANGLE_BUILD
|
||||
# define ANGLE_API NS_EXPORT
|
||||
# else
|
||||
# define ANGLE_API NS_IMPORT
|
||||
# endif
|
||||
# else
|
||||
# define ANGLE_API /*nothing*/
|
||||
# endif
|
||||
#else
|
||||
# define ANGLE_API NS_EXTERNAL_VIS
|
||||
#endif
|
||||
#else
|
||||
#define ANGLE_API /*nothing*/
|
||||
#endif
|
||||
|
||||
//
|
||||
// This is the platform independent interface between an OGL driver
|
||||
// and the shading language compiler.
|
||||
@ -112,7 +132,7 @@ typedef struct
|
||||
//
|
||||
// Initialize built-in resources with minimum expected values.
|
||||
//
|
||||
void ShInitBuiltInResources(ShBuiltInResources* resources);
|
||||
ANGLE_API void ShInitBuiltInResources(ShBuiltInResources* resources);
|
||||
|
||||
//
|
||||
// ShHandle held by but opaque to the driver. It is allocated,
|
||||
@ -132,9 +152,9 @@ typedef void* ShHandle;
|
||||
// spec: Specifies the language spec the compiler must conform to -
|
||||
// SH_GLES2_SPEC or SH_WEBGL_SPEC.
|
||||
// resources: Specifies the built-in resources.
|
||||
ShHandle ShConstructCompiler(ShShaderType type, ShShaderSpec spec,
|
||||
ANGLE_API ShHandle ShConstructCompiler(ShShaderType type, ShShaderSpec spec,
|
||||
const ShBuiltInResources* resources);
|
||||
void ShDestruct(ShHandle handle);
|
||||
ANGLE_API void ShDestruct(ShHandle handle);
|
||||
|
||||
//
|
||||
// Compiles the given shader source.
|
||||
@ -161,7 +181,7 @@ void ShDestruct(ShHandle handle);
|
||||
// Can be queried by calling ShGetActiveAttrib() and
|
||||
// ShGetActiveUniform().
|
||||
//
|
||||
int ShCompile(
|
||||
ANGLE_API int ShCompile(
|
||||
const ShHandle handle,
|
||||
const char* const shaderStrings[],
|
||||
const int numStrings,
|
||||
@ -187,7 +207,7 @@ int ShCompile(
|
||||
// termination character.
|
||||
//
|
||||
// params: Requested parameter
|
||||
void ShGetInfo(const ShHandle handle, ShShaderInfo pname, int* params);
|
||||
ANGLE_API void ShGetInfo(const ShHandle handle, ShShaderInfo pname, int* params);
|
||||
|
||||
// Returns nul-terminated information log for a compiled shader.
|
||||
// Parameters:
|
||||
@ -197,7 +217,7 @@ void ShGetInfo(const ShHandle handle, ShShaderInfo pname, int* params);
|
||||
// to accomodate the information log. The size of the buffer required
|
||||
// to store the returned information log can be obtained by calling
|
||||
// ShGetInfo with SH_INFO_LOG_LENGTH.
|
||||
void ShGetInfoLog(const ShHandle handle, char* infoLog);
|
||||
ANGLE_API void ShGetInfoLog(const ShHandle handle, char* infoLog);
|
||||
|
||||
// Returns null-terminated object code for a compiled shader.
|
||||
// Parameters:
|
||||
@ -207,7 +227,7 @@ void ShGetInfoLog(const ShHandle handle, char* infoLog);
|
||||
// accomodate the object code. The size of the buffer required to
|
||||
// store the returned object code can be obtained by calling
|
||||
// ShGetInfo with SH_OBJECT_CODE_LENGTH.
|
||||
void ShGetObjectCode(const ShHandle handle, char* objCode);
|
||||
ANGLE_API void ShGetObjectCode(const ShHandle handle, char* objCode);
|
||||
|
||||
// Returns information about an active attribute variable.
|
||||
// Parameters:
|
||||
@ -223,7 +243,7 @@ void ShGetObjectCode(const ShHandle handle, char* objCode);
|
||||
// accomodate the attribute variable name. The size of the buffer
|
||||
// required to store the attribute variable name can be obtained by
|
||||
// calling ShGetInfo with SH_ACTIVE_ATTRIBUTE_MAX_LENGTH.
|
||||
void ShGetActiveAttrib(const ShHandle handle,
|
||||
ANGLE_API void ShGetActiveAttrib(const ShHandle handle,
|
||||
int index,
|
||||
int* length,
|
||||
int* size,
|
||||
@ -244,7 +264,7 @@ void ShGetActiveAttrib(const ShHandle handle,
|
||||
// accomodate the uniform variable name. The size of the buffer required
|
||||
// to store the uniform variable name can be obtained by calling
|
||||
// ShGetInfo with SH_ACTIVE_UNIFORMS_MAX_LENGTH.
|
||||
void ShGetActiveUniform(const ShHandle handle,
|
||||
ANGLE_API void ShGetActiveUniform(const ShHandle handle,
|
||||
int index,
|
||||
int* length,
|
||||
int* size,
|
||||
|
@ -12,7 +12,9 @@
|
||||
// declares any os-specific functions.
|
||||
//
|
||||
|
||||
#if defined(_WIN32) || defined(_WIN64)
|
||||
#if defined(ANGLE_USE_NSPR)
|
||||
/* no need to define anything when using NSPR */
|
||||
#elif defined(_WIN32) || defined(_WIN64)
|
||||
#define ANGLE_OS_WIN
|
||||
#elif defined(__APPLE__) || defined(__linux__) || \
|
||||
defined(__FreeBSD__) || defined(__OpenBSD__) || \
|
||||
|
@ -246,12 +246,12 @@ bool Colorbuffer::isColorbuffer() const
|
||||
return true;
|
||||
}
|
||||
|
||||
GLuint Colorbuffer::getRedSize() const
|
||||
GLuint Colorbuffer::getRedSize()
|
||||
{
|
||||
if (mRenderTarget)
|
||||
if (getRenderTarget())
|
||||
{
|
||||
D3DSURFACE_DESC description;
|
||||
mRenderTarget->GetDesc(&description);
|
||||
getRenderTarget()->GetDesc(&description);
|
||||
|
||||
return es2dx::GetRedSize(description.Format);
|
||||
}
|
||||
@ -259,12 +259,12 @@ GLuint Colorbuffer::getRedSize() const
|
||||
return 0;
|
||||
}
|
||||
|
||||
GLuint Colorbuffer::getGreenSize() const
|
||||
GLuint Colorbuffer::getGreenSize()
|
||||
{
|
||||
if (mRenderTarget)
|
||||
if (getRenderTarget())
|
||||
{
|
||||
D3DSURFACE_DESC description;
|
||||
mRenderTarget->GetDesc(&description);
|
||||
getRenderTarget()->GetDesc(&description);
|
||||
|
||||
return es2dx::GetGreenSize(description.Format);
|
||||
}
|
||||
@ -272,12 +272,12 @@ GLuint Colorbuffer::getGreenSize() const
|
||||
return 0;
|
||||
}
|
||||
|
||||
GLuint Colorbuffer::getBlueSize() const
|
||||
GLuint Colorbuffer::getBlueSize()
|
||||
{
|
||||
if (mRenderTarget)
|
||||
if (getRenderTarget())
|
||||
{
|
||||
D3DSURFACE_DESC description;
|
||||
mRenderTarget->GetDesc(&description);
|
||||
getRenderTarget()->GetDesc(&description);
|
||||
|
||||
return es2dx::GetBlueSize(description.Format);
|
||||
}
|
||||
@ -285,12 +285,12 @@ GLuint Colorbuffer::getBlueSize() const
|
||||
return 0;
|
||||
}
|
||||
|
||||
GLuint Colorbuffer::getAlphaSize() const
|
||||
GLuint Colorbuffer::getAlphaSize()
|
||||
{
|
||||
if (mRenderTarget)
|
||||
if (getRenderTarget())
|
||||
{
|
||||
D3DSURFACE_DESC description;
|
||||
mRenderTarget->GetDesc(&description);
|
||||
getRenderTarget()->GetDesc(&description);
|
||||
|
||||
return es2dx::GetAlphaSize(description.Format);
|
||||
}
|
||||
|
@ -109,10 +109,10 @@ class Colorbuffer : public RenderbufferStorage
|
||||
|
||||
bool isColorbuffer() const;
|
||||
|
||||
GLuint getRedSize() const;
|
||||
GLuint getGreenSize() const;
|
||||
GLuint getBlueSize() const;
|
||||
GLuint getAlphaSize() const;
|
||||
GLuint getRedSize();
|
||||
GLuint getGreenSize();
|
||||
GLuint getBlueSize();
|
||||
GLuint getAlphaSize();
|
||||
|
||||
IDirect3DSurface9 *getRenderTarget();
|
||||
|
||||
|
@ -1318,6 +1318,9 @@ bool Texture2D::redefineTexture(GLint level, GLenum internalFormat, GLsizei widt
|
||||
mHeight = height << level;
|
||||
mImageArray[0].format = internalFormat;
|
||||
mType = type;
|
||||
|
||||
if (mColorbufferProxy.get())
|
||||
mColorbufferProxy->setStorage(new TextureColorbufferProxy(this, GL_TEXTURE_2D));
|
||||
}
|
||||
|
||||
return !textureOkay;
|
||||
@ -2215,6 +2218,12 @@ bool TextureCubeMap::redefineTexture(GLint level, GLenum internalFormat, GLsizei
|
||||
mImageArray[0][0].height = width << level;
|
||||
|
||||
mImageArray[0][0].format = internalFormat;
|
||||
|
||||
for (int i = 0; i < 6; i++)
|
||||
{
|
||||
if (mFaceProxies[i].get())
|
||||
mFaceProxies[i]->setStorage(new TextureColorbufferProxy(this, GL_TEXTURE_CUBE_MAP_POSITIVE_X + i));
|
||||
}
|
||||
}
|
||||
|
||||
return !textureOkay;
|
||||
|
Loading…
Reference in New Issue
Block a user