Bug 939588 - Build angle in unified mode; r=bjacob

--HG--
extra : rebase_source : c6e8bd797c7b8e0a27d60e905deaed3f34d2ce39
This commit is contained in:
Ehsan Akhgari 2013-11-17 21:47:21 -05:00
parent f1e34517cf
commit f33cc14b4c
5 changed files with 87 additions and 11 deletions

View File

@ -47,6 +47,9 @@ In this order:
angle-tex-pool-default.patch:
Don't use D3DPOOL_MANAGED on D3D9. Just use D3DPOOL_DEFAULT.
angle-build-unified.patch:
Fixes required to make angle compile in unified mode
In addition to these patches, the Makefile.in and moz.build build files are ours,
they're not present in upsteam ANGLE. Therefore, changes made to the build files
should not be stored in the local .patch files.

View File

@ -0,0 +1,61 @@
From: Ehsan Akhagri <ehsan@mozilla.com>
Subject: Bug 939588 - Fixes required to make angle compile in unified mode
diff --git a/gfx/angle/src/compiler/ForLoopUnroll.h b/gfx/angle/src/compiler/ForLoopUnroll.h
index e800e25..7e10d82 100644
--- a/gfx/angle/src/compiler/ForLoopUnroll.h
+++ b/gfx/angle/src/compiler/ForLoopUnroll.h
@@ -1,14 +1,17 @@
//
// Copyright (c) 2011 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
+#ifndef ForLoopUnroll_h
+#define ForLoopUnroll_h
+
#include "compiler/intermediate.h"
struct TLoopIndexInfo {
int id;
int initValue;
int stopValue;
int incrementValue;
TOperator op;
@@ -41,8 +44,9 @@ public:
private:
int getLoopIncrement(TIntermLoop* node);
int evaluateIntConstant(TIntermConstantUnion* node);
TVector<TLoopIndexInfo> mLoopIndexStack;
};
+#endif
diff --git a/gfx/angle/src/compiler/preprocessor/DiagnosticsBase.h b/gfx/angle/src/compiler/preprocessor/DiagnosticsBase.h
index 07bc411..e1829b0 100644
--- a/gfx/angle/src/compiler/preprocessor/DiagnosticsBase.h
+++ b/gfx/angle/src/compiler/preprocessor/DiagnosticsBase.h
@@ -4,16 +4,21 @@
// found in the LICENSE file.
//
#ifndef COMPILER_PREPROCESSOR_DIAGNOSTICS_H_
#define COMPILER_PREPROCESSOR_DIAGNOSTICS_H_
#include <string>
+// Windows.h #defines ERROR.
+#ifdef ERROR
+#undef ERROR
+#endif
+
namespace pp
{
struct SourceLocation;
// Base class for reporting diagnostic messages.
// Derived classes are responsible for formatting and printing the messages.
class Diagnostics

View File

@ -20,7 +20,7 @@ EXPORTS.angle += [
# Target: 'preprocessor'
# src/compiler/preprocessor:
SOURCES += ['src/compiler/preprocessor/' + src for src in [
UNIFIED_SOURCES += ['src/compiler/preprocessor/' + src for src in [
'DiagnosticsBase.cpp',
'DirectiveHandlerBase.cpp',
'DirectiveParser.cpp',
@ -38,7 +38,7 @@ SOURCES += ['src/compiler/preprocessor/' + src for src in [
# Target: 'translator_common'
# Requires: 'preprocessor'
# src/compiler:
SOURCES += ['src/compiler/' + src for src in [
UNIFIED_SOURCES += ['src/compiler/' + src for src in [
'BuiltInFunctionEmulator.cpp',
'Compiler.cpp',
'compiler_debug.cpp',
@ -47,8 +47,6 @@ SOURCES += ['src/compiler/' + src for src in [
'Diagnostics.cpp',
'DirectiveHandler.cpp',
'ForLoopUnroll.cpp',
'glslang_lex.cpp',
'glslang_tab.cpp',
'InfoSink.cpp',
'Initialize.cpp',
'InitializeDll.cpp',
@ -68,9 +66,14 @@ SOURCES += ['src/compiler/' + src for src in [
'VariableInfo.cpp',
'VariablePacker.cpp',
]]
# The yacc source files need to be built separately.
SOURCES += ['src/compiler/' + src for src in [
'glslang_lex.cpp',
'glslang_tab.cpp',
]]
# src/compiler/depgraph:
SOURCES += ['src/compiler/depgraph/' + src for src in [
UNIFIED_SOURCES += ['src/compiler/depgraph/' + src for src in [
'DependencyGraph.cpp',
'DependencyGraphBuilder.cpp',
'DependencyGraphOutput.cpp',
@ -78,27 +81,27 @@ SOURCES += ['src/compiler/depgraph/' + src for src in [
]]
# src/compiler/timing:
SOURCES += ['src/compiler/timing/' + src for src in [
UNIFIED_SOURCES += ['src/compiler/timing/' + src for src in [
'RestrictFragmentShaderTiming.cpp',
'RestrictVertexShaderTiming.cpp',
]]
# src/third_party/compiler:
SOURCES += ['src/third_party/compiler/' + src for src in [
UNIFIED_SOURCES += ['src/third_party/compiler/' + src for src in [
'ArrayBoundsClamper.cpp',
]]
# src/third_party/murmurhash:
SOURCES += ['src/third_party/murmurhash/' + src for src in [
UNIFIED_SOURCES += ['src/third_party/murmurhash/' + src for src in [
'MurmurHash3.cpp',
]]
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
SOURCES += [
UNIFIED_SOURCES += [
'src/compiler/ossource_win.cpp',
]
else:
SOURCES += [
UNIFIED_SOURCES += [
'src/compiler/ossource_posix.cpp',
]
@ -106,7 +109,7 @@ else:
# Target: 'translator_glsl'
# Requires: 'translator_common'
# src/compiler:
SOURCES += ['src/compiler/' + src for src in [
UNIFIED_SOURCES += ['src/compiler/' + src for src in [
'CodeGenGLSL.cpp',
'OutputESSL.cpp',
'OutputGLSL.cpp',

View File

@ -4,6 +4,9 @@
// found in the LICENSE file.
//
#ifndef ForLoopUnroll_h
#define ForLoopUnroll_h
#include "compiler/intermediate.h"
struct TLoopIndexInfo {
@ -46,3 +49,4 @@ private:
TVector<TLoopIndexInfo> mLoopIndexStack;
};
#endif

View File

@ -9,6 +9,11 @@
#include <string>
// Windows.h #defines ERROR.
#ifdef ERROR
#undef ERROR
#endif
namespace pp
{