Commit ee9c4fe4 by Wander Lairson Costa Committed by Commit Bot

D3D: Make possible to build angle without D3D11

A few files inside the D3D11 tree are used by D3D9 and WGL backends. We add these files to the build system even when D3D11 is disabled. Also, we fix the use the of ANGLE_DEFAULT_D3D11 symbol. Bug: angleproject:4839 Change-Id: I981f4bfc60d973c02549caa737c5aed5ccf31282 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2298143Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
parent f3c72fdf
...@@ -66,3 +66,4 @@ Le Hoang Quyen ...@@ -66,3 +66,4 @@ Le Hoang Quyen
Ethan Lee Ethan Lee
Renaud Lepage Renaud Lepage
Artem Bolgar Artem Bolgar
Wander Lairson Costa
...@@ -657,6 +657,14 @@ angle_source_set("libANGLE_base") { ...@@ -657,6 +657,14 @@ angle_source_set("libANGLE_base") {
sources += libangle_d3d11_blit_shaders sources += libangle_d3d11_blit_shaders
} }
if (!angle_is_winuwp && (angle_enable_d3d11 || angle_enable_d3d9)) {
sources += libangle_d3d_win32_sources
}
if (is_win && (angle_enable_gl || angle_enable_d3d11)) {
sources += libangle_gl_wgl_d3d11_common_sources
}
if (angle_enable_gl) { if (angle_enable_gl) {
sources += libangle_gl_sources sources += libangle_gl_sources
include_dirs += [ "src/third_party/khronos" ] include_dirs += [ "src/third_party/khronos" ]
......
...@@ -111,6 +111,19 @@ To change the default D3D backend: ...@@ -111,6 +111,19 @@ To change the default D3D backend:
1. Open `src/libANGLE/renderer/d3d/DisplayD3D.cpp` 1. Open `src/libANGLE/renderer/d3d/DisplayD3D.cpp`
2. Locate the definition of `ANGLE_DEFAULT_D3D11` near the head of the file, and set it to your preference. 2. Locate the definition of `ANGLE_DEFAULT_D3D11` near the head of the file, and set it to your preference.
To remove any backend entirely:
1. Run `gn args <path/to/build/dir>`
2. Set the appropriate variable to `false`. Options are:
- `angle_enable_d3d9`
- `angle_enable_d3d11`
- `angle_enable_gl`
- `angle_enable_metal`
- `angle_enable_null`
- `angle_enable_vulkan`
- `angle_enable_essl`
- `angle_enable_glsl`
### To Use ANGLE in Your Application ### To Use ANGLE in Your Application
On Windows: On Windows:
......
...@@ -61,20 +61,44 @@ egl::Error CreateRendererD3D(egl::Display *display, RendererD3D **outRenderer) ...@@ -61,20 +61,44 @@ egl::Error CreateRendererD3D(egl::Display *display, RendererD3D **outRenderer)
attribMap.get(EGL_PLATFORM_ANGLE_TYPE_ANGLE, EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE)); attribMap.get(EGL_PLATFORM_ANGLE_TYPE_ANGLE, EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE));
#if defined(ANGLE_ENABLE_D3D11) #if defined(ANGLE_ENABLE_D3D11)
if (nativeDisplay == EGL_D3D11_ELSE_D3D9_DISPLAY_ANGLE || const auto addD3D11 = nativeDisplay == EGL_D3D11_ELSE_D3D9_DISPLAY_ANGLE ||
nativeDisplay == EGL_D3D11_ONLY_DISPLAY_ANGLE || nativeDisplay == EGL_D3D11_ONLY_DISPLAY_ANGLE ||
requestedDisplayType == EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE) requestedDisplayType == EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE;
#endif
#if defined(ANGLE_ENABLE_D3D9)
const auto addD3D9 = nativeDisplay == EGL_D3D11_ELSE_D3D9_DISPLAY_ANGLE ||
requestedDisplayType == EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE;
#endif
#if ANGLE_DEFAULT_D3D11
# if defined(ANGLE_ENABLE_D3D11)
if (addD3D11)
{ {
rendererCreationFunctions.push_back(CreateTypedRendererD3D<Renderer11>); rendererCreationFunctions.push_back(CreateTypedRendererD3D<Renderer11>);
} }
#endif # endif
#if defined(ANGLE_ENABLE_D3D9) # if defined(ANGLE_ENABLE_D3D9)
if (nativeDisplay == EGL_D3D11_ELSE_D3D9_DISPLAY_ANGLE || if (addD3D9)
requestedDisplayType == EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE) {
rendererCreationFunctions.push_back(CreateTypedRendererD3D<Renderer9>);
}
# endif
#else
# if defined(ANGLE_ENABLE_D3D9)
if (addD3D9)
{ {
rendererCreationFunctions.push_back(CreateTypedRendererD3D<Renderer9>); rendererCreationFunctions.push_back(CreateTypedRendererD3D<Renderer9>);
} }
# endif
# if defined(ANGLE_ENABLE_D3D11)
if (addD3D11)
{
rendererCreationFunctions.push_back(CreateTypedRendererD3D<Renderer11>);
}
# endif
#endif #endif
if (nativeDisplay != EGL_D3D11_ELSE_D3D9_DISPLAY_ANGLE && if (nativeDisplay != EGL_D3D11_ELSE_D3D9_DISPLAY_ANGLE &&
......
...@@ -624,9 +624,6 @@ libangle_d3d11_sources = [ ...@@ -624,9 +624,6 @@ libangle_d3d11_sources = [
"src/libANGLE/renderer/d3d/d3d11/VertexArray11.h", "src/libANGLE/renderer/d3d/d3d11/VertexArray11.h",
"src/libANGLE/renderer/d3d/d3d11/VertexBuffer11.cpp", "src/libANGLE/renderer/d3d/d3d11/VertexBuffer11.cpp",
"src/libANGLE/renderer/d3d/d3d11/VertexBuffer11.h", "src/libANGLE/renderer/d3d/d3d11/VertexBuffer11.h",
"src/libANGLE/renderer/d3d/d3d11/dxgi_format_map_autogen.cpp",
"src/libANGLE/renderer/d3d/d3d11/dxgi_support_table.h",
"src/libANGLE/renderer/d3d/d3d11/dxgi_support_table_autogen.cpp",
"src/libANGLE/renderer/d3d/d3d11/formatutils11.cpp", "src/libANGLE/renderer/d3d/d3d11/formatutils11.cpp",
"src/libANGLE/renderer/d3d/d3d11/formatutils11.h", "src/libANGLE/renderer/d3d/d3d11/formatutils11.h",
"src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp", "src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp",
...@@ -696,6 +693,9 @@ libangle_d3d11_win32_sources = [ ...@@ -696,6 +693,9 @@ libangle_d3d11_win32_sources = [
"src/libANGLE/renderer/d3d/d3d11/converged/CompositorNativeWindow11.h", "src/libANGLE/renderer/d3d/d3d11/converged/CompositorNativeWindow11.h",
"src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow11Win32.cpp", "src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow11Win32.cpp",
"src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow11Win32.h", "src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow11Win32.h",
]
libangle_d3d_win32_sources = [
"src/third_party/systeminfo/SystemInfo.cpp", "src/third_party/systeminfo/SystemInfo.cpp",
"src/third_party/systeminfo/SystemInfo.h", "src/third_party/systeminfo/SystemInfo.h",
] ]
...@@ -801,6 +801,12 @@ libangle_gl_wgl_sources = [ ...@@ -801,6 +801,12 @@ libangle_gl_wgl_sources = [
"src/third_party/khronos/GL/wglext.h", "src/third_party/khronos/GL/wglext.h",
] ]
libangle_gl_wgl_d3d11_common_sources = [
"src/libANGLE/renderer/d3d/d3d11/dxgi_format_map_autogen.cpp",
"src/libANGLE/renderer/d3d/d3d11/dxgi_support_table.h",
"src/libANGLE/renderer/d3d/d3d11/dxgi_support_table_autogen.cpp",
]
libangle_gl_glx_sources = [ libangle_gl_glx_sources = [
"src/libANGLE/renderer/gl/glx/DisplayGLX.cpp", "src/libANGLE/renderer/gl/glx/DisplayGLX.cpp",
"src/libANGLE/renderer/gl/glx/DisplayGLX.h", "src/libANGLE/renderer/gl/glx/DisplayGLX.h",
......
...@@ -199,7 +199,7 @@ if (is_win || is_linux || is_mac || is_android) { ...@@ -199,7 +199,7 @@ if (is_win || is_linux || is_mac || is_android) {
sources = angle_white_box_tests_sources sources = angle_white_box_tests_sources
main = "angle_end2end_tests_main" main = "angle_end2end_tests_main"
if (is_win) { if (is_win && angle_enable_d3d11) {
sources += angle_white_box_tests_win_sources sources += angle_white_box_tests_win_sources
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment