gxquickly / angleproject

Automatically exported from code.google.com/p/angleproject
Other
0 stars 0 forks source link

GLX work on Linux breaks non-X11 builds #1011

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
I originally reported this in issue #892, but it is not clear if it is reaching 
the right people (jmadill, cwallez and geofflang), so to be sure I'm creating a 
separate report as well.

Commits fe2f3d634da5316bce8a12d4d7efd03eecf39047 and 
eac646338ccb295063085f7e810e6a5c76135e45 appear to have broken Chromium non-X11 
Linux builds, as they hardcode a dependency on libX11 and libXi in utils.gyp 
and libGLESv2.gypi. Even if Chromium does not depend on those targets that use 
them on Linux, their presence there within an OS=="linux" check is enough to 
break the configuration process.

Original issue reported on code.google.com by raphael.kubo.da.costa@intel.com on 26 May 2015 at 1:24

GoogleCodeExporter commented 9 years ago
Sorry, your comment in issue 892 was probably missed due to the commit messages.

We'll probably need a use_x11 gyp variable to match chromium's.

Original comment by geofflang@chromium.org on 26 May 2015 at 1:28

GoogleCodeExporter commented 9 years ago
The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/51e2ad145705478e9d94c4e2657e9acbb8a55108

commit 51e2ad145705478e9d94c4e2657e9acbb8a55108
Author: Corentin Wallez <cwallez@chromium.org>
Date: Tue May 26 15:32:58 2015

Do not always use X11 for Linux builds, inherit Chromium's settings

This fixes project generation for Chromium for non-X11 builds

BUG=angleproject:1011

Change-Id: If528f63fb186d834d56a43ca379497d99e74777e
Reviewed-on: https://chromium-review.googlesource.com/273163
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>

[modify] 
http://crrev.com/51e2ad145705478e9d94c4e2657e9acbb8a55108/samples/samples.gyp
[modify] 
http://crrev.com/51e2ad145705478e9d94c4e2657e9acbb8a55108/build/common_defines.g
ypi
[modify] 
http://crrev.com/51e2ad145705478e9d94c4e2657e9acbb8a55108/src/libANGLE/Display.c
pp
[modify] http://crrev.com/51e2ad145705478e9d94c4e2657e9acbb8a55108/util/util.gyp
[modify] http://crrev.com/51e2ad145705478e9d94c4e2657e9acbb8a55108/BUILD.gn
[modify] 
http://crrev.com/51e2ad145705478e9d94c4e2657e9acbb8a55108/src/libGLESv2.gypi

Original comment by bugdroid1@chromium.org on 27 May 2015 at 5:13

GoogleCodeExporter commented 9 years ago
Raphael, this commit should fix your problem, can you confirm?

Original comment by cwal...@google.com on 27 May 2015 at 5:15

GoogleCodeExporter commented 9 years ago
Yep, configuration worked, thanks! Can this be backported to M44 as well, since 
that branch is broken compared to M43 (and is what I am using :-)?

Original comment by raphael.kubo.da.costa@intel.com on 27 May 2015 at 6:15

GoogleCodeExporter commented 9 years ago
I'm not sure how that would work, @jmadill do you know if that's possible?

Original comment by cwal...@google.com on 27 May 2015 at 9:24

GoogleCodeExporter commented 9 years ago
Corentin: we can do this. Open a chromium issue, explain the issue, how risky 
it is (should be very safe since it only affects the compile) and the impact 
(affects these third party builds), and mark it with the tag for M44 and 
merge-requested. cc me and raphael and ken, and we should get a response from a 
TPM.

Original comment by jmad...@chromium.org on 27 May 2015 at 10:05

GoogleCodeExporter commented 9 years ago
Hi everyone. Since I haven't been CC'ed to any merge request bug, I was 
wondering if everything's alright?

Original comment by raphael.kubo.da.costa@intel.com on 29 May 2015 at 10:53

GoogleCodeExporter commented 9 years ago
Raphael, what builds are broken for you? Does this affect M44? I can't seem to 
build Chromium with ToT and use_ozone = 1.

Original comment by jmad...@chromium.org on 29 May 2015 at 6:37

GoogleCodeExporter commented 9 years ago
Basically my build is M44 with ozone-wayland, so not a vanilla Chromium. What 
problem are you having with ToT and use_ozone=1 at the moment?

Original comment by raphael.kubo.da.costa@intel.com on 29 May 2015 at 7:44

GoogleCodeExporter commented 9 years ago
Raphael, I can't repro the build failure with use_ozone=1 and ToT chromium with 
M44 DEPS ANGLE. If I can't repro the failure I can't guarantee the cherry-pick 
will work. Please follow up on issue chromium:493664 if you have any advice.

Original comment by jmad...@chromium.org on 4 Jun 2015 at 2:16

GoogleCodeExporter commented 9 years ago
I saw that issue, but basically the last comment there referenced an issue I do 
not have permission to view, so I thought there wasn't much for me to do.

Original comment by raphael.kubo.da.costa@intel.com on 4 Jun 2015 at 2:18

GoogleCodeExporter commented 9 years ago
The other issue is a fix for a regression with the fix for the ozone build. I 
need to either a) know how to repro the build failure or b) get you to help me 
test my cherry-picks in order to be able to merge to M-44.

