Add experimental libva/vaapi support
This commit is contained in:
		
							parent
							
								
									fe577307d2
								
							
						
					
					
						commit
						9cfcc851a2
					
				
					 4 changed files with 162 additions and 0 deletions
				
			
		
							
								
								
									
										19
									
								
								scripts.d/50-vaapi/00-xorg-macros.sh
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										19
									
								
								scripts.d/50-vaapi/00-xorg-macros.sh
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
XORGMACROS_REPO="https://gitlab.freedesktop.org/xorg/util/macros.git"
 | 
			
		||||
XORGMACROS_COMMIT="b8766308d2f78bc572abe5198007cf7aeec9b761"
 | 
			
		||||
 | 
			
		||||
ffbuild_enabled() {
 | 
			
		||||
    [[ $TARGET != linux* ]] && return -1
 | 
			
		||||
    return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ffbuild_dockerbuild() {
 | 
			
		||||
    git-mini-clone "$XORGMACROS_REPO" "$XORGMACROS_COMMIT" xorg-macros
 | 
			
		||||
    cd xorg-macros
 | 
			
		||||
 | 
			
		||||
    autoreconf -i
 | 
			
		||||
    ./configure --prefix="/usr"
 | 
			
		||||
    make -j"$(nproc)"
 | 
			
		||||
    make install
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										37
									
								
								scripts.d/50-vaapi/30-libpciaccess.sh
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										37
									
								
								scripts.d/50-vaapi/30-libpciaccess.sh
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,37 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
LIBPCIACCESS_REPO="https://gitlab.freedesktop.org/xorg/lib/libpciaccess.git"
 | 
			
		||||
LIBPCIACCESS_COMMIT="9c01fdd7c02d8b9b5003e659ebca0b3643bd47c4"
 | 
			
		||||
 | 
			
		||||
ffbuild_enabled() {
 | 
			
		||||
    [[ $TARGET != linux* ]] && return -1
 | 
			
		||||
    return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ffbuild_dockerbuild() {
 | 
			
		||||
    git-mini-clone "$LIBPCIACCESS_REPO" "$LIBPCIACCESS_COMMIT" libpciaccess
 | 
			
		||||
    cd libpciaccess
 | 
			
		||||
 | 
			
		||||
    autoreconf -fi
 | 
			
		||||
 | 
			
		||||
    local myconf=(
 | 
			
		||||
        --prefix="$FFBUILD_PREFIX"
 | 
			
		||||
        --disable-shared
 | 
			
		||||
        --enable-static
 | 
			
		||||
        --with-pic
 | 
			
		||||
        --with-zlib
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    if [[ $TARGET == linux* ]]; then
 | 
			
		||||
        myconf+=(
 | 
			
		||||
            --host="$FFBUILD_TOOLCHAIN"
 | 
			
		||||
        )
 | 
			
		||||
    else
 | 
			
		||||
        echo "Unknown target"
 | 
			
		||||
        return -1
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    ./configure "${myconf[@]}"
 | 
			
		||||
    make -j$(nproc)
 | 
			
		||||
    make install
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										54
									
								
								scripts.d/50-vaapi/40-libdrm.sh
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										54
									
								
								scripts.d/50-vaapi/40-libdrm.sh
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,54 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
LIBDRM_REPO="https://gitlab.freedesktop.org/mesa/drm.git"
 | 
			
		||||
LIBDRM_COMMIT="9cef5dee3cd817728c83aeb3c2010c1954e4c402"
 | 
			
		||||
 | 
			
		||||
ffbuild_enabled() {
 | 
			
		||||
    [[ $TARGET != linux* ]] && return -1
 | 
			
		||||
    return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ffbuild_dockerbuild() {
 | 
			
		||||
    git-mini-clone "$LIBDRM_REPO" "$LIBDRM_COMMIT" libdrm
 | 
			
		||||
    cd libdrm
 | 
			
		||||
 | 
			
		||||
    mkdir build && cd build
 | 
			
		||||
 | 
			
		||||
    local myconf=(
 | 
			
		||||
        --prefix="$FFBUILD_PREFIX"
 | 
			
		||||
        -Ddefault_library=static
 | 
			
		||||
        -Dlibkms=false
 | 
			
		||||
        -Dudev=false
 | 
			
		||||
        -Dcairo-tests=false
 | 
			
		||||
        -Dvalgrind=false
 | 
			
		||||
        -Dexynos=false
 | 
			
		||||
        -Dfreedreno=false
 | 
			
		||||
        -Domap=false
 | 
			
		||||
        -Detnaviv=false
 | 
			
		||||
        -Dintel=true
 | 
			
		||||
        -Dnouveau=true
 | 
			
		||||
        -Dradeon=true
 | 
			
		||||
        -Damdgpu=true
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    if [[ $TARGET == linux* ]]; then
 | 
			
		||||
        myconf+=(
 | 
			
		||||
            --cross-file=/cross.meson
 | 
			
		||||
        )
 | 
			
		||||
    else
 | 
			
		||||
        echo "Unknown target"
 | 
			
		||||
        return -1
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    meson "${myconf[@]}" ..
 | 
			
		||||
    ninja -j$(nproc)
 | 
			
		||||
    ninja install
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ffbuild_configure() {
 | 
			
		||||
    echo --enable-libdrm
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ffbuild_unconfigure() {
 | 
			
		||||
    echo --disable-libdrm
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										52
									
								
								scripts.d/50-vaapi/50-libva.sh
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										52
									
								
								scripts.d/50-vaapi/50-libva.sh
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,52 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
LIBVA_REPO="https://github.com/intel/libva.git"
 | 
			
		||||
LIBVA_COMMIT="6e86b4fb4dafa123b1e31821f61da88f10cfbe91"
 | 
			
		||||
 | 
			
		||||
ffbuild_enabled() {
 | 
			
		||||
    [[ $TARGET != linux* ]] && return -1
 | 
			
		||||
    return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ffbuild_dockerbuild() {
 | 
			
		||||
    git-mini-clone "$LIBVA_REPO" "$LIBVA_COMMIT" libva
 | 
			
		||||
    cd libva
 | 
			
		||||
 | 
			
		||||
    autoreconf -i
 | 
			
		||||
 | 
			
		||||
    local myconf=(
 | 
			
		||||
        --prefix="$FFBUILD_PREFIX"
 | 
			
		||||
        --disable-shared
 | 
			
		||||
        --enable-static
 | 
			
		||||
        --with-pic
 | 
			
		||||
        --disable-docs
 | 
			
		||||
        --enable-drm
 | 
			
		||||
        --disable-x11
 | 
			
		||||
        --disable-glx
 | 
			
		||||
        --disable-wayland
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    if [[ $TARGET == linux64 ]]; then
 | 
			
		||||
        myconf+=(
 | 
			
		||||
            --host="$FFBUILD_TOOLCHAIN"
 | 
			
		||||
            --with-drivers-path="/usr/lib/x86_64-linux-gnu/dri"
 | 
			
		||||
        )
 | 
			
		||||
    else
 | 
			
		||||
        echo "Unknown target"
 | 
			
		||||
        return -1
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    ./configure "${myconf[@]}"
 | 
			
		||||
    make -j$(nproc)
 | 
			
		||||
    make install
 | 
			
		||||
 | 
			
		||||
    echo "Libs.private: -ldl" >> "$FFBUILD_PREFIX"/lib/pkgconfig/libva.pc
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ffbuild_configure() {
 | 
			
		||||
    echo --enable-vaapi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ffbuild_unconfigure() {
 | 
			
		||||
    echo --disable-vaapi
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue