This extension allows the user to specify if ANGLE should create a
context of the exact requested version or a higher version context that
is backwards compatible.
BUG=angleproject:3425
Change-Id: I7d0b75cdd7e34a2fc888aa238e1eeb67af82ae0d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1601560
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
This is to avoid loading it locally and so that the pdb works
Bug: angleproject:3641
Change-Id: I2ce93ace47d1e6a1013d38964e5919084ad4ff7f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1704634
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Clemen Deng <clemendeng@google.com>
Tests are still loading ANGLE's opengl32.dll instead of system's
This is because external drivers are trying to load opengl32.dll
Workaround: renamed to libGL.dll, need to change back when copying
dll over for loading
Bug: angleproject:3641
Change-Id: I051adc1fbb488a704c99718ad4a2f74bb7756cbd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1697290
Commit-Queue: Clemen Deng <clemendeng@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reset the base level of textures before call glTexImage on Mac
to prevent driver bugs that cause texture corruption.
BUG=angleproject:3671
Change-Id: I90e94b8395a781a2142ef6be3af1d6117f084152
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1692975
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Capture is implemented mostly via code auto-generation. The capture
requires a bit of custom logic for each captured pointer parameter. We
handle this by using auto-generation to lay out the base template for
each GL call and then custom logic that uses ANGLE's internals to
know how much data to capture at which point. Client array pointers are
captured before each draw call.
Currently only GLES capture is supported. We write out cpp files and
an optional data file accompanying each cpp. For small data chunks we
inline them in the cpp files. For bigger chunks like texture data we
pack them into the data file.
Mid-execution capture is not yet supported. Configuring the capture is
currently only available by modifying the cpp sources. Both of these
features will be implemented in the future.
Bug: angleproject:3611
Change-Id: If6d5dac2f7bf363129d42ea9198162aef0d3a4ec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1671904
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
We can use output_name instead of repeating the libs suffix in the GN
files.
The re-land adds automatic suffix application on Android. This makes
the configuration a bit simpler and should detect future breakage. Also
cleans up some of the "angle_libraries" code.
Bug: angleproject:3611
Change-Id: I4971d1085ca67802c916655c30efb7df4001f040
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1679993
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
We can use output_name instead of repeating the libs suffix in the GN
files.
Bug: angleproject:3611
Change-Id: Ic87c1378aac8be8e1aec695ddbe5c8ec2ed3187b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1678403
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
The ANGLE Vulkan backend is now thread safe for non-share group contexts. This
means that a global GL lock only adds overhead for most use cases.
Remove the angle_force_thread_safety gn argument.
BUG=angleproject:2464
Change-Id: Ic6ba89e18b46e5dd72aa83d0f409097441fcca3a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1635749
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Update the logic to compress ANGLE's symbols for Android to correctly
include the necessary symbols.
Bug: angleproject:3448
Test: Build and install APK, verify symbols are present during crash
Change-Id: Ibb995aa775d47fb9921e4ab11b956c63ac474c30
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1611750
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
EnumDisplayDevicesA returns the card that's connected to the display,
but EnumAdapters return the adapter which the desktop primary is
displayed at index 0. We can use this to determine the device used for
graphics.
Also cleans up the discrepancy between platforms on finding "primary" vs
"active" GPU. Asserts that the GPU expected to run ANGLE commands is the
active GPU, and deprecates the primary GPU to be equal to the active
GPU.
Bug: angleproject:3383
Change-Id: I422fba1bbe47d85b7c09e378d559eaebf89e2625
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1584360
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
* Rename the APK package name to reflect that it is from Chromium build.
* Rename the application to reflect it is no longer used on Android system image.
* Remove code supporting multiple APKs, since we only have one now.
* Remove the placeholder icon, which is no longer needed.
* Remove the ANGLE_FOR_ANDROID intent, since this APK is not built in.
* Remove the java code since since it was only in support of the intent.
* Remove most apps from the rules file.
Bug: angleproject:3396
Change-Id: Ic6a2fd03e5686026ab4650fc0c25adb298af03c2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1579389
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Clean up the includes and imports for this module as well.
BUG: angleproject:2475
TEST: Built cast_runner, web_runner
Change-Id: Id283c265a4ec9d2ca74e3a0132e82f051b8864f6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1579219
Reviewed-by: Michael Spang <spang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Michael Spang <spang@chromium.org>
Integrate the custom SecondaryCommandBuffer type into the CommandGraph
nodes by adding new ANGLE_USE_CUSTOM_VULKAN_CMD_BUFFERS define that can
be set in the BUILD gn args with angle_enable_custom_vulkan_cmd_buffers
set to "true."
Initially the custom cmd buffers are disabled by default.
This adds some support functions to SecondaryCommandBuffer to make the
integration easier by matching the wrapped cmd buffer interface:
initialize(), end(), valid().
Bug: angleproject:3136
Change-Id: Ib910554583192550757bb8ce89914e3ea8737988
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1526556
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
From angle_vulkan build target,
so that everyone including Vulkan Headers
would get them for the right platform.
Also remove obsolete defines.
Bug: angleproject:3279
Change-Id: I4bbbeb72acfbf0dd22a1d6a13bd9df7ddaec84dd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1530029
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
D3D9.dll is being loaded by ANGLE when using D3D11. This change
removes the D3D9 dependency.
- Delayload D3D9.dll using ldflags in BUILD.gn
- Replace Renderer11 usage of DebugAnnotator9 with DebugAnnotator11.
Using debug annotations with Visual Studio PIX tools now requires Windows 10.
- Refactor DebugAnnotator11 to QI ID3DUserDefinedAnnotation from the
renderer's ID3D11DeviceContext instead of making a 'null' device.
Bug: angleproject:3234
Change-Id: I10a2b537e07cda2094b08abf02b7876bbe5009f8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1508643
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
This reverts commit f094bac949.
Reason for revert: Causes timeouts on Debug bots in the BufferDataTest.NULLData
Original change's description:
> Allow enabling trace annotations
>
> Tracing was never allowed to happen because getStatus always returned
> false. Also want to allow tracing for release builds for perf analysis.
>
> Bug: angleproject:3176
> Change-Id: I7aa94ed9fe3d7f67fe6dd10123c9badc7fb49d82
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1475248
> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
> Reviewed-by: Jamie Madill <jmadill@google.com>
TBR=ynovikov@chromium.org,geofflang@chromium.org,jmadill@google.com,courtneygo@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: angleproject:3176
Change-Id: I91d28d15a092519551811a9a07c01987c9e028e7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1505799
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
glmark2 is a an OpenGL ES 2.0 benchmark licensed under GPL v3.
See https://github.com/glmark2/glmark2
ANGLE can use glmark2 as a metric and guide for optimization. It will
add a number of useful performance tests. This CL adds the initial
build integration.
A follow-up CL will integrate glmark2 into our performance tests. Note
that glmark2 will not be shipped with Chrome or Android. It will only
be used on our test infrastructure.
Note that the data path solution is temporary. When integrated into
ANGLE we will make sure we CWD into the glmark2 directory before
running the benchmark.
Bug: angleproject:3139
Change-Id: I5c4f605221c255ab19abd10b321b5867ab459105
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1449984
Commit-Queue: Jamie Madill <jmadill@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Tracing was never allowed to happen because getStatus always returned
false. Also want to allow tracing for release builds for perf analysis.
Bug: angleproject:3176
Change-Id: I7aa94ed9fe3d7f67fe6dd10123c9badc7fb49d82
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1475248
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@google.com>
Migrated pool allocator used by compiler to common.
Planning to use this for ANGLE custom command buffers so this some
refactoring in preparation for that work.
Added a unit test to check PoolAllocator functionality.
Bug: angleproject:2951
Reviewed-on: https://chromium-review.googlesource.com/c/1476953
Reviewed-by: Jamie Madill <jmadill@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
Change-Id: I0b4f3d55ea1799e35c9799c221f7129233f30b24
Reviewed-on: https://chromium-review.googlesource.com/c/1492972
This reverts commit 9417174961.
Reason for revert: crashes on Debug bots
Original change's description:
> Vulkan:Adding custom pool allocator
>
> Migrated pool allocator used by compiler to common.
>
> Planning to use this for ANGLE custom command buffers so this some
> refactoring in preparation for that work.
>
> Added a unit test to check PoolAllocator functionality.
>
> Bug: angleproject:2951
> Change-Id: I29618cfdb065b8a5fefd40719a35d27b1f6e99ef
> Reviewed-on: https://chromium-review.googlesource.com/c/1476953
> Reviewed-by: Jamie Madill <jmadill@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Tobin Ehlis <tobine@google.com>
TBR=ynovikov@chromium.org,jmadill@google.com,tobine@google.com,syoussefi@chromium.org
Change-Id: Id8c522bd1d94154e871211d975e801a55cc9c257
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2951, angleproject:3169
Reviewed-on: https://chromium-review.googlesource.com/c/1487977
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Migrated pool allocator used by compiler to common.
Planning to use this for ANGLE custom command buffers so this some
refactoring in preparation for that work.
Added a unit test to check PoolAllocator functionality.
Bug: angleproject:2951
Change-Id: I29618cfdb065b8a5fefd40719a35d27b1f6e99ef
Reviewed-on: https://chromium-review.googlesource.com/c/1476953
Reviewed-by: Jamie Madill <jmadill@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
This is a workaround for Windows 7 users sometimes not having the UCRT
required for the new versions of the MS HLSL compiler. It requires a
specific version of the Windows SDK with the old compiler DLL.
Bug: chromium:920704
Change-Id: Id9adb3b9d569272cbd69a8b4fc99dc160d837dbc
Reviewed-on: https://chromium-review.googlesource.com/c/1403254
Reviewed-by: Jamie Madill <jmadill@google.com>
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Commit-Queue: Jamie Madill <jmadill@google.com>
This reverts commit 902ceed399.
Reason for revert:
Re-landing this since the Chromium build fix has landed:
https://bugs.chromium.org/p/chromium/issues/detail?id=933783#c29
Comment 29 by gbeaty@chromium.org, Today (13 minutes ago)
Tim, you should be able to re-land your change now.
Original change's description:
> Revert "Create Container ANGLE APK"
>
> This reverts commit e82c857d38.
>
> Reason for revert:
> This is breaking the ANGLE build in the Chromium build process:
>
> https://bugs.chromium.org/p/chromium/issues/detail?id=933783#c6
>
> Original change's description:
> > Create Container ANGLE APK
> >
> > The ANGLE APK needs to be reverted back to just being a container
> > for the ANGLE shared object libraries, since the rest of the APK
> > contents are in the Android source tree.
> >
> > Bug: angleproject:3154
> > Test: 'adb sync' the APK on to a device
> > Change-Id: Id245f1e3d269c71054d9759e8ba8be0532afe659
> > Reviewed-on: https://chromium-review.googlesource.com/c/1474341
> > Commit-Queue: Tim Van Patten <timvp@google.com>
> > Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
>
> TBR=ynovikov@chromium.org,jmadill@google.com,cnorthrop@google.com,courtneygo@google.com,timvp@google.com
>
> Change-Id: I71a739faa2052a707a06bce616ab43a621d5a4ff
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: angleproject:3154
> Reviewed-on: https://chromium-review.googlesource.com/c/1478333
> Reviewed-by: Tim Van Patten <timvp@google.com>
> Commit-Queue: Tim Van Patten <timvp@google.com>
TBR=ynovikov@chromium.org,jmadill@google.com,cnorthrop@google.com,courtneygo@google.com,timvp@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: angleproject:3154
Change-Id: If3a9abfb1c00aab3278437a233bef29d5febe5a5
Reviewed-on: https://chromium-review.googlesource.com/c/1480865
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
This reverts commit e82c857d38.
Reason for revert:
This is breaking the ANGLE build in the Chromium build process:
https://bugs.chromium.org/p/chromium/issues/detail?id=933783#c6
Original change's description:
> Create Container ANGLE APK
>
> The ANGLE APK needs to be reverted back to just being a container
> for the ANGLE shared object libraries, since the rest of the APK
> contents are in the Android source tree.
>
> Bug: angleproject:3154
> Test: 'adb sync' the APK on to a device
> Change-Id: Id245f1e3d269c71054d9759e8ba8be0532afe659
> Reviewed-on: https://chromium-review.googlesource.com/c/1474341
> Commit-Queue: Tim Van Patten <timvp@google.com>
> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
TBR=ynovikov@chromium.org,jmadill@google.com,cnorthrop@google.com,courtneygo@google.com,timvp@google.com
Change-Id: I71a739faa2052a707a06bce616ab43a621d5a4ff
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:3154
Reviewed-on: https://chromium-review.googlesource.com/c/1478333
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
The ANGLE APK needs to be reverted back to just being a container
for the ANGLE shared object libraries, since the rest of the APK
contents are in the Android source tree.
Bug: angleproject:3154
Test: 'adb sync' the APK on to a device
Change-Id: Id245f1e3d269c71054d9759e8ba8be0532afe659
Reviewed-on: https://chromium-review.googlesource.com/c/1474341
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Add DisplayVk and WindowSurfaceVk subclasses for Fuchsia to the vulkan
renderer, as well as an implementation of OSWindow that renders
fullscreen for the test suite.
Disallow use of the vulkan loader from third_party as Fuchsia uses a fork
of the loader and has not sent those changes upstream yet.
Add a small wayland-inspired library libfuchsia-egl to provide a type
"struct fuchsia_egl_window" to use as EGLNativeWindowType. This type
combines a zx_handle_t to an image pipe channel and a surface size.
Image pipes can only be used once to create a VkSurfaceKHR. This means we
have to recreate the pipe in tests that call eglCreateWindowSurface more
than once with a single OSWindow, or the second call will fail. Add a
resetNativeWindow() method to accomplish this.
Reland disabling -Wextra-semi.
BUG=angleproject:2475
TEST=angle_end2end_tests on Fuchsia
Change-Id: Ie91715bcd760c6c04d4b8a02a91daa71e32ee30c
Reviewed-on: https://chromium-review.googlesource.com/c/1467603
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
This reverts commit 991d1cfb5e.
Reason for revert: Failing compile on the fuchsia bots on the ANGLE
auto-roller.
https://ci.chromium.org/p/chromium/builders/luci.chromium.try/fuchsia_x64/209198
In file included from ../../third_party/angle/util/fuchsia/ScenicWindow.cpp:10:
In file included from ../../third_party/angle/util/fuchsia/ScenicWindow.h:13:
In file included from gen/third_party/fuchsia-sdk/sdk/fidl/fuchsia/ui/policy/cpp/fidl.h:5:
In file included from ../../third_party/fuchsia-sdk/sdk/pkg/fidl_cpp/include/lib/fidl/cpp/internal/header.h:12:
../../third_party/fuchsia-sdk/sdk/pkg/fit/include/lib/fit/function.h:135:6: error: extra ';' after member function definition [-Werror,-Wextra-semi]
};
^
1 error generated.
Original change's description:
> Vulkan: Port renderer to Fuchsia
>
> Add DisplayVk and WindowSurfaceVk subclasses for Fuchsia to the vulkan
> renderer, as well as an implementation of OSWindow that renders
> fullscreen for the test suite.
>
> Disallow use of the vulkan loader from third_party as Fuchsia uses a fork
> of the loader and has not sent those changes upstream yet.
>
> Add a small wayland-inspired library libfuchsia-egl to provide a type
> "struct fuchsia_egl_window" to use as EGLNativeWindowType. This type
> combines a zx_handle_t to an image pipe channel and a surface size.
>
> Image pipes can only be used once to create a VkSurfaceKHR. This means we
> have to recreate the pipe in tests that call eglCreateWindowSurface more
> than once with a single OSWindow, or the second call will fail. Add a
> resetNativeWindow() method to accomplish this.
>
> BUG=angleproject:2475
> TEST=angle_end2end_tests on Fuchsia
>
> Change-Id: I71a613a362dd1c8aada49a3c02ae461e064457bf
> Reviewed-on: https://chromium-review.googlesource.com/c/1446496
> Commit-Queue: Michael Spang <spang@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=spang@chromium.org,geofflang@chromium.org,jmadill@chromium.org,syoussefi@chromium.org
Change-Id: I2d9abefa9db5363ba63a17c1773d0e147040d055
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2475
Reviewed-on: https://chromium-review.googlesource.com/c/1465761
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Add DisplayVk and WindowSurfaceVk subclasses for Fuchsia to the vulkan
renderer, as well as an implementation of OSWindow that renders
fullscreen for the test suite.
Disallow use of the vulkan loader from third_party as Fuchsia uses a fork
of the loader and has not sent those changes upstream yet.
Add a small wayland-inspired library libfuchsia-egl to provide a type
"struct fuchsia_egl_window" to use as EGLNativeWindowType. This type
combines a zx_handle_t to an image pipe channel and a surface size.
Image pipes can only be used once to create a VkSurfaceKHR. This means we
have to recreate the pipe in tests that call eglCreateWindowSurface more
than once with a single OSWindow, or the second call will fail. Add a
resetNativeWindow() method to accomplish this.
BUG=angleproject:2475
TEST=angle_end2end_tests on Fuchsia
Change-Id: I71a613a362dd1c8aada49a3c02ae461e064457bf
Reviewed-on: https://chromium-review.googlesource.com/c/1446496
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Local testing did not turn up any crashes.
Bug: angleproject:2983
Change-Id: I5e87ed0768e5bc4454c1a896f96d09ddd92baf44
Reviewed-on: https://chromium-review.googlesource.com/c/1458656
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
We would accidentally propagate include directories to the test
main target. This would show up as compile errors of the form:
In file included from ../../third_party/angle/testing/gtest/include/gtest/gtest.h:10:
../../third_party/angle/third_party/googletest/src/googletest/include/gtest/gtest.h:303:22: error: no member named 'ImplicitlyConvertible' in namespace 'testing::internal'
!internal::ImplicitlyConvertible<T, AssertionResult>::value>::type*
~~~~~~~~~~^
This fixes the GN properties such that we no longer get the wrong
/testing/ and /third_party/googletest/ directories included. This
regressed when glslang was rolled.
Bug: angleproject:3088
Change-Id: I710f767cfe476454c10dacf2103b9203f1b5ee19
Reviewed-on: https://chromium-review.googlesource.com/c/1459596
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
This will allow us to avoid loading the build file for
//third_party/vulkan-validation-layers on Fuchsia, since we don't want to
build the validation layers on that platform.
BUG=angleproject:2475
TEST=angle_end2end_tests on Fuchsia (with full series)
Change-Id: Ifeb67125f5fcebf2b30ae18b760667ba7c56e4d5
Reviewed-on: https://chromium-review.googlesource.com/c/1456479
Commit-Queue: Michael Spang <spang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
This will prevent users from accidentally making semicolon errors in
the future.
Bug: chromium:926235
Change-Id: I79a6fa376fb1ad8f0fcf1b65b1f572a035d1f4e9
Reviewed-on: https://chromium-review.googlesource.com/c/1446493
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
This retires the ANGLE BUILD.gn file for glslang. Also makes a few more
repos sync from Chromium's copy using build overrides. This should
speed up Chrome checkouts slightly.
Bug: angleproject:3088
Change-Id: I530f28d9b13469bbe6471a4c61e7353d599d81ec
Reviewed-on: https://chromium-review.googlesource.com/c/1422545
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
This reverts commit 05459e06fd.
Reason for revert: Clusterfuzz bugs flagged this commit
Original change's description:
> Vulkan: Adding custom pool allocator
>
> Copied pool allocator used by compiler to common and hooking it up as
> custom allocator for CommandPools. Modified it to support reallocation.
>
> RendererVk now has a private poolAllocator and VkAllocationCallbacks
> struct. The allocation callbacks are initialized to static functions
> in RendererVk::initializeDevice() and then passed to CommandPool init()
> and destroy() functions.
>
> Using the pool allocator saves Command Pool/Buffer clean-up time which
> was showing us as a bottleneck is some cases.
>
> Bug: angleproject:2951
> Change-Id: I81aa8a7ec60397676fa722d6435029db27947ef4
> Reviewed-on: https://chromium-review.googlesource.com/c/1409867
> Commit-Queue: Tobin Ehlis <tobine@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=jmadill@chromium.org,tobine@google.com,ianelliott@google.com,syoussefi@chromium.org
Change-Id: I363a351667c4dddef79833061790da90de477e70
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2951
Reviewed-on: https://chromium-review.googlesource.com/c/1430679
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
Copied pool allocator used by compiler to common and hooking it up as
custom allocator for CommandPools. Modified it to support reallocation.
RendererVk now has a private poolAllocator and VkAllocationCallbacks
struct. The allocation callbacks are initialized to static functions
in RendererVk::initializeDevice() and then passed to CommandPool init()
and destroy() functions.
Using the pool allocator saves Command Pool/Buffer clean-up time which
was showing us as a bottleneck is some cases.
Bug: angleproject:2951
Change-Id: I81aa8a7ec60397676fa722d6435029db27947ef4
Reviewed-on: https://chromium-review.googlesource.com/c/1409867
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
This fixes a few style warnings:
* auto should not deduce to raw pointer type
* inlined virtual methods are not allowed
* non-trivial constructors and destructors should be explicit
* inlined non-trivial constructors should not be in-class
* missing override keywords
Bug: angleproject:3069
Change-Id: I3b3e55683691da3ebf6da06a5d3c729c71b6ee53
Reviewed-on: https://chromium-review.googlesource.com/c/1407640
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
This allows us to "globally" add and remove certain configs as long as
we use the new templates. This simplifies the logic of adding configs
for stuff like extra warnings and default include dirs. As well it
simplifies removing certain common unwanted configs.
Generally simplifies the logic in BUILD.gn. Will allow for easily
suppressing the clang-plugins config instead of using a global setting
in .gn. Then we can enable the additional warnings config-by-config.
Also fixes some warnings that turned up after we enabled the extra
warnings config in our tests. Also moves the dEQP tests main to be
consistent with the other test main files.
Bug: angleproject:3069
Change-Id: I5a8166cd0f5a7926822c171fcaf473fc86b3ffc1
Reviewed-on: https://chromium-review.googlesource.com/c/1409871
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
The compressed symbol support requires explicitly listing the
libraries, so add validation libraries.
Use list of ANGLE libraries to reduce duplication
Bug: angleproject:2981
Change-Id: Ia8feb58d2a2ee66299b00bbb1fd3a4d9094c0b68
Reviewed-on: https://chromium-review.googlesource.com/c/1394569
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Updates angle_util to see the loader includes even if the loader is not
enabled. This makes the GN check happy.
Bug: angleproject:3052
Change-Id: Ifd23070385beefede4358c7b4c1823dc87b5ded8
Reviewed-on: https://chromium-review.googlesource.com/c/1395809
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
From `gn help sources`:
As a special case, a file ending in ".def" will be treated as a Windows
module definition file. It will be appended to the link line with a
preceding "/DEF:" string.
This makes the code slightly shorter, and also gives ninja a chance of
re-running the link when the .def file changes since it now knows about
this file.
No intended behavior change.
Change-Id: I5fecb22752508880b726482f7c3da5a75180e446
Reviewed-on: https://chromium-review.googlesource.com/c/1396499
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>