Go to file
Pierre-Eric Pelloux-Prayer b9bf42d3e1 amdgpu: increase cpu_map_count storage size
Mesa expects to be able to map the same buffer, without unmapping it.
This leads to problem on long-running program.

On the other hand, libdrm uses cpu_map_count as a refcount and expects
its value to decrease so it can unmap buffers.

The previoulsy proprosed fix (https://patchwork.freedesktop.org/patch/258005/)
stopped increased the counter when it went past INT_MAX.

This commit instead proposes to use a larger type to store cpu_map_count.
The outcome is the same: long running apps will not crash, only the
implementation differs.

Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/1423
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2020-03-23 13:18:01 +01:00
.gitlab-ci gitlab-ci: add PowerPC build 2019-11-23 00:37:06 +00:00
amdgpu amdgpu: increase cpu_map_count storage size 2020-03-23 13:18:01 +01:00
android android: Fix 32-bit app crashing in 64-bit Android 2018-12-18 21:18:19 +01:00
data amdgpu: add new marketing names from 19.50 2020-02-01 12:12:19 -05:00
etnaviv etnaviv: convert to new symbols check 2019-11-11 22:57:14 +00:00
exynos exynos: convert to new symbols check 2019-11-11 22:57:14 +00:00
freedreno freedreno: convert to new symbols check 2019-11-11 22:57:14 +00:00
include/drm include/drm: sync up drm.h 2020-02-12 10:23:44 +11:00
intel intel: sync i915_pciids.h with kernel 2020-03-23 13:51:19 +02:00
libkms libkms: convert to new symbols check 2019-11-11 22:57:14 +00:00
man Revert "Revert "libdrm: remove autotools support"" 2019-10-18 18:05:45 +01:00
nouveau nouveau: convert to new symbols check 2019-11-11 22:57:14 +00:00
omap omap: convert to new symbols check 2019-11-11 22:57:14 +00:00
radeon radeon: convert to new symbols check 2019-11-11 22:57:14 +00:00
tegra tegra: convert to new symbols check 2019-11-11 22:57:14 +00:00
tests tests: Only copy con->modes[0] if it exists 2020-02-27 12:21:09 +01:00
vc4 Revert "Revert "libdrm: remove autotools support"" 2019-10-18 18:05:45 +01:00
.editorconfig Add meson build system 2018-01-12 09:40:48 -08:00
.gitignore add a minimal .gitignore back 2019-12-17 22:37:39 +00:00
.gitlab-ci.yml gitlab-ci: rename build folder to simply `build` 2019-12-17 22:29:11 +00:00
Android.common.mk meson: always define whether headers exist 2020-01-23 17:00:12 +00:00
Android.mk libdrm: Android.mk: Add minimal Android platform check 2019-04-25 10:55:02 +01:00
CONTRIBUTING.rst doc: Rename README&CONTRIBUTING to .rst 2018-10-17 17:17:19 +02:00
CleanSpec.mk tests: Split helpers into library 2015-12-18 17:43:40 +00:00
Makefile.sources libdrm: add msm drm uapi header 2018-08-23 08:48:45 -07:00
README.rst Revert "Revert "libdrm: remove autotools support"" 2019-10-18 18:05:45 +01:00
RELEASING RELEASING: update instructions to use meson instead of autotools 2019-10-14 15:57:26 +00:00
core-symbols.txt Add drmModeGetFB2 2020-02-12 10:23:44 +11:00
libdrm.pc.in Revert "Fix pkgconfig includes for /usr/include/drm" 2010-04-09 16:33:38 -04:00
libdrm_lists.h lists: add nicer+unsafe foreach, and list join macros 2012-04-14 02:47:04 +10:00
libdrm_macros.h libdrm: Use mmap64 instead of __mmap2 2019-04-25 10:55:13 +01:00
libsync.h add libsync.h helper 2016-11-05 10:16:46 -04:00
meson.build meson: always define whether headers exist 2020-01-23 17:00:12 +00:00
meson_options.txt Add meson build system 2018-01-12 09:40:48 -08:00
symbols-check.py meson: import Mesa's symbols check script 2019-11-11 22:57:14 +00:00
util_double_list.h list: fix an issue with android build using clang 2016-08-02 16:22:45 -04:00
util_math.h Fix build with -std=c11 2018-09-05 13:09:29 +01:00
xf86atomic.h xf86atomic: require CAS support in libatomic_ops 2019-12-06 21:57:12 +00:00
xf86drm.c xf86drm: fix subsystem type lookup for virtio mmio-based devices 2020-02-24 21:53:41 +00:00
xf86drm.h Add ARM support into xf86drm.h 2019-12-05 22:35:58 +01:00
xf86drmHash.c xf86drmHash: remove unused loop variable 2018-11-09 10:59:11 +00:00
xf86drmHash.h tests/hash: extract test out of xf86drmHash.c 2015-04-05 15:19:42 +01:00
xf86drmMode.c Add drmModeGetFB2 2020-02-12 10:23:44 +11:00
xf86drmMode.h Add DRM_MODE_CONNECTOR_WRITEBACK to xf86drmMode.h 2020-03-17 12:19:10 +00:00
xf86drmRandom.c libdrm: annotate public functions 2018-09-19 22:46:45 -07:00
xf86drmRandom.h tests/random: extract test out of xf86drmRandom.c 2015-04-05 15:33:33 +01:00
xf86drmSL.c libdrm: annotate public functions 2018-09-19 22:46:45 -07:00

README.rst

libdrm - userspace library for drm
----------------------------------

This is libdrm, a userspace library for accessing the DRM, direct rendering
manager, on Linux, BSD and other operating systems that support the ioctl
interface.
The library provides wrapper functions for the ioctls to avoid exposing the
kernel interface directly, and for chipsets with drm memory manager, support
for tracking relocations and buffers.
New functionality in the kernel DRM drivers typically requires a new libdrm,
but a new libdrm will always work with an older kernel.

libdrm is a low-level library, typically used by graphics drivers such as
the Mesa drivers, the X drivers, libva and similar projects.


Compiling
---------

To set up meson:

    meson builddir/

By default this will install into /usr/local, you can change your prefix
with --prefix=/usr (or `meson configure builddir/ -Dprefix=/usr` after 
the initial meson setup).

Then use ninja to build and install:

    ninja -C builddir/ install

If you are installing into a system location you will need to run install
separately, and as root.