New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 642954 link

Starred by 1 user

Issue metadata

Status: Archived
Owner:
Last visit > 30 days ago
Closed: Feb 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Feature

Blocking:
issue 581470
issue 689177



Sign in to add a comment

Add Vulkan loader to CrOS

Project Member Reported by chadversary@chromium.org, Aug 31 2016

Issue description

Blocking: 581470
Patch under review:

    media-libs/vulkan-loader: New package
    https://chromium-review.googlesource.com/#/c/380915
Cc: kalyan.kondapally@chromium.org
Project Member

Comment 4 by bugdroid1@chromium.org, Sep 7 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/76321870dd0d45545bdf3c0ea456071e8a977cbb

commit 76321870dd0d45545bdf3c0ea456071e8a977cbb
Author: Chad Versace <chadversary@chromium.org>
Date: Fri Sep 02 22:51:57 2016

media-libs/vulkan-loader: New package

This package installs the official Vulkan ICD loader provided by
Khronos, libvulkan.so.1.0.24.

The tarball provides more than the loader, but we don't care about the
other stuff yet on Chromium OS.  The ebuild builds and installs only the
loader because that's all we currently need for Vulkan bring-up.

BUG= chromium:642954 
TEST=> USE=vulkan emerge-samus vulkan-loader
     > equery-samus files vulkan-loader

Change-Id: I57f9607660b5f4c90f4b3c240c557abfd6d836a6
Reviewed-on: https://chromium-review.googlesource.com/380915
Commit-Ready: Chad Versace <chadversary@chromium.org>
Tested-by: Chad Versace <chadversary@chromium.org>
Reviewed-by: Ilja H. Friedel <ihf@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[add] https://crrev.com/76321870dd0d45545bdf3c0ea456071e8a977cbb/media-libs/vulkan-loader/vulkan-loader-1.0.24.0.ebuild
[add] https://crrev.com/76321870dd0d45545bdf3c0ea456071e8a977cbb/media-libs/vulkan-loader/Manifest

Status: media-libs/vulkan-loader.ebuild is now in upstream CrOS, but not included on any board.

I'm leaving this ticket open until some board pulls in the ebuild.
Cc: marc...@chromium.org
Blocking: 689177
Project Member

Comment 8 by bugdroid1@chromium.org, Feb 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/cb9045b9f04b786d843359796f9ee6de2cb8ca80

commit cb9045b9f04b786d843359796f9ee6de2cb8ca80
Author: Chad Versace <chadversary@chromium.org>
Date: Sat Feb 11 03:02:56 2017

media-libs/vulkan-loader: Update to 1.0.39.0

Upstream Gentoo finally has an ebuild for the vulkan-loader,
media-libs/vulkan-1.0.39.0.ebuild. This patch imports the upstream
ebuild and applies some fixes for Chromium OS.

Changes from upstream ebuild:
  - Downgrade EAPI from 6 to 5. (CrOS doesn't yet support 6).
  - Replace eclass cmake-multilib with cmake-utils. (CrOS doesn't yet
    have cmake-multilib).
  - Disable WSI support because CrOS has no window system.
  - Remove python3 from DEPENDS because it breaks cross-compilation. The
    vulkan-loader requires python>=3.3 as a *host* build dependency, not as
    a *target* build dependency. That dependency is satisfied by host
    package virtual/target-chromium-os-sdk instead of DEPENDS.
  - Unmask all architectures.

I tested emerging this package to an ARM board (elm) and an
Intel board (sentry).

BUG= chromium:689177 
BUG= chromium:642954 
TEST=$ emerge-sentry =media-libs/vulkan-loader-1.0.39.0
TEST=$ emerge-elm =media-libs/vulkan-loader-1.0.39.0

Change-Id: I02b8930d784ffa4dd1215cb3c2e0507a7465ad32
Reviewed-on: https://chromium-review.googlesource.com/438746
Commit-Ready: Chad Versace <chadversary@chromium.org>
Tested-by: Chad Versace <chadversary@chromium.org>
Reviewed-by: Chad Versace <chadversary@chromium.org>

[delete] https://crrev.com/dd276f7d0a1c8bacd98d685858c1b4f6fea76549/media-libs/vulkan-loader/vulkan-loader-1.0.24.0.ebuild
[add] https://crrev.com/cb9045b9f04b786d843359796f9ee6de2cb8ca80/media-libs/vulkan-loader/metadata.xml
[modify] https://crrev.com/cb9045b9f04b786d843359796f9ee6de2cb8ca80/media-libs/vulkan-loader/Manifest
[add] https://crrev.com/cb9045b9f04b786d843359796f9ee6de2cb8ca80/media-libs/vulkan-loader/vulkan-loader-1.0.39.0.ebuild

So close... The vulkan-loader is installed onto test images for chipset-skl and chipset-apl, but not the base image. We need in the base image.

The problem is that no packages yet in the base image depend on media-libs/vulkan-loader. Only media-gfx/deqp, in the test image, depend on media-lib/vulkan-loader (transitively through virtual/vulkan-icd).

To fix it, marcheu and ihf suggest adding a direct dependency from virtual/target-chromium-os => virtual/vulkan-icd. See <https://bugs.chromium.org/p/chromium/issues/detail?id=689177#c13>.
Project Member

Comment 10 by bugdroid1@chromium.org, Feb 18 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/board-overlays/+/697f73785a0eba2365276abe3037541e07c057ab

commit 697f73785a0eba2365276abe3037541e07c057ab
Author: Chad Versace <chadversary@chromium.org>
Date: Sat Feb 18 03:07:01 2017

chipset-skl: Enable USE=vulkan globally

Previously, we enabled it just for media-gfx/deqp and media-libs/mesa.
But, as more packages acquire vulkan support (such as drm-tests and the
browser itself), that method doesn't scale. Let's just enable it
globally.

BUG= chromium:642954 
TEST=Do clean setup_board, build_packages, and build_image.

Change-Id: I41dcfadaf65155533106183a64a5aa0cbaaf9369
Reviewed-on: https://chromium-review.googlesource.com/444259
Commit-Ready: Chad Versace <chadversary@chromium.org>
Tested-by: Chad Versace <chadversary@chromium.org>
Reviewed-by: Ilja H. Friedel <ihf@chromium.org>

[modify] https://crrev.com/697f73785a0eba2365276abe3037541e07c057ab/chipset-skl/profiles/base/make.defaults
[delete] https://crrev.com/84f0d69f5c07eca2c557dee5ce90374b6a6e4be2/chipset-skl/profiles/base/package.use

Project Member

Comment 11 by bugdroid1@chromium.org, Feb 18 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/board-overlays/+/334bc71e549837a00fc74e133907dedd8805fb11

commit 334bc71e549837a00fc74e133907dedd8805fb11
Author: Chad Versace <chadversary@chromium.org>
Date: Sat Feb 18 03:07:01 2017

chipset-apl: Enable USE=vulkan globally

Previously, we enabled it just for media-gfx/deqp and media-libs/mesa.
But, as more packages acquire vulkan support (such as drm-tests and the
browser itself), that method doesn't scale. Let's just enable it
globally.

BUG= chromium:642954 
TEST=Do clean setup_board, build_packages, and build_image.

Change-Id: I7bd891aa1d3e8cf63cfe84da3518d3545d24b499
Reviewed-on: https://chromium-review.googlesource.com/444260
Commit-Ready: Chad Versace <chadversary@chromium.org>
Tested-by: Chad Versace <chadversary@chromium.org>
Reviewed-by: Ilja H. Friedel <ihf@chromium.org>

[delete] https://crrev.com/697f73785a0eba2365276abe3037541e07c057ab/chipset-apl/profiles/base/package.use
[modify] https://crrev.com/334bc71e549837a00fc74e133907dedd8805fb11/chipset-apl/profiles/base/make.defaults

Status: Fixed (was: Assigned)
Closing as fixed.

The loader is still installed only on the test image, not on the base image. And I believe that's the best we can achieve for now, due to the discussions (online and offline) in https://chromium-review.googlesource.com/c/444448/.

Having libvulkan.so on only the test image is no longer causing any blocking issues, thanks to the commit below.
The commit taught autotest's graphics_dEQP.py how to use the libvulkan.so installed in /usr/local.

[https://chromium.googlesource.com/chromiumos/third_party/autotest/+/0a37d8effca38bc9c7b36d5fa218f2561e3b24cc]
commit 0a37d8effca38bc9c7b36d5fa218f2561e3b24cc
Author: Chad Versace <chadversary@chromium.org>
Date: Sat Feb 18 08:39:28 2017

graphics_dEQP: Prepend /usr/local/$libdir to LD_LIBRARY_PATH

Prepend "/usr/local/lib:/usr/local/lib64" to LD_LIBRARY_PATH for all
dEQP test processes.  Fixes the Vulkan CTS.

Currently, no package in the base image requires
media-libs/vulkan-loader. Only media-gfx/deqp does, which is in the test
image.  Therefore the build_image scripts install libvulkan.so into
/usr/local.

When in a login shell on Chrome OS, LD_LIBRARY_PATH does contain the
/usr/local libdirs. But processes spawned by autotest do not. Therefore,
deqp worked when ran from a login shell; but it failed to dlopen
libvulkan.so when ran by autotest.

BUG= chromium:689177 
TEST=Run `test_that ... graphics_dEQP.vk.info` on sentry. Inspect
     client.0.DEBUG to confirm that tests ran.

Change-Id: Ib067acc76db1364328b45ef2c66a6a73a4e12c38
Reviewed-on: https://chromium-review.googlesource.com/444984
Commit-Ready: Ilja H. Friedel <ihf@chromium.org>
Tested-by: Chad Versace <chadversary@chromium.org>
Reviewed-by: Ilja H. Friedel <ihf@chromium.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>

Comment 13 by dchan@google.com, Apr 17 2017

Labels: VerifyIn-59

Comment 14 by dchan@google.com, May 30 2017

Labels: VerifyIn-60
Labels: VerifyIn-61

Comment 16 by dchan@chromium.org, Oct 14 2017

Status: Archived (was: Fixed)

Sign in to add a comment