Bug 253741 - graphics/mesa-devel: disabling OPTIONS_MULTI_DRI is not effective
Summary: graphics/mesa-devel: disabling OPTIONS_MULTI_DRI is not effective
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Jan Beich
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-02-21 12:06 UTC by Ghost
Modified: 2021-02-26 15:45 UTC (History)
0 users

See Also:


Attachments
compressed full poudriere logs (66.11 KB, application/octet-stream)
2021-02-21 12:06 UTC, Ghost
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Ghost 2021-02-21 12:06:57 UTC
Created attachment 222698 [details]
compressed full poudriere logs

If one disables DRI drivers like this:
graphics_mesa-devel_UNSET+= DRI LLVM r600 radeonsi radv VAAPI

DRI driver i965 will be disabled as an option:
root@localhost:/usr/ports/graphics/mesa-devel # make -V DESELECTED_OPTIONS
DRI LLVM VAAPI VDPAU i965 r600 radeonsi radv

But generated MESON_ARGS will still build i965:
root@localhost:/usr/ports/graphics/mesa-devel # make -V MESON_ARGS
-Dgallium-omx=disabled  -Dgallium-opencl=disabled  -Dgallium-xa=disabled  -Dgallium-xvmc=disabled  -Dplatforms=x11,wayland  --native-file=binary_alias.ini   -Ddri-drivers=i965 -Dgallium-drivers=iris -Dvulkan-drivers=intel -Dglvnd=false -Dlibunwind=enabled -Dllvm=disabled -Dgallium-va=disabled -Dgallium-vdpau=disabled -Dvulkan-device-select-layer=true -Dvulkan-overlay-layer=true -Dzstd=enabled

Poudriere logs are attached.

Additional info: when I tried to add conditionals for enabled options to Makefile with <bsd.port.options.mk> or <bsd.port.pre.mk>, I could affect {SELECTED,DELESECTED}_OPTIONS with IMPLIES, but selected options weren't enabled in make config.
Comment 1 commit-hook freebsd_committer freebsd_triage 2021-02-26 14:49:09 UTC
A commit references this bug:

Author: jbeich
Date: Fri Feb 26 14:48:26 UTC 2021
New revision: 566607
URL: https://svnweb.freebsd.org/changeset/ports/566607

Log:
  graphics/mesa-devel: stop nesting options after r537515

  Adding _SINGLE/_MULTI in _DEFINE allows to disable all child options
  if the parent option is disabled. However, if only parent is disabled
  then the behavior is undefined.

  $ __MAKE_CONF= PORT_DBDIR=/var/empty make WITHOUT=DRI -V MESON_ARGS:M\*dri-driver\*
  -Ddri-drivers=i965

  PR:		253741
  Reported by:	Evgeniy Khramtsov

Changes:
  head/graphics/mesa-devel/Makefile
Comment 2 commit-hook freebsd_committer freebsd_triage 2021-02-26 15:45:18 UTC
A commit references this bug:

Author: jbeich
Date: Fri Feb 26 15:45:00 UTC 2021
New revision: 566610
URL: https://svnweb.freebsd.org/changeset/ports/566610

Log:
  graphics/mesa-devel: split VKLAYERS from VULKAN after r566607

  VULKAN was overloaded to include Vulkan drivers and layers. However,
  building layers requires at least one Vulkan driver.

  $ make showconfig
  [...]
       VULKAN=on: Vulkan layers: device-select,overlay
  [...]
  ====> Vulkan layers: device-select,overlay
       anv=on: Haswell and newer
       radv=on: Southern Islands and newer (implies LLVM)

  $ make clean all WIHOUT="anv radv"
  [...]
  ===> Checking for items in pkg-plist which are not in STAGEDIR
  Error: Missing: bin/mesa-overlay-control.py
  Error: Missing: lib/libVkLayer_MESA_device_select.so
  Error: Missing: lib/libVkLayer_MESA_overlay.so
  Error: Missing: share/vulkan/explicit_layer.d/VkLayer_MESA_overlay.json
  Error: Missing: share/vulkan/implicit_layer.d/VkLayer_MESA_device_select.json
  ===> Error: Plist issues found.
  *** Error code 1

  PR:		253741

Changes:
  head/graphics/mesa-devel/Makefile
  head/graphics/mesa-devel/files/libmap.conf.in
  head/graphics/mesa-devel/pkg-plist