path: root/src/gallium/targets/vdpau
AgeCommit message (Collapse)AuthorFilesLines
32 hoursmeson: Support d3d12 as a video-supporting driverSil Vilerino1-2/+3
Reviewed-by: Jesse Natalie <> Part-of: <>
32 hoursgallium/vl: Add software winsys and offscreen winsysSil Vilerino1-4/+9
Acked-by: Jesse Natalie <> Part-of: <>
2020-08-17ac/llvm: handle static/shared llvm init separatelyPierre-Eric Pelloux-Prayer1-1/+1
Having a single init function works as expected for shared llvm, but when using a static llvm only one llvm will get initialized. This commit introduces 2 separate init function: - shared llvm = single public init function - static llvm = one init function for each module using llvm Fixes: 50d20dc055d ("ac/llvm: export ac_init_llvm_once in targets") Closes: Reviewed-by: Bas Nieuwenhuizen <> Reviewed-by: Marek Olšák <> Part-of: <>
2020-07-10ac/llvm: export ac_init_llvm_once in targetsPierre-Eric Pelloux-Prayer1-0/+1
If a program like mpv uses both (because --vo=gpu) and (because --hwdec=vaapi) then LLVM will be inialized twice. The commit exports the ac_init_llvm_once so there's only one instance of the function. See also 18b12bf5335 ("targets: export radeon winsys_create functions to silence LLVM warning") which implemented this workaround initially. Closes: Reviewed-by: Marek Olšák <> Acked-by: Samuel Pitoiset <> Part-of: <>
2020-06-22driconf: drop now unused translation facilityEric Engestrom1-1/+1
Signed-off-by: Eric Engestrom <> Part-of: <>
2020-06-01meson: use gnu_symbol_visibility argumentDylan Baker1-2/+1
This uses a meson builtin to handle -fvisibility=hidden. This is nice because we don't need to track which languages are used, if C++ is suddenly added meson just does the right thing. Acked-by: Matt Turner <> Reviewed-by: Eric Engestrom <> Part-of: <>
2020-03-28meson: inline `inc_common`Eric Engestrom1-1/+1
Let's make it clear what includes are being added everywhere, so that they can be cleaned up. Signed-off-by: Eric Engestrom <> Reviewed-by: Marek Olšák <> Part-of: <>
2019-12-27meson: simplify invocationEric Engestrom1-2/+1
Note: `find_program()` needs a shebang on scripts. Signed-off-by: Eric Engestrom <> Reviewed-by: Dylan Baker <>
2019-10-31targets/vdpau: replace xmlpool_options_h with idep_xmlconfig_headersEric Engestrom1-2/+2
Signed-off-by: Eric Engestrom <> Acked-by: Dylan Baker <>
2019-08-03meson: drop unused dep_{thread,dl}Eric Engestrom1-1/+1
Unused as of last commit. Signed-off-by: Eric Engestrom <> Acked-by: Eric Anholt <> Tested-by: Vinson Lee <>
2019-08-03meson: replace libmesa_util with idep_mesautilEric Engestrom1-2/+3
This automates the include_directories and dependencies tracking so that all users of libmesa_util don't need to add them manually. Next commit will remove the ones that were only added for that reason. Signed-off-by: Eric Engestrom <> Acked-by: Eric Anholt <> Tested-by: Vinson Lee <>
2019-04-25meson: Force '.so' extension for DRI driversJon Turney1-0/+1
DRI driver loadable modules are always installed with with names ending with '.so', irrespective of platform. Force the name the loadable module is built with to match, so doesn't spin trying to remove non-existent symlinks. Fixes: c77acc3c "meson: remove meson-created megadrivers symlinks"
2019-04-15Delete autotoolsDylan Baker1-132/+0
Acked-by: Kenneth Graunke <> Reviewed-by: Eric Anholt <> Reviewed-by: Eric Engestrom <> Acked-by: Marek Olšák <> Acked-by: Jason Ekstrand <> Acked-by: Bas Nieuwenhuizen <> Acked-by: Matt Turner <>
2019-04-01meson: strip rpath from megadriversEric Engestrom1-0/+3
More specifically, use the library file that has been post-processed by Meson when creating the hardlinks. Bugs: Fixes: 3218056e0eb375eeda47 "meson: Build i965 and dri stack" Signed-off-by: Eric Engestrom <> Reviewed-by: Dylan Baker <>
2019-02-24meson: ensure that xmlpool_options.h is generated for gallium targets that ↵David Shao1-1/+1
need it Fixes: 68076b87474e7959c161 "meson: build gallium vdpau state tracker" Fixes: 22a817af8a89eb3c762f "meson: build gallium xvmc state tracker" Fixes: 5a785d51a6d68ec676ce "meson: build gallium va state tracker" Fixes: 0ba909f0f111824223bc "meson: build gallium xa state tracker" Fixes: 1d36dc674d528b93bec3 "meson: build gallium omx state tracker" Reviewed-by: Eric Engestrom <>
2019-01-25meson/vdpau: add missing soversionEric Engestrom1-1/+2
This mirrors what autotools does in src/gallium/state_trackers/vdpau/ and src/gallium/targets/vdpau/ VDPAU_MAJOR = 1 VDPAU_MINOR = 0 libvdpau_gallium_la_LDFLAGS = -version-number $(VDPAU_MAJOR):$(VDPAU_MINOR) Reported-by: Igor Gnatenko <> Fixes: 68076b87474e7959c161 "meson: build gallium vdpau state tracker" Signed-off-by: Eric Engestrom <> Reviewed-by: Emil Velikov <> Reviewed-by: Dylan Baker <>
2019-01-08autotools: Remove tegra vdpau driverDylan Baker1-2/+0
This has never functioned and probably wont ever function, due to the way gallium media state trackers are architected and the tegra video decoder is architected. Cc: Thierry Reding <> Reviewed-by: Ilia Mirkin <> Fixes: 1755f608f5201e0a23f00cc3ea1b01edd07eb6ef ("tegra: Initial support")
2018-08-23meson: Run the install script with Python 3Mathieu Bridon1-0/+1
The script was being run directly as an executable, and it has a Python 2 shebang. Reviewed-by: Eric Engestrom <> Reviewed-by: Emil Velikov <>
2018-03-09tegra: Initial supportThierry Reding1-0/+2
Tegra K1 and later use a GPU that can be driven by the Nouveau driver. But the GPU is a pure render node and has no display engine, hence the scanout needs to happen on the Tegra display hardware. The GPU and the display engine each have a separate DRM device node exposed by the kernel. To make the setup appear as a single device, this driver instantiates a Nouveau screen with each instance of a Tegra screen and forwards GPU requests to the Nouveau screen. For purposes of scanout it will import buffers created on the GPU into the display driver. Handles that userspace requests are those of the display driver so that they can be used to create framebuffers. This has been tested with some GBM test programs, as well as kmscube and weston. All of those run without modifications, but I'm sure there is a lot that can be improved. Some fixes contributed by Hector Martin <>. Changes in v2: - duplicate file descriptor in winsys to avoid potential issues - require nouveau when building the tegra driver - check for nouveau driver name on render node - remove unneeded dependency on libdrm_tegra - remove zombie references to libudev - add missing headers to C_SOURCES variable - drop unneeded tegra/ prefix for includes - open device files with O_CLOEXEC - update copyrights Changes in v3: - properly unwrap resources in ->resource_copy_region() - support vertex buffers passed by user pointer - allocate custom stream and const uploader - silence error message on pre-Tegra124 - support X without explicit PRIME Changes in v4: - ship Meson build files in distribution tarball - drop duplicate driver_tegra dependency Reviewed-by: Emil Velikov <> Acked-by: Emil Velikov <> Tested-by: Andre Heider <> Reviewed-by: Dmitry Osipenko <> Reviewed-by: Dylan Baker <> Signed-off-by: Thierry Reding <>
2018-02-15meson: fix vdpau target linkageDylan Baker1-3/+5
The VDPAU state tracker needs to be linked with whole-archive (autotools does this). Because we are linking the whole archive we alos need to link with libswdri and libswkmsdri if those have been enabled. v4: - Always add libswdri and libswkmsdri to link_with list Fixes: 68076b87474e7959 ("meson: build gallium vdpau state tracker") Signed-off-by: Dylan Baker <> Acked-by: Eric Engestrom <> Reviewed-by: Emil Velikov <>
2018-02-15meson: link dri3 xcb libs into vlwinsys instead of into each targetDylan Baker1-2/+1
This makes the dependencies easier to manage, since each media target doesn't need to worry about linking to half a dozen libraries. Fixes: b1b65397d0c4978e3 ("meson: Build gallium auxiliary") Signed-off-by: Dylan Baker <> Acked-by: Eric Engestrom <> Reviewed-by: Emil Velikov <>
2018-01-19autotools: include meson build files in tarballDylan Baker1-1/+2
This adds the, meson_options.txt, and a few scripts that are used exclusively by the meson build. v2: - Remove accidentally included changes needed to test make dist with LLVM > 3.9 Signed-off-by: Dylan Baker <> Acked-by: Eric Engestrom <> Reviewed-by: Emil Velikov <>
2017-12-04meson: build gallium vdpau state trackerDylan Baker1-0/+71
Signed-off-by: Dylan Baker <> Reviewed-by: Eric Engestrom <>
2017-07-31gallium/targets: link against NIR when building radeonsiNicolai Hähnle1-0/+1
Reviewed-by: Marek Olšák <>
2017-05-19configure: check once for DRI3 dependenciesEmil Velikov1-0/+1
Currently we are having the XCB_DRI3 dependencies duplicated, partially. Just do a once-off check and add all of the respective CFLAGS/LIBS where needed. As a nice side effect this helps us solve a couple of FIXMEs. DRI3 is not a thing w/o X11 so disable it in such cases. Cc: Signed-off-by: Emil Velikov <> Reviewed-by: Eric Engestrom <>
2017-03-08gallium/targets: rework the empty targets removalEmil Velikov1-2/+1
Earlier commit added extra tracking and we've attempted to remove the vdpau/other folder if empty. V2 of said commit dropped the pipe to /dev/null and the explicit "true" override. Sadly both of those are needed since there's no guarantee that the folder will be empty before we [mesa] make install. Since we're bringing those two back, there's no need to track if we've installed anything, and simply do "rm -d foo/ &>/dev/null || true" Tested-by: Andy Furniss <> Reported-by: Andy Furniss <> Fixes: 1cd4fde053 ("gallium/targets: don't leave an empty target directory(ies)") Signed-off-by: Emil Velikov <>
2017-03-04gallium/targets: don't leave an empty target directory(ies)Emil Velikov1-1/+3
Some drivers do not support certain targets - for example nouveau doesn't do VAAPI, while freedreno doesn't do of the video backends. As such if we enter vdpau when building freedreno/ilo/etc, a vdpau/ folder will be created, empty library will be build and almost immediately removed. Thus keeping an empty vdpau/ folder around. There are two ways to fix this. * add substantial tracking in configure/makefiles so that we never end up in targets/vdpau Downsides: Error prone, as the configure checks and the 'include gallium/drivers/foo/' can easily get out of sync. * remove the folder, if empty, alongside the empty library. Downsides: In the latter case vdpau/ might be empty before the mesa build has started, yet we'll remove it either way. This patch implements the latter option, as the downside isn't that significant, plus the patch is way shorter ;-) v2: use has_drivers to track since TARGET_DRIVERS can contain space, hence neither string comparison nor -n/-z works correctly. Gentoo Bugzilla: Signed-off-by: Emil Velikov <> Reviewed-by: Matt Turner <> Move llvm_set_environment_variables higher.Tobias Droste1-1/+1
This moves the function to get the LLVM environment variables higher in the file. It still needs to be below the "--enable-opencl" because it uses $enable_opencl. It can be called without condition now as it only throws errors if openCL is enabled. v5: HAVE_MESA_LLVM is only used for gallium. Rename it to HAVE_GALLIUM_LLVM. In order to only link LLVM when it is needed, HAVE_GALLIUM_LLVM is only set if "$enable-gallium-llvm" is yes. Signed-off-by: Tobias Droste <> Reviewed-by: Emil Velikov <>
2015-11-25targets: use the non-inline sw helpersEmil Velikov1-0/+1
Previously (with the inline ones) things were embedded into the pipe-loader, which means that we cannot control/select what we want in each target. That also meant that at runtime we ended up with the empty sw_screen_create() as the GALLIUM_SOFTPIPE/LLVMPIPE were not set. v2: Cover all the targets, not just dri. Cc: "11.1" <> Cc: Ilia Mirkin <> Cc: Edward O'Callaghan <> Signed-off-by: Emil Velikov <> Tested-by: Oded Gabbay <> Tested-by: Nick Sarnie <>
2015-11-21{auxiliary,targets}/vl: use static/dynamic pipe-loaderEmil Velikov2-3/+6
Analogous to previous commit. v2: rebase on top of vl_winsys_drm.c addition Signed-off-by: Emil Velikov <> Acked-by: Rob Clark <>
2015-11-21gallium: rename libpipe_loader to libpipe_loader_dynamicEmil Velikov1-1/+1
With the next commits we'll introduce a 'static' version, which will essentially load the statically linked-in pipe-drivers, rather than the standalone pipe-$ ones. Signed-off-by: Emil Velikov <> Acked-by: Rob Clark <>
2015-11-21pipe-loader: rework the sw backendEmil Velikov1-2/+1
Move the winsys into the pipe-target, similar to the hardware pipe-driver. v2: - move int declaration outside of loop (Brian) - fold the teardown into a goto + separate function. Signed-off-by: Emil Velikov <> Acked-by: Rob Clark <>
2015-08-14winsys/amdgpu: add a new winsys for the new kernel driverMarek Olšák1-0/+1
v2: - lots of changes according to Emil Velikov's comments - implemented radeon_winsys::read_registers v3: - a lot of new work, many of them adapt to libdrm interface changes Squashed patches: winsys/amdgpu: implement radeon_winsys context support winsys/amdgpu: add reference counting for contexts winsys/amdgpu: add userptr support winsys/amdgpu: allocate IBs like normal buffers winsys/amdgpu: add IBs to the buffer list, adapt to interface changes winsys/amdgpu: don't use KMS handles as reloc hash keys winsys/amdgpu: sync buffer accesses to different rings winsys/amdgpu: use dependencies instead of waiting for last fence v2 gallium/radeon: unify buffer_wait and buffer_is_busy in the winsys interface (amdgpu part) winsys/amdgpu: track fences per ring and be thread-safe winsys/amdgpu: simplify waiting on a variable in amdgpu_fence_wait gallium/radeon: allow the winsys to choose the IB size (amdgpu part) winsys/amdgpu: switch to new amdgpu_cs_query_fence_status interface winsys/amdgpu: handle fence and dependencies merge winsys/amdgpu follow libdrm change to move user fence into UMD winsys/amdgpu: use amdgpu_bo_va_op for va map/unmap v2 winsys/amdgpu: use the new tiling flags winsys/amdgpu: switch to new GTT_USWC definition winsys/amdgpu: expose amdgpu_cs_query_reset_state to drivers winsys/amdgpu: fix valgrind warnings winsys/amdgpu: don't use VRAM with APUs that don't have much of it winsys/amdgpu: require LLVM 3.6.1 for VI because of bug fixes there winsys/amdgpu: remove amdgpu_winsys::num_cpus winsys/amdgpu: align BO size to page size winsys/amdgpu: reduce BO cache timeout winsys/amdgpu: remove useless flushing and waiting in amdgpu_bo_set_tiling winsys/amdgpu: use amdgpu_device_handle as a unique device ID instead of fd winsys/amdgpu: use safer access to amdgpu_fence_wait::signalled winsys/amdgpu: allow maximum IB size of 4 MB winsys/amdgpu: add ip_instance into amdgpu_fence gallium/radeon: add RING_COMPUTE instead of RADEON_FLUSH_COMPUTE winsys/amdgpu: set the ring type at CS initilization winsys/amdgpu: query the GART page size from the kernel winsys/amdgpu: correctly wait for shared buffers to become idle winsys/amdgpu: set the amdgpu_cs_fence structure only once at fence creation winsys/amdgpu: add a specific error message for cs_submit -> -ENOMEM winsys/amdgpu: check num_active_ioctls before calling amdgpu_bo_wait_for_idle winsys/amdgpu: clear user fence BO after allocating it winsys/amdgpu: fix user fences winsys/amdgpu: make amdgpu_winsys_create public winsys/amdgpu: remove thread offloading winsys/amdgpu: flatten the amdgpu_cs_context structure and simplify more v4: require libdrm 2.4.63
2015-07-13automake: remove empty GALLIUM_PIPE_LOADER_LIBSEmil Velikov1-2/+1
Cc: Rob Clark <> Signed-off-by: Emil Velikov <> Reviewed-by: Francisco Jerez <>
2015-02-12auxiliary/vl: bring back the VL code for the dri targetsEmil Velikov1-0/+1
With commit c642e87d9f4(auxiliary/vl: rework the build of the VL code) we split out the VL code into a separate static library that was meant to be used by the VL targets alone - va, vdpau, xvmc. The commit failed to consider the way we handle vdpau-gl interop and broke it. Bring back the functionality by keeping the vl <> vl_stub separation as requrested by Christian. v2: Update the omx target as well. Update mesa-stable email address. Bugzilla: Cc: "10.5" <> Signed-off-by: Emil Velikov <> Tested-by: Andy Furniss <>
2014-12-17mesa: Remove unnecessary -f from $(RM).Matt Turner1-1/+1
$(RM) includes -f.
2014-12-17targets/vdpau: Add uninstall hooks to handle megadriver hardlinks.Matt Turner1-0/+5
2014-12-17targets/vdpau: Add clean-local rule to remove .lib links.Matt Turner1-0/+6
2014-12-12gallium/targets: Add *.sym files to distribution.Matt Turner1-0/+3
And add d3dadapter9's extra dependency.
2014-11-26auxiliary/vl: rework the build of the VL codeEmil Velikov1-8/+3
Rather than shoving all the VL code for non-VL targets, increasing their size, just split it out and use it when needed. This gives us the side effect of building vl_winsys_dri.c once, dropping a few automake warnings, and reducing the size of the dri modules as below text data bss dec hex filename 5850573 187549 1977928 8016050 7a50b2 before/ 5508486 187100 391240 6086826 5ce0aa after/ The above data is for a nouveau + swrast + kms_swrast 'megadriver'. v2: Do not include the vl sources in the auxiliary library. v3: Rebase. Add nine. Cc: Christian König <> Signed-off-by: Emil Velikov <>
2014-11-26automake: rework VL dependency trackingEmil Velikov1-1/+3
Set a single VL_{CFLAG,LIBS} for xcb and friends, and let each target check for it's relevant library alone. Required as with follow up commits we'll build aux/vl into a separate module, which needs VL_CFLAGS Cleanup add a couple of explicit LIBDRM_LIBS linking, as aux/vl itself requires libdrm, despite that LIBDRM_{RADEON,NOUVEAU...} may provide it as well. v2: Rebase. Make sure st/xvmc programs work. Cc: Christian König <> Signed-off-by: Emil Velikov <>
2014-11-16targets: bundle all files in the tarballEmil Velikov1-0/+4
We were missing a few files - The version scripts - Android & scons build scripts - A few headers. Signed-off-by: Emil Velikov <>
2014-10-28r300g/vdpau: enable againDavid Heidelberger1-0/+1
Signed-off-by: David Heidelberger <> Signed-off-by: Marek Olšák <>
2014-09-24targets/vl: don't forget to set GALLIUM_STATIC_TARGETSEmil Velikov1-1/+1
git rebase failure while dropping out a patch that reworks the way we build aux/vl. Signed-off-by: Emil Velikov <>
2014-09-24targets: drop the old MEGADRIVERS & STATIC_TARGET... variablesEmil Velikov1-11/+5
No longer used/needed as of last commit. Signed-off-by: Emil Velikov <> Acked-by: Matt Turner <>
2014-09-24gallium/r300,r600,radeonsi: add automake target 'templates'Emil Velikov1-32/+4
Rather than duplicating the libdeps, extra define... all over the targets, define them only once and use when applicable. Signed-off-by: Emil Velikov <> Acked-by: Christian König <> Acked-by: Matt Turner <>
2014-09-24gallium/nouveau: add automake target 'template'Emil Velikov1-12/+9
Rather than duplicating the libdeps, extra define... all over the targets, define them only once and use when applicable. Signed-off-by: Emil Velikov <> Acked-by: Matt Turner <>
2014-09-24targets/pipe-loader: drop unused authenticationEmil Velikov1-1/+0
The dri, vdpau, omx, xvmc and gbm targets don't need any authentication even the VL ones never used it. Either the respective loader or the library itself (vl) is doing its auth prior to calling create_screen() Signed-off-by: Emil Velikov <> Acked-by: Matt Turner <>
2014-09-24targets/vl: fix hard-links when building shared pipe-driversEmil Velikov1-2/+2
Make sure that MEGADRIVERS is set in order to create the hardlinks. The variable name is not the most appropriate and will be sorted out in upcoming commits. Signed-off-by: Emil Velikov <> Acked-by: Matt Turner <>
2014-09-05automake: check if the linker supports --dynamic-listJonathan Gray1-1/+5
As older versions of gnu ld did not support --dynamic-list check to see if it is supported before using it. Non gnu linkers such the apple one likely lack this option as well. Fixes the build on OpenBSD which has binutils 2.15 and 2.17. The --dynamic-list option seems to been have introduced sometime after binutils 2.17 was released as it is present in 2.18. Cc: Signed-off-by: Jonathan Gray <> Reviewed-by: Emil Velikov <>