diff --git a/config/graphic b/config/graphic index 2cce84534a..4af039f6e4 100644 --- a/config/graphic +++ b/config/graphic @@ -11,82 +11,96 @@ else fi get_graphicdrivers() { + + # set defaults + GALLIUM_DRIVERS="" + DRI_DRIVERS="" + XORG_DRIVERS="" + LLVM_SUPPORT="no" + COMPOSITE_SUPPORT="no" + VDPAU_SUPPORT="no" + VAAPI_SUPPORT="no" + if [ "$GRAPHIC_DRIVERS" = "all" ]; then GRAPHIC_DRIVERS="i915 i965 r200 r300 r600 radeonsi nvidia nvidia-legacy vmware virtio vc4" fi - for drv in $GRAPHIC_DRIVERS; do - if [ "$drv" = "i915" ]; then - DRI_DRIVERS="$DRI_DRIVERS,i915" - XORG_DRIVERS="$XORG_DRIVERS intel" - COMPOSITE_SUPPORT="yes" - VAAPI_SUPPORT="yes" - fi + if listcontains "$GRAPHIC_DRIVERS" "i915"; then + DRI_DRIVERS="$DRI_DRIVERS,i915" + XORG_DRIVERS="$XORG_DRIVERS intel" + COMPOSITE_SUPPORT="yes" + VAAPI_SUPPORT="yes" + fi - if [ "$drv" = "i965" ]; then - DRI_DRIVERS="$DRI_DRIVERS,i965" - XORG_DRIVERS="$XORG_DRIVERS intel" - COMPOSITE_SUPPORT="yes" - VAAPI_SUPPORT="yes" - fi + if listcontains "$GRAPHIC_DRIVERS" "i965"; then + DRI_DRIVERS="$DRI_DRIVERS,i965" + XORG_DRIVERS="$XORG_DRIVERS intel" + COMPOSITE_SUPPORT="yes" + VAAPI_SUPPORT="yes" + fi - if [ "$drv" = "nvidia" ]; then - XORG_DRIVERS="$XORG_DRIVERS nvidia" - VDPAU_SUPPORT="yes" - fi + if listcontains "$GRAPHIC_DRIVERS" "nvidia"; then + XORG_DRIVERS="$XORG_DRIVERS nvidia" + VDPAU_SUPPORT="yes" + fi - if [ "$drv" = "nvidia-legacy" ]; then - XORG_DRIVERS="$XORG_DRIVERS nvidia-legacy" - VDPAU_SUPPORT="yes" - fi + if listcontains "$GRAPHIC_DRIVERS" "nvidia-legacy"; then + XORG_DRIVERS="$XORG_DRIVERS nvidia-legacy" + VDPAU_SUPPORT="yes" + fi - if [ "$drv" = "r200" ]; then - DRI_DRIVERS="$DRI_DRIVERS,r200" - XORG_DRIVERS="$XORG_DRIVERS ati" - COMPOSITE_SUPPORT="yes" - fi + if listcontains "$GRAPHIC_DRIVERS" "r200"; then + DRI_DRIVERS="$DRI_DRIVERS,r200" + XORG_DRIVERS="$XORG_DRIVERS ati" + COMPOSITE_SUPPORT="yes" + fi - if [ "$drv" = "r300" ]; then - GALLIUM_DRIVERS="$GALLIUM_DRIVERS,r300" - XORG_DRIVERS="$XORG_DRIVERS ati" - LLVM_SUPPORT="yes" - COMPOSITE_SUPPORT="yes" - VDPAU_SUPPORT="yes" - fi + if listcontains "$GRAPHIC_DRIVERS" "r300"; then + GALLIUM_DRIVERS="$GALLIUM_DRIVERS,r300" + XORG_DRIVERS="$XORG_DRIVERS ati" + LLVM_SUPPORT="yes" + COMPOSITE_SUPPORT="yes" + VDPAU_SUPPORT="yes" + fi - if [ "$drv" = "r600" ]; then - GALLIUM_DRIVERS="$GALLIUM_DRIVERS,r600" - XORG_DRIVERS="$XORG_DRIVERS ati" - LLVM_SUPPORT="yes" - COMPOSITE_SUPPORT="yes" - VDPAU_SUPPORT="yes" - VAAPI_SUPPORT="yes" - fi + if listcontains "$GRAPHIC_DRIVERS" "r600"; then + GALLIUM_DRIVERS="$GALLIUM_DRIVERS,r600" + XORG_DRIVERS="$XORG_DRIVERS ati" + LLVM_SUPPORT="yes" + COMPOSITE_SUPPORT="yes" + VDPAU_SUPPORT="yes" + VAAPI_SUPPORT="yes" + fi - if [ "$drv" = "radeonsi" ]; then - GALLIUM_DRIVERS="$GALLIUM_DRIVERS,radeonsi" - XORG_DRIVERS="$XORG_DRIVERS ati amdgpu" - LLVM_SUPPORT="yes" - COMPOSITE_SUPPORT="yes" - VDPAU_SUPPORT="yes" - VAAPI_SUPPORT="yes" - fi + if listcontains "$GRAPHIC_DRIVERS" "radeonsi"; then + GALLIUM_DRIVERS="$GALLIUM_DRIVERS,radeonsi" + XORG_DRIVERS="$XORG_DRIVERS ati amdgpu" + LLVM_SUPPORT="yes" + COMPOSITE_SUPPORT="yes" + VDPAU_SUPPORT="yes" + VAAPI_SUPPORT="yes" + fi - if [ "$drv" = "vmware" ]; then - GALLIUM_DRIVERS="$GALLIUM_DRIVERS,svga" - XORG_DRIVERS="$XORG_DRIVERS vmware" - COMPOSITE_SUPPORT="yes" - fi + if listcontains "$GRAPHIC_DRIVERS" "vmware"; then + GALLIUM_DRIVERS="$GALLIUM_DRIVERS,svga" + XORG_DRIVERS="$XORG_DRIVERS vmware" + COMPOSITE_SUPPORT="yes" + fi - if [ "$drv" = "virtio" ]; then - GALLIUM_DRIVERS="$GALLIUM_DRIVERS,virgl" - fi + if listcontains "$GRAPHIC_DRIVERS" "virtio"; then + GALLIUM_DRIVERS="$GALLIUM_DRIVERS,virgl" + fi - if [ "$drv" = "vc4" ]; then - GALLIUM_DRIVERS="$GALLIUM_DRIVERS,vc4" - VAAPI_SUPPORT="no" - VDPAU_SUPPORT="no" - fi + if listcontains "$GRAPHIC_DRIVERS" "vc4"; then + GALLIUM_DRIVERS="$GALLIUM_DRIVERS,vc4" + VAAPI_SUPPORT="no" + VDPAU_SUPPORT="no" + fi - done + # remove leading comma if present + [[ $GALLIUM_DRIVERS =~ ^, ]] && GALLIUM_DRIVERS="${GALLIUM_DRIVERS:1}" + [[ $DRI_DRIVERS =~ ^, ]] && DRI_DRIVERS="${DRI_DRIVERS:1}" + + # remove duplicate entries + XORG_DRIVERS="$(echo $XORG_DRIVERS | xargs -n1 | sort -u | xargs)" }