Add Vulkan loader to CrOS |
|||||||||
Issue descriptionNew ebuild is needed for the Vulkan ICD loader. Upstream source is https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers. Precedent in other distros: - Arch Linux: https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/vulkan-loader-layers - Fedora (ajax's copr): http://copr-dist-git.fedorainfracloud.org/cgit/ajax/vulkan/vulkan.git/tree/vulkan.spec
,
Sep 6 2016
Patch under review:
media-libs/vulkan-loader: New package
https://chromium-review.googlesource.com/#/c/380915
,
Sep 6 2016
,
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
,
Sep 13 2016
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.
,
Sep 13 2016
,
Feb 6 2017
,
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
,
Feb 16 2017
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>.
,
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
,
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
,
Feb 21 2017
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>
,
Apr 17 2017
,
May 30 2017
,
Aug 1 2017
,
Oct 14 2017
|
|||||||||
►
Sign in to add a comment |
|||||||||
Comment 1 by chadversary@chromium.org
, Aug 31 2016