Re: [gentoo-dev] Suggestions for simplifying VIDEO_CARDS situation

2018-06-16 Thread Kent Fredric
On Sat, 16 Jun 2018 21:40:10 -0700
Matt Turner  wrote:

> Hello,
> 
> VIDEO_CARDS is an annoying mess. We used to have radeon, intel, and
> some others in media-libs/mesa's VIDEO_CARDS. radeon and intel
> corresponded to disparate sets of drivers -- VIDEO_CARDS=radeon has
> meant classic r100, r200, r300, and r600 drivers and gallium r600 and
> radeonsi drivers. VIDEO_CARDS=intel has meant classic i915 and i965
> drivers as well as gallium i915.
> 
> I added more-specific VIDEO_CARDS for those separate drivers a few
> years ago, so that users could set VIDEO_CARDS="radeon radeonsi" and
> only get the one radeonsi driver they actually wanted while still
> enabling support for x11-libs/libdrm's radeon support code which is
> used by most of those radeon drivers. Of course some users want this
> control and others don't care at all.
> 
> The confusion comes in with "classic" DRI drivers vs Gallium drivers.
> The Gallium abstraction layer allows a hardware driver to handle
> multiple APIs -- OpenGL, D3D9, OpenCL, video decode APIs, etc. For
> instance, users try to build the classic i965 driver (there is no
> Gallium driver for this hardware) with USE=opencl or USE=vaapi and
> don't understand why they didn't get what they wanted (or REQUIRED_USE
> prevents them from doing so).
> 
> Should of Mesa's USE flags, d3d9, llvm, lm_sensors, opencl, openmax,
> unwind, vaapi, vdpau, xa, and xvmc are Gallium-only. Should I make a
> USE_EXPAND for Gallium-only options to attempt to avoid confusion?
> Another point of confusion: not all Gallium drivers support all of
> these features. For instance only the r600 and radeonsi drivers
> support OpenCL. How to best handle this?
> 
> It seems like at one extreme you build an extensive set of
> REQUIRED_USE conditions that force users to micromanage their USE
> flags, or you let them enable all sorts of impossible combinations and
> deal with the confused bug reports.

My simplified understanding of your problem is as follows:

- You have M video cards
- You have N possible features
- But not all M video cards support N features
- One user may want support for 2xM video cards concurrently

And the above combination produces an unmanageable mess.

Is it at all feasible to splice mesa into a main package
and a collection of video-card backends, where USE flags can
be defined card-specifically?

Failing that, I'd consider the possibility of a pkg_pretend phase
that prints a matrix of the video cards support is being built for,
showing the features from those selected that will be supported, for
example:

---

* mesa: not all features are available on all video cards, mesa will
  only build with following video card feature sets:

  nv   : opencl vaapi xvmc
  i965 :  xvmc

  If this is acceptable, please set MESA_MIXED_VIDEO_FEATURES=1 in
  your portage make.conf

---

and then die() when that's not 1.


This:
- gets around needing some obscene REQUIRED_USE mess
- still runs early prior to tree merge
- gives users the convenience they want, while also giving transparency
- gets around the whole "REQUIRED_USE is kinda useless because there's
  no way to document reasons behind various exclusions or suggest
  solution strategies" problem.


   


pgpTeZ8tbFxgk.pgp
Description: OpenPGP digital signature


[gentoo-dev] Suggestions for simplifying VIDEO_CARDS situation

2018-06-16 Thread Matt Turner
Hello,

VIDEO_CARDS is an annoying mess. We used to have radeon, intel, and
some others in media-libs/mesa's VIDEO_CARDS. radeon and intel
corresponded to disparate sets of drivers -- VIDEO_CARDS=radeon has
meant classic r100, r200, r300, and r600 drivers and gallium r600 and
radeonsi drivers. VIDEO_CARDS=intel has meant classic i915 and i965
drivers as well as gallium i915.

I added more-specific VIDEO_CARDS for those separate drivers a few
years ago, so that users could set VIDEO_CARDS="radeon radeonsi" and
only get the one radeonsi driver they actually wanted while still
enabling support for x11-libs/libdrm's radeon support code which is
used by most of those radeon drivers. Of course some users want this
control and others don't care at all.

The confusion comes in with "classic" DRI drivers vs Gallium drivers.
The Gallium abstraction layer allows a hardware driver to handle
multiple APIs -- OpenGL, D3D9, OpenCL, video decode APIs, etc. For
instance, users try to build the classic i965 driver (there is no
Gallium driver for this hardware) with USE=opencl or USE=vaapi and
don't understand why they didn't get what they wanted (or REQUIRED_USE
prevents them from doing so).

Should of Mesa's USE flags, d3d9, llvm, lm_sensors, opencl, openmax,
unwind, vaapi, vdpau, xa, and xvmc are Gallium-only. Should I make a
USE_EXPAND for Gallium-only options to attempt to avoid confusion?
Another point of confusion: not all Gallium drivers support all of
these features. For instance only the r600 and radeonsi drivers
support OpenCL. How to best handle this?

It seems like at one extreme you build an extensive set of
REQUIRED_USE conditions that force users to micromanage their USE
flags, or you let them enable all sorts of impossible combinations and
deal with the confused bug reports.

I would like to somehow get rid of the 'classic' and 'gallium' USE
flags entirely, but I'm not totally sure how. Maybe I can enable them
dependent on VIDEO_CARDS...

Suggestions welcome.



[gentoo-dev] Last rites: media-plugins/gst-plugins-schroedinger

2018-06-16 Thread Mart Raudsepp
# Mart Raudsepp  (16 Jun 2018)
# No upstream (website disappeared), no upstream plugin maintainer,
# and pretty much a fringe format anyway.
# Marked for removal in 30 days, bug #658194
media-plugins/gst-plugins-schroedinger


signature.asc
Description: This is a digitally signed message part