summaryrefslogtreecommitdiffstats
path: root/src/angle/src
diff options
context:
space:
mode:
Diffstat (limited to 'src/angle/src')
-rw-r--r--src/angle/src/common/common.pri6
-rw-r--r--src/angle/src/compiler/translator.pro34
-rw-r--r--src/angle/src/config.pri20
-rw-r--r--src/angle/src/d3dcompiler/d3dcompiler.pro17
-rw-r--r--src/angle/src/d3dcompiler/d3dcompiler_qt.def3
-rw-r--r--src/angle/src/d3dcompiler/d3dcompiler_qtd.def3
-rw-r--r--src/angle/src/d3dcompiler/main.cpp328
-rw-r--r--src/angle/src/libEGL/libEGL.pro5
-rw-r--r--src/angle/src/libGLESv2/libGLESv2.pro378
-rw-r--r--src/angle/src/src.pro1
10 files changed, 267 insertions, 528 deletions
diff --git a/src/angle/src/common/common.pri b/src/angle/src/common/common.pri
index afb8a8675d..43ac3ee8db 100644
--- a/src/angle/src/common/common.pri
+++ b/src/angle/src/common/common.pri
@@ -52,11 +52,15 @@ HEADERS += \
$$ANGLE_DIR/src/common/angleutils.h \
$$ANGLE_DIR/src/common/debug.h \
$$ANGLE_DIR/src/common/event_tracer.h \
+ $$ANGLE_DIR/src/common/mathutil.h \
+ $$ANGLE_DIR/src/common/platform.h \
$$ANGLE_DIR/src/common/RefCountObject.h \
+ $$ANGLE_DIR/src/common/tls.h \
$$ANGLE_DIR/src/common/version.h
SOURCES += \
$$ANGLE_DIR/src/common/debug.cpp \
$$ANGLE_DIR/src/common/event_tracer.cpp \
- $$ANGLE_DIR/src/common/RefCountObject.cpp
+ $$ANGLE_DIR/src/common/RefCountObject.cpp \
+ $$ANGLE_DIR/src/common/tls.cpp
diff --git a/src/angle/src/compiler/translator.pro b/src/angle/src/compiler/translator.pro
index 18c3978e0f..104eac5de3 100644
--- a/src/angle/src/compiler/translator.pro
+++ b/src/angle/src/compiler/translator.pro
@@ -16,9 +16,17 @@ BISON_SOURCES = $$ANGLE_DIR/src/compiler/translator/glslang.y
HEADERS += \
$$ANGLE_DIR/include/GLSLANG/ResourceLimits.h \
$$ANGLE_DIR/include/GLSLANG/ShaderLang.h \
+ $$ANGLE_DIR/src/common/angleutils.h \
+ $$ANGLE_DIR/src/common/blocklayout.h \
+ $$ANGLE_DIR/src/common/debug.h \
+ $$ANGLE_DIR/src/common/platform.h \
+ $$ANGLE_DIR/src/common/shadervars.h \
+ $$ANGLE_DIR/src/common/tls.h \
+ $$ANGLE_DIR/src/common/utilities.h \
$$ANGLE_DIR/src/compiler/translator/BaseTypes.h \
$$ANGLE_DIR/src/compiler/translator/BuiltInFunctionEmulator.h \
$$ANGLE_DIR/src/compiler/translator/Common.h \
+ $$ANGLE_DIR/src/compiler/translator/Compiler.h \
$$ANGLE_DIR/src/compiler/translator/compilerdebug.h \
$$ANGLE_DIR/src/compiler/translator/ConstantUnion.h \
$$ANGLE_DIR/src/compiler/translator/depgraph/DependencyGraph.h \
@@ -29,6 +37,7 @@ HEADERS += \
$$ANGLE_DIR/src/compiler/translator/Diagnostics.h \
$$ANGLE_DIR/src/compiler/translator/DirectiveHandler.h \
$$ANGLE_DIR/src/compiler/translator/ExtensionBehavior.h \
+ $$ANGLE_DIR/src/compiler/translator/FlagStd140Structs.h \
$$ANGLE_DIR/src/compiler/translator/ForLoopUnroll.h \
$$ANGLE_DIR/src/compiler/translator/HashNames.h \
$$ANGLE_DIR/src/compiler/translator/InfoSink.h \
@@ -38,7 +47,7 @@ HEADERS += \
$$ANGLE_DIR/src/compiler/translator/InitializeVariables.h \
$$ANGLE_DIR/src/compiler/translator/intermediate.h \
$$ANGLE_DIR/src/compiler/translator/localintermediate.h \
- $$ANGLE_DIR/src/compiler/translator/MapLongVariableNames.h \
+ $$ANGLE_DIR/src/compiler/translator/LoopInfo.h \
$$ANGLE_DIR/src/compiler/translator/MMap.h \
$$ANGLE_DIR/src/compiler/translator/NodeSearch.h \
$$ANGLE_DIR/src/compiler/translator/osinclude.h \
@@ -53,8 +62,10 @@ HEADERS += \
$$ANGLE_DIR/src/compiler/translator/RemoveTree.h \
$$ANGLE_DIR/src/compiler/translator/RenameFunction.h \
$$ANGLE_DIR/src/compiler/translator/RewriteElseBlocks.h \
+ $$ANGLE_DIR/src/compiler/translator/ScalarizeVecAndMatConstructorArgs.h \
$$ANGLE_DIR/src/compiler/translator/SearchSymbol.h \
$$ANGLE_DIR/src/compiler/translator/ShHandle.h \
+ $$ANGLE_DIR/src/compiler/translator/StructureHLSL.h \
$$ANGLE_DIR/src/compiler/translator/SymbolTable.h \
$$ANGLE_DIR/src/compiler/translator/timing/RestrictFragmentShaderTiming.h \
$$ANGLE_DIR/src/compiler/translator/timing/RestrictVertexShaderTiming.h \
@@ -64,9 +75,11 @@ HEADERS += \
$$ANGLE_DIR/src/compiler/translator/Types.h \
$$ANGLE_DIR/src/compiler/translator/UnfoldShortCircuit.h \
$$ANGLE_DIR/src/compiler/translator/UnfoldShortCircuitAST.h \
- $$ANGLE_DIR/src/compiler/translator/Uniform.h \
+ $$ANGLE_DIR/src/compiler/translator/UniformHLSL.h \
+ $$ANGLE_DIR/src/compiler/translator/UtilsHLSL.h \
$$ANGLE_DIR/src/compiler/translator/util.h \
$$ANGLE_DIR/src/compiler/translator/ValidateLimitations.h \
+ $$ANGLE_DIR/src/compiler/translator/ValidateOutputs.h \
$$ANGLE_DIR/src/compiler/translator/VariableInfo.h \
$$ANGLE_DIR/src/compiler/translator/VariablePacker.h \
$$ANGLE_DIR/src/compiler/translator/VersionGLSL.h \
@@ -74,6 +87,7 @@ HEADERS += \
SOURCES += \
+ $$ANGLE_DIR/src/common/tls.cpp \
$$ANGLE_DIR/src/compiler/translator/BuiltInFunctionEmulator.cpp \
$$ANGLE_DIR/src/compiler/translator/CodeGen.cpp \
$$ANGLE_DIR/src/compiler/translator/Compiler.cpp \
@@ -86,6 +100,7 @@ SOURCES += \
$$ANGLE_DIR/src/compiler/translator/DetectDiscontinuity.cpp \
$$ANGLE_DIR/src/compiler/translator/Diagnostics.cpp \
$$ANGLE_DIR/src/compiler/translator/DirectiveHandler.cpp \
+ $$ANGLE_DIR/src/compiler/translator/FlagStd140Structs.cpp \
$$ANGLE_DIR/src/compiler/translator/ForLoopUnroll.cpp \
$$ANGLE_DIR/src/compiler/translator/InfoSink.cpp \
$$ANGLE_DIR/src/compiler/translator/Initialize.cpp \
@@ -95,7 +110,7 @@ SOURCES += \
$$ANGLE_DIR/src/compiler/translator/Intermediate.cpp \
$$ANGLE_DIR/src/compiler/translator/intermOut.cpp \
$$ANGLE_DIR/src/compiler/translator/IntermTraverse.cpp \
- $$ANGLE_DIR/src/compiler/translator/MapLongVariableNames.cpp \
+ $$ANGLE_DIR/src/compiler/translator/LoopInfo.cpp \
$$ANGLE_DIR/src/compiler/translator/OutputESSL.cpp \
$$ANGLE_DIR/src/compiler/translator/OutputGLSL.cpp \
$$ANGLE_DIR/src/compiler/translator/OutputGLSLBase.cpp \
@@ -106,31 +121,30 @@ SOURCES += \
$$ANGLE_DIR/src/compiler/translator/QualifierAlive.cpp \
$$ANGLE_DIR/src/compiler/translator/RemoveTree.cpp \
$$ANGLE_DIR/src/compiler/translator/RewriteElseBlocks.cpp \
+ $$ANGLE_DIR/src/compiler/translator/ScalarizeVecAndMatConstructorArgs.cpp \
$$ANGLE_DIR/src/compiler/translator/SearchSymbol.cpp \
$$ANGLE_DIR/src/compiler/translator/ShaderLang.cpp \
+ $$ANGLE_DIR/src/compiler/translator/StructureHLSL.cpp \
$$ANGLE_DIR/src/compiler/translator/SymbolTable.cpp \
$$ANGLE_DIR/src/compiler/translator/timing/RestrictFragmentShaderTiming.cpp \
$$ANGLE_DIR/src/compiler/translator/timing/RestrictVertexShaderTiming.cpp \
$$ANGLE_DIR/src/compiler/translator/TranslatorESSL.cpp \
$$ANGLE_DIR/src/compiler/translator/TranslatorGLSL.cpp \
$$ANGLE_DIR/src/compiler/translator/TranslatorHLSL.cpp \
+ $$ANGLE_DIR/src/compiler/translator/Types.cpp \
$$ANGLE_DIR/src/compiler/translator/UnfoldShortCircuit.cpp \
$$ANGLE_DIR/src/compiler/translator/UnfoldShortCircuitAST.cpp \
- $$ANGLE_DIR/src/compiler/translator/Uniform.cpp \
+ $$ANGLE_DIR/src/compiler/translator/UniformHLSL.cpp \
+ $$ANGLE_DIR/src/compiler/translator/UtilsHLSL.cpp \
$$ANGLE_DIR/src/compiler/translator/util.cpp \
$$ANGLE_DIR/src/compiler/translator/ValidateLimitations.cpp \
+ $$ANGLE_DIR/src/compiler/translator/ValidateOutputs.cpp \
$$ANGLE_DIR/src/compiler/translator/VariableInfo.cpp \
$$ANGLE_DIR/src/compiler/translator/VariablePacker.cpp \
$$ANGLE_DIR/src/compiler/translator/VersionGLSL.cpp \
$$ANGLE_DIR/src/third_party/compiler/ArrayBoundsClamper.cpp
-winrt {
- SOURCES += $$ANGLE_DIR/src/compiler/translator/ossource_winrt.cpp
-} else {
- SOURCES += $$ANGLE_DIR/src/compiler/translator/ossource_win.cpp
-}
-
# NOTE: 'win_flex' and 'bison' can be found in qt5/gnuwin32/bin
flex.commands = $$addGnuPath(win_flex) --noline --nounistd --outfile=${QMAKE_FILE_BASE}_lex.cpp ${QMAKE_FILE_NAME}
flex.output = ${QMAKE_FILE_BASE}_lex.cpp
diff --git a/src/angle/src/config.pri b/src/angle/src/config.pri
index aa777c356f..07a18620da 100644
--- a/src/angle/src/config.pri
+++ b/src/angle/src/config.pri
@@ -37,17 +37,12 @@ DEFINES += _WINDOWS \
NOMINMAX \
WIN32_LEAN_AND_MEAN=1
-# Defines specifying the API version (0x0600 = Vista, 0x0602 = Win8))
-winrt {
- DEFINES += _WIN32_WINNT=0x0602 WINVER=0x0602
- DEFINES += ANGLE_ENABLE_UNIVERSAL_BINARY
-} else {
- DEFINES += _WIN32_WINNT=0x0600 WINVER=0x0600
- DEFINES += ANGLE_ENABLE_D3D9
-}
+!winrt: DEFINES += ANGLE_ENABLE_D3D9 ANGLE_SKIP_DXGI_1_2_CHECK
+
+CONFIG += angle_d3d11 # Remove to disable D3D11 renderer
angle_d3d11 {
- DEFINES += ANGLE_ENABLE_D3D11
+ DEFINES += ANGLE_ENABLE_D3D11 ANGLE_DEFAULT_D3D11=1
!build_pass: message("Enabling D3D11 mode for ANGLE")
}
@@ -71,11 +66,12 @@ msvc {
# 4239: nonstandard extension used : 'token' : conversion from 'type' to 'type'
# 4244: 'argument' : conversion from 'type1' to 'type2', possible loss of data
# 4245: 'conversion' : conversion from 'type1' to 'type2', signed/unsigned mismatch
+ # 4267: coversion from 'size_t' to 'int', possible loss of data
# 4275: non - DLL-interface classkey 'identifier' used as base for DLL-interface classkey 'identifier'
# 4512: 'class' : assignment operator could not be generated
# 4702: unreachable code
QMAKE_CFLAGS_WARN_ON -= -W3
- QMAKE_CFLAGS_WARN_ON += -W4 -wd"4100" -wd"4127" -wd"4189" -wd"4239" -wd"4244" -wd"4245" -wd"4275" -wd"4512" -wd"4702"
+ QMAKE_CFLAGS_WARN_ON += -W4 -wd"4100" -wd"4127" -wd"4189" -wd"4239" -wd"4244" -wd"4245" -wd"4267" -wd"4275" -wd"4512" -wd"4702"
# Optimizations
# /Oy: Omits frame pointer (x86 only).
# /Gy: Enables function-level linking.
@@ -93,9 +89,11 @@ gcc {
QMAKE_CFLAGS_WARN_ON += -Wno-unknown-pragmas -Wno-comment -Wno-missing-field-initializers \
-Wno-switch -Wno-unused-parameter -Wno-write-strings -Wno-sign-compare -Wno-missing-braces \
-Wno-unused-but-set-variable -Wno-unused-variable -Wno-narrowing -Wno-maybe-uninitialized \
- -Wno-strict-aliasing -Wno-type-limits
+ -Wno-strict-aliasing -Wno-type-limits -Wno-unused-local-typedefs
QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -Wno-reorder -Wno-conversion-null -Wno-delete-non-virtual-dtor
+
+ sse2: QMAKE_CXXFLAGS += -march=native
}
QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
diff --git a/src/angle/src/d3dcompiler/d3dcompiler.pro b/src/angle/src/d3dcompiler/d3dcompiler.pro
deleted file mode 100644
index 04b1de895d..0000000000
--- a/src/angle/src/d3dcompiler/d3dcompiler.pro
+++ /dev/null
@@ -1,17 +0,0 @@
-TARGET = d3dcompiler_qt
-CONFIG += installed
-include(../config.pri)
-
-CONFIG += qt
-QT = core
-DEFINES += QT_NO_CAST_FROM_ASCII QT_NO_CAST_TO_ASCII
-SOURCES += main.cpp
-win32:!winrt: LIBS += -lole32
-
-winrt:equals(WINSDK_VER, 8.1) {
- DEFINES += D3DCOMPILER_LINKED
- LIBS += -ld3dcompiler
-}
-
-# __stdcall exports get mangled, so use a def file
-DEF_FILE += $${TARGET}.def
diff --git a/src/angle/src/d3dcompiler/d3dcompiler_qt.def b/src/angle/src/d3dcompiler/d3dcompiler_qt.def
deleted file mode 100644
index 0b8679c8e0..0000000000
--- a/src/angle/src/d3dcompiler/d3dcompiler_qt.def
+++ /dev/null
@@ -1,3 +0,0 @@
-LIBRARY d3dcompiler_qt
-EXPORTS
- D3DCompile @1
diff --git a/src/angle/src/d3dcompiler/d3dcompiler_qtd.def b/src/angle/src/d3dcompiler/d3dcompiler_qtd.def
deleted file mode 100644
index 0bdd0a1ffd..0000000000
--- a/src/angle/src/d3dcompiler/d3dcompiler_qtd.def
+++ /dev/null
@@ -1,3 +0,0 @@
-LIBRARY d3dcompiler_qtd
-EXPORTS
- D3DCompile @1
diff --git a/src/angle/src/d3dcompiler/main.cpp b/src/angle/src/d3dcompiler/main.cpp
deleted file mode 100644
index 7647319396..0000000000
--- a/src/angle/src/d3dcompiler/main.cpp
+++ /dev/null
@@ -1,328 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the plugins of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QByteArray>
-#include <QCryptographicHash>
-#include <QDateTime>
-#include <QDir>
-#include <QElapsedTimer>
-#include <QFile>
-#include <QLoggingCategory>
-#include <QStandardPaths>
-#include <QThread>
-
-#include <qt_windows.h>
-#include <d3dcommon.h>
-
-#ifdef D3DCOMPILER_LINKED
-namespace D3D {
-# include <d3dcompiler.h>
-}
-#endif // D3DCOMPILER_LINKED
-
-Q_LOGGING_CATEGORY(QT_D3DCOMPILER, "qt.angle.d3dcompiler")
-
-namespace D3DCompiler {
-
-typedef HRESULT (WINAPI *D3DCompileFunc)(const void *data, SIZE_T data_size, const char *filename,
- const D3D_SHADER_MACRO *defines, ID3DInclude *include, const char *entrypoint,
- const char *target, UINT sflags, UINT eflags, ID3DBlob **shader, ID3DBlob **error_messages);
-static D3DCompileFunc compile;
-
-class Blob : public ID3DBlob
-{
-public:
- Blob(const QByteArray &data) : m_data(data)
- {
- IIDFromString(L"00000000-0000-0000-C000-000000000046", &IID_IUnknown);
- IIDFromString(L"8BA5FB08-5195-40e2-AC58-0D989C3A0102", &IID_ID3DBlob);
- }
-
- virtual ~Blob()
- {
- }
-
- // ID3DBlob
- LPVOID __stdcall GetBufferPointer()
- {
- return m_data.data();
- }
-
- SIZE_T __stdcall GetBufferSize()
- {
- return m_data.size();
- }
-
- // IUnknown
- HRESULT __stdcall QueryInterface(REFIID riid, void **ppv)
- {
- IUnknown *out = 0;
- if (riid == IID_IUnknown)
- out = static_cast<IUnknown*>(this);
- else if (riid == IID_ID3DBlob)
- out = this;
-
- *ppv = out;
- if (!out)
- return E_NOINTERFACE;
-
- out->AddRef();
- return S_OK;
- }
-
- ULONG __stdcall AddRef()
- {
- return ++m_ref;
- }
-
- ULONG __stdcall Release()
- {
- ULONG ref = --m_ref;
- if (!m_ref)
- delete this;
-
- return ref;
- }
-
-private:
- QByteArray m_data;
- ULONG m_ref;
-
- // These symbols might be missing, so define them here
- IID IID_IUnknown;
- IID IID_ID3DBlob;
-};
-
-static bool loadCompiler()
-{
-#ifndef D3DCOMPILER_LINKED
- static HMODULE d3dcompiler = 0;
- if (!d3dcompiler) {
- const wchar_t *dllNames[] = {
- L"d3dcompiler_47.dll",
- L"d3dcompiler_46.dll",
- L"d3dcompiler_45.dll",
- L"d3dcompiler_44.dll",
- L"d3dcompiler_43.dll",
- 0
- };
- for (int i = 0; const wchar_t *name = dllNames[i]; ++i) {
-#ifndef Q_OS_WINRT
- d3dcompiler = LoadLibrary(name);
-#else
- d3dcompiler = LoadPackagedLibrary(name, NULL);
-#endif
- if (d3dcompiler) {
- qCDebug(QT_D3DCOMPILER) << "Found" << QString::fromWCharArray(name);
- D3DCompiler::compile = reinterpret_cast<D3DCompiler::D3DCompileFunc>(GetProcAddress(d3dcompiler, "D3DCompile"));
- if (D3DCompiler::compile) {
- qCDebug(QT_D3DCOMPILER) << "Loaded" << QString::fromWCharArray(name);
- break;
- }
- qCDebug(QT_D3DCOMPILER) << "Failed to load" << QString::fromWCharArray(name);
- }
- }
-
- if (!d3dcompiler)
- qCDebug(QT_D3DCOMPILER) << "Unable to load D3D shader compiler.";
- }
-#else // !D3DCOMPILER_LINKED
- compile = &D3D::D3DCompile;
-#endif // D3DCOMPILER_LINKED
- return bool(compile);
-}
-
-static QString cacheKeyFor(const void *data)
-{
- return QString::fromUtf8(QCryptographicHash::hash(reinterpret_cast<const char *>(data), QCryptographicHash::Sha1).toHex());
-}
-
-} // namespace D3DCompiler
-
-#ifdef __MINGW32__
-extern "C"
-#endif
-__declspec(dllexport) HRESULT WINAPI D3DCompile(
- const void *, SIZE_T, const char *, const D3D_SHADER_MACRO *, ID3DInclude *,
- const char *, const char *, UINT, UINT, ID3DBlob **, ID3DBlob **);
-
-HRESULT WINAPI D3DCompile(
- const void *data, SIZE_T data_size, const char *filename,
- const D3D_SHADER_MACRO *defines, ID3DInclude *include, const char *entrypoint,
- const char *target, UINT sflags, UINT eflags, ID3DBlob **shader, ID3DBlob **errorMsgs)
-{
- // Shortcut to compile using the runtime compiler if it is available
- static bool compilerAvailable =
- !qgetenv("QT_D3DCOMPILER_DISABLE_DLL").toInt() && D3DCompiler::loadCompiler();
- if (compilerAvailable) {
- HRESULT hr = D3DCompiler::compile(data, data_size, filename, defines, include, entrypoint,
- target, sflags, eflags, shader, errorMsgs);
- return hr;
- }
-
- static bool initialized = false;
- static QStringList binaryPaths;
- static QString sourcePath;
- if (!initialized) {
- // Precompiled directory
- QString precompiledPath;
- if (qEnvironmentVariableIsSet("QT_D3DCOMPILER_BINARY_DIR"))
- precompiledPath = QString::fromLocal8Bit(qgetenv("QT_D3DCOMPILER_BINARY_DIR"));
- else
- precompiledPath = QStringLiteral(":/qt.d3dcompiler/"); // Default QRC path
- if (QDir(precompiledPath).exists())
- binaryPaths.append(precompiledPath);
-
- // Service directory
- QString base;
- if (qEnvironmentVariableIsSet("QT_D3DCOMPILER_DIR"))
- base = QString::fromLocal8Bit(qgetenv("QT_D3DCOMPILER_DIR"));
-
- if (base.isEmpty()) {
- const QString location = QStandardPaths::writableLocation(QStandardPaths::DataLocation);
- if (!location.isEmpty())
- base = location + QStringLiteral("/d3dcompiler");
- }
-
- // Create the directory structure
- QDir baseDir(base);
- if (!baseDir.exists()) {
- baseDir.cdUp();
- if (!baseDir.mkdir(QStringLiteral("d3dcompiler"))) {
- qCWarning(QT_D3DCOMPILER) << "Unable to create shader base directory:"
- << QDir::toNativeSeparators(baseDir.absolutePath());
- if (binaryPaths.isEmpty()) // No possibility to get a shader, abort
- return E_FAIL;
- }
- baseDir.cd(QStringLiteral("d3dcompiler"));
- }
-
- if (!baseDir.exists(QStringLiteral("binary")) && !baseDir.mkdir(QStringLiteral("binary"))) {
- qCWarning(QT_D3DCOMPILER) << "Unable to create shader binary directory:"
- << QDir::toNativeSeparators(baseDir.absoluteFilePath(QStringLiteral("binary")));
- if (binaryPaths.isEmpty()) // No possibility to get a shader, abort
- return E_FAIL;
- } else {
- binaryPaths.append(baseDir.absoluteFilePath(QStringLiteral("binary/")));
- }
-
- if (!baseDir.exists(QStringLiteral("source")) && !baseDir.mkdir(QStringLiteral("source"))) {
- qCWarning(QT_D3DCOMPILER) << "Unable to create shader source directory:"
- << QDir::toNativeSeparators(baseDir.absoluteFilePath(QStringLiteral("source")));
- } else {
- sourcePath = baseDir.absoluteFilePath(QStringLiteral("source/"));
- }
-
- initialized = true;
- }
-
- QByteArray macros;
- if (const D3D_SHADER_MACRO *macro = defines) {
- while (macro) {
- macros.append('#').append(macro->Name).append(' ').append(macro->Definition).append('\n');
- ++macro;
- }
- }
-
- const QByteArray sourceData = macros + QByteArray::fromRawData(reinterpret_cast<const char *>(data), data_size);
- const QString fileName = D3DCompiler::cacheKeyFor(sourceData)
- + QLatin1Char('!') + QString::fromUtf8(entrypoint)
- + QLatin1Char('!') + QString::fromUtf8(target)
- + QLatin1Char('!') + QString::number(sflags);
-
- // Check if pre-compiled shader blob is available
- foreach (const QString &path, binaryPaths) {
- QString blobName = path + fileName;
- QFile blob(blobName);
- while (!blob.exists()) {
- // Progressively drop optional parts
- blobName.truncate(blobName.lastIndexOf(QLatin1Char('!')));
- if (blobName.isEmpty())
- break;
- blob.setFileName(blobName);
- }
- if (blob.exists()) {
- if (blob.open(QFile::ReadOnly)) {
- qCDebug(QT_D3DCOMPILER) << "Opening precompiled shader blob at" << blob.fileName();
- *shader = new D3DCompiler::Blob(blob.readAll());
- return S_FALSE;
- }
- qCDebug(QT_D3DCOMPILER) << "Found, but unable to open, precompiled shader blob at" << blob.fileName();
- break;
- }
- }
-
- // Shader blob is not available; write out shader source
- if (!sourcePath.isEmpty()) {
- // Dump source to source path; wait for blob to appear
- QFile source(sourcePath + fileName);
- if (!source.open(QFile::WriteOnly)) {
- qCDebug(QT_D3DCOMPILER) << "Unable to write shader source to file:" << source.fileName() << source.errorString();
- return E_ACCESSDENIED;
- }
-
- source.write(sourceData);
- qCDebug(QT_D3DCOMPILER) << "Wrote shader source, waiting for blob:" << source.fileName();
- source.close();
-
- qint64 timeout = qgetenv("QT_D3DCOMPILER_TIMEOUT").toLong();
- if (!timeout)
- timeout = 3000;
-
- QElapsedTimer timer;
- timer.start();
- QFile blob(binaryPaths.last() + fileName);
- while (!(blob.exists() && blob.open(QFile::ReadOnly)) && timer.elapsed() < timeout)
- QThread::msleep(100);
-
- if (blob.isOpen()) {
- *shader = new D3DCompiler::Blob(blob.readAll());
- return S_FALSE;
- }
-
- qCDebug(QT_D3DCOMPILER) << "Shader blob failed to materialize after" << timeout << "ms.";
- *errorMsgs = new D3DCompiler::Blob("Shader compilation timeout.");
- return E_ABORT;
- }
-
- *errorMsgs = new D3DCompiler::Blob("No shader compiler or service could be found.");
- return E_FAIL;
-}
diff --git a/src/angle/src/libEGL/libEGL.pro b/src/angle/src/libEGL/libEGL.pro
index dc286ca11d..48ce7055fd 100644
--- a/src/angle/src/libEGL/libEGL.pro
+++ b/src/angle/src/libEGL/libEGL.pro
@@ -1,10 +1,7 @@
CONFIG += installed
include(../common/common.pri)
-angle_d3d11: \
- LIBS_PRIVATE += -ld3d11
-!winrt: \
- LIBS_PRIVATE += -ld3d9
+winrt: LIBS_PRIVATE += -ld3d11
LIBS_PRIVATE += -ldxguid -L$$QT_BUILD_TREE/lib -l$$qtLibraryTarget(libGLESv2)
diff --git a/src/angle/src/libGLESv2/libGLESv2.pro b/src/angle/src/libGLESv2/libGLESv2.pro
index 70c58dc5a4..2e84df0d39 100644
--- a/src/angle/src/libGLESv2/libGLESv2.pro
+++ b/src/angle/src/libGLESv2/libGLESv2.pro
@@ -4,10 +4,10 @@ include(../common/common.pri)
INCLUDEPATH += $$OUT_PWD/.. $$ANGLE_DIR/src/libGLESv2
# Remember to adapt tools/configure/configureapp.cpp if the Direct X version changes.
-angle_d3d11: \
- LIBS_PRIVATE += -ldxgi -ld3d11
!winrt: \
LIBS_PRIVATE += -ld3d9
+winrt: \
+ LIBS_PRIVATE += -ld3dcompiler -ldxgi -ld3d11
LIBS_PRIVATE += -ldxguid
@@ -21,138 +21,201 @@ for(libname, STATICLIBS) {
}
HEADERS += \
- $$ANGLE_DIR/src/third_party/murmurhash/MurmurHash3.h \
+ $$ANGLE_DIR/src/common/blocklayout.h \
+ $$ANGLE_DIR/src/common/shadervars.h \
+ $$ANGLE_DIR/src/common/utilities.h \
+ $$ANGLE_DIR/src/libGLESv2/angletypes.h \
$$ANGLE_DIR/src/libGLESv2/BinaryStream.h \
$$ANGLE_DIR/src/libGLESv2/Buffer.h \
+ $$ANGLE_DIR/src/libGLESv2/Caps.h \
$$ANGLE_DIR/src/libGLESv2/Context.h \
+ $$ANGLE_DIR/src/libGLESv2/DynamicHLSL.h \
$$ANGLE_DIR/src/libGLESv2/Fence.h \
+ $$ANGLE_DIR/src/libGLESv2/formatutils.h \
$$ANGLE_DIR/src/libGLESv2/Framebuffer.h \
+ $$ANGLE_DIR/src/libGLESv2/FramebufferAttachment.h \
$$ANGLE_DIR/src/libGLESv2/HandleAllocator.h \
$$ANGLE_DIR/src/libGLESv2/main.h \
- $$ANGLE_DIR/src/libGLESv2/mathutil.h \
+ $$ANGLE_DIR/src/libGLESv2/precompiled.h \
$$ANGLE_DIR/src/libGLESv2/Program.h \
$$ANGLE_DIR/src/libGLESv2/ProgramBinary.h \
$$ANGLE_DIR/src/libGLESv2/Query.h \
+ $$ANGLE_DIR/src/libGLESv2/queryconversions.h \
$$ANGLE_DIR/src/libGLESv2/Renderbuffer.h \
- $$ANGLE_DIR/src/libGLESv2/resource.h \
- $$ANGLE_DIR/src/libGLESv2/ResourceManager.h \
- $$ANGLE_DIR/src/libGLESv2/Shader.h \
- $$ANGLE_DIR/src/libGLESv2/Texture.h \
- $$ANGLE_DIR/src/libGLESv2/Uniform.h \
- $$ANGLE_DIR/src/libGLESv2/utilities.h \
- $$ANGLE_DIR/src/libGLESv2/vertexconversion.h \
- $$ANGLE_DIR/src/libGLESv2/precompiled.h \
- $$ANGLE_DIR/src/libGLESv2/renderer/BufferStorage.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/BufferImpl.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/copyimage.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/copyvertex.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/BufferD3D.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/HLSLCompiler.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/ImageD3D.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/IndexBuffer.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/IndexDataManager.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/MemoryBuffer.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/TextureD3D.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/TextureStorage.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/VertexArrayImpl.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/VertexBuffer.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/vertexconversion.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/VertexDataManager.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/FenceImpl.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/generatemip.h \
$$ANGLE_DIR/src/libGLESv2/renderer/Image.h \
- $$ANGLE_DIR/src/libGLESv2/renderer/IndexBuffer.h \
- $$ANGLE_DIR/src/libGLESv2/renderer/IndexDataManager.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/imageformats.h \
$$ANGLE_DIR/src/libGLESv2/renderer/IndexCacheRange.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/loadimage.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/QueryImpl.h \
$$ANGLE_DIR/src/libGLESv2/renderer/Renderer.h \
$$ANGLE_DIR/src/libGLESv2/renderer/RenderTarget.h \
$$ANGLE_DIR/src/libGLESv2/renderer/ShaderExecutable.h \
$$ANGLE_DIR/src/libGLESv2/renderer/SwapChain.h \
- $$ANGLE_DIR/src/libGLESv2/renderer/TextureStorage.h \
- $$ANGLE_DIR/src/libGLESv2/renderer/VertexBuffer.h \
- $$ANGLE_DIR/src/libGLESv2/renderer/VertexDataManager.h \
- $$ANGLE_DIR/src/libGLESv2/renderer/VertexDeclarationCache.h
+ $$ANGLE_DIR/src/libGLESv2/renderer/TextureImpl.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/VertexDeclarationCache.h \
+ $$ANGLE_DIR/src/libGLESv2/resource.h \
+ $$ANGLE_DIR/src/libGLESv2/ResourceManager.h \
+ $$ANGLE_DIR/src/libGLESv2/Sampler.h \
+ $$ANGLE_DIR/src/libGLESv2/Shader.h \
+ $$ANGLE_DIR/src/libGLESv2/State.h \
+ $$ANGLE_DIR/src/libGLESv2/Texture.h \
+ $$ANGLE_DIR/src/libGLESv2/TransformFeedback.h \
+ $$ANGLE_DIR/src/libGLESv2/Uniform.h \
+ $$ANGLE_DIR/src/libGLESv2/validationES.h \
+ $$ANGLE_DIR/src/libGLESv2/validationES2.h \
+ $$ANGLE_DIR/src/libGLESv2/validationES3.h \
+ $$ANGLE_DIR/src/libGLESv2/VertexArray.h \
+ $$ANGLE_DIR/src/libGLESv2/VertexAttribute.h \
+ $$ANGLE_DIR/src/libGLESv2/vertexconversion.h \
+ $$ANGLE_DIR/src/third_party/murmurhash/MurmurHash3.h \
SOURCES += \
+ $$ANGLE_DIR/src/common/blocklayout.cpp \
+ $$ANGLE_DIR/src/common/mathutil.cpp \
+ $$ANGLE_DIR/src/common/utilities.cpp \
$$ANGLE_DIR/src/third_party/murmurhash/MurmurHash3.cpp \
+ $$ANGLE_DIR/src/libGLESv2/angletypes.cpp \
$$ANGLE_DIR/src/libGLESv2/Buffer.cpp \
+ $$ANGLE_DIR/src/libGLESv2/Caps.cpp \
$$ANGLE_DIR/src/libGLESv2/Context.cpp \
+ $$ANGLE_DIR/src/libGLESv2/DynamicHLSL.cpp \
$$ANGLE_DIR/src/libGLESv2/Fence.cpp \
$$ANGLE_DIR/src/libGLESv2/Float16ToFloat32.cpp \
$$ANGLE_DIR/src/libGLESv2/Framebuffer.cpp \
+ $$ANGLE_DIR/src/libGLESv2/FramebufferAttachment.cpp \
+ $$ANGLE_DIR/src/libGLESv2/formatutils.cpp \
$$ANGLE_DIR/src/libGLESv2/HandleAllocator.cpp \
$$ANGLE_DIR/src/libGLESv2/libGLESv2.cpp \
$$ANGLE_DIR/src/libGLESv2/main.cpp \
$$ANGLE_DIR/src/libGLESv2/Program.cpp \
$$ANGLE_DIR/src/libGLESv2/ProgramBinary.cpp \
$$ANGLE_DIR/src/libGLESv2/Query.cpp \
+ $$ANGLE_DIR/src/libGLESv2/queryconversions.cpp \
$$ANGLE_DIR/src/libGLESv2/Renderbuffer.cpp \
$$ANGLE_DIR/src/libGLESv2/ResourceManager.cpp \
+ $$ANGLE_DIR/src/libGLESv2/Sampler.cpp \
$$ANGLE_DIR/src/libGLESv2/Shader.cpp \
+ $$ANGLE_DIR/src/libGLESv2/State.cpp \
$$ANGLE_DIR/src/libGLESv2/Texture.cpp \
+ $$ANGLE_DIR/src/libGLESv2/TransformFeedback.cpp \
$$ANGLE_DIR/src/libGLESv2/Uniform.cpp \
- $$ANGLE_DIR/src/libGLESv2/utilities.cpp \
+ $$ANGLE_DIR/src/libGLESv2/validationES.cpp \
+ $$ANGLE_DIR/src/libGLESv2/validationES2.cpp \
+ $$ANGLE_DIR/src/libGLESv2/validationES3.cpp \
+ $$ANGLE_DIR/src/libGLESv2/VertexArray.cpp \
+ $$ANGLE_DIR/src/libGLESv2/VertexAttribute.cpp \
$$ANGLE_DIR/src/libGLESv2/precompiled.cpp \
- $$ANGLE_DIR/src/libGLESv2/renderer/BufferStorage.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/copyimage.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/loadimage.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/loadimageSSE2.cpp \
$$ANGLE_DIR/src/libGLESv2/renderer/Image.cpp \
- $$ANGLE_DIR/src/libGLESv2/renderer/IndexBuffer.cpp \
- $$ANGLE_DIR/src/libGLESv2/renderer/IndexDataManager.cpp \
$$ANGLE_DIR/src/libGLESv2/renderer/IndexRangeCache.cpp \
$$ANGLE_DIR/src/libGLESv2/renderer/Renderer.cpp \
- $$ANGLE_DIR/src/libGLESv2/renderer/TextureStorage.cpp \
- $$ANGLE_DIR/src/libGLESv2/renderer/VertexBuffer.cpp \
- $$ANGLE_DIR/src/libGLESv2/renderer/VertexDataManager.cpp
-
-SSE2_SOURCES += $$ANGLE_DIR/src/libGLESv2/renderer/ImageSSE2.cpp
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/BufferD3D.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/HLSLCompiler.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/ImageD3D.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/IndexBuffer.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/IndexDataManager.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/MemoryBuffer.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/TextureD3D.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/TextureStorage.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/VertexBuffer.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/VertexDataManager.cpp
angle_d3d11 {
HEADERS += \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d11/BufferStorage11.h \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d11/Fence11.h \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d11/Image11.h \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d11/IndexBuffer11.h \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d11/InputLayoutCache.h \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d11/Query11.h \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d11/Renderer11.h \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d11/renderer11_utils.h \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d11/RenderTarget11.h \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d11/RenderStateCache.h \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d11/ShaderExecutable11.h \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d11/SwapChain11.h \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d11/TextureStorage11.h \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d11/VertexBuffer11.h
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/Blit11.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/Buffer11.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/Clear11.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/Fence11.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/formatutils11.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/Image11.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/IndexBuffer11.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/InputLayoutCache.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/PixelTransfer11.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/Query11.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/Renderer11.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/renderer11_utils.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/RenderTarget11.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/RenderStateCache.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/ShaderExecutable11.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/SwapChain11.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/TextureStorage11.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/VertexBuffer11.h
SOURCES += \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d11/BufferStorage11.cpp \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d11/Fence11.cpp \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d11/Image11.cpp \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d11/IndexBuffer11.cpp \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d11/InputLayoutCache.cpp \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d11/Query11.cpp \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d11/Renderer11.cpp \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d11/renderer11_utils.cpp \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d11/RenderTarget11.cpp \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d11/RenderStateCache.cpp \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d11/ShaderExecutable11.cpp \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d11/SwapChain11.cpp \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d11/TextureStorage11.cpp \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d11/VertexBuffer11.cpp
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/Blit11.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/Buffer11.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/Clear11.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/Fence11.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/formatutils11.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/Image11.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/IndexBuffer11.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/InputLayoutCache.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/PixelTransfer11.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/Query11.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/Renderer11.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/renderer11_utils.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/RenderTarget11.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/RenderStateCache.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/ShaderExecutable11.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/SwapChain11.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/TextureStorage11.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/VertexBuffer11.cpp
}
!winrt {
HEADERS += \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d9/Blit.h \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d9/BufferStorage9.h \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d9/Fence9.h \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d9/Image9.h \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d9/IndexBuffer9.h \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d9/Query9.h \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d9/Renderer9.h \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d9/renderer9_utils.h \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d9/RenderTarget9.h \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d9/ShaderExecutable9.h \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d9/SwapChain9.h \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d9/TextureStorage9.h \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d9/VertexBuffer9.h
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d9/Blit9.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d9/Buffer9.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d9/Fence9.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d9/formatutils9.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d9/Image9.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d9/IndexBuffer9.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d9/Query9.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d9/Renderer9.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d9/renderer9_utils.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d9/RenderTarget9.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d9/ShaderExecutable9.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d9/SwapChain9.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d9/TextureStorage9.h \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d9/VertexBuffer9.h \
+ $$ANGLE_DIR/src/third_party/systeminfo/SystemInfo.h
SOURCES += \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d9/Blit.cpp \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d9/BufferStorage9.cpp \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d9/Fence9.cpp \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d9/Image9.cpp \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d9/IndexBuffer9.cpp \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d9/Query9.cpp \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d9/Renderer9.cpp \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d9/renderer9_utils.cpp \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d9/RenderTarget9.cpp \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d9/ShaderExecutable9.cpp \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d9/SwapChain9.cpp \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d9/TextureStorage9.cpp \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d9/VertexBuffer9.cpp \
- $$ANGLE_DIR/src/libGLESv2/renderer/d3d9/VertexDeclarationCache.cpp
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d9/Blit9.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d9/Buffer9.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d9/Fence9.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d9/formatutils9.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d9/Image9.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d9/IndexBuffer9.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d9/Query9.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d9/Renderer9.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d9/renderer9_utils.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d9/RenderTarget9.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d9/ShaderExecutable9.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d9/SwapChain9.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d9/TextureStorage9.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d9/VertexBuffer9.cpp \
+ $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d9/VertexDeclarationCache.cpp \
+ $$ANGLE_DIR/src/third_party/systeminfo/SystemInfo.cpp
}
!static {
@@ -166,73 +229,82 @@ float_converter.commands = python $$ANGLE_DIR/src/libGLESv2/Float16ToFloat32.py
QMAKE_EXTRA_TARGETS += float_converter
# Generate the shader header files.
-PS_BLIT_INPUT = $$ANGLE_DIR/src/libGLESv2/renderer/d3d9/shaders/Blit.ps
-VS_BLIT_INPUT = $$ANGLE_DIR/src/libGLESv2/renderer/d3d9/shaders/Blit.vs
-PASSTHROUGH_INPUT = $$ANGLE_DIR/src/libGLESv2/renderer/d3d11/shaders/Passthrough11.hlsl
-CLEAR_INPUT = $$ANGLE_DIR/src/libGLESv2/renderer/d3d11/shaders/Clear11.hlsl
-PIXEL_SHADERS_BLIT = passthroughps luminanceps componentmaskps
-PIXEL_SHADERS_PASSTHROUGH = PassthroughRGBA PassthroughRGB \
- PassthroughLum PassthroughLumAlpha
-PIXEL_SHADERS_CLEAR = ClearSingle ClearMultiple
-VERTEX_SHADERS_BLIT = standardvs flipyvs
-VERTEX_SHADERS_PASSTHROUGH = Passthrough
-VERTEX_SHADERS_CLEAR = Clear
-SHADER_DIR_9 = $$OUT_PWD/renderer/d3d9/shaders/compiled
-SHADER_DIR_11 = $$OUT_PWD/renderer/d3d11/shaders/compiled
-
-for (ps, PIXEL_SHADERS_BLIT) {
- fxc_ps_$${ps}.commands = $$FXC /nologo /E $$ps /T ps_2_0 /Fh ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}
- fxc_ps_$${ps}.output = $$SHADER_DIR_9/$${ps}.h
- fxc_ps_$${ps}.input = PS_BLIT_INPUT
- fxc_ps_$${ps}.dependency_type = TYPE_C
- fxc_ps_$${ps}.variable_out = HEADERS
- fxc_ps_$${ps}.CONFIG += target_predeps
- !winrt: QMAKE_EXTRA_COMPILERS += fxc_ps_$${ps}
-}
-for (ps, PIXEL_SHADERS_PASSTHROUGH) {
- fxc_ps_$${ps}.commands = $$FXC /nologo /E PS_$$ps /T ps_4_0_level_9_1 /Fh ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}
- fxc_ps_$${ps}.output = $$SHADER_DIR_11/$${ps}11ps.h
- fxc_ps_$${ps}.input = PASSTHROUGH_INPUT
- fxc_ps_$${ps}.dependency_type = TYPE_C
- fxc_ps_$${ps}.variable_out = HEADERS
- fxc_ps_$${ps}.CONFIG += target_predeps
- angle_d3d11: QMAKE_EXTRA_COMPILERS += fxc_ps_$${ps}
-}
-for (ps, PIXEL_SHADERS_CLEAR) {
- fxc_ps_$${ps}.commands = $$FXC /nologo /E PS_$$ps /T ps_4_0_level_9_1 /Fh ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}
- fxc_ps_$${ps}.output = $$SHADER_DIR_11/$${ps}11ps.h
- fxc_ps_$${ps}.input = CLEAR_INPUT
- fxc_ps_$${ps}.dependency_type = TYPE_C
- fxc_ps_$${ps}.variable_out = HEADERS
- fxc_ps_$${ps}.CONFIG += target_predeps
- angle_d3d11: QMAKE_EXTRA_COMPILERS += fxc_ps_$${ps}
-}
-for (vs, VERTEX_SHADERS_BLIT) {
- fxc_vs_$${vs}.commands = $$FXC /nologo /E $$vs /T vs_2_0 /Fh ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}
- fxc_vs_$${vs}.output = $$SHADER_DIR_9/$${vs}.h
- fxc_vs_$${vs}.input = VS_BLIT_INPUT
- fxc_vs_$${vs}.dependency_type = TYPE_C
- fxc_vs_$${vs}.variable_out = HEADERS
- fxc_vs_$${vs}.CONFIG += target_predeps
- !winrt: QMAKE_EXTRA_COMPILERS += fxc_vs_$${vs}
-}
-for (vs, VERTEX_SHADERS_PASSTHROUGH) {
- fxc_vs_$${vs}.commands = $$FXC /nologo /E VS_$$vs /T vs_4_0_level_9_1 /Fh ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}
- fxc_vs_$${vs}.output = $$SHADER_DIR_11/$${vs}11vs.h
- fxc_vs_$${vs}.input = PASSTHROUGH_INPUT
- fxc_vs_$${vs}.dependency_type = TYPE_C
- fxc_vs_$${vs}.variable_out = HEADERS
- fxc_vs_$${vs}.CONFIG += target_predeps
- angle_d3d11: QMAKE_EXTRA_COMPILERS += fxc_vs_$${vs}
-}
-for (vs, VERTEX_SHADERS_CLEAR) {
- fxc_vs_$${vs}.commands = $$FXC /nologo /E VS_$$vs /T vs_4_0_level_9_1 /Fh ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}
- fxc_vs_$${vs}.output = $$SHADER_DIR_11/$${vs}11vs.h
- fxc_vs_$${vs}.input = CLEAR_INPUT
- fxc_vs_$${vs}.dependency_type = TYPE_C
- fxc_vs_$${vs}.variable_out = HEADERS
- fxc_vs_$${vs}.CONFIG += target_predeps
- angle_d3d11: QMAKE_EXTRA_COMPILERS += fxc_vs_$${vs}
+SHADER9_INPUT_DIR = $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d9/shaders
+SHADER11_INPUT_DIR = $$ANGLE_DIR/src/libGLESv2/renderer/d3d/d3d11/shaders
+
+BLITPS_INPUT = $$SHADER9_INPUT_DIR/Blit.ps
+BLITPS.shaders = PS_passthrough PS_luminance PS_componentmask
+BLITPS.profile = 2_0
+
+BLITVS_INPUT = $$SHADER9_INPUT_DIR/Blit.vs
+BLITVS.shaders = VS_standard VS_flipy
+BLITVS.profile = 2_0
+
+BUFFERTOTEXTURE_INPUT = $$SHADER11_INPUT_DIR/BufferToTexture11.hlsl
+BUFFERTOTEXTURE.shaders = \
+ PS_BufferToTexture_4F PS_BufferToTexture_4I PS_BufferToTexture_4UI \
+ VS_BufferToTexture GS_BufferToTexture
+BUFFERTOTEXTURE.profile = 4_0
+
+CLEAR_INPUT = $$SHADER11_INPUT_DIR/Clear11.hlsl
+CLEAR.shaders = \
+ PS_ClearUint PS_ClearSint \
+ VS_ClearUint VS_ClearSint
+CLEAR.shaders_compat = PS_ClearFloat VS_ClearFloat
+CLEAR.profile = 4_0
+
+PASSTHROUGH2D_INPUT = $$SHADER11_INPUT_DIR/Passthrough2D11.hlsl
+PASSTHROUGH2D.shaders = \
+ PS_PassthroughRGBA2DUI PS_PassthroughRGBA2DI \
+ PS_PassthroughRGB2DUI PS_PassthroughRGB2DI \
+ PS_PassthroughRG2DUI PS_PassthroughRG2DI \
+ PS_PassthroughR2DUI PS_PassthroughR2DI \
+ PS_PassthroughDepth2D
+PASSTHROUGH2D.shaders_compat = \
+ PS_PassthroughRGBA2D PS_PassthroughRGB2D \
+ PS_PassthroughRG2D PS_PassthroughR2D \
+ PS_PassthroughLum2D PS_PassthroughLumAlpha2D \
+ VS_Passthrough2D
+PASSTHROUGH2D.profile = 4_0
+
+PASSTHROUGH3D_INPUT = $$SHADER11_INPUT_DIR/Passthrough3D11.hlsl
+PASSTHROUGH3D.shaders = \
+ PS_PassthroughRGBA3D PS_PassthroughRGBA3DUI PS_PassthroughRGBA3DI \
+ PS_PassthroughRGB3D PS_PassthroughRGB3DUI PS_PassthroughRGB3DI \
+ PS_PassthroughRG3D PS_PassthroughRG3DUI PS_PassthroughRG3DI \
+ PS_PassthroughR3D PS_PassthroughR3DUI PS_PassthroughR3DI \
+ PS_PassthroughLum3D PS_PassthroughLumAlpha3D \
+ VS_Passthrough3D GS_Passthrough3D
+PASSTHROUGH3D.profile = 4_0
+
+SWIZZLE_INPUT = $$SHADER11_INPUT_DIR/Swizzle11.hlsl
+SWIZZLE.shaders = \
+ PS_SwizzleI2D PS_SwizzleUI2D \
+ PS_SwizzleF3D PS_SwizzleI3D PS_SwizzleUI3D \
+ PS_SwizzleF2DArray PS_SwizzleI2DArray PS_SwizzleUI2DArray
+SWIZZLE.shaders_compat = PS_SwizzleF2D
+SWIZZLE.profile = 4_0
+
+angle_d3d11: FXC_JOBS = BUFFERTOTEXTURE CLEAR PASSTHROUGH2D PASSTHROUGH3D SWIZZLE
+!winrt: FXC_JOBS += BLITPS BLITVS
+
+for (JOB, FXC_JOBS) {
+ INPUT = $${JOB}_INPUT
+ OUT_DIR = $$OUT_PWD/$$relative_path($$dirname($$INPUT), $$ANGLE_DIR/src/libGLESv2)/compiled
+ SHADERS_COMPAT = $$eval($${JOB}.shaders_compat)
+ SHADERS = $$eval($${JOB}.shaders) $$SHADERS_COMPAT
+ for(SHADER, SHADERS) {
+ TYPE = $$lower($$section(SHADER, _, 0, 0))
+ PROFILE = $${TYPE}_$$eval($${JOB}.profile)
+ contains(SHADERS_COMPAT, $$SHADER): PROFILE = $${PROFILE}_level_9_1
+ fxc_$${SHADER}_$${PROFILE}.commands = $$FXC /nologo /E $${SHADER} /T $${PROFILE} /Fh ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}
+ fxc_$${SHADER}_$${PROFILE}.output = $$OUT_DIR/$$section(SHADER, _, 1)$${TYPE}.h
+ fxc_$${SHADER}_$${PROFILE}.input = $$INPUT
+ fxc_$${SHADER}_$${PROFILE}.dependency_type = TYPE_C
+ fxc_$${SHADER}_$${PROFILE}.variable_out = HEADERS
+ fxc_$${SHADER}_$${PROFILE}.CONFIG += target_predeps
+ QMAKE_EXTRA_COMPILERS += fxc_$${SHADER}_$${PROFILE}
+ }
}
khr_headers.files = $$ANGLE_DIR/include/KHR/khrplatform.h
@@ -242,4 +314,10 @@ gles2_headers.files = \
$$ANGLE_DIR/include/GLES2/gl2ext.h \
$$ANGLE_DIR/include/GLES2/gl2platform.h
gles2_headers.path = $$[QT_INSTALL_HEADERS]/QtANGLE/GLES2
+gles3_headers.files = \
+ $$ANGLE_DIR/include/GLES3/gl3.h \
+ $$ANGLE_DIR/include/GLES3/gl3ext.h \
+ $$ANGLE_DIR/include/GLES3/gl3platform.h
+gles3_headers.path = $$[QT_INSTALL_HEADERS]/QtANGLE/GLES3
INSTALLS += khr_headers gles2_headers
+angle_d3d11: INSTALLS += gles3_headers
diff --git a/src/angle/src/src.pro b/src/angle/src/src.pro
index 2b7d523207..d1f5f57591 100644
--- a/src/angle/src/src.pro
+++ b/src/angle/src/src.pro
@@ -1,4 +1,3 @@
TEMPLATE = subdirs
SUBDIRS += compiler libGLESv2 libEGL
-angle_d3d11: SUBDIRS += d3dcompiler
CONFIG += ordered