Merge libdrm 2.4.79
This commit is contained in:
parent
02337797c5
commit
a632c2fb0a
@ -1,6 +1,6 @@
|
||||
# $OpenBSD: Makefile.bsd-wrapper,v 1.10 2017/02/05 05:46:41 jsg Exp $
|
||||
# $OpenBSD: Makefile.bsd-wrapper,v 1.11 2017/04/14 07:52:10 jsg Exp $
|
||||
|
||||
SHARED_LIBS= drm 7.4 drm_radeon 4.0 drm_intel 5.4 \
|
||||
drm_amdgpu 1.2 drm_nouveau 3.0
|
||||
drm_amdgpu 1.3 drm_nouveau 3.0
|
||||
|
||||
.include <bsd.xorg.mk>
|
||||
|
@ -683,21 +683,37 @@ int amdgpu_bo_va_op(amdgpu_bo_handle bo,
|
||||
uint32_t ops)
|
||||
{
|
||||
amdgpu_device_handle dev = bo->dev;
|
||||
|
||||
size = ALIGN(size, getpagesize());
|
||||
|
||||
return amdgpu_bo_va_op_raw(dev, bo, offset, size, addr,
|
||||
AMDGPU_VM_PAGE_READABLE |
|
||||
AMDGPU_VM_PAGE_WRITEABLE |
|
||||
AMDGPU_VM_PAGE_EXECUTABLE, ops);
|
||||
}
|
||||
|
||||
int amdgpu_bo_va_op_raw(amdgpu_device_handle dev,
|
||||
amdgpu_bo_handle bo,
|
||||
uint64_t offset,
|
||||
uint64_t size,
|
||||
uint64_t addr,
|
||||
uint64_t flags,
|
||||
uint32_t ops)
|
||||
{
|
||||
struct drm_amdgpu_gem_va va;
|
||||
int r;
|
||||
|
||||
if (ops != AMDGPU_VA_OP_MAP && ops != AMDGPU_VA_OP_UNMAP)
|
||||
if (ops != AMDGPU_VA_OP_MAP && ops != AMDGPU_VA_OP_UNMAP &&
|
||||
ops != AMDGPU_VA_OP_REPLACE && ops != AMDGPU_VA_OP_CLEAR)
|
||||
return -EINVAL;
|
||||
|
||||
memset(&va, 0, sizeof(va));
|
||||
va.handle = bo->handle;
|
||||
va.handle = bo ? bo->handle : 0;
|
||||
va.operation = ops;
|
||||
va.flags = AMDGPU_VM_PAGE_READABLE |
|
||||
AMDGPU_VM_PAGE_WRITEABLE |
|
||||
AMDGPU_VM_PAGE_EXECUTABLE;
|
||||
va.flags = flags;
|
||||
va.va_address = addr;
|
||||
va.offset_in_bo = offset;
|
||||
va.map_size = ALIGN(size, getpagesize());
|
||||
va.map_size = size;
|
||||
|
||||
r = drmCommandWriteRead(dev->fd, DRM_AMDGPU_GEM_VA, &va, sizeof(va));
|
||||
|
||||
|
388
lib/libdrm/configure
vendored
388
lib/libdrm/configure
vendored
@ -1,6 +1,6 @@
|
||||
#! /bin/sh
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.69 for libdrm 2.4.75.
|
||||
# Generated by GNU Autoconf 2.69 for libdrm 2.4.79.
|
||||
#
|
||||
# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=DRI>.
|
||||
#
|
||||
@ -591,8 +591,8 @@ MAKEFLAGS=
|
||||
# Identity of this package.
|
||||
PACKAGE_NAME='libdrm'
|
||||
PACKAGE_TARNAME='libdrm'
|
||||
PACKAGE_VERSION='2.4.75'
|
||||
PACKAGE_STRING='libdrm 2.4.75'
|
||||
PACKAGE_VERSION='2.4.79'
|
||||
PACKAGE_STRING='libdrm 2.4.79'
|
||||
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=DRI'
|
||||
PACKAGE_URL=''
|
||||
|
||||
@ -684,9 +684,6 @@ HAVE_LIBKMS_FALSE
|
||||
HAVE_LIBKMS_TRUE
|
||||
PCIACCESS_LIBS
|
||||
PCIACCESS_CFLAGS
|
||||
PKG_CONFIG_LIBDIR
|
||||
PKG_CONFIG_PATH
|
||||
PKG_CONFIG
|
||||
CLOCK_LIB
|
||||
pkgconfigdir
|
||||
PTHREADSTUBS_LIBS
|
||||
@ -786,6 +783,9 @@ XSLTPROC
|
||||
MAINT
|
||||
MAINTAINER_MODE_FALSE
|
||||
MAINTAINER_MODE_TRUE
|
||||
PKG_CONFIG_LIBDIR
|
||||
PKG_CONFIG_PATH
|
||||
PKG_CONFIG
|
||||
target_alias
|
||||
host_alias
|
||||
build_alias
|
||||
@ -862,6 +862,9 @@ with_kernel_source
|
||||
ac_precious_vars='build_alias
|
||||
host_alias
|
||||
target_alias
|
||||
PKG_CONFIG
|
||||
PKG_CONFIG_PATH
|
||||
PKG_CONFIG_LIBDIR
|
||||
XSLTPROC
|
||||
CC
|
||||
CFLAGS
|
||||
@ -869,9 +872,8 @@ LDFLAGS
|
||||
LIBS
|
||||
CPPFLAGS
|
||||
CPP
|
||||
PKG_CONFIG
|
||||
PKG_CONFIG_PATH
|
||||
PKG_CONFIG_LIBDIR
|
||||
PTHREADSTUBS_CFLAGS
|
||||
PTHREADSTUBS_LIBS
|
||||
PCIACCESS_CFLAGS
|
||||
PCIACCESS_LIBS
|
||||
CUNIT_CFLAGS
|
||||
@ -1420,7 +1422,7 @@ if test "$ac_init_help" = "long"; then
|
||||
# Omit some internal or obsolete options to make the list less imposing.
|
||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||
cat <<_ACEOF
|
||||
\`configure' configures libdrm 2.4.75 to adapt to many kinds of systems.
|
||||
\`configure' configures libdrm 2.4.79 to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
@ -1490,7 +1492,7 @@ fi
|
||||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of libdrm 2.4.75:";;
|
||||
short | recursive ) echo "Configuration of libdrm 2.4.79:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
@ -1561,6 +1563,11 @@ Optional Packages:
|
||||
--with-kernel-source specify path to linux kernel source
|
||||
|
||||
Some influential environment variables:
|
||||
PKG_CONFIG path to pkg-config utility
|
||||
PKG_CONFIG_PATH
|
||||
directories to add to pkg-config's search path
|
||||
PKG_CONFIG_LIBDIR
|
||||
path overriding pkg-config's built-in search path
|
||||
XSLTPROC Path to xsltproc command
|
||||
CC C compiler command
|
||||
CFLAGS C compiler flags
|
||||
@ -1570,11 +1577,10 @@ Some influential environment variables:
|
||||
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
|
||||
you have headers in a nonstandard directory <include dir>
|
||||
CPP C preprocessor
|
||||
PKG_CONFIG path to pkg-config utility
|
||||
PKG_CONFIG_PATH
|
||||
directories to add to pkg-config's search path
|
||||
PKG_CONFIG_LIBDIR
|
||||
path overriding pkg-config's built-in search path
|
||||
PTHREADSTUBS_CFLAGS
|
||||
C compiler flags for PTHREADSTUBS, overriding pkg-config
|
||||
PTHREADSTUBS_LIBS
|
||||
linker flags for PTHREADSTUBS, overriding pkg-config
|
||||
PCIACCESS_CFLAGS
|
||||
C compiler flags for PCIACCESS, overriding pkg-config
|
||||
PCIACCESS_LIBS
|
||||
@ -1656,7 +1662,7 @@ fi
|
||||
test -n "$ac_init_help" && exit $ac_status
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
libdrm configure 2.4.75
|
||||
libdrm configure 2.4.79
|
||||
generated by GNU Autoconf 2.69
|
||||
|
||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||
@ -2079,7 +2085,7 @@ cat >config.log <<_ACEOF
|
||||
This file contains any messages produced by compilers while
|
||||
running configure, to aid debugging if configure makes a mistake.
|
||||
|
||||
It was created by libdrm $as_me 2.4.75, which was
|
||||
It was created by libdrm $as_me 2.4.79, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
@ -2462,6 +2468,126 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
|
||||
if test -n "$ac_tool_prefix"; then
|
||||
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
|
||||
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||||
$as_echo_n "checking for $ac_word... " >&6; }
|
||||
if ${ac_cv_path_PKG_CONFIG+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
case $PKG_CONFIG in
|
||||
[\\/]* | ?:[\\/]*)
|
||||
ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
|
||||
;;
|
||||
*)
|
||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||
for as_dir in $PATH
|
||||
do
|
||||
IFS=$as_save_IFS
|
||||
test -z "$as_dir" && as_dir=.
|
||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||
ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
|
||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||
break 2
|
||||
fi
|
||||
done
|
||||
done
|
||||
IFS=$as_save_IFS
|
||||
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
PKG_CONFIG=$ac_cv_path_PKG_CONFIG
|
||||
if test -n "$PKG_CONFIG"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
|
||||
$as_echo "$PKG_CONFIG" >&6; }
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
fi
|
||||
|
||||
|
||||
fi
|
||||
if test -z "$ac_cv_path_PKG_CONFIG"; then
|
||||
ac_pt_PKG_CONFIG=$PKG_CONFIG
|
||||
# Extract the first word of "pkg-config", so it can be a program name with args.
|
||||
set dummy pkg-config; ac_word=$2
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||||
$as_echo_n "checking for $ac_word... " >&6; }
|
||||
if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
case $ac_pt_PKG_CONFIG in
|
||||
[\\/]* | ?:[\\/]*)
|
||||
ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
|
||||
;;
|
||||
*)
|
||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||
for as_dir in $PATH
|
||||
do
|
||||
IFS=$as_save_IFS
|
||||
test -z "$as_dir" && as_dir=.
|
||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||
ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
|
||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||
break 2
|
||||
fi
|
||||
done
|
||||
done
|
||||
IFS=$as_save_IFS
|
||||
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
|
||||
if test -n "$ac_pt_PKG_CONFIG"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
|
||||
$as_echo "$ac_pt_PKG_CONFIG" >&6; }
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
fi
|
||||
|
||||
if test "x$ac_pt_PKG_CONFIG" = x; then
|
||||
PKG_CONFIG=""
|
||||
else
|
||||
case $cross_compiling:$ac_tool_warned in
|
||||
yes:)
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
|
||||
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
|
||||
ac_tool_warned=yes ;;
|
||||
esac
|
||||
PKG_CONFIG=$ac_pt_PKG_CONFIG
|
||||
fi
|
||||
else
|
||||
PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
|
||||
fi
|
||||
|
||||
fi
|
||||
if test -n "$PKG_CONFIG"; then
|
||||
_pkg_min_version=0.9.0
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
|
||||
$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
|
||||
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||
$as_echo "yes" >&6; }
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
PKG_CONFIG=""
|
||||
fi
|
||||
fi
|
||||
|
||||
# Require xorg-macros minimum of 1.12 for XORG_WITH_XSLTPROC
|
||||
|
||||
|
||||
@ -3302,7 +3428,7 @@ fi
|
||||
|
||||
# Define the identity of the package.
|
||||
PACKAGE='libdrm'
|
||||
VERSION='2.4.75'
|
||||
VERSION='2.4.79'
|
||||
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
@ -12589,10 +12715,110 @@ CC="$lt_save_CC"
|
||||
|
||||
|
||||
|
||||
case "$host_os" in
|
||||
linux* | cygwin* | darwin* | solaris* | *-gnu* | gnu*)
|
||||
pthread_stubs_possible="no"
|
||||
;;
|
||||
* )
|
||||
pthread_stubs_possible="yes"
|
||||
;;
|
||||
esac
|
||||
|
||||
if test "x$pthread_stubs_possible" = xyes; then
|
||||
|
||||
pkg_failed=no
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PTHREADSTUBS" >&5
|
||||
$as_echo_n "checking for PTHREADSTUBS... " >&6; }
|
||||
|
||||
if test -n "$PTHREADSTUBS_CFLAGS"; then
|
||||
pkg_cv_PTHREADSTUBS_CFLAGS="$PTHREADSTUBS_CFLAGS"
|
||||
elif test -n "$PKG_CONFIG"; then
|
||||
if test -n "$PKG_CONFIG" && \
|
||||
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pthread-stubs >= 0.3\""; } >&5
|
||||
($PKG_CONFIG --exists --print-errors "pthread-stubs >= 0.3") 2>&5
|
||||
ac_status=$?
|
||||
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||
test $ac_status = 0; }; then
|
||||
pkg_cv_PTHREADSTUBS_CFLAGS=`$PKG_CONFIG --cflags "pthread-stubs >= 0.3" 2>/dev/null`
|
||||
test "x$?" != "x0" && pkg_failed=yes
|
||||
else
|
||||
pkg_failed=yes
|
||||
fi
|
||||
else
|
||||
pkg_failed=untried
|
||||
fi
|
||||
if test -n "$PTHREADSTUBS_LIBS"; then
|
||||
pkg_cv_PTHREADSTUBS_LIBS="$PTHREADSTUBS_LIBS"
|
||||
elif test -n "$PKG_CONFIG"; then
|
||||
if test -n "$PKG_CONFIG" && \
|
||||
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pthread-stubs >= 0.3\""; } >&5
|
||||
($PKG_CONFIG --exists --print-errors "pthread-stubs >= 0.3") 2>&5
|
||||
ac_status=$?
|
||||
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||
test $ac_status = 0; }; then
|
||||
pkg_cv_PTHREADSTUBS_LIBS=`$PKG_CONFIG --libs "pthread-stubs >= 0.3" 2>/dev/null`
|
||||
test "x$?" != "x0" && pkg_failed=yes
|
||||
else
|
||||
pkg_failed=yes
|
||||
fi
|
||||
else
|
||||
pkg_failed=untried
|
||||
fi
|
||||
|
||||
|
||||
|
||||
if test $pkg_failed = yes; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
|
||||
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
|
||||
_pkg_short_errors_supported=yes
|
||||
else
|
||||
_pkg_short_errors_supported=no
|
||||
fi
|
||||
if test $_pkg_short_errors_supported = yes; then
|
||||
PTHREADSTUBS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "pthread-stubs >= 0.3" 2>&1`
|
||||
else
|
||||
PTHREADSTUBS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "pthread-stubs >= 0.3" 2>&1`
|
||||
fi
|
||||
# Put the nasty error message in config.log where it belongs
|
||||
echo "$PTHREADSTUBS_PKG_ERRORS" >&5
|
||||
|
||||
as_fn_error $? "Package requirements (pthread-stubs >= 0.3) were not met:
|
||||
|
||||
$PTHREADSTUBS_PKG_ERRORS
|
||||
|
||||
Consider adjusting the PKG_CONFIG_PATH environment variable if you
|
||||
installed software in a non-standard prefix.
|
||||
|
||||
Alternatively, you may set the environment variables PTHREADSTUBS_CFLAGS
|
||||
and PTHREADSTUBS_LIBS to avoid the need to call pkg-config.
|
||||
See the pkg-config man page for more details." "$LINENO" 5
|
||||
elif test $pkg_failed = untried; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
||||
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
|
||||
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
|
||||
is in your PATH or set the PKG_CONFIG environment variable to the full
|
||||
path to pkg-config.
|
||||
|
||||
Alternatively, you may set the environment variables PTHREADSTUBS_CFLAGS
|
||||
and PTHREADSTUBS_LIBS to avoid the need to call pkg-config.
|
||||
See the pkg-config man page for more details.
|
||||
|
||||
To get pkg-config, see <http://pkg-config.freedesktop.org/>.
|
||||
See \`config.log' for more details" "$LINENO" 5; }
|
||||
else
|
||||
PTHREADSTUBS_CFLAGS=$pkg_cv_PTHREADSTUBS_CFLAGS
|
||||
PTHREADSTUBS_LIBS=$pkg_cv_PTHREADSTUBS_LIBS
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||
$as_echo "yes" >&6; }
|
||||
|
||||
fi
|
||||
|
||||
|
||||
fi
|
||||
|
||||
pkgconfigdir=${libdir}/pkgconfig
|
||||
|
||||
@ -13040,126 +13266,6 @@ fi
|
||||
|
||||
if test "x$INTEL" != "xno"; then
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
|
||||
if test -n "$ac_tool_prefix"; then
|
||||
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
|
||||
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||||
$as_echo_n "checking for $ac_word... " >&6; }
|
||||
if ${ac_cv_path_PKG_CONFIG+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
case $PKG_CONFIG in
|
||||
[\\/]* | ?:[\\/]*)
|
||||
ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
|
||||
;;
|
||||
*)
|
||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||
for as_dir in $PATH
|
||||
do
|
||||
IFS=$as_save_IFS
|
||||
test -z "$as_dir" && as_dir=.
|
||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||
ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
|
||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||
break 2
|
||||
fi
|
||||
done
|
||||
done
|
||||
IFS=$as_save_IFS
|
||||
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
PKG_CONFIG=$ac_cv_path_PKG_CONFIG
|
||||
if test -n "$PKG_CONFIG"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
|
||||
$as_echo "$PKG_CONFIG" >&6; }
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
fi
|
||||
|
||||
|
||||
fi
|
||||
if test -z "$ac_cv_path_PKG_CONFIG"; then
|
||||
ac_pt_PKG_CONFIG=$PKG_CONFIG
|
||||
# Extract the first word of "pkg-config", so it can be a program name with args.
|
||||
set dummy pkg-config; ac_word=$2
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||||
$as_echo_n "checking for $ac_word... " >&6; }
|
||||
if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
case $ac_pt_PKG_CONFIG in
|
||||
[\\/]* | ?:[\\/]*)
|
||||
ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
|
||||
;;
|
||||
*)
|
||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||
for as_dir in $PATH
|
||||
do
|
||||
IFS=$as_save_IFS
|
||||
test -z "$as_dir" && as_dir=.
|
||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||
ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
|
||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||
break 2
|
||||
fi
|
||||
done
|
||||
done
|
||||
IFS=$as_save_IFS
|
||||
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
|
||||
if test -n "$ac_pt_PKG_CONFIG"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
|
||||
$as_echo "$ac_pt_PKG_CONFIG" >&6; }
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
fi
|
||||
|
||||
if test "x$ac_pt_PKG_CONFIG" = x; then
|
||||
PKG_CONFIG=""
|
||||
else
|
||||
case $cross_compiling:$ac_tool_warned in
|
||||
yes:)
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
|
||||
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
|
||||
ac_tool_warned=yes ;;
|
||||
esac
|
||||
PKG_CONFIG=$ac_pt_PKG_CONFIG
|
||||
fi
|
||||
else
|
||||
PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
|
||||
fi
|
||||
|
||||
fi
|
||||
if test -n "$PKG_CONFIG"; then
|
||||
_pkg_min_version=0.9.0
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
|
||||
$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
|
||||
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||
$as_echo "yes" >&6; }
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
PKG_CONFIG=""
|
||||
fi
|
||||
fi
|
||||
|
||||
pkg_failed=no
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PCIACCESS" >&5
|
||||
$as_echo_n "checking for PCIACCESS... " >&6; }
|
||||
@ -14533,7 +14639,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||||
# report actual input values of CONFIG_FILES etc. instead of their
|
||||
# values after options handling.
|
||||
ac_log="
|
||||
This file was extended by libdrm $as_me 2.4.75, which was
|
||||
This file was extended by libdrm $as_me 2.4.79, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
@ -14599,7 +14705,7 @@ _ACEOF
|
||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||
ac_cs_version="\\
|
||||
libdrm config.status 2.4.75
|
||||
libdrm config.status 2.4.79
|
||||
configured by $0, generated by GNU Autoconf 2.69,
|
||||
with options \\"\$ac_cs_config\\"
|
||||
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
AC_PREREQ([2.63])
|
||||
AC_INIT([libdrm],
|
||||
[2.4.75],
|
||||
[2.4.79],
|
||||
[https://bugs.freedesktop.org/enter_bug.cgi?product=DRI],
|
||||
[libdrm])
|
||||
|
||||
@ -28,6 +28,7 @@ AC_CONFIG_HEADERS([config.h])
|
||||
AC_CONFIG_SRCDIR([Makefile.am])
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
AC_CONFIG_AUX_DIR([build-aux])
|
||||
PKG_PROG_PKG_CONFIG
|
||||
|
||||
# Require xorg-macros minimum of 1.12 for XORG_WITH_XSLTPROC
|
||||
m4_ifndef([XORG_MACROS_VERSION],
|
||||
@ -60,10 +61,22 @@ AC_CHECK_HEADERS([sys/sysctl.h sys/select.h])
|
||||
LT_PREREQ([2.2])
|
||||
LT_INIT([disable-static])
|
||||
|
||||
dnl pthread-stubs is mandatory on BSD platforms, due to the nature of the
|
||||
dnl project. Even then there's a notable issue as described in the project README
|
||||
case "$host_os" in
|
||||
linux* | cygwin* | darwin* | solaris* | *-gnu* | gnu*)
|
||||
pthread_stubs_possible="no"
|
||||
;;
|
||||
* )
|
||||
pthread_stubs_possible="yes"
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
AC_SUBST(PTHREADSTUBS_CFLAGS)
|
||||
AC_SUBST(PTHREADSTUBS_LIBS)
|
||||
if test "x$pthread_stubs_possible" = xyes; then
|
||||
PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs >= 0.3)
|
||||
AC_SUBST(PTHREADSTUBS_CFLAGS)
|
||||
AC_SUBST(PTHREADSTUBS_LIBS)
|
||||
fi
|
||||
|
||||
pkgconfigdir=${libdir}/pkgconfig
|
||||
AC_SUBST(pkgconfigdir)
|
||||
|
@ -357,6 +357,7 @@ AM_CFLAGS = \
|
||||
$(WARN_CFLAGS) \
|
||||
-I$(top_srcdir) \
|
||||
$(PTHREADSTUBS_CFLAGS) \
|
||||
$(VALGRIND_CFLAGS) \
|
||||
-I$(top_srcdir)/include/drm
|
||||
|
||||
libdrm_freedreno_la_LTLIBRARIES = libdrm_freedreno.la
|
||||
|
@ -641,6 +641,7 @@ struct drm_gem_open {
|
||||
#define DRM_CAP_CURSOR_HEIGHT 0x9
|
||||
#define DRM_CAP_ADDFB2_MODIFIERS 0x10
|
||||
#define DRM_CAP_PAGE_FLIP_TARGET 0x11
|
||||
#define DRM_CAP_CRTC_IN_VBLANK_EVENT 0x12
|
||||
|
||||
/** DRM_IOCTL_GET_CAP ioctl argument type */
|
||||
struct drm_get_cap {
|
||||
@ -845,7 +846,7 @@ struct drm_event_vblank {
|
||||
__u32 tv_sec;
|
||||
__u32 tv_usec;
|
||||
__u32 sequence;
|
||||
__u32 reserved;
|
||||
__u32 crtc_id; /* 0 on older kernels that do not support this */
|
||||
};
|
||||
|
||||
/* typedef area */
|
||||
|
@ -271,20 +271,6 @@ struct _drm_intel_bo_gem {
|
||||
*/
|
||||
bool is_userptr;
|
||||
|
||||
/**
|
||||
* Boolean of whether this buffer can be placed in the full 48-bit
|
||||
* address range on gen8+.
|
||||
*
|
||||
* By default, buffers will be keep in a 32-bit range, unless this
|
||||
* flag is explicitly set.
|
||||
*/
|
||||
bool use_48b_address_range;
|
||||
|
||||
/**
|
||||
* Whether this buffer is softpinned at offset specified by the user
|
||||
*/
|
||||
bool is_softpin;
|
||||
|
||||
/**
|
||||
* Size in bytes of this buffer and its relocation descendents.
|
||||
*
|
||||
@ -440,7 +426,7 @@ drm_intel_gem_dump_validation_list(drm_intel_bufmgr_gem *bufmgr_gem)
|
||||
|
||||
if (bo_gem->relocs == NULL && bo_gem->softpin_target == NULL) {
|
||||
DBG("%2d: %d %s(%s)\n", i, bo_gem->gem_handle,
|
||||
bo_gem->is_softpin ? "*" : "",
|
||||
bo_gem->kflags & EXEC_OBJECT_PINNED ? "*" : "",
|
||||
bo_gem->name);
|
||||
continue;
|
||||
}
|
||||
@ -454,7 +440,7 @@ drm_intel_gem_dump_validation_list(drm_intel_bufmgr_gem *bufmgr_gem)
|
||||
"%d (%s)@0x%08x %08x + 0x%08x\n",
|
||||
i,
|
||||
bo_gem->gem_handle,
|
||||
bo_gem->is_softpin ? "*" : "",
|
||||
bo_gem->kflags & EXEC_OBJECT_PINNED ? "*" : "",
|
||||
bo_gem->name,
|
||||
upper_32_bits(bo_gem->relocs[j].offset),
|
||||
lower_32_bits(bo_gem->relocs[j].offset),
|
||||
@ -473,7 +459,7 @@ drm_intel_gem_dump_validation_list(drm_intel_bufmgr_gem *bufmgr_gem)
|
||||
"%d *(%s)@0x%08x %08x\n",
|
||||
i,
|
||||
bo_gem->gem_handle,
|
||||
bo_gem->is_softpin ? "*" : "",
|
||||
bo_gem->kflags & EXEC_OBJECT_PINNED ? "*" : "",
|
||||
bo_gem->name,
|
||||
target_gem->gem_handle,
|
||||
target_gem->name,
|
||||
@ -545,14 +531,11 @@ drm_intel_add_validate_buffer2(drm_intel_bo *bo, int need_fence)
|
||||
drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *)bo->bufmgr;
|
||||
drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *)bo;
|
||||
int index;
|
||||
int flags = 0;
|
||||
unsigned long flags;
|
||||
|
||||
flags = 0;
|
||||
if (need_fence)
|
||||
flags |= EXEC_OBJECT_NEEDS_FENCE;
|
||||
if (bo_gem->use_48b_address_range)
|
||||
flags |= EXEC_OBJECT_SUPPORTS_48B_ADDRESS;
|
||||
if (bo_gem->is_softpin)
|
||||
flags |= EXEC_OBJECT_PINNED;
|
||||
|
||||
if (bo_gem->validate_index != -1) {
|
||||
bufmgr_gem->exec2_objects[bo_gem->validate_index].flags |= flags;
|
||||
@ -583,7 +566,7 @@ drm_intel_add_validate_buffer2(drm_intel_bo *bo, int need_fence)
|
||||
bufmgr_gem->exec2_objects[index].relocs_ptr = (uintptr_t)bo_gem->relocs;
|
||||
bufmgr_gem->exec2_objects[index].alignment = bo->align;
|
||||
bufmgr_gem->exec2_objects[index].offset = bo->offset64;
|
||||
bufmgr_gem->exec2_objects[index].flags = flags | bo_gem->kflags;
|
||||
bufmgr_gem->exec2_objects[index].flags = bo_gem->kflags | flags;
|
||||
bufmgr_gem->exec2_objects[index].rsvd1 = 0;
|
||||
bufmgr_gem->exec2_objects[index].rsvd2 = 0;
|
||||
bufmgr_gem->exec_bos[index] = bo;
|
||||
@ -836,6 +819,10 @@ retry:
|
||||
}
|
||||
|
||||
bo_gem->gem_handle = create.handle;
|
||||
HASH_ADD(handle_hh, bufmgr_gem->handle_table,
|
||||
gem_handle, sizeof(bo_gem->gem_handle),
|
||||
bo_gem);
|
||||
|
||||
bo_gem->bo.handle = bo_gem->gem_handle;
|
||||
bo_gem->bo.bufmgr = bufmgr;
|
||||
bo_gem->bo.align = alignment;
|
||||
@ -848,10 +835,6 @@ retry:
|
||||
tiling_mode,
|
||||
stride))
|
||||
goto err_free;
|
||||
|
||||
HASH_ADD(handle_hh, bufmgr_gem->handle_table,
|
||||
gem_handle, sizeof(bo_gem->gem_handle),
|
||||
bo_gem);
|
||||
}
|
||||
|
||||
bo_gem->name = name;
|
||||
@ -861,7 +844,6 @@ retry:
|
||||
bo_gem->used_as_reloc_target = false;
|
||||
bo_gem->has_error = false;
|
||||
bo_gem->reusable = true;
|
||||
bo_gem->use_48b_address_range = false;
|
||||
|
||||
drm_intel_bo_gem_set_in_aperture_size(bufmgr_gem, bo_gem, alignment);
|
||||
pthread_mutex_unlock(&bufmgr_gem->lock);
|
||||
@ -1020,7 +1002,6 @@ drm_intel_gem_bo_alloc_userptr(drm_intel_bufmgr *bufmgr,
|
||||
bo_gem->used_as_reloc_target = false;
|
||||
bo_gem->has_error = false;
|
||||
bo_gem->reusable = false;
|
||||
bo_gem->use_48b_address_range = false;
|
||||
|
||||
drm_intel_bo_gem_set_in_aperture_size(bufmgr_gem, bo_gem, 0);
|
||||
pthread_mutex_unlock(&bufmgr_gem->lock);
|
||||
@ -1168,7 +1149,6 @@ drm_intel_bo_gem_create_from_name(drm_intel_bufmgr *bufmgr,
|
||||
bo_gem->bo.handle = open_arg.handle;
|
||||
bo_gem->global_name = handle;
|
||||
bo_gem->reusable = false;
|
||||
bo_gem->use_48b_address_range = false;
|
||||
|
||||
HASH_ADD(handle_hh, bufmgr_gem->handle_table,
|
||||
gem_handle, sizeof(bo_gem->gem_handle), bo_gem);
|
||||
@ -1415,8 +1395,6 @@ drm_intel_gem_bo_unreference_final(drm_intel_bo *bo, time_t time)
|
||||
bo_gem->name = NULL;
|
||||
bo_gem->validate_index = -1;
|
||||
|
||||
bo_gem->kflags = 0;
|
||||
|
||||
DRMLISTADDTAIL(&bo_gem->head, &bucket->head);
|
||||
} else {
|
||||
drm_intel_gem_bo_free(bo);
|
||||
@ -2060,7 +2038,11 @@ static void
|
||||
drm_intel_gem_bo_use_48b_address_range(drm_intel_bo *bo, uint32_t enable)
|
||||
{
|
||||
drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo;
|
||||
bo_gem->use_48b_address_range = enable;
|
||||
|
||||
if (enable)
|
||||
bo_gem->kflags |= EXEC_OBJECT_SUPPORTS_48B_ADDRESS;
|
||||
else
|
||||
bo_gem->kflags &= ~EXEC_OBJECT_SUPPORTS_48B_ADDRESS;
|
||||
}
|
||||
|
||||
static int
|
||||
@ -2077,7 +2059,7 @@ drm_intel_gem_bo_add_softpin_target(drm_intel_bo *bo, drm_intel_bo *target_bo)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
if (!target_bo_gem->is_softpin)
|
||||
if (!(target_bo_gem->kflags & EXEC_OBJECT_PINNED))
|
||||
return -EINVAL;
|
||||
if (target_bo_gem == bo_gem)
|
||||
return -EINVAL;
|
||||
@ -2109,7 +2091,7 @@ drm_intel_gem_bo_emit_reloc(drm_intel_bo *bo, uint32_t offset,
|
||||
drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *)bo->bufmgr;
|
||||
drm_intel_bo_gem *target_bo_gem = (drm_intel_bo_gem *)target_bo;
|
||||
|
||||
if (target_bo_gem->is_softpin)
|
||||
if (target_bo_gem->kflags & EXEC_OBJECT_PINNED)
|
||||
return drm_intel_gem_bo_add_softpin_target(bo, target_bo);
|
||||
else
|
||||
return do_bo_emit_reloc(bo, offset, target_bo, target_offset,
|
||||
@ -2297,7 +2279,7 @@ drm_intel_update_buffer_offsets2 (drm_intel_bufmgr_gem *bufmgr_gem)
|
||||
/* If we're seeing softpinned object here it means that the kernel
|
||||
* has relocated our object... Indicating a programming error
|
||||
*/
|
||||
assert(!bo_gem->is_softpin);
|
||||
assert(!(bo_gem->kflags & EXEC_OBJECT_PINNED));
|
||||
DBG("BO %d (%s) migrated: 0x%08x %08x -> 0x%08x %08x\n",
|
||||
bo_gem->gem_handle, bo_gem->name,
|
||||
upper_32_bits(bo->offset64),
|
||||
@ -2657,9 +2639,10 @@ drm_intel_gem_bo_set_softpin_offset(drm_intel_bo *bo, uint64_t offset)
|
||||
{
|
||||
drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo;
|
||||
|
||||
bo_gem->is_softpin = true;
|
||||
bo->offset64 = offset;
|
||||
bo->offset = offset;
|
||||
bo_gem->kflags |= EXEC_OBJECT_PINNED;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -2723,7 +2706,6 @@ drm_intel_bo_gem_create_from_prime(drm_intel_bufmgr *bufmgr, int prime_fd, int s
|
||||
bo_gem->used_as_reloc_target = false;
|
||||
bo_gem->has_error = false;
|
||||
bo_gem->reusable = false;
|
||||
bo_gem->use_48b_address_range = false;
|
||||
|
||||
memclear(get_tiling);
|
||||
get_tiling.handle = bo_gem->gem_handle;
|
||||
|
@ -3899,7 +3899,7 @@ drm_intel_decode(struct drm_intel_decode *ctx)
|
||||
int ret;
|
||||
unsigned int index = 0;
|
||||
uint32_t devid;
|
||||
int size = ctx->base_count * 4;
|
||||
int size;
|
||||
void *temp;
|
||||
|
||||
if (!ctx)
|
||||
@ -3909,6 +3909,7 @@ drm_intel_decode(struct drm_intel_decode *ctx)
|
||||
* the batchbuffer. This lets us avoid a bunch of length
|
||||
* checking in statically sized packets.
|
||||
*/
|
||||
size = ctx->base_count * 4;
|
||||
temp = malloc(size + 4096);
|
||||
memcpy(temp, ctx->base_data, size);
|
||||
memset((char *)temp + size, 0xd0, 4096);
|
||||
|
@ -89,7 +89,7 @@ am_etnaviv_cmd_stream_test_OBJECTS = \
|
||||
etnaviv_cmd_stream_test.$(OBJEXT)
|
||||
etnaviv_cmd_stream_test_OBJECTS = \
|
||||
$(am_etnaviv_cmd_stream_test_OBJECTS)
|
||||
etnaviv_cmd_stream_test_DEPENDENCIES = \
|
||||
etnaviv_cmd_stream_test_DEPENDENCIES = $(top_builddir)/libdrm.la \
|
||||
$(top_builddir)/etnaviv/libdrm_etnaviv.la
|
||||
AM_V_P = $(am__v_P_@AM_V@)
|
||||
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
|
||||
@ -305,6 +305,7 @@ etnaviv_2d_test_SOURCES = \
|
||||
write_bmp.h
|
||||
|
||||
etnaviv_cmd_stream_test_LDADD = \
|
||||
$(top_builddir)/libdrm.la \
|
||||
$(top_builddir)/etnaviv/libdrm_etnaviv.la
|
||||
|
||||
etnaviv_cmd_stream_test_SOURCES = \
|
||||
|
@ -1019,8 +1019,10 @@ char *drmGetBusid(int fd)
|
||||
if (drmIoctl(fd, DRM_IOCTL_GET_UNIQUE, &u))
|
||||
return NULL;
|
||||
u.unique = drmMalloc(u.unique_len + 1);
|
||||
if (drmIoctl(fd, DRM_IOCTL_GET_UNIQUE, &u))
|
||||
if (drmIoctl(fd, DRM_IOCTL_GET_UNIQUE, &u)) {
|
||||
drmFree(u.unique);
|
||||
return NULL;
|
||||
}
|
||||
u.unique[u.unique_len] = '\0';
|
||||
|
||||
return u.unique;
|
||||
@ -1548,14 +1550,12 @@ drm_context_t *drmGetReservedContextList(int fd, int *count)
|
||||
|
||||
if (!(list = drmMalloc(res.count * sizeof(*list))))
|
||||
return NULL;
|
||||
if (!(retval = drmMalloc(res.count * sizeof(*retval)))) {
|
||||
drmFree(list);
|
||||
return NULL;
|
||||
}
|
||||
if (!(retval = drmMalloc(res.count * sizeof(*retval))))
|
||||
goto err_free_list;
|
||||
|
||||
res.contexts = list;
|
||||
if (drmIoctl(fd, DRM_IOCTL_RES_CTX, &res))
|
||||
return NULL;
|
||||
goto err_free_context;
|
||||
|
||||
for (i = 0; i < res.count; i++)
|
||||
retval[i] = list[i].handle;
|
||||
@ -1563,6 +1563,12 @@ drm_context_t *drmGetReservedContextList(int fd, int *count)
|
||||
|
||||
*count = res.count;
|
||||
return retval;
|
||||
|
||||
err_free_list:
|
||||
drmFree(list);
|
||||
err_free_context:
|
||||
drmFree(retval);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void drmFreeReservedContextList(drm_context_t *pt)
|
||||
|
@ -728,7 +728,7 @@ extern void drmMsg(const char *format, ...) DRM_PRINTFLIKE(1, 2);
|
||||
extern int drmSetMaster(int fd);
|
||||
extern int drmDropMaster(int fd);
|
||||
|
||||
#define DRM_EVENT_CONTEXT_VERSION 2
|
||||
#define DRM_EVENT_CONTEXT_VERSION 3
|
||||
|
||||
typedef struct _drmEventContext {
|
||||
|
||||
@ -748,6 +748,13 @@ typedef struct _drmEventContext {
|
||||
unsigned int tv_usec,
|
||||
void *user_data);
|
||||
|
||||
void (*page_flip_handler2)(int fd,
|
||||
unsigned int sequence,
|
||||
unsigned int tv_sec,
|
||||
unsigned int tv_usec,
|
||||
unsigned int crtc_id,
|
||||
void *user_data);
|
||||
|
||||
} drmEventContext, *drmEventContextPtr;
|
||||
|
||||
extern int drmHandleEvent(int fd, drmEventContextPtr evctx);
|
||||
|
@ -889,6 +889,7 @@ int drmHandleEvent(int fd, drmEventContextPtr evctx)
|
||||
int len, i;
|
||||
struct drm_event *e;
|
||||
struct drm_event_vblank *vblank;
|
||||
void *user_data;
|
||||
|
||||
/* The DRM read semantics guarantees that we always get only
|
||||
* complete events. */
|
||||
@ -915,15 +916,22 @@ int drmHandleEvent(int fd, drmEventContextPtr evctx)
|
||||
U642VOID (vblank->user_data));
|
||||
break;
|
||||
case DRM_EVENT_FLIP_COMPLETE:
|
||||
if (evctx->version < 2 ||
|
||||
evctx->page_flip_handler == NULL)
|
||||
break;
|
||||
vblank = (struct drm_event_vblank *) e;
|
||||
evctx->page_flip_handler(fd,
|
||||
vblank->sequence,
|
||||
vblank->tv_sec,
|
||||
vblank->tv_usec,
|
||||
U642VOID (vblank->user_data));
|
||||
user_data = U642VOID (vblank->user_data);
|
||||
|
||||
if (evctx->version >= 3 && evctx->page_flip_handler2)
|
||||
evctx->page_flip_handler2(fd,
|
||||
vblank->sequence,
|
||||
vblank->tv_sec,
|
||||
vblank->tv_usec,
|
||||
vblank->crtc_id,
|
||||
user_data);
|
||||
else if (evctx->version >= 2 && evctx->page_flip_handler)
|
||||
evctx->page_flip_handler(fd,
|
||||
vblank->sequence,
|
||||
vblank->tv_sec,
|
||||
vblank->tv_usec,
|
||||
user_data);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user