Original comment by jmad...@chromium.org on 4 Jun 2015 at 2:21

GoogleCodeExporter commented 9 years ago
It wasn't a build failure, but a configuration failure: the gyp invocation 
itself was failing if the X11 development headers (libX11 and libXi) are not 
present and an ozone build was selected (see my first comment to the Gerrit CL).

I can test the cherry-pick myself (provided I can see a patch, the Chromium 
merge-request only references the original Gerrit change, I originally had to 
slightly adjust the patch to make it apply to the M44 branch) as well as set up 
an M44 build here to provide more detailed instructions on how to reproduce it.

Original comment by raphael.kubo.da.costa@intel.com on 4 Jun 2015 at 2:26

GoogleCodeExporter commented 9 years ago
Thanks. You should be able to run

git fetch https://chromium.googlesource.com/angle/angle 
refs/changes/36/274036/1 && git checkout FETCH_HEAD

To checkout a cherry-picked ANGLE to test with. You run this inside 
chromium/src/third_party/angle. There are two CLs on top of chromium/2403, link 
to the top one here: https://chromium-review.googlesource.com/#/c/274036/. 
There were some merge conflicts so it's important we test them. Running 
angle_unittests and gpu_unittests would be a good idea at the very least, WebGL 
CTS would give good coverage as well.

Original comment by jmad...@chromium.org on 4 Jun 2015 at 2:31

GoogleCodeExporter commented 9 years ago
Here's what I could gather so far with 44.0.2403.30 (latest Linux Beta M44) 
after apt-get remove'ing libxi-dev (I could have removed libX11-dev too, but 
that wouldn't make any difference here):

* With a vanilla M44, ./build/gyp_chromium -Duse_ozone=1 fails like I described:

  % ./build/gyp_chromium -Duse_ozone=1
  Updating projects from gyp files...
  Using overrides found in /home/rakuco/.gyp/include.gypi
  Package xi was not found in the pkg-config search path.
  Perhaps you should add the directory containing `xi.pc'
  to the PKG_CONFIG_PATH environment variable
  No package 'xi' found
  gyp: Call to 'pkg-config --libs-only-l x11 xi' returned exit status 1.

* With M44 and ANGLE at commit 3c3788eeadd7097e7eefb6774a247c7b1c3a9f68 (in 
other words, with the two commits from the Gerrit CL from comment #14), I need 
to apply 84251bbd423965f9db89331761185b5630147215 to src/ (see bug 489264). 
After that, gyp_chromium -Duse_ozone=1 works as expected without libxi-devel. 
Both angle_unittests and gpu_unittests all pass.

I couldn't get to run the WebGL conformance tests because the content_shell 
build fails due to views::test::WidgetTest::GetNativeWidgetMinimumContentSize() 
having no implementation for the non-X11 && non-CrOS case.

I've never run WebGL's conformance tests myself, 

Original comment by raphael.kubo.da.costa@intel.com on 4 Jun 2015 at 3:36

GoogleCodeExporter commented 9 years ago
Thanks for testing. I'll merge it out, though I notice that other bug is not 
merge-requested, and still blocks your build.

Original comment by jmad...@chromium.org on 4 Jun 2015 at 3:43

GoogleCodeExporter commented 9 years ago
The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/9b38269c0bc96a938d2be458ccd0fa54818e39f0

commit 9b38269c0bc96a938d2be458ccd0fa54818e39f0
Author: Corentin Wallez <cwallez@chromium.org>
Date: Tue May 26 15:32:58 2015

Do not always use X11 for Linux builds, inherit Chromium's settings

This fixes project generation for Chromium for non-X11 builds

BUG=angleproject:1011

Change-Id: If528f63fb186d834d56a43ca379497d99e74777e
Reviewed-on: https://chromium-review.googlesource.com/274035
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>

[modify] 
http://crrev.com/9b38269c0bc96a938d2be458ccd0fa54818e39f0/samples/samples.gyp
[modify] 
http://crrev.com/9b38269c0bc96a938d2be458ccd0fa54818e39f0/build/common_defines.g
ypi
[modify] 
http://crrev.com/9b38269c0bc96a938d2be458ccd0fa54818e39f0/src/libANGLE/Display.c
pp
[modify] http://crrev.com/9b38269c0bc96a938d2be458ccd0fa54818e39f0/util/util.gyp
[modify] http://crrev.com/9b38269c0bc96a938d2be458ccd0fa54818e39f0/BUILD.gn
[modify] 
http://crrev.com/9b38269c0bc96a938d2be458ccd0fa54818e39f0/src/libGLESv2.gypi

Original comment by bugdroid1@chromium.org on 4 Jun 2015 at 3:44

GoogleCodeExporter commented 9 years ago
Thanks, Jamie! I can take care of filing a merge-request bug for that missing 
Chromium commit (actually, I don't remember if it was actually affecting our 
ozone-wayland builds due to one reason or another).

Will you take care of closing issue chromium:493664 and rolling ANGLE in M44? 
If so, I guess we can close this bug?

Original comment by raphael.kubo.da.costa@intel.com on 4 Jun 2015 at 3:57

GoogleCodeExporter commented 9 years ago

Original comment by jmad...@chromium.org on 8 Jun 2015 at 6:21