New issue
Advanced search Search tips

Issue 848100 link

Starred by 4 users

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocked on:
issue 848104



Sign in to add a comment

Enable Vulkan support by default

Project Member Reported by cblume@chromium.org, May 31 2018

Issue description

Right now Vulkan support is behind the enable_vulkan gn arg. This arg isn't included in trybot builds. As a result, changes can happen that cause our Vulkan support to fall behind.

We should build with Vulkan support by default (even if not used at run-time) to stop this divide.
 

Comment 1 by cblume@chromium.org, May 31 2018

Blockedon: 848104
Project Member

Comment 2 by bugdroid1@chromium.org, Jun 14 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/327326656f2c8c45ecb0ff4675e5c577e7c275ef

commit 327326656f2c8c45ecb0ff4675e5c577e7c275ef
Author: Chris Blume <cblume@chromium.org>
Date: Thu Jun 14 16:49:57 2018

Enable Vulkan support by default

Currently, building with Vulkan support is behind a gn flag
(enable_vulkan). It would be easy to not build & test with this flag. As
a result, it would also be easy to allow Vulkan support to bitrot.

Enabling Vulkan building by default would keep the Vulkan code
buildable. This patch does that.

(You still need a command line parameter of --enable-vulkan when running
Chrome to actually use the Vulkan codepath. This is just for the
building.)

BUG= 848100 

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I26fa03f9f6e2dc924691db913f723661b510f272
Reviewed-on: https://chromium-review.googlesource.com/1098117
Reviewed-by: Brian Salomon <bsalomon@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Chris Blume <cblume@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567307}
[modify] https://crrev.com/327326656f2c8c45ecb0ff4675e5c577e7c275ef/gpu/vulkan/BUILD.gn
[modify] https://crrev.com/327326656f2c8c45ecb0ff4675e5c577e7c275ef/gpu/vulkan/features.gni
[modify] https://crrev.com/327326656f2c8c45ecb0ff4675e5c577e7c275ef/skia/BUILD.gn
[modify] https://crrev.com/327326656f2c8c45ecb0ff4675e5c577e7c275ef/third_party/vulkan/BUILD.gn

Comment 3 by cblume@chromium.org, Jun 14 2018

Cc: vmi...@chromium.org
Status: Fixed (was: Assigned)
Building an application based on the Content API using Ubuntu 14.04 64-bit with the following GN args at version 69.0.3464.0 (master revision 3c26b60e38 (#567918)):

dcheck_always_on=true
enable_linux_installer=false
enable_nacl=false
fatal_linker_warnings=false
is_component_build=false
is_debug=false
is_official_build=true
symbol_level=1
target_cpu="x64"
use_allocator="none"
use_bundled_fontconfig=false
use_gtk3=false
use_sysroot=true

I get the following error during linking:

build/Release+Asserts/bin/ld.lld: error: duplicate symbol: gpu::CreateVulkanImplementation()
>>> defined in obj/content/browser/browser/gpu_process_transport_factory.o
>>> defined in obj/gpu/vulkan/init/libvulkan_init.a(init/vulkan_factory.o)

Any idea what might be causing this? Thanks.

Comment 5 by cblume@chromium.org, Jun 21 2018

Cc: spang@chromium.org
> Any idea what might be causing this?

Yes.
https://cs.chromium.org/chromium/src/content/browser/compositor/gpu_process_transport_factory.cc?l=119&rcl=3b84bceb153a585cdd142d0562cc5bae8efa7472
It is including the .cc file, not the .h file.

This will be fixed soon. spang@ found it and has a CL out for review:
https://chromium-review.googlesource.com/c/chromium/src/+/1108504



As a side note, I tried building using those gn args and got a different error. Mine was a compile-time error for an ignored return value in third_party/libdrm. This came from is_official_build=true.

And if I have use_gtk3=false I get an error about unhandles enums in a switch in native_theme_gtk2.cc. This came from use_gtk3=false.

I was never able to get the duplicate symbols you saw.

(Also, please tell me you also have some goma args) :D

Sign in to add a comment