Граф коммитов

227 Коммитов

Автор SHA1 Сообщение Дата
Yuly Novikov ad4f9642a6 Allow ANGLE libs to have arbitrary suffix.
In order to work with tools which intercept EGL and GLES calls.

BUG=angleproject:2343

Change-Id: I63aec7a56648dc4b3e7f4aff7f7d1608709ba118
Reviewed-on: https://chromium-review.googlesource.com/920652
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2018-03-23 22:09:24 +00:00
Yuly Novikov 40a945f293 Rename vulkan_loader to libvulkan
Also add a build argument to build it as a shared library.

BUG=angleproject:2343

Change-Id: Ia590632b94d71b10d3ee64974fa4f5b4f00c3a70
Reviewed-on: https://chromium-review.googlesource.com/954403
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
2018-03-20 23:18:43 +00:00
Tobin Ehlis da6dd73804 Roll (2/2) to latest LVL as of 3/6/18
Bug: angleproject:2393

Moving to HEAD of LVL master on afternoon of 3/6/18.
Made some updates to BUILD.gn to add args to spirv tools
external_revision_generator.py script.
Re-enable ANGLE Vulkan build.

Change-Id: I1705d7a2acae578bab9bbd8bb93176107e0e21dc
Reviewed-on: https://chromium-review.googlesource.com/952547
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2018-03-07 21:55:21 +00:00
Tobin Ehlis 37812d4543 Roll (1/2) LVL version forward and disable VANGLE
Bug: angleproject:2393

Rolling Vulkan validation code forward to HEAD of master as of 3/6/18
afternoon. Disable Vulkan from the ANGLE build until ANGLE lands in
Chromium. After that second part of roll will be submitted.

Change-Id: I3c98b42a0b8999e8aa26f538959d888060c2026a
Reviewed-on: https://chromium-review.googlesource.com/952525
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2018-03-07 17:15:00 +00:00
Jamie Madill a1134ba865 Vulkan: Relocate third-party libraries. (2/2)
This makes the BUILD.gn source lists a lot simpler, since they no
longer need to use a special path variable, but instead can use the
correct relative paths.

This will lead to further simplifications so we can hopefully upstream
the Vulkan tools BUILD.gn files.

Second part updates the build files and removes the old repositories.

Bug: angleproject:2339
Change-Id: I37f5b42a0854ca49448ecbbb32c19c24df57f452
Reviewed-on: https://chromium-review.googlesource.com/905894
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2018-02-07 21:33:33 +00:00
Jamie Madill b62a1c2ac8 Vulkan: Reorganize BUILD.gn files.
This moves the SPIRV-Tools and glslang and Validation layers build
files into the root of the dep folder.

Requires an upstream Chrome change to allow for a different path
to execute scrips in GN.

Also removes the vulkan_support subdirectory.

Bug: angleproject:2339
Change-Id: I457b5b05547c092a1e7fef6dd0aaadd8068e2143
Reviewed-on: https://chromium-review.googlesource.com/900096
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
2018-02-06 21:47:01 +00:00
Yuly Novikov 199f42941a Vulkan: Enable on Android
Add Android DisplayVk and WindowSurfaceVk variants.
Build Vulkan backend and validation layers on Android
if toolchain uses required NDK API level.
Fix validation layers discovery to work on Android.

BUG=angleproject:2314
TEST=angle_end2end_tests builds and runs on Nexus 5X, 12 VULKAN tests pass

Change-Id: Iac2ec4ecd6470a7552f9f60c023ba1760aa090c5
Reviewed-on: https://chromium-review.googlesource.com/887797
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
2018-01-30 22:10:20 +00:00
Frank Henigman 6df487ef1e Move angle_enable_* inside declare_args().
This allows enabling and disabling parts of the build via gn args,
similar to what gyp allowed.

BUG=angleproject:1569

Change-Id: Ia95c134f98f8941408df96b1d4e2563e713a9ef2
Reviewed-on: https://chromium-review.googlesource.com/838260
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2018-01-03 21:41:47 +00:00
Jamie Madill 8a57b468e2 Re-land "Vulkan: Roll loader/validation layers SDK. (2/2)"
Second re-land fixes git.bat access on developer machines.

Re-landing with upstream fixes to the layers so they no longer
need to copy the parameter validation errors to the current
working directory of the layer generation. Also includes fixes
for the GCC build.

This hasn't been updated in a while, so there are many changes.
It should also include better validation for memory barriers.

Also includes updated builds for SPIRV Tools and glslang.
A few pull requests need to land before landing this in ANGLE.

This second step re-enables Vulkan and includes the updated build.

Includes a workaround for parameter_validation.h no longer being
auto-generated, and the stale file clobbering the build.

Also includes a fix for an incorrect memory barrier.

Bug: angleproject:2237
Change-Id: Ic1a3ad7458bb743d7279a1af9334693ab6cb59d6
Reviewed-on: https://chromium-review.googlesource.com/845859
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2017-12-28 22:36:37 +00:00
Zhenyao Mo 06f8637740 Revert "Re-land "Vulkan: Roll loader/validation layers SDK. (2/2)""
This reverts commit 755a9317ff.

Reason for revert: Broke local win build. crbug.com/797253

Original change's description:
> Re-land "Vulkan: Roll loader/validation layers SDK. (2/2)"
> 
> Re-landing with upstream fixes to the layers so they no longer
> need to copy the parameter validation errors to the current
> working directory of the layer generation. Also includes fixes
> for the GCC build.
> 
> This hasn't been updated in a while, so there are many changes.
> It should also include better validation for memory barriers.
> 
> Also includes updated builds for SPIRV Tools and glslang.
> A few pull requests need to land before landing this in ANGLE.
> 
> This second step re-enables Vulkan and includes the updated build.
> 
> Includes a workaround for parameter_validation.h no longer being
> auto-generated, and the stale file clobbering the build.
> 
> Also includes a fix for an incorrect memory barrier.
> 
> Bug: angleproject:2237
> Change-Id: I1ed87ecfa84f51ee1edf6a8581d9b3c8f9a6f26e
> Reviewed-on: https://chromium-review.googlesource.com/834429
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>

TBR=fjhenigman@chromium.org,jmadill@chromium.org

Change-Id: I605d72207d64c7d0853678595e255b74ad69d887
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2237
Reviewed-on: https://chromium-review.googlesource.com/842918
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Zhenyao Mo <zmo@chromium.org>
2017-12-22 19:29:22 +00:00
Jamie Madill 755a9317ff Re-land "Vulkan: Roll loader/validation layers SDK. (2/2)"
Re-landing with upstream fixes to the layers so they no longer
need to copy the parameter validation errors to the current
working directory of the layer generation. Also includes fixes
for the GCC build.

This hasn't been updated in a while, so there are many changes.
It should also include better validation for memory barriers.

Also includes updated builds for SPIRV Tools and glslang.
A few pull requests need to land before landing this in ANGLE.

This second step re-enables Vulkan and includes the updated build.

Includes a workaround for parameter_validation.h no longer being
auto-generated, and the stale file clobbering the build.

Also includes a fix for an incorrect memory barrier.

Bug: angleproject:2237
Change-Id: I1ed87ecfa84f51ee1edf6a8581d9b3c8f9a6f26e
Reviewed-on: https://chromium-review.googlesource.com/834429
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2017-12-21 21:09:37 +00:00
Jamie Madill 647dca7672 Revert "Vulkan: Roll loader/validation layers SDK. (2/2)"
This reverts commit f15f9cec31.

Reason for revert:
Causing a compile failure on the Fuchsia config, due to a path
difference. Will fix upstream and re-land, since it's breaking the
auto-roller.

https://chromium-review.googlesource.com/c/chromium/src/+/829878

FAILED: clang_x64/gen/third_party/angle/src/vulkan_support/angle/vulkan/parameter_validation.cpp 
python ../../third_party/vulkan-validation-layers/src/scripts/lvl_genvk.py -o clang_x64/gen/third_party/angle/src/vulkan_support/angle/vulkan -registry ../../third_party/vulkan-validation-layers/src/scripts/vk.xml parameter_validation.cpp -quiet
Error: Could not find vk_validation_error_messages.h
[906/1359] ACTION //third_party/angle/src/vulkan_support:vulkan_gen_object_tracker_cpp(//build/toolchain/linux:clang_x64)
FAILED: clang_x64/gen/third_party/angle/src/vulkan_support/angle/vulkan/object_tracker.cpp 
python ../../third_party/vulkan-validation-layers/src/scripts/lvl_genvk.py -o clang_x64/gen/third_party/angle/src/vulkan_support/angle/vulkan -registry ../../third_party/vulkan-validation-layers/src/scripts/vk.xml object_tracker.cpp -quiet
Error: Could not find vk_validation_error_messages.h

Original change's description:
> Vulkan: Roll loader/validation layers SDK. (2/2)
> 
> This hasn't been updated in a while, so there are many changes.
> It should also include better validation for memory barriers.
> 
> Also includes updated builds for SPIRV Tools and glslang.
> A few pull requests need to land before landing this in ANGLE.
> 
> This second step re-enables Vulkan and includes the updated build.
> 
> Includes a workaround for parameter_validation.h no longer being
> auto-generated, and the stale file clobbering the build.
> 
> Also includes a fix for an incorrect memory barrier.
> 
> Bug: angleproject:2237
> Change-Id: Iae611764870281ed6aa7b187ec0c4e44226c722a
> Reviewed-on: https://chromium-review.googlesource.com/759197
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Frank Henigman <fjhenigman@chromium.org>

TBR=fjhenigman@chromium.org,jmadill@chromium.org,cwallez@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: angleproject:2237
Change-Id: I9bc60860668c1da773b6e2fdb83ecc20215e9125
Reviewed-on: https://chromium-review.googlesource.com/830926
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2017-12-15 22:13:06 +00:00
Jamie Madill f15f9cec31 Vulkan: Roll loader/validation layers SDK. (2/2)
This hasn't been updated in a while, so there are many changes.
It should also include better validation for memory barriers.

Also includes updated builds for SPIRV Tools and glslang.
A few pull requests need to land before landing this in ANGLE.

This second step re-enables Vulkan and includes the updated build.

Includes a workaround for parameter_validation.h no longer being
auto-generated, and the stale file clobbering the build.

Also includes a fix for an incorrect memory barrier.

Bug: angleproject:2237
Change-Id: Iae611764870281ed6aa7b187ec0c4e44226c722a
Reviewed-on: https://chromium-review.googlesource.com/759197
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
2017-12-14 16:52:01 +00:00
Jamie Madill 9af765dd2e Vulkan: Roll loader/validation layers SDK. (1/2)
This hasn't been updated in a while, so there are many changes.
It should also include better validation for memory barriers.

Also includes updated builds for SPIRV Tools and glslang.
A few pull requests need to land before landing this in ANGLE.

First part disables Vulkan and rolls the layers. The second part will
re-enable Vulkan with the updated loader/layers build.

Bug: angleproject:2237

Change-Id: I112521541ea66b26eadeb959852418dc91be2e18
Reviewed-on: https://chromium-review.googlesource.com/805417
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2017-12-13 21:12:27 +00:00
Jamie Madill 6d94f064ae Add more complete NULL driver for the GL back-end.
This implements a NULL driver in OpenGL by stubbing out most of the
GL functions in FunctionsGL except a few static "Gets" that are needed
for initialization with Chromium and the tests. It is intended to be
used for performance testing ONLY and will not have correct behaviour.

It also adds a define to enable conditionally excluding the null entry
points for implementations that wish to save on a bit of binary size.

Also fixes some of the typedefs in functionsgl_typesdefs.h that were
turned up after implementing the direct assignment from NULL stub
entry point, generated from gl.xml, to the function pointer with type
defined from functionsgl_typedefs.h.

BUG=angleproject:2188

Change-Id: Ifa1e4739cb471ab6b52a4bf24c16d9eb4b334ac5
Reviewed-on: https://chromium-review.googlesource.com/727530
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2017-10-22 15:13:56 +00:00
Frank Henigman d0ef13a250 Stand-alone build with gn.
This should do the same things as the stand-alone gyp build, but with gn.
You should switch to gn as gyp support will go away.

You need a recent enough version of gn.  If yours is too old try this one:
  ./buildtools/linux64/gn

If "gclient sync" or anything fails with an ImportError on gyp stuff,
try running it with the following PYTHONPATH in the environment:
  PYTHONPATH=tools/gyp/pylib

BUG=angleproject:1569

Change-Id: I56d19bec2d8b649a7bd65062c656cbfc69ea3dd8
Reviewed-on: https://chromium-review.googlesource.com/642588
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
2017-10-18 17:02:13 +00:00
Frank Henigman 29f148b0ca Support Vulkan on Linux as well as Windows.
Refactor display and surface classes into Win32 and Linux parts and
add Linux parts to gn and gyp builds.

BUG=angleproject:1668

Change-Id: I2a7d29c35f4f42fa0035bd97938d3770f3627672
Reviewed-on: https://chromium-review.googlesource.com/412426
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2017-04-26 16:54:00 +00:00
Jamie Madill 03b333b484 Vulkan: Fix Clang warning and fix build.
The data_deps section for angle_vulkan was referencing a variable
that didn't exist (no warning for this). Fix the deps which also
then exposes the build problem with the layers with Clang in 32-bit.
Also fix not propagating the Win32 defines to the layer utils.

BUG=chromium:708835

Change-Id: I4a457bfabf1ca735d3f3f3d8b0f0823cfa834b84
Reviewed-on: https://chromium-review.googlesource.com/470087
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2017-04-07 20:32:10 +00:00
Geoff Lang bf67aa801a Temporarily disable Vulkan for the GN build.
BUG=709342

Change-Id: I980634700d364824af9f9b749fca0ec72abf68f8
Reviewed-on: https://chromium-review.googlesource.com/471507
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2017-04-07 14:34:13 +00:00
Jamie Madill 9cb2c2623c Re-land: Roll vulkan-validation-layers. (2/2)
bcb80d06bb..f47c534fee

This CL re-enables Vulkan with the new build files.

In particular, this roll contains a fix for a vs2017 signed/unsigned
mismatch warning as error.

Re-land fixes build dependencies.

BUG=chromium:683729

Change-Id: If2b1bc7250037c33402965eae354ca550ecd36c0
Reviewed-on: https://chromium-review.googlesource.com/466106
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2017-04-03 15:27:19 +00:00
Geoff Lang 795e75735c Revert "Roll vulkan-validation-layers. (2/2)"
This reverts commit 2feaa5e0ac.

Reason for revert: Broke the Chrome Windows builders.

Build: https://build.chromium.org/p/chromium/builders/Win/builds/53432
Error: src\third_party\vulkan-validation-layers\src\include\vulkan\vk_layer.h(39): fatal error C1083: Cannot open include file: 'vk_layer_dispatch_table.h': No such file or directory

Original change's description:
> Roll vulkan-validation-layers. (2/2)
> 
> bcb80d06bb..f47c534fee
> 
> This CL re-enables Vulkan with the new build files.
> 
> In particular, this roll contains a fix for a vs2017 signed/unsigned
> mismatch warning as error.
> 
> BUG=chromium:683729
> 
> Change-Id: Id38e10f97702cac5a51ee194c81972861f15db21
> Reviewed-on: https://chromium-review.googlesource.com/457278
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> 

TBR=geofflang@chromium.org,jmadill@chromium.org,bungeman@chromium.org,cwallez@chromium.org
# Not skipping CQ checks because original CL landed > 1 day ago.
BUG=chromium:683729

Change-Id: Ic60f22496fc57904132d574a2fb2c1ca4d875b3e
Reviewed-on: https://chromium-review.googlesource.com/461999
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2017-03-28 15:49:45 +00:00
Jamie Madill 2feaa5e0ac Roll vulkan-validation-layers. (2/2)
bcb80d06bb..f47c534fee

This CL re-enables Vulkan with the new build files.

In particular, this roll contains a fix for a vs2017 signed/unsigned
mismatch warning as error.

BUG=chromium:683729

Change-Id: Id38e10f97702cac5a51ee194c81972861f15db21
Reviewed-on: https://chromium-review.googlesource.com/457278
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2017-03-24 18:15:01 +00:00
Jamie Madill 4063e20954 Roll vulkan-validation-layers. (1/2)
bcb80d06bb..f47c534fee

Disables Vulkan in ANGLE temporarily - a second CL will follow with
the updated build files once ANGLE is rolled into Chrome.

In particular, this roll contains a fix for a vs2017 signed/unsigned
mismatch warning as error.

BUG=chromium:683729

Change-Id: Ib23370d79f1359ab290f08e14a847eed75251660
Reviewed-on: https://chromium-review.googlesource.com/458531
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2017-03-23 16:41:25 +00:00
Jamie Madill 7cc14ee868 Vulkan: Update build files after roll.
They have consolidated to one helper script generator. Simplifies the
GN build. This also re-enables the Vulkan back-end after the roll.

BUG=angleproject:1319

Change-Id: Ie98568ae5d1dc46932ea8d698809561da7591836
Reviewed-on: https://chromium-review.googlesource.com/427307
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2017-01-13 15:56:48 +00:00
Jamie Madill b4533de1fd Roll Vulkan to bcb80d06b.
This includes a loader fix for systems with stale drivers.

BUG=angleproject:1319

Change-Id: I9ee726bd508c89b19508a5f3113f7b90593635d5
Reviewed-on: https://chromium-review.googlesource.com/427265
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2017-01-12 21:23:38 +00:00
Frédéric Wang 706972529e Ozone: Only set angle_enable_gl=1 for the DRM/GBM platform.
Currently, the load of DRM dependencies and definition of ANGLE_USE_OZONE
are conditioned by ozone_platform_gbm in the GN build files. However,
angle_enable_gl is always turned on for use_ozone=1. As a consequence,
use_ozone=1 and ozone_platform_gbm=0 (default on Linux Desktop) produces
the following error:

    ../../third_party/angle/src/libANGLE/Display.cpp:52:9: error: Unsupported OpenGL platform.
    #error Unsupported OpenGL platform.

    ../../third_party/angle/src/libANGLE/Display.cpp:192:2: error: Unsupported OpenGL platform.
    #error Unsupported OpenGL platform.

This CL turns off angle_enable_gl in that case to fix that build error.

Change-Id: I42578f30f3353c083f52d4bd345dbe33f3f5e12e
Reviewed-on: https://chromium-review.googlesource.com/408100
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
2016-11-08 21:57:18 +00:00
Corentin Wallez 7f07caa961 Rename the build/ directory.
GYP related files went in gypfiles/, and the gni went in gni/ this
changes frees up the build/ directory name for Chromium's build/
directory.

BUG=angleproject:1569

Change-Id: I76fe343d569239c2732ba87986fcf7debc21d417
Reviewed-on: https://chromium-review.googlesource.com/403029
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2016-11-08 14:48:42 +00:00