mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-30 00:01:50 +00:00
20abd56cbd
This corresponds to ANGLE commit 9a2e6ac98a10907b1241bd5709597912e08f63fb It vastly improves D3D11 performance on Intel GPUs by avoiding write to multiple render targets when unneeded.
234 lines
5.2 KiB
Plaintext
234 lines
5.2 KiB
Plaintext
# Copyright 2014 The Chromium Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
if (is_win) {
|
|
# Only needed on Windows.
|
|
gles_gypi = exec_script(
|
|
"//build/gypi_to_gn.py",
|
|
[ rebase_path("src/libGLESv2.gypi") ],
|
|
"scope",
|
|
[ "src/libGLESv2.gypi" ])
|
|
|
|
egl_gypi = exec_script(
|
|
"//build/gypi_to_gn.py",
|
|
[ rebase_path("src/libEGL.gypi") ],
|
|
"scope",
|
|
[ "src/libEGL.gypi" ])
|
|
}
|
|
|
|
compiler_gypi = exec_script(
|
|
"//build/gypi_to_gn.py",
|
|
[ rebase_path("src/compiler.gypi") ],
|
|
"scope",
|
|
[ "src/compiler.gypi" ])
|
|
|
|
# This config is exported to dependent targets (and also applied to internal
|
|
# ones).
|
|
config("external_config") {
|
|
include_dirs = [
|
|
"include",
|
|
]
|
|
}
|
|
|
|
# This config is applied to internal Angle targets (not pushed to dependents).
|
|
config("internal_config") {
|
|
include_dirs = [
|
|
"include",
|
|
"src",
|
|
]
|
|
}
|
|
|
|
component("translator") {
|
|
sources = [
|
|
"src/compiler/translator/ShaderLang.cpp",
|
|
"src/compiler/translator/ShaderVars.cpp",
|
|
]
|
|
|
|
defines = [ "ANGLE_TRANSLATOR_IMPLEMENTATION" ]
|
|
|
|
configs -= [ "//build/config/compiler:chromium_code" ]
|
|
configs += [
|
|
":internal_config",
|
|
"//build/config/compiler:no_chromium_code",
|
|
]
|
|
|
|
public_deps = [
|
|
":translator_lib",
|
|
]
|
|
}
|
|
|
|
# Holds the shared includes so we only need to list them once.
|
|
source_set("includes") {
|
|
sources = [
|
|
"include/EGL/egl.h",
|
|
"include/EGL/eglext.h",
|
|
"include/EGL/eglplatform.h",
|
|
"include/GLES2/gl2.h",
|
|
"include/GLES2/gl2ext.h",
|
|
"include/GLES2/gl2platform.h",
|
|
"include/GLES3/gl3.h",
|
|
"include/GLES3/gl3ext.h",
|
|
"include/GLES3/gl3platform.h",
|
|
"include/GLSLANG/ShaderLang.h",
|
|
"include/KHR/khrplatform.h",
|
|
]
|
|
}
|
|
|
|
static_library("preprocessor") {
|
|
sources = rebase_path(compiler_gypi.angle_preprocessor_sources, ".", "src")
|
|
|
|
configs -= [ "//build/config/compiler:chromium_code" ]
|
|
configs += [
|
|
":internal_config",
|
|
"//build/config/compiler:no_chromium_code",
|
|
]
|
|
}
|
|
|
|
config("translator_static_config") {
|
|
defines = [ "ANGLE_TRANSLATOR_STATIC" ]
|
|
}
|
|
|
|
static_library("translator_lib") {
|
|
sources = rebase_path(compiler_gypi.angle_translator_lib_sources, ".", "src")
|
|
|
|
configs -= [ "//build/config/compiler:chromium_code" ]
|
|
configs += [
|
|
":internal_config",
|
|
":translator_static_config",
|
|
"//build/config/compiler:no_chromium_code",
|
|
]
|
|
public_configs = [ ":external_config" ]
|
|
|
|
deps = [
|
|
":includes",
|
|
":preprocessor",
|
|
]
|
|
}
|
|
|
|
static_library("translator_static") {
|
|
sources = [
|
|
"src/compiler/translator/ShaderLang.cpp",
|
|
"src/compiler/translator/ShaderVars.cpp",
|
|
]
|
|
|
|
configs -= [ "//build/config/compiler:chromium_code" ]
|
|
configs += [
|
|
":internal_config",
|
|
"//build/config/compiler:no_chromium_code",
|
|
]
|
|
public_configs = [ ":translator_static_config" ]
|
|
|
|
public_deps = [
|
|
":translator_lib",
|
|
]
|
|
}
|
|
|
|
config("commit_id_config") {
|
|
include_dirs = [ "$root_gen_dir/angle" ]
|
|
}
|
|
|
|
action("commit_id") {
|
|
script = "src/commit_id.py"
|
|
|
|
output_file = "$root_gen_dir/angle/id/commit.h"
|
|
outputs = [ output_file ]
|
|
|
|
args = [
|
|
"gen",
|
|
rebase_path(".", root_build_dir),
|
|
rebase_path(output_file, root_build_dir),
|
|
]
|
|
|
|
public_configs = [ ":commit_id_config" ]
|
|
}
|
|
|
|
if (is_win) {
|
|
angle_enable_d3d9 = true
|
|
angle_enable_d3d11 = true
|
|
|
|
shared_library("libGLESv2") {
|
|
sources = rebase_path(gles_gypi.angle_libangle_sources, ".", "src")
|
|
sources += [
|
|
"src/libGLESv2/libGLESv2.cpp",
|
|
"src/libGLESv2/libGLESv2.def",
|
|
"src/libGLESv2/libGLESv2.rc",
|
|
]
|
|
|
|
defines = [
|
|
"ANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES={ " +
|
|
"\"d3dcompiler_46.dll\", \"d3dcompiler_43.dll\" }",
|
|
"GL_APICALL=",
|
|
"GL_GLEXT_PROTOTYPES=",
|
|
"EGLAPI=",
|
|
]
|
|
libs = []
|
|
|
|
# Shared D3dD sources.
|
|
if (angle_enable_d3d9 || angle_enable_d3d11) {
|
|
sources += rebase_path(gles_gypi.angle_d3d_shared_sources, ".", "src")
|
|
}
|
|
|
|
if (angle_enable_d3d9) {
|
|
sources += rebase_path(gles_gypi.angle_d3d9_sources, ".", "src")
|
|
defines += [ "ANGLE_ENABLE_D3D9" ]
|
|
libs += [ "d3d9.lib" ]
|
|
}
|
|
|
|
if (angle_enable_d3d11) {
|
|
sources += rebase_path(gles_gypi.angle_d3d11_sources, ".", "src")
|
|
defines += [ "ANGLE_ENABLE_D3D11" ]
|
|
libs += [ "dxguid.lib" ]
|
|
}
|
|
|
|
if (is_debug) {
|
|
defines += [ "ANGLE_ENABLE_PERF" ]
|
|
libs += [ "d3d9.lib" ]
|
|
}
|
|
|
|
configs -= [ "//build/config/compiler:chromium_code" ]
|
|
configs += [
|
|
":internal_config",
|
|
"//build/config/compiler:no_chromium_code",
|
|
]
|
|
|
|
include_dirs = [ "src/libGLESv2" ]
|
|
|
|
deps = [
|
|
":commit_id",
|
|
":includes",
|
|
":translator",
|
|
#":copy_compiler_dll", TODO(GYP)
|
|
]
|
|
}
|
|
|
|
shared_library("libEGL") {
|
|
sources = rebase_path(egl_gypi.angle_libegl_sources, ".", "src")
|
|
|
|
defines = [
|
|
"GL_APICALL=",
|
|
"GL_GLEXT_PROTOTYPES=",
|
|
"EGLAPI=",
|
|
]
|
|
|
|
configs -= [ "//build/config/compiler:chromium_code" ]
|
|
configs += [
|
|
":internal_config",
|
|
"//build/config/compiler:no_chromium_code",
|
|
]
|
|
|
|
if (is_debug) {
|
|
defines += [ "ANGLE_ENABLE_PERF" ]
|
|
}
|
|
|
|
include_dirs = [ "src/libGLESv2" ]
|
|
libs = [ "d3d9.lib" ]
|
|
|
|
deps = [
|
|
":commit_id",
|
|
":includes",
|
|
":libGLESv2",
|
|
]
|
|
}
|
|
} # is_win
|