Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 710724 - virtual/opencl-2 pulls in dev-libs/libclc on unsupported systems
Summary: virtual/opencl-2 pulls in dev-libs/libclc on unsupported systems
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Gentoo X packagers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-02-24 21:36 UTC by Conrad Kostecki
Modified: 2020-02-28 12:03 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Conrad Kostecki gentoo-dev 2020-02-24 21:36:43 UTC
Hi!
Sorry, I don't know a better title for that.

Since dev-libs/beignet got removed by cdb150723eded0c5d2c8fbaaf3246ccb5b6690bc from virtual/opencl, I am now completly stuck for updates.

In order to satisfy opencl with 32-bit, dev-libs/beignet was pulled in.
Since this dependency is now gone, it falls back to 
>=media-libs/mesa-9.1.6[opencl,X(+),${MULTILIB_USEDEP}].

Unfortunately, you can't emerged that with intel, since it pulls in dev-libs/libclc, which depends on VIDEO_CARDS="-nvidia -r600 -radeonsi".

╰─➤  emerge -av mesa

These are the packages that would be merged, in order:

Calculating dependencies... done!

!!! The ebuild selected to satisfy "dev-libs/libclc" has unmet requirements.
- dev-libs/libclc-0.2.0_pre20191024::gentoo USE="" ABI_X86="(64)" VIDEO_CARDS="-nvidia -r600 -radeonsi"

  The following REQUIRED_USE flag constraints are unsatisfied:
    any-of ( video_cards_nvidia video_cards_r600 video_cards_radeonsi )

(dependency required by "media-libs/mesa-20.0.0::gentoo[gallium,opencl]" [ebuild])
(dependency required by "mesa" [argument])
Comment 1 Conrad Kostecki gentoo-dev 2020-02-24 21:43:16 UTC
@marecki, please have a look, since you changed that :-)
Comment 2 Larry the Git Cow gentoo-dev 2020-02-25 09:07:22 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4174f5eac4708cb8d7352e74f6490115dd954ca9

commit 4174f5eac4708cb8d7352e74f6490115dd954ca9
Author:     Marek Szuba <marecki@gentoo.org>
AuthorDate: 2020-02-25 09:03:58 +0000
Commit:     Marek Szuba <marecki@gentoo.org>
CommitDate: 2020-02-25 09:06:32 +0000

    virtual/opencl: pull in dev-libs/beignet again for now
    
    The fact that Beignet is the only Intel OpenCL provider supporting the
    32-bit x86 ABI causes problems when it is removed from virtual/opencl.
    Have to think of an exit strategy for once beignet has actually been
    removed, in the meantime just have virtual/opencl use it again.
    
    This reverts commit cdb150723eded0c5d2c8fbaaf3246ccb5b6690bc.
    
    Bug: https://bugs.gentoo.org/710724
    
    Signed-off-by: Marek Szuba <marecki@gentoo.org>

 virtual/opencl/opencl-2.ebuild | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
Comment 3 Matt Turner gentoo-dev 2020-02-28 01:50:35 UTC
Just use.mask opencl on x86? Can we get away with that?
Comment 4 Marek Szuba (RETIRED) archtester gentoo-dev 2020-02-28 09:19:09 UTC
Like I mentioned on IRC yesterday, this is indeed the way I feel tempted to proceed - we have already done the same with CUDA support and the vast majority of OpenCL providers we currently have no longer support ABI_X86_32 anyway. That said, the problem in this particular scenario is that virtual/opencl continues to use Clover (i.e. media-libs/mesa[opencl]) as the default OpenCL provider in spite of it not only supporting a fairly limited range of GPUs (which in itself would be harmless) but actually breaking things on some of them, as conikonst has observed.
Comment 5 Marek Szuba (RETIRED) archtester gentoo-dev 2020-02-28 11:40:30 UTC
Reverting the ticket at hand to the actual breakage, will handle Beignet separately later.
Comment 6 Larry the Git Cow gentoo-dev 2020-02-28 12:03:53 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4d3b73032bb7a22457d8cd762f4240305ef66111

commit 4d3b73032bb7a22457d8cd762f4240305ef66111
Author:     Marek Szuba <marecki@gentoo.org>
AuthorDate: 2020-02-28 11:45:43 +0000
Commit:     Marek Szuba <marecki@gentoo.org>
CommitDate: 2020-02-28 11:45:43 +0000

    virtual/opencl: Only pull in media-libs/mesa on supported GPUs
    
    virtual/opencl uses media-libs/mesa[opencl] as driver-independent
    fallback OpenCL provider. However, media-libs/mesa[opencl] depends
    on dev-libs/libclc - which at the time of me writing this only
    supports nvidia, r600 and radeonsi, and whose REQUIRED_USE clause
    requires at least one of the corresponding VIDEO_CARDS flags to be
    set. This effectively breaks the OpenCL dependency cycle for a lot of
    configurations, e.g. for VIDEO_CARDS="nouveau" systems.
    
    Only try to use Mesa as an OpenCL provider when VIDEO_CARDS includes a
    GPU supported by dev-libs/libclc.
    
    Note that this means there is now no fallback OpenCL provider for
    ABI_X86_32. Moreover, for ABI_X86_64 the fallback provider is now
    dev-util/intel-ocl-sdk, which almost certainly doesn't work on AMD CPUs
    - which however should be mostly harmless (the package should simply do
    nothing beyond satisfying virtual/opencl dependencies), especially given
    many OpenCL-aware applications ignore CPU-type devices anyway.
    
    Closes: https://bugs.gentoo.org/710724
    Signed-off-by: Marek Szuba <marecki@gentoo.org>

 virtual/opencl/opencl-2.ebuild | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)