/contrib/sdk/sources/Mesa/src/gallium/winsys/Makefile.am |
---|
0,0 → 1,69 |
# Copyright © 2013 Intel Corporation |
# |
# Permission is hereby granted, free of charge, to any person obtaining a |
# copy of this software and associated documentation files (the "Software"), |
# to deal in the Software without restriction, including without limitation |
# the rights to use, copy, modify, merge, publish, distribute, sublicense, |
# and/or sell copies of the Software, and to permit persons to whom the |
# Software is furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice (including the next |
# paragraph) shall be included in all copies or substantial portions of the |
# Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
# DEALINGS IN THE SOFTWARE. |
SUBDIRS = sw/null |
if NEED_WINSYS_XLIB |
SUBDIRS += sw/xlib |
endif |
if HAVE_DRI |
SUBDIRS += sw/dri |
endif |
if HAVE_EGL_PLATFORM_FBDEV |
SUBDIRS += sw/fbdev |
endif |
if HAVE_EGL_PLATFORM_WAYLAND |
SUBDIRS += sw/wayland |
endif |
if NEED_WINSYS_WRAPPER |
SUBDIRS += sw/wrapper |
endif |
if NEED_NONNULL_WINSYS |
if HAVE_GALLIUM_FREEDRENO |
SUBDIRS += freedreno/drm |
endif |
if HAVE_GALLIUM_I915 |
SUBDIRS += i915/sw i915/drm |
endif |
if HAVE_GALLIUM_ILO |
SUBDIRS += intel/drm |
endif |
if HAVE_GALLIUM_NOUVEAU |
SUBDIRS += nouveau/drm |
endif |
if NEED_RADEON_DRM_WINSYS |
SUBDIRS += radeon/drm |
endif |
if HAVE_GALLIUM_SVGA |
SUBDIRS += svga/drm |
endif |
endif |
/contrib/sdk/sources/Mesa/src/gallium/winsys/Makefile.in |
---|
0,0 → 1,813 |
# Makefile.in generated by automake 1.14 from Makefile.am. |
# @configure_input@ |
# Copyright (C) 1994-2013 Free Software Foundation, Inc. |
# This Makefile.in is free software; the Free Software Foundation |
# gives unlimited permission to copy and/or distribute it, |
# with or without modifications, as long as this notice is preserved. |
# This program is distributed in the hope that it will be useful, |
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without |
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A |
# PARTICULAR PURPOSE. |
@SET_MAKE@ |
# Copyright © 2013 Intel Corporation |
# |
# Permission is hereby granted, free of charge, to any person obtaining a |
# copy of this software and associated documentation files (the "Software"), |
# to deal in the Software without restriction, including without limitation |
# the rights to use, copy, modify, merge, publish, distribute, sublicense, |
# and/or sell copies of the Software, and to permit persons to whom the |
# Software is furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice (including the next |
# paragraph) shall be included in all copies or substantial portions of the |
# Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
# DEALINGS IN THE SOFTWARE. |
VPATH = @srcdir@ |
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' |
am__make_running_with_option = \ |
case $${target_option-} in \ |
?) ;; \ |
*) echo "am__make_running_with_option: internal error: invalid" \ |
"target option '$${target_option-}' specified" >&2; \ |
exit 1;; \ |
esac; \ |
has_opt=no; \ |
sane_makeflags=$$MAKEFLAGS; \ |
if $(am__is_gnu_make); then \ |
sane_makeflags=$$MFLAGS; \ |
else \ |
case $$MAKEFLAGS in \ |
*\\[\ \ ]*) \ |
bs=\\; \ |
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ |
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ |
esac; \ |
fi; \ |
skip_next=no; \ |
strip_trailopt () \ |
{ \ |
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ |
}; \ |
for flg in $$sane_makeflags; do \ |
test $$skip_next = yes && { skip_next=no; continue; }; \ |
case $$flg in \ |
*=*|--*) continue;; \ |
-*I) strip_trailopt 'I'; skip_next=yes;; \ |
-*I?*) strip_trailopt 'I';; \ |
-*O) strip_trailopt 'O'; skip_next=yes;; \ |
-*O?*) strip_trailopt 'O';; \ |
-*l) strip_trailopt 'l'; skip_next=yes;; \ |
-*l?*) strip_trailopt 'l';; \ |
-[dEDm]) skip_next=yes;; \ |
-[JT]) skip_next=yes;; \ |
esac; \ |
case $$flg in \ |
*$$target_option*) has_opt=yes; break;; \ |
esac; \ |
done; \ |
test $$has_opt = yes |
am__make_dryrun = (target_option=n; $(am__make_running_with_option)) |
am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) |
pkgdatadir = $(datadir)/@PACKAGE@ |
pkgincludedir = $(includedir)/@PACKAGE@ |
pkglibdir = $(libdir)/@PACKAGE@ |
pkglibexecdir = $(libexecdir)/@PACKAGE@ |
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd |
install_sh_DATA = $(install_sh) -c -m 644 |
install_sh_PROGRAM = $(install_sh) -c |
install_sh_SCRIPT = $(install_sh) -c |
INSTALL_HEADER = $(INSTALL_DATA) |
transform = $(program_transform_name) |
NORMAL_INSTALL = : |
PRE_INSTALL = : |
POST_INSTALL = : |
NORMAL_UNINSTALL = : |
PRE_UNINSTALL = : |
POST_UNINSTALL = : |
build_triplet = @build@ |
host_triplet = @host@ |
target_triplet = @target@ |
@NEED_WINSYS_XLIB_TRUE@am__append_1 = sw/xlib |
@HAVE_DRI_TRUE@am__append_2 = sw/dri |
@HAVE_EGL_PLATFORM_FBDEV_TRUE@am__append_3 = sw/fbdev |
@HAVE_EGL_PLATFORM_WAYLAND_TRUE@am__append_4 = sw/wayland |
@NEED_WINSYS_WRAPPER_TRUE@am__append_5 = sw/wrapper |
@HAVE_GALLIUM_FREEDRENO_TRUE@@NEED_NONNULL_WINSYS_TRUE@am__append_6 = freedreno/drm |
@HAVE_GALLIUM_I915_TRUE@@NEED_NONNULL_WINSYS_TRUE@am__append_7 = i915/sw i915/drm |
@HAVE_GALLIUM_ILO_TRUE@@NEED_NONNULL_WINSYS_TRUE@am__append_8 = intel/drm |
@HAVE_GALLIUM_NOUVEAU_TRUE@@NEED_NONNULL_WINSYS_TRUE@am__append_9 = nouveau/drm |
@NEED_NONNULL_WINSYS_TRUE@@NEED_RADEON_DRM_WINSYS_TRUE@am__append_10 = radeon/drm |
@HAVE_GALLIUM_SVGA_TRUE@@NEED_NONNULL_WINSYS_TRUE@am__append_11 = svga/drm |
subdir = src/gallium/winsys |
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_prog_bison.m4 \ |
$(top_srcdir)/m4/ax_prog_cc_for_build.m4 \ |
$(top_srcdir)/m4/ax_prog_cxx_for_build.m4 \ |
$(top_srcdir)/m4/ax_prog_flex.m4 \ |
$(top_srcdir)/m4/ax_pthread.m4 \ |
$(top_srcdir)/m4/ax_python_module.m4 \ |
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ |
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ |
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac |
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
$(ACLOCAL_M4) |
mkinstalldirs = $(install_sh) -d |
CONFIG_CLEAN_FILES = |
CONFIG_CLEAN_VPATH_FILES = |
AM_V_P = $(am__v_P_@AM_V@) |
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) |
am__v_P_0 = false |
am__v_P_1 = : |
AM_V_GEN = $(am__v_GEN_@AM_V@) |
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) |
am__v_GEN_0 = @echo " GEN " $@; |
am__v_GEN_1 = |
AM_V_at = $(am__v_at_@AM_V@) |
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) |
am__v_at_0 = @ |
am__v_at_1 = |
SOURCES = |
DIST_SOURCES = |
RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ |
ctags-recursive dvi-recursive html-recursive info-recursive \ |
install-data-recursive install-dvi-recursive \ |
install-exec-recursive install-html-recursive \ |
install-info-recursive install-pdf-recursive \ |
install-ps-recursive install-recursive installcheck-recursive \ |
installdirs-recursive pdf-recursive ps-recursive \ |
tags-recursive uninstall-recursive |
am__can_run_installinfo = \ |
case $$AM_UPDATE_INFO_DIR in \ |
n|no|NO) false;; \ |
*) (install-info --version) >/dev/null 2>&1;; \ |
esac |
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ |
distclean-recursive maintainer-clean-recursive |
am__recursive_targets = \ |
$(RECURSIVE_TARGETS) \ |
$(RECURSIVE_CLEAN_TARGETS) \ |
$(am__extra_recursive_targets) |
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ |
distdir |
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) |
# Read a list of newline-separated strings from the standard input, |
# and print each of them once, without duplicates. Input order is |
# *not* preserved. |
am__uniquify_input = $(AWK) '\ |
BEGIN { nonempty = 0; } \ |
{ items[$$0] = 1; nonempty = 1; } \ |
END { if (nonempty) { for (i in items) print i; }; } \ |
' |
# Make sure the list of sources is unique. This is necessary because, |
# e.g., the same source file might be shared among _SOURCES variables |
# for different programs/libraries. |
am__define_uniq_tagged_files = \ |
list='$(am__tagged_files)'; \ |
unique=`for i in $$list; do \ |
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ |
done | $(am__uniquify_input)` |
ETAGS = etags |
CTAGS = ctags |
DIST_SUBDIRS = sw/null sw/xlib sw/dri sw/fbdev sw/wayland sw/wrapper \ |
freedreno/drm i915/sw i915/drm intel/drm nouveau/drm \ |
radeon/drm svga/drm |
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) |
am__relativize = \ |
dir0=`pwd`; \ |
sed_first='s,^\([^/]*\)/.*$$,\1,'; \ |
sed_rest='s,^[^/]*/*,,'; \ |
sed_last='s,^.*/\([^/]*\)$$,\1,'; \ |
sed_butlast='s,/*[^/]*$$,,'; \ |
while test -n "$$dir1"; do \ |
first=`echo "$$dir1" | sed -e "$$sed_first"`; \ |
if test "$$first" != "."; then \ |
if test "$$first" = ".."; then \ |
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ |
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ |
else \ |
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ |
if test "$$first2" = "$$first"; then \ |
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ |
else \ |
dir2="../$$dir2"; \ |
fi; \ |
dir0="$$dir0"/"$$first"; \ |
fi; \ |
fi; \ |
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ |
done; \ |
reldir="$$dir2" |
ACLOCAL = @ACLOCAL@ |
AMTAR = @AMTAR@ |
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ |
AR = @AR@ |
AUTOCONF = @AUTOCONF@ |
AUTOHEADER = @AUTOHEADER@ |
AUTOMAKE = @AUTOMAKE@ |
AWK = @AWK@ |
BUILD_EXEEXT = @BUILD_EXEEXT@ |
BUILD_OBJEXT = @BUILD_OBJEXT@ |
CC = @CC@ |
CCAS = @CCAS@ |
CCASDEPMODE = @CCASDEPMODE@ |
CCASFLAGS = @CCASFLAGS@ |
CCDEPMODE = @CCDEPMODE@ |
CC_FOR_BUILD = @CC_FOR_BUILD@ |
CFLAGS = @CFLAGS@ |
CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ |
CLANG_RESOURCE_DIR = @CLANG_RESOURCE_DIR@ |
CLOCK_LIB = @CLOCK_LIB@ |
CPP = @CPP@ |
CPPFLAGS = @CPPFLAGS@ |
CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@ |
CPP_FOR_BUILD = @CPP_FOR_BUILD@ |
CXX = @CXX@ |
CXXCPP = @CXXCPP@ |
CXXCPPFLAGS_FOR_BUILD = @CXXCPPFLAGS_FOR_BUILD@ |
CXXCPP_FOR_BUILD = @CXXCPP_FOR_BUILD@ |
CXXDEPMODE = @CXXDEPMODE@ |
CXXFLAGS = @CXXFLAGS@ |
CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@ |
CXX_FOR_BUILD = @CXX_FOR_BUILD@ |
CYGPATH_W = @CYGPATH_W@ |
DEFINES = @DEFINES@ |
DEFINES_FOR_BUILD = @DEFINES_FOR_BUILD@ |
DEFS = @DEFS@ |
DEPDIR = @DEPDIR@ |
DLLTOOL = @DLLTOOL@ |
DLOPEN_LIBS = @DLOPEN_LIBS@ |
DRI2PROTO_CFLAGS = @DRI2PROTO_CFLAGS@ |
DRI2PROTO_LIBS = @DRI2PROTO_LIBS@ |
DRIGL_CFLAGS = @DRIGL_CFLAGS@ |
DRIGL_LIBS = @DRIGL_LIBS@ |
DRI_DRIVER_INSTALL_DIR = @DRI_DRIVER_INSTALL_DIR@ |
DRI_DRIVER_SEARCH_DIR = @DRI_DRIVER_SEARCH_DIR@ |
DRI_LIB_DEPS = @DRI_LIB_DEPS@ |
DRI_PC_REQ_PRIV = @DRI_PC_REQ_PRIV@ |
DSYMUTIL = @DSYMUTIL@ |
DUMPBIN = @DUMPBIN@ |
ECHO_C = @ECHO_C@ |
ECHO_N = @ECHO_N@ |
ECHO_T = @ECHO_T@ |
EGL_CFLAGS = @EGL_CFLAGS@ |
EGL_CLIENT_APIS = @EGL_CLIENT_APIS@ |
EGL_DRIVER_INSTALL_DIR = @EGL_DRIVER_INSTALL_DIR@ |
EGL_LIB_DEPS = @EGL_LIB_DEPS@ |
EGL_LIB_GLOB = @EGL_LIB_GLOB@ |
EGL_LIB_NAME = @EGL_LIB_NAME@ |
EGL_NATIVE_PLATFORM = @EGL_NATIVE_PLATFORM@ |
EGL_PLATFORMS = @EGL_PLATFORMS@ |
EGREP = @EGREP@ |
ELF_LIB = @ELF_LIB@ |
EXEEXT = @EXEEXT@ |
EXPAT_INCLUDES = @EXPAT_INCLUDES@ |
FGREP = @FGREP@ |
FREEDRENO_CFLAGS = @FREEDRENO_CFLAGS@ |
FREEDRENO_LIBS = @FREEDRENO_LIBS@ |
GALLIUM_DRI_LIB_DEPS = @GALLIUM_DRI_LIB_DEPS@ |
GALLIUM_PIPE_LOADER_DEFINES = @GALLIUM_PIPE_LOADER_DEFINES@ |
GALLIUM_PIPE_LOADER_LIBS = @GALLIUM_PIPE_LOADER_LIBS@ |
GALLIUM_PIPE_LOADER_XCB_CFLAGS = @GALLIUM_PIPE_LOADER_XCB_CFLAGS@ |
GALLIUM_PIPE_LOADER_XCB_LIBS = @GALLIUM_PIPE_LOADER_XCB_LIBS@ |
GBM_PC_LIB_PRIV = @GBM_PC_LIB_PRIV@ |
GBM_PC_REQ_PRIV = @GBM_PC_REQ_PRIV@ |
GLAPI_LIB_GLOB = @GLAPI_LIB_GLOB@ |
GLAPI_LIB_NAME = @GLAPI_LIB_NAME@ |
GLESv1_CM_LIB_DEPS = @GLESv1_CM_LIB_DEPS@ |
GLESv1_CM_LIB_GLOB = @GLESv1_CM_LIB_GLOB@ |
GLESv1_CM_LIB_NAME = @GLESv1_CM_LIB_NAME@ |
GLESv1_CM_PC_LIB_PRIV = @GLESv1_CM_PC_LIB_PRIV@ |
GLESv2_LIB_DEPS = @GLESv2_LIB_DEPS@ |
GLESv2_LIB_GLOB = @GLESv2_LIB_GLOB@ |
GLESv2_LIB_NAME = @GLESv2_LIB_NAME@ |
GLESv2_PC_LIB_PRIV = @GLESv2_PC_LIB_PRIV@ |
GLPROTO_CFLAGS = @GLPROTO_CFLAGS@ |
GLPROTO_LIBS = @GLPROTO_LIBS@ |
GLX_TLS = @GLX_TLS@ |
GL_LIB = @GL_LIB@ |
GL_LIB_DEPS = @GL_LIB_DEPS@ |
GL_LIB_GLOB = @GL_LIB_GLOB@ |
GL_LIB_NAME = @GL_LIB_NAME@ |
GL_PC_CFLAGS = @GL_PC_CFLAGS@ |
GL_PC_LIB_PRIV = @GL_PC_LIB_PRIV@ |
GL_PC_REQ_PRIV = @GL_PC_REQ_PRIV@ |
GREP = @GREP@ |
HAVE_XF86VIDMODE = @HAVE_XF86VIDMODE@ |
INDENT = @INDENT@ |
INDENT_FLAGS = @INDENT_FLAGS@ |
INSTALL = @INSTALL@ |
INSTALL_DATA = @INSTALL_DATA@ |
INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ |
INTEL_CFLAGS = @INTEL_CFLAGS@ |
INTEL_LIBS = @INTEL_LIBS@ |
LD = @LD@ |
LDFLAGS = @LDFLAGS@ |
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ |
LEX = @LEX@ |
LEXLIB = @LEXLIB@ |
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ |
LIBCLC_INCLUDEDIR = @LIBCLC_INCLUDEDIR@ |
LIBCLC_LIBEXECDIR = @LIBCLC_LIBEXECDIR@ |
LIBDRM_CFLAGS = @LIBDRM_CFLAGS@ |
LIBDRM_LIBS = @LIBDRM_LIBS@ |
LIBDRM_XORG_CFLAGS = @LIBDRM_XORG_CFLAGS@ |
LIBDRM_XORG_LIBS = @LIBDRM_XORG_LIBS@ |
LIBKMS_XORG_CFLAGS = @LIBKMS_XORG_CFLAGS@ |
LIBKMS_XORG_LIBS = @LIBKMS_XORG_LIBS@ |
LIBOBJS = @LIBOBJS@ |
LIBS = @LIBS@ |
LIBTOOL = @LIBTOOL@ |
LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ |
LIBUDEV_LIBS = @LIBUDEV_LIBS@ |
LIB_DIR = @LIB_DIR@ |
LIPO = @LIPO@ |
LLVM_BINDIR = @LLVM_BINDIR@ |
LLVM_CFLAGS = @LLVM_CFLAGS@ |
LLVM_CONFIG = @LLVM_CONFIG@ |
LLVM_CPPFLAGS = @LLVM_CPPFLAGS@ |
LLVM_CXXFLAGS = @LLVM_CXXFLAGS@ |
LLVM_INCLUDEDIR = @LLVM_INCLUDEDIR@ |
LLVM_LDFLAGS = @LLVM_LDFLAGS@ |
LLVM_LIBDIR = @LLVM_LIBDIR@ |
LLVM_LIBS = @LLVM_LIBS@ |
LLVM_VERSION = @LLVM_VERSION@ |
LN_S = @LN_S@ |
LTLIBOBJS = @LTLIBOBJS@ |
MAKE = @MAKE@ |
MAKEINFO = @MAKEINFO@ |
MANIFEST_TOOL = @MANIFEST_TOOL@ |
MESA_LLVM = @MESA_LLVM@ |
MKDIR_P = @MKDIR_P@ |
NM = @NM@ |
NMEDIT = @NMEDIT@ |
NOUVEAU_CFLAGS = @NOUVEAU_CFLAGS@ |
NOUVEAU_LIBS = @NOUVEAU_LIBS@ |
OBJDUMP = @OBJDUMP@ |
OBJEXT = @OBJEXT@ |
OPENCL_LIB_INSTALL_DIR = @OPENCL_LIB_INSTALL_DIR@ |
OSMESA_LIB = @OSMESA_LIB@ |
OSMESA_LIB_DEPS = @OSMESA_LIB_DEPS@ |
OSMESA_LIB_NAME = @OSMESA_LIB_NAME@ |
OSMESA_MESA_DEPS = @OSMESA_MESA_DEPS@ |
OSMESA_PC_LIB_PRIV = @OSMESA_PC_LIB_PRIV@ |
OSMESA_PC_REQ = @OSMESA_PC_REQ@ |
OSMESA_VERSION = @OSMESA_VERSION@ |
OTOOL = @OTOOL@ |
OTOOL64 = @OTOOL64@ |
PACKAGE = @PACKAGE@ |
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ |
PACKAGE_NAME = @PACKAGE_NAME@ |
PACKAGE_STRING = @PACKAGE_STRING@ |
PACKAGE_TARNAME = @PACKAGE_TARNAME@ |
PACKAGE_URL = @PACKAGE_URL@ |
PACKAGE_VERSION = @PACKAGE_VERSION@ |
PATH_SEPARATOR = @PATH_SEPARATOR@ |
PERL = @PERL@ |
PKG_CONFIG = @PKG_CONFIG@ |
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ |
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ |
POSIX_SHELL = @POSIX_SHELL@ |
PTHREAD_CC = @PTHREAD_CC@ |
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ |
PTHREAD_LIBS = @PTHREAD_LIBS@ |
PYTHON2 = @PYTHON2@ |
RADEON_CFLAGS = @RADEON_CFLAGS@ |
RADEON_LIBS = @RADEON_LIBS@ |
RANLIB = @RANLIB@ |
SED = @SED@ |
SELINUX_LIBS = @SELINUX_LIBS@ |
SET_MAKE = @SET_MAKE@ |
SHELL = @SHELL@ |
STRIP = @STRIP@ |
VDPAU_CFLAGS = @VDPAU_CFLAGS@ |
VDPAU_LIBS = @VDPAU_LIBS@ |
VDPAU_LIB_INSTALL_DIR = @VDPAU_LIB_INSTALL_DIR@ |
VDPAU_MAJOR = @VDPAU_MAJOR@ |
VDPAU_MINOR = @VDPAU_MINOR@ |
VERSION = @VERSION@ |
VG_LIB_DEPS = @VG_LIB_DEPS@ |
VG_LIB_GLOB = @VG_LIB_GLOB@ |
VG_LIB_NAME = @VG_LIB_NAME@ |
VG_PC_LIB_PRIV = @VG_PC_LIB_PRIV@ |
VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@ |
VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@ |
WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ |
WAYLAND_LIBS = @WAYLAND_LIBS@ |
WAYLAND_SCANNER = @WAYLAND_SCANNER@ |
X11_INCLUDES = @X11_INCLUDES@ |
XA_MAJOR = @XA_MAJOR@ |
XA_MINOR = @XA_MINOR@ |
XA_TINY = @XA_TINY@ |
XA_VERSION = @XA_VERSION@ |
XCB_DRI2_CFLAGS = @XCB_DRI2_CFLAGS@ |
XCB_DRI2_LIBS = @XCB_DRI2_LIBS@ |
XEXT_CFLAGS = @XEXT_CFLAGS@ |
XEXT_LIBS = @XEXT_LIBS@ |
XF86VIDMODE_CFLAGS = @XF86VIDMODE_CFLAGS@ |
XF86VIDMODE_LIBS = @XF86VIDMODE_LIBS@ |
XLIBGL_CFLAGS = @XLIBGL_CFLAGS@ |
XLIBGL_LIBS = @XLIBGL_LIBS@ |
XORG_CFLAGS = @XORG_CFLAGS@ |
XORG_DRIVER_INSTALL_DIR = @XORG_DRIVER_INSTALL_DIR@ |
XORG_LIBS = @XORG_LIBS@ |
XVMC_CFLAGS = @XVMC_CFLAGS@ |
XVMC_LIBS = @XVMC_LIBS@ |
XVMC_LIB_INSTALL_DIR = @XVMC_LIB_INSTALL_DIR@ |
XVMC_MAJOR = @XVMC_MAJOR@ |
XVMC_MINOR = @XVMC_MINOR@ |
YACC = @YACC@ |
YFLAGS = @YFLAGS@ |
abs_builddir = @abs_builddir@ |
abs_srcdir = @abs_srcdir@ |
abs_top_builddir = @abs_top_builddir@ |
abs_top_srcdir = @abs_top_srcdir@ |
ac_ct_AR = @ac_ct_AR@ |
ac_ct_CC = @ac_ct_CC@ |
ac_ct_CC_FOR_BUILD = @ac_ct_CC_FOR_BUILD@ |
ac_ct_CXX = @ac_ct_CXX@ |
ac_ct_CXX_FOR_BUILD = @ac_ct_CXX_FOR_BUILD@ |
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ |
am__include = @am__include@ |
am__leading_dot = @am__leading_dot@ |
am__quote = @am__quote@ |
am__tar = @am__tar@ |
am__untar = @am__untar@ |
ax_pthread_config = @ax_pthread_config@ |
bindir = @bindir@ |
build = @build@ |
build_alias = @build_alias@ |
build_cpu = @build_cpu@ |
build_os = @build_os@ |
build_vendor = @build_vendor@ |
builddir = @builddir@ |
datadir = @datadir@ |
datarootdir = @datarootdir@ |
docdir = @docdir@ |
dvidir = @dvidir@ |
exec_prefix = @exec_prefix@ |
host = @host@ |
host_alias = @host_alias@ |
host_cpu = @host_cpu@ |
host_os = @host_os@ |
host_vendor = @host_vendor@ |
htmldir = @htmldir@ |
includedir = @includedir@ |
infodir = @infodir@ |
install_sh = @install_sh@ |
libdir = @libdir@ |
libexecdir = @libexecdir@ |
localedir = @localedir@ |
localstatedir = @localstatedir@ |
mandir = @mandir@ |
mkdir_p = @mkdir_p@ |
oldincludedir = @oldincludedir@ |
pdfdir = @pdfdir@ |
prefix = @prefix@ |
program_transform_name = @program_transform_name@ |
psdir = @psdir@ |
sbindir = @sbindir@ |
sharedstatedir = @sharedstatedir@ |
srcdir = @srcdir@ |
sysconfdir = @sysconfdir@ |
target = @target@ |
target_alias = @target_alias@ |
target_cpu = @target_cpu@ |
target_os = @target_os@ |
target_vendor = @target_vendor@ |
top_build_prefix = @top_build_prefix@ |
top_builddir = @top_builddir@ |
top_srcdir = @top_srcdir@ |
SUBDIRS = sw/null $(am__append_1) $(am__append_2) $(am__append_3) \ |
$(am__append_4) $(am__append_5) $(am__append_6) \ |
$(am__append_7) $(am__append_8) $(am__append_9) \ |
$(am__append_10) $(am__append_11) |
all: all-recursive |
.SUFFIXES: |
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) |
@for dep in $?; do \ |
case '$(am__configure_deps)' in \ |
*$$dep*) \ |
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ |
&& { if test -f $@; then exit 0; else break; fi; }; \ |
exit 1;; \ |
esac; \ |
done; \ |
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/gallium/winsys/Makefile'; \ |
$(am__cd) $(top_srcdir) && \ |
$(AUTOMAKE) --foreign src/gallium/winsys/Makefile |
.PRECIOUS: Makefile |
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
@case '$?' in \ |
*config.status*) \ |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ |
*) \ |
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ |
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ |
esac; |
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(top_srcdir)/configure: $(am__configure_deps) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(ACLOCAL_M4): $(am__aclocal_m4_deps) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(am__aclocal_m4_deps): |
mostlyclean-libtool: |
-rm -f *.lo |
clean-libtool: |
-rm -rf .libs _libs |
# This directory's subdirectories are mostly independent; you can cd |
# into them and run 'make' without going through this Makefile. |
# To change the values of 'make' variables: instead of editing Makefiles, |
# (1) if the variable is set in 'config.status', edit 'config.status' |
# (which will cause the Makefiles to be regenerated when you run 'make'); |
# (2) otherwise, pass the desired values on the 'make' command line. |
$(am__recursive_targets): |
@fail=; \ |
if $(am__make_keepgoing); then \ |
failcom='fail=yes'; \ |
else \ |
failcom='exit 1'; \ |
fi; \ |
dot_seen=no; \ |
target=`echo $@ | sed s/-recursive//`; \ |
case "$@" in \ |
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ |
*) list='$(SUBDIRS)' ;; \ |
esac; \ |
for subdir in $$list; do \ |
echo "Making $$target in $$subdir"; \ |
if test "$$subdir" = "."; then \ |
dot_seen=yes; \ |
local_target="$$target-am"; \ |
else \ |
local_target="$$target"; \ |
fi; \ |
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ |
|| eval $$failcom; \ |
done; \ |
if test "$$dot_seen" = "no"; then \ |
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ |
fi; test -z "$$fail" |
ID: $(am__tagged_files) |
$(am__define_uniq_tagged_files); mkid -fID $$unique |
tags: tags-recursive |
TAGS: tags |
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
set x; \ |
here=`pwd`; \ |
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ |
include_option=--etags-include; \ |
empty_fix=.; \ |
else \ |
include_option=--include; \ |
empty_fix=; \ |
fi; \ |
list='$(SUBDIRS)'; for subdir in $$list; do \ |
if test "$$subdir" = .; then :; else \ |
test ! -f $$subdir/TAGS || \ |
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ |
fi; \ |
done; \ |
$(am__define_uniq_tagged_files); \ |
shift; \ |
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ |
test -n "$$unique" || unique=$$empty_fix; \ |
if test $$# -gt 0; then \ |
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
"$$@" $$unique; \ |
else \ |
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
$$unique; \ |
fi; \ |
fi |
ctags: ctags-recursive |
CTAGS: ctags |
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
$(am__define_uniq_tagged_files); \ |
test -z "$(CTAGS_ARGS)$$unique" \ |
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ |
$$unique |
GTAGS: |
here=`$(am__cd) $(top_builddir) && pwd` \ |
&& $(am__cd) $(top_srcdir) \ |
&& gtags -i $(GTAGS_ARGS) "$$here" |
cscopelist: cscopelist-recursive |
cscopelist-am: $(am__tagged_files) |
list='$(am__tagged_files)'; \ |
case "$(srcdir)" in \ |
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ |
*) sdir=$(subdir)/$(srcdir) ;; \ |
esac; \ |
for i in $$list; do \ |
if test -f "$$i"; then \ |
echo "$(subdir)/$$i"; \ |
else \ |
echo "$$sdir/$$i"; \ |
fi; \ |
done >> $(top_builddir)/cscope.files |
distclean-tags: |
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |
distdir: $(DISTFILES) |
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
list='$(DISTFILES)'; \ |
dist_files=`for file in $$list; do echo $$file; done | \ |
sed -e "s|^$$srcdirstrip/||;t" \ |
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ |
case $$dist_files in \ |
*/*) $(MKDIR_P) `echo "$$dist_files" | \ |
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ |
sort -u` ;; \ |
esac; \ |
for file in $$dist_files; do \ |
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ |
if test -d $$d/$$file; then \ |
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ |
if test -d "$(distdir)/$$file"; then \ |
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |
fi; \ |
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ |
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ |
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |
fi; \ |
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ |
else \ |
test -f "$(distdir)/$$file" \ |
|| cp -p $$d/$$file "$(distdir)/$$file" \ |
|| exit 1; \ |
fi; \ |
done |
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ |
if test "$$subdir" = .; then :; else \ |
$(am__make_dryrun) \ |
|| test -d "$(distdir)/$$subdir" \ |
|| $(MKDIR_P) "$(distdir)/$$subdir" \ |
|| exit 1; \ |
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ |
$(am__relativize); \ |
new_distdir=$$reldir; \ |
dir1=$$subdir; dir2="$(top_distdir)"; \ |
$(am__relativize); \ |
new_top_distdir=$$reldir; \ |
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ |
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ |
($(am__cd) $$subdir && \ |
$(MAKE) $(AM_MAKEFLAGS) \ |
top_distdir="$$new_top_distdir" \ |
distdir="$$new_distdir" \ |
am__remove_distdir=: \ |
am__skip_length_check=: \ |
am__skip_mode_fix=: \ |
distdir) \ |
|| exit 1; \ |
fi; \ |
done |
check-am: all-am |
check: check-recursive |
all-am: Makefile |
installdirs: installdirs-recursive |
installdirs-am: |
install: install-recursive |
install-exec: install-exec-recursive |
install-data: install-data-recursive |
uninstall: uninstall-recursive |
install-am: all-am |
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am |
installcheck: installcheck-recursive |
install-strip: |
if test -z '$(STRIP)'; then \ |
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |
install; \ |
else \ |
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ |
fi |
mostlyclean-generic: |
clean-generic: |
distclean-generic: |
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) |
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) |
maintainer-clean-generic: |
@echo "This command is intended for maintainers to use" |
@echo "it deletes files that may require special tools to rebuild." |
clean: clean-recursive |
clean-am: clean-generic clean-libtool mostlyclean-am |
distclean: distclean-recursive |
-rm -f Makefile |
distclean-am: clean-am distclean-generic distclean-tags |
dvi: dvi-recursive |
dvi-am: |
html: html-recursive |
html-am: |
info: info-recursive |
info-am: |
install-data-am: |
install-dvi: install-dvi-recursive |
install-dvi-am: |
install-exec-am: |
install-html: install-html-recursive |
install-html-am: |
install-info: install-info-recursive |
install-info-am: |
install-man: |
install-pdf: install-pdf-recursive |
install-pdf-am: |
install-ps: install-ps-recursive |
install-ps-am: |
installcheck-am: |
maintainer-clean: maintainer-clean-recursive |
-rm -f Makefile |
maintainer-clean-am: distclean-am maintainer-clean-generic |
mostlyclean: mostlyclean-recursive |
mostlyclean-am: mostlyclean-generic mostlyclean-libtool |
pdf: pdf-recursive |
pdf-am: |
ps: ps-recursive |
ps-am: |
uninstall-am: |
.MAKE: $(am__recursive_targets) install-am install-strip |
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ |
check-am clean clean-generic clean-libtool cscopelist-am ctags \ |
ctags-am distclean distclean-generic distclean-libtool \ |
distclean-tags distdir dvi dvi-am html html-am info info-am \ |
install install-am install-data install-data-am install-dvi \ |
install-dvi-am install-exec install-exec-am install-html \ |
install-html-am install-info install-info-am install-man \ |
install-pdf install-pdf-am install-ps install-ps-am \ |
install-strip installcheck installcheck-am installdirs \ |
installdirs-am maintainer-clean maintainer-clean-generic \ |
mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ |
ps ps-am tags tags-am uninstall uninstall-am |
# Tell versions [3.59,3.63) of GNU make to not export all variables. |
# Otherwise a system limit (for SysV at least) may be exceeded. |
.NOEXPORT: |
/contrib/sdk/sources/Mesa/src/gallium/winsys/freedreno/drm/Makefile.am |
---|
0,0 → 1,32 |
# Copyright © 2012 Intel Corporation |
# |
# Permission is hereby granted, free of charge, to any person obtaining a |
# copy of this software and associated documentation files (the "Software"), |
# to deal in the Software without restriction, including without limitation |
# the rights to use, copy, modify, merge, publish, distribute, sublicense, |
# and/or sell copies of the Software, and to permit persons to whom the |
# Software is furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice (including the next |
# paragraph) shall be included in all copies or substantial portions of the |
# Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
# DEALINGS IN THE SOFTWARE. |
include $(top_srcdir)/src/gallium/Automake.inc |
AM_CFLAGS = \ |
-I$(top_srcdir)/src/gallium/drivers \ |
$(GALLIUM_CFLAGS) \ |
$(FREEDRENO_CFLAGS) |
noinst_LTLIBRARIES = libfreedrenodrm.la |
libfreedrenodrm_la_SOURCES = freedreno_drm_winsys.c |
/contrib/sdk/sources/Mesa/src/gallium/winsys/freedreno/drm/Makefile.in |
---|
0,0 → 1,778 |
# Makefile.in generated by automake 1.14 from Makefile.am. |
# @configure_input@ |
# Copyright (C) 1994-2013 Free Software Foundation, Inc. |
# This Makefile.in is free software; the Free Software Foundation |
# gives unlimited permission to copy and/or distribute it, |
# with or without modifications, as long as this notice is preserved. |
# This program is distributed in the hope that it will be useful, |
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without |
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A |
# PARTICULAR PURPOSE. |
@SET_MAKE@ |
# Copyright © 2012 Intel Corporation |
# |
# Permission is hereby granted, free of charge, to any person obtaining a |
# copy of this software and associated documentation files (the "Software"), |
# to deal in the Software without restriction, including without limitation |
# the rights to use, copy, modify, merge, publish, distribute, sublicense, |
# and/or sell copies of the Software, and to permit persons to whom the |
# Software is furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice (including the next |
# paragraph) shall be included in all copies or substantial portions of the |
# Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
# DEALINGS IN THE SOFTWARE. |
VPATH = @srcdir@ |
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' |
am__make_running_with_option = \ |
case $${target_option-} in \ |
?) ;; \ |
*) echo "am__make_running_with_option: internal error: invalid" \ |
"target option '$${target_option-}' specified" >&2; \ |
exit 1;; \ |
esac; \ |
has_opt=no; \ |
sane_makeflags=$$MAKEFLAGS; \ |
if $(am__is_gnu_make); then \ |
sane_makeflags=$$MFLAGS; \ |
else \ |
case $$MAKEFLAGS in \ |
*\\[\ \ ]*) \ |
bs=\\; \ |
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ |
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ |
esac; \ |
fi; \ |
skip_next=no; \ |
strip_trailopt () \ |
{ \ |
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ |
}; \ |
for flg in $$sane_makeflags; do \ |
test $$skip_next = yes && { skip_next=no; continue; }; \ |
case $$flg in \ |
*=*|--*) continue;; \ |
-*I) strip_trailopt 'I'; skip_next=yes;; \ |
-*I?*) strip_trailopt 'I';; \ |
-*O) strip_trailopt 'O'; skip_next=yes;; \ |
-*O?*) strip_trailopt 'O';; \ |
-*l) strip_trailopt 'l'; skip_next=yes;; \ |
-*l?*) strip_trailopt 'l';; \ |
-[dEDm]) skip_next=yes;; \ |
-[JT]) skip_next=yes;; \ |
esac; \ |
case $$flg in \ |
*$$target_option*) has_opt=yes; break;; \ |
esac; \ |
done; \ |
test $$has_opt = yes |
am__make_dryrun = (target_option=n; $(am__make_running_with_option)) |
am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) |
pkgdatadir = $(datadir)/@PACKAGE@ |
pkgincludedir = $(includedir)/@PACKAGE@ |
pkglibdir = $(libdir)/@PACKAGE@ |
pkglibexecdir = $(libexecdir)/@PACKAGE@ |
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd |
install_sh_DATA = $(install_sh) -c -m 644 |
install_sh_PROGRAM = $(install_sh) -c |
install_sh_SCRIPT = $(install_sh) -c |
INSTALL_HEADER = $(INSTALL_DATA) |
transform = $(program_transform_name) |
NORMAL_INSTALL = : |
PRE_INSTALL = : |
POST_INSTALL = : |
NORMAL_UNINSTALL = : |
PRE_UNINSTALL = : |
POST_UNINSTALL = : |
build_triplet = @build@ |
host_triplet = @host@ |
target_triplet = @target@ |
DIST_COMMON = $(top_srcdir)/src/gallium/Automake.inc \ |
$(srcdir)/Makefile.in $(srcdir)/Makefile.am \ |
$(top_srcdir)/bin/depcomp |
subdir = src/gallium/winsys/freedreno/drm |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_prog_bison.m4 \ |
$(top_srcdir)/m4/ax_prog_cc_for_build.m4 \ |
$(top_srcdir)/m4/ax_prog_cxx_for_build.m4 \ |
$(top_srcdir)/m4/ax_prog_flex.m4 \ |
$(top_srcdir)/m4/ax_pthread.m4 \ |
$(top_srcdir)/m4/ax_python_module.m4 \ |
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ |
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ |
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac |
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
$(ACLOCAL_M4) |
mkinstalldirs = $(install_sh) -d |
CONFIG_CLEAN_FILES = |
CONFIG_CLEAN_VPATH_FILES = |
LTLIBRARIES = $(noinst_LTLIBRARIES) |
libfreedrenodrm_la_LIBADD = |
am_libfreedrenodrm_la_OBJECTS = freedreno_drm_winsys.lo |
libfreedrenodrm_la_OBJECTS = $(am_libfreedrenodrm_la_OBJECTS) |
AM_V_lt = $(am__v_lt_@AM_V@) |
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) |
am__v_lt_0 = --silent |
am__v_lt_1 = |
AM_V_P = $(am__v_P_@AM_V@) |
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) |
am__v_P_0 = false |
am__v_P_1 = : |
AM_V_GEN = $(am__v_GEN_@AM_V@) |
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) |
am__v_GEN_0 = @echo " GEN " $@; |
am__v_GEN_1 = |
AM_V_at = $(am__v_at_@AM_V@) |
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) |
am__v_at_0 = @ |
am__v_at_1 = |
DEFAULT_INCLUDES = -I.@am__isrc@ |
depcomp = $(SHELL) $(top_srcdir)/bin/depcomp |
am__depfiles_maybe = depfiles |
am__mv = mv -f |
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ |
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) |
LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ |
$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ |
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ |
$(AM_CFLAGS) $(CFLAGS) |
AM_V_CC = $(am__v_CC_@AM_V@) |
am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) |
am__v_CC_0 = @echo " CC " $@; |
am__v_CC_1 = |
CCLD = $(CC) |
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ |
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ |
$(AM_LDFLAGS) $(LDFLAGS) -o $@ |
AM_V_CCLD = $(am__v_CCLD_@AM_V@) |
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) |
am__v_CCLD_0 = @echo " CCLD " $@; |
am__v_CCLD_1 = |
SOURCES = $(libfreedrenodrm_la_SOURCES) |
DIST_SOURCES = $(libfreedrenodrm_la_SOURCES) |
am__can_run_installinfo = \ |
case $$AM_UPDATE_INFO_DIR in \ |
n|no|NO) false;; \ |
*) (install-info --version) >/dev/null 2>&1;; \ |
esac |
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) |
# Read a list of newline-separated strings from the standard input, |
# and print each of them once, without duplicates. Input order is |
# *not* preserved. |
am__uniquify_input = $(AWK) '\ |
BEGIN { nonempty = 0; } \ |
{ items[$$0] = 1; nonempty = 1; } \ |
END { if (nonempty) { for (i in items) print i; }; } \ |
' |
# Make sure the list of sources is unique. This is necessary because, |
# e.g., the same source file might be shared among _SOURCES variables |
# for different programs/libraries. |
am__define_uniq_tagged_files = \ |
list='$(am__tagged_files)'; \ |
unique=`for i in $$list; do \ |
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ |
done | $(am__uniquify_input)` |
ETAGS = etags |
CTAGS = ctags |
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) |
ACLOCAL = @ACLOCAL@ |
AMTAR = @AMTAR@ |
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ |
AR = @AR@ |
AUTOCONF = @AUTOCONF@ |
AUTOHEADER = @AUTOHEADER@ |
AUTOMAKE = @AUTOMAKE@ |
AWK = @AWK@ |
BUILD_EXEEXT = @BUILD_EXEEXT@ |
BUILD_OBJEXT = @BUILD_OBJEXT@ |
CC = @CC@ |
CCAS = @CCAS@ |
CCASDEPMODE = @CCASDEPMODE@ |
CCASFLAGS = @CCASFLAGS@ |
CCDEPMODE = @CCDEPMODE@ |
CC_FOR_BUILD = @CC_FOR_BUILD@ |
CFLAGS = @CFLAGS@ |
CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ |
CLANG_RESOURCE_DIR = @CLANG_RESOURCE_DIR@ |
CLOCK_LIB = @CLOCK_LIB@ |
CPP = @CPP@ |
CPPFLAGS = @CPPFLAGS@ |
CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@ |
CPP_FOR_BUILD = @CPP_FOR_BUILD@ |
CXX = @CXX@ |
CXXCPP = @CXXCPP@ |
CXXCPPFLAGS_FOR_BUILD = @CXXCPPFLAGS_FOR_BUILD@ |
CXXCPP_FOR_BUILD = @CXXCPP_FOR_BUILD@ |
CXXDEPMODE = @CXXDEPMODE@ |
CXXFLAGS = @CXXFLAGS@ |
CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@ |
CXX_FOR_BUILD = @CXX_FOR_BUILD@ |
CYGPATH_W = @CYGPATH_W@ |
DEFINES = @DEFINES@ |
DEFINES_FOR_BUILD = @DEFINES_FOR_BUILD@ |
DEFS = @DEFS@ |
DEPDIR = @DEPDIR@ |
DLLTOOL = @DLLTOOL@ |
DLOPEN_LIBS = @DLOPEN_LIBS@ |
DRI2PROTO_CFLAGS = @DRI2PROTO_CFLAGS@ |
DRI2PROTO_LIBS = @DRI2PROTO_LIBS@ |
DRIGL_CFLAGS = @DRIGL_CFLAGS@ |
DRIGL_LIBS = @DRIGL_LIBS@ |
DRI_DRIVER_INSTALL_DIR = @DRI_DRIVER_INSTALL_DIR@ |
DRI_DRIVER_SEARCH_DIR = @DRI_DRIVER_SEARCH_DIR@ |
DRI_LIB_DEPS = @DRI_LIB_DEPS@ |
DRI_PC_REQ_PRIV = @DRI_PC_REQ_PRIV@ |
DSYMUTIL = @DSYMUTIL@ |
DUMPBIN = @DUMPBIN@ |
ECHO_C = @ECHO_C@ |
ECHO_N = @ECHO_N@ |
ECHO_T = @ECHO_T@ |
EGL_CFLAGS = @EGL_CFLAGS@ |
EGL_CLIENT_APIS = @EGL_CLIENT_APIS@ |
EGL_DRIVER_INSTALL_DIR = @EGL_DRIVER_INSTALL_DIR@ |
EGL_LIB_DEPS = @EGL_LIB_DEPS@ |
EGL_LIB_GLOB = @EGL_LIB_GLOB@ |
EGL_LIB_NAME = @EGL_LIB_NAME@ |
EGL_NATIVE_PLATFORM = @EGL_NATIVE_PLATFORM@ |
EGL_PLATFORMS = @EGL_PLATFORMS@ |
EGREP = @EGREP@ |
ELF_LIB = @ELF_LIB@ |
EXEEXT = @EXEEXT@ |
EXPAT_INCLUDES = @EXPAT_INCLUDES@ |
FGREP = @FGREP@ |
FREEDRENO_CFLAGS = @FREEDRENO_CFLAGS@ |
FREEDRENO_LIBS = @FREEDRENO_LIBS@ |
GALLIUM_DRI_LIB_DEPS = @GALLIUM_DRI_LIB_DEPS@ |
GALLIUM_PIPE_LOADER_DEFINES = @GALLIUM_PIPE_LOADER_DEFINES@ |
GALLIUM_PIPE_LOADER_LIBS = @GALLIUM_PIPE_LOADER_LIBS@ |
GALLIUM_PIPE_LOADER_XCB_CFLAGS = @GALLIUM_PIPE_LOADER_XCB_CFLAGS@ |
GALLIUM_PIPE_LOADER_XCB_LIBS = @GALLIUM_PIPE_LOADER_XCB_LIBS@ |
GBM_PC_LIB_PRIV = @GBM_PC_LIB_PRIV@ |
GBM_PC_REQ_PRIV = @GBM_PC_REQ_PRIV@ |
GLAPI_LIB_GLOB = @GLAPI_LIB_GLOB@ |
GLAPI_LIB_NAME = @GLAPI_LIB_NAME@ |
GLESv1_CM_LIB_DEPS = @GLESv1_CM_LIB_DEPS@ |
GLESv1_CM_LIB_GLOB = @GLESv1_CM_LIB_GLOB@ |
GLESv1_CM_LIB_NAME = @GLESv1_CM_LIB_NAME@ |
GLESv1_CM_PC_LIB_PRIV = @GLESv1_CM_PC_LIB_PRIV@ |
GLESv2_LIB_DEPS = @GLESv2_LIB_DEPS@ |
GLESv2_LIB_GLOB = @GLESv2_LIB_GLOB@ |
GLESv2_LIB_NAME = @GLESv2_LIB_NAME@ |
GLESv2_PC_LIB_PRIV = @GLESv2_PC_LIB_PRIV@ |
GLPROTO_CFLAGS = @GLPROTO_CFLAGS@ |
GLPROTO_LIBS = @GLPROTO_LIBS@ |
GLX_TLS = @GLX_TLS@ |
GL_LIB = @GL_LIB@ |
GL_LIB_DEPS = @GL_LIB_DEPS@ |
GL_LIB_GLOB = @GL_LIB_GLOB@ |
GL_LIB_NAME = @GL_LIB_NAME@ |
GL_PC_CFLAGS = @GL_PC_CFLAGS@ |
GL_PC_LIB_PRIV = @GL_PC_LIB_PRIV@ |
GL_PC_REQ_PRIV = @GL_PC_REQ_PRIV@ |
GREP = @GREP@ |
HAVE_XF86VIDMODE = @HAVE_XF86VIDMODE@ |
INDENT = @INDENT@ |
INDENT_FLAGS = @INDENT_FLAGS@ |
INSTALL = @INSTALL@ |
INSTALL_DATA = @INSTALL_DATA@ |
INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ |
INTEL_CFLAGS = @INTEL_CFLAGS@ |
INTEL_LIBS = @INTEL_LIBS@ |
LD = @LD@ |
LDFLAGS = @LDFLAGS@ |
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ |
LEX = @LEX@ |
LEXLIB = @LEXLIB@ |
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ |
LIBCLC_INCLUDEDIR = @LIBCLC_INCLUDEDIR@ |
LIBCLC_LIBEXECDIR = @LIBCLC_LIBEXECDIR@ |
LIBDRM_CFLAGS = @LIBDRM_CFLAGS@ |
LIBDRM_LIBS = @LIBDRM_LIBS@ |
LIBDRM_XORG_CFLAGS = @LIBDRM_XORG_CFLAGS@ |
LIBDRM_XORG_LIBS = @LIBDRM_XORG_LIBS@ |
LIBKMS_XORG_CFLAGS = @LIBKMS_XORG_CFLAGS@ |
LIBKMS_XORG_LIBS = @LIBKMS_XORG_LIBS@ |
LIBOBJS = @LIBOBJS@ |
LIBS = @LIBS@ |
LIBTOOL = @LIBTOOL@ |
LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ |
LIBUDEV_LIBS = @LIBUDEV_LIBS@ |
LIB_DIR = @LIB_DIR@ |
LIPO = @LIPO@ |
LLVM_BINDIR = @LLVM_BINDIR@ |
LLVM_CFLAGS = @LLVM_CFLAGS@ |
LLVM_CONFIG = @LLVM_CONFIG@ |
LLVM_CPPFLAGS = @LLVM_CPPFLAGS@ |
LLVM_CXXFLAGS = @LLVM_CXXFLAGS@ |
LLVM_INCLUDEDIR = @LLVM_INCLUDEDIR@ |
LLVM_LDFLAGS = @LLVM_LDFLAGS@ |
LLVM_LIBDIR = @LLVM_LIBDIR@ |
LLVM_LIBS = @LLVM_LIBS@ |
LLVM_VERSION = @LLVM_VERSION@ |
LN_S = @LN_S@ |
LTLIBOBJS = @LTLIBOBJS@ |
MAKE = @MAKE@ |
MAKEINFO = @MAKEINFO@ |
MANIFEST_TOOL = @MANIFEST_TOOL@ |
MESA_LLVM = @MESA_LLVM@ |
MKDIR_P = @MKDIR_P@ |
NM = @NM@ |
NMEDIT = @NMEDIT@ |
NOUVEAU_CFLAGS = @NOUVEAU_CFLAGS@ |
NOUVEAU_LIBS = @NOUVEAU_LIBS@ |
OBJDUMP = @OBJDUMP@ |
OBJEXT = @OBJEXT@ |
OPENCL_LIB_INSTALL_DIR = @OPENCL_LIB_INSTALL_DIR@ |
OSMESA_LIB = @OSMESA_LIB@ |
OSMESA_LIB_DEPS = @OSMESA_LIB_DEPS@ |
OSMESA_LIB_NAME = @OSMESA_LIB_NAME@ |
OSMESA_MESA_DEPS = @OSMESA_MESA_DEPS@ |
OSMESA_PC_LIB_PRIV = @OSMESA_PC_LIB_PRIV@ |
OSMESA_PC_REQ = @OSMESA_PC_REQ@ |
OSMESA_VERSION = @OSMESA_VERSION@ |
OTOOL = @OTOOL@ |
OTOOL64 = @OTOOL64@ |
PACKAGE = @PACKAGE@ |
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ |
PACKAGE_NAME = @PACKAGE_NAME@ |
PACKAGE_STRING = @PACKAGE_STRING@ |
PACKAGE_TARNAME = @PACKAGE_TARNAME@ |
PACKAGE_URL = @PACKAGE_URL@ |
PACKAGE_VERSION = @PACKAGE_VERSION@ |
PATH_SEPARATOR = @PATH_SEPARATOR@ |
PERL = @PERL@ |
PKG_CONFIG = @PKG_CONFIG@ |
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ |
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ |
POSIX_SHELL = @POSIX_SHELL@ |
PTHREAD_CC = @PTHREAD_CC@ |
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ |
PTHREAD_LIBS = @PTHREAD_LIBS@ |
PYTHON2 = @PYTHON2@ |
RADEON_CFLAGS = @RADEON_CFLAGS@ |
RADEON_LIBS = @RADEON_LIBS@ |
RANLIB = @RANLIB@ |
SED = @SED@ |
SELINUX_LIBS = @SELINUX_LIBS@ |
SET_MAKE = @SET_MAKE@ |
SHELL = @SHELL@ |
STRIP = @STRIP@ |
VDPAU_CFLAGS = @VDPAU_CFLAGS@ |
VDPAU_LIBS = @VDPAU_LIBS@ |
VDPAU_LIB_INSTALL_DIR = @VDPAU_LIB_INSTALL_DIR@ |
VDPAU_MAJOR = @VDPAU_MAJOR@ |
VDPAU_MINOR = @VDPAU_MINOR@ |
VERSION = @VERSION@ |
VG_LIB_DEPS = @VG_LIB_DEPS@ |
VG_LIB_GLOB = @VG_LIB_GLOB@ |
VG_LIB_NAME = @VG_LIB_NAME@ |
VG_PC_LIB_PRIV = @VG_PC_LIB_PRIV@ |
VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@ |
VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@ |
WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ |
WAYLAND_LIBS = @WAYLAND_LIBS@ |
WAYLAND_SCANNER = @WAYLAND_SCANNER@ |
X11_INCLUDES = @X11_INCLUDES@ |
XA_MAJOR = @XA_MAJOR@ |
XA_MINOR = @XA_MINOR@ |
XA_TINY = @XA_TINY@ |
XA_VERSION = @XA_VERSION@ |
XCB_DRI2_CFLAGS = @XCB_DRI2_CFLAGS@ |
XCB_DRI2_LIBS = @XCB_DRI2_LIBS@ |
XEXT_CFLAGS = @XEXT_CFLAGS@ |
XEXT_LIBS = @XEXT_LIBS@ |
XF86VIDMODE_CFLAGS = @XF86VIDMODE_CFLAGS@ |
XF86VIDMODE_LIBS = @XF86VIDMODE_LIBS@ |
XLIBGL_CFLAGS = @XLIBGL_CFLAGS@ |
XLIBGL_LIBS = @XLIBGL_LIBS@ |
XORG_CFLAGS = @XORG_CFLAGS@ |
XORG_DRIVER_INSTALL_DIR = @XORG_DRIVER_INSTALL_DIR@ |
XORG_LIBS = @XORG_LIBS@ |
XVMC_CFLAGS = @XVMC_CFLAGS@ |
XVMC_LIBS = @XVMC_LIBS@ |
XVMC_LIB_INSTALL_DIR = @XVMC_LIB_INSTALL_DIR@ |
XVMC_MAJOR = @XVMC_MAJOR@ |
XVMC_MINOR = @XVMC_MINOR@ |
YACC = @YACC@ |
YFLAGS = @YFLAGS@ |
abs_builddir = @abs_builddir@ |
abs_srcdir = @abs_srcdir@ |
abs_top_builddir = @abs_top_builddir@ |
abs_top_srcdir = @abs_top_srcdir@ |
ac_ct_AR = @ac_ct_AR@ |
ac_ct_CC = @ac_ct_CC@ |
ac_ct_CC_FOR_BUILD = @ac_ct_CC_FOR_BUILD@ |
ac_ct_CXX = @ac_ct_CXX@ |
ac_ct_CXX_FOR_BUILD = @ac_ct_CXX_FOR_BUILD@ |
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ |
am__include = @am__include@ |
am__leading_dot = @am__leading_dot@ |
am__quote = @am__quote@ |
am__tar = @am__tar@ |
am__untar = @am__untar@ |
ax_pthread_config = @ax_pthread_config@ |
bindir = @bindir@ |
build = @build@ |
build_alias = @build_alias@ |
build_cpu = @build_cpu@ |
build_os = @build_os@ |
build_vendor = @build_vendor@ |
builddir = @builddir@ |
datadir = @datadir@ |
datarootdir = @datarootdir@ |
docdir = @docdir@ |
dvidir = @dvidir@ |
exec_prefix = @exec_prefix@ |
host = @host@ |
host_alias = @host_alias@ |
host_cpu = @host_cpu@ |
host_os = @host_os@ |
host_vendor = @host_vendor@ |
htmldir = @htmldir@ |
includedir = @includedir@ |
infodir = @infodir@ |
install_sh = @install_sh@ |
libdir = @libdir@ |
libexecdir = @libexecdir@ |
localedir = @localedir@ |
localstatedir = @localstatedir@ |
mandir = @mandir@ |
mkdir_p = @mkdir_p@ |
oldincludedir = @oldincludedir@ |
pdfdir = @pdfdir@ |
prefix = @prefix@ |
program_transform_name = @program_transform_name@ |
psdir = @psdir@ |
sbindir = @sbindir@ |
sharedstatedir = @sharedstatedir@ |
srcdir = @srcdir@ |
sysconfdir = @sysconfdir@ |
target = @target@ |
target_alias = @target_alias@ |
target_cpu = @target_cpu@ |
target_os = @target_os@ |
target_vendor = @target_vendor@ |
top_build_prefix = @top_build_prefix@ |
top_builddir = @top_builddir@ |
top_srcdir = @top_srcdir@ |
GALLIUM_CFLAGS = \ |
-I$(top_srcdir)/include \ |
-I$(top_srcdir)/src/gallium/include \ |
-I$(top_srcdir)/src/gallium/auxiliary \ |
$(DEFINES) |
AM_CFLAGS = \ |
-I$(top_srcdir)/src/gallium/drivers \ |
$(GALLIUM_CFLAGS) \ |
$(FREEDRENO_CFLAGS) |
noinst_LTLIBRARIES = libfreedrenodrm.la |
libfreedrenodrm_la_SOURCES = freedreno_drm_winsys.c |
all: all-am |
.SUFFIXES: |
.SUFFIXES: .c .lo .o .obj |
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/src/gallium/Automake.inc $(am__configure_deps) |
@for dep in $?; do \ |
case '$(am__configure_deps)' in \ |
*$$dep*) \ |
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ |
&& { if test -f $@; then exit 0; else break; fi; }; \ |
exit 1;; \ |
esac; \ |
done; \ |
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/gallium/winsys/freedreno/drm/Makefile'; \ |
$(am__cd) $(top_srcdir) && \ |
$(AUTOMAKE) --foreign src/gallium/winsys/freedreno/drm/Makefile |
.PRECIOUS: Makefile |
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
@case '$?' in \ |
*config.status*) \ |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ |
*) \ |
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ |
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ |
esac; |
$(top_srcdir)/src/gallium/Automake.inc: |
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(top_srcdir)/configure: $(am__configure_deps) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(ACLOCAL_M4): $(am__aclocal_m4_deps) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(am__aclocal_m4_deps): |
clean-noinstLTLIBRARIES: |
-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) |
@list='$(noinst_LTLIBRARIES)'; \ |
locs=`for p in $$list; do echo $$p; done | \ |
sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ |
sort -u`; \ |
test -z "$$locs" || { \ |
echo rm -f $${locs}; \ |
rm -f $${locs}; \ |
} |
libfreedrenodrm.la: $(libfreedrenodrm_la_OBJECTS) $(libfreedrenodrm_la_DEPENDENCIES) $(EXTRA_libfreedrenodrm_la_DEPENDENCIES) |
$(AM_V_CCLD)$(LINK) $(libfreedrenodrm_la_OBJECTS) $(libfreedrenodrm_la_LIBADD) $(LIBS) |
mostlyclean-compile: |
-rm -f *.$(OBJEXT) |
distclean-compile: |
-rm -f *.tab.c |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/freedreno_drm_winsys.Plo@am__quote@ |
.c.o: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< |
.c.obj: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` |
.c.lo: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< |
mostlyclean-libtool: |
-rm -f *.lo |
clean-libtool: |
-rm -rf .libs _libs |
ID: $(am__tagged_files) |
$(am__define_uniq_tagged_files); mkid -fID $$unique |
tags: tags-am |
TAGS: tags |
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
set x; \ |
here=`pwd`; \ |
$(am__define_uniq_tagged_files); \ |
shift; \ |
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ |
test -n "$$unique" || unique=$$empty_fix; \ |
if test $$# -gt 0; then \ |
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
"$$@" $$unique; \ |
else \ |
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
$$unique; \ |
fi; \ |
fi |
ctags: ctags-am |
CTAGS: ctags |
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
$(am__define_uniq_tagged_files); \ |
test -z "$(CTAGS_ARGS)$$unique" \ |
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ |
$$unique |
GTAGS: |
here=`$(am__cd) $(top_builddir) && pwd` \ |
&& $(am__cd) $(top_srcdir) \ |
&& gtags -i $(GTAGS_ARGS) "$$here" |
cscopelist: cscopelist-am |
cscopelist-am: $(am__tagged_files) |
list='$(am__tagged_files)'; \ |
case "$(srcdir)" in \ |
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ |
*) sdir=$(subdir)/$(srcdir) ;; \ |
esac; \ |
for i in $$list; do \ |
if test -f "$$i"; then \ |
echo "$(subdir)/$$i"; \ |
else \ |
echo "$$sdir/$$i"; \ |
fi; \ |
done >> $(top_builddir)/cscope.files |
distclean-tags: |
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |
distdir: $(DISTFILES) |
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
list='$(DISTFILES)'; \ |
dist_files=`for file in $$list; do echo $$file; done | \ |
sed -e "s|^$$srcdirstrip/||;t" \ |
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ |
case $$dist_files in \ |
*/*) $(MKDIR_P) `echo "$$dist_files" | \ |
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ |
sort -u` ;; \ |
esac; \ |
for file in $$dist_files; do \ |
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ |
if test -d $$d/$$file; then \ |
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ |
if test -d "$(distdir)/$$file"; then \ |
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |
fi; \ |
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ |
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ |
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |
fi; \ |
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ |
else \ |
test -f "$(distdir)/$$file" \ |
|| cp -p $$d/$$file "$(distdir)/$$file" \ |
|| exit 1; \ |
fi; \ |
done |
check-am: all-am |
check: check-am |
all-am: Makefile $(LTLIBRARIES) |
installdirs: |
install: install-am |
install-exec: install-exec-am |
install-data: install-data-am |
uninstall: uninstall-am |
install-am: all-am |
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am |
installcheck: installcheck-am |
install-strip: |
if test -z '$(STRIP)'; then \ |
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |
install; \ |
else \ |
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ |
fi |
mostlyclean-generic: |
clean-generic: |
distclean-generic: |
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) |
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) |
maintainer-clean-generic: |
@echo "This command is intended for maintainers to use" |
@echo "it deletes files that may require special tools to rebuild." |
clean: clean-am |
clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ |
mostlyclean-am |
distclean: distclean-am |
-rm -rf ./$(DEPDIR) |
-rm -f Makefile |
distclean-am: clean-am distclean-compile distclean-generic \ |
distclean-tags |
dvi: dvi-am |
dvi-am: |
html: html-am |
html-am: |
info: info-am |
info-am: |
install-data-am: |
install-dvi: install-dvi-am |
install-dvi-am: |
install-exec-am: |
install-html: install-html-am |
install-html-am: |
install-info: install-info-am |
install-info-am: |
install-man: |
install-pdf: install-pdf-am |
install-pdf-am: |
install-ps: install-ps-am |
install-ps-am: |
installcheck-am: |
maintainer-clean: maintainer-clean-am |
-rm -rf ./$(DEPDIR) |
-rm -f Makefile |
maintainer-clean-am: distclean-am maintainer-clean-generic |
mostlyclean: mostlyclean-am |
mostlyclean-am: mostlyclean-compile mostlyclean-generic \ |
mostlyclean-libtool |
pdf: pdf-am |
pdf-am: |
ps: ps-am |
ps-am: |
uninstall-am: |
.MAKE: install-am install-strip |
.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ |
clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ |
ctags-am distclean distclean-compile distclean-generic \ |
distclean-libtool distclean-tags distdir dvi dvi-am html \ |
html-am info info-am install install-am install-data \ |
install-data-am install-dvi install-dvi-am install-exec \ |
install-exec-am install-html install-html-am install-info \ |
install-info-am install-man install-pdf install-pdf-am \ |
install-ps install-ps-am install-strip installcheck \ |
installcheck-am installdirs maintainer-clean \ |
maintainer-clean-generic mostlyclean mostlyclean-compile \ |
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ |
tags tags-am uninstall uninstall-am |
# Tell versions [3.59,3.63) of GNU make to not export all variables. |
# Otherwise a system limit (for SysV at least) may be exceeded. |
.NOEXPORT: |
/contrib/sdk/sources/Mesa/src/gallium/winsys/freedreno/drm/freedreno_drm_public.h |
---|
0,0 → 1,9 |
#ifndef __FREEDRENO_DRM_PUBLIC_H__ |
#define __FREEDRENO_DRM_PUBLIC_H__ |
struct pipe_screen; |
struct pipe_screen *fd_drm_screen_create(int drmFD); |
#endif |
/contrib/sdk/sources/Mesa/src/gallium/winsys/freedreno/drm/freedreno_drm_winsys.c |
---|
0,0 → 1,18 |
#include "pipe/p_context.h" |
#include "pipe/p_state.h" |
#include "util/u_format.h" |
#include "util/u_memory.h" |
#include "util/u_inlines.h" |
#include "freedreno_drm_public.h" |
#include "freedreno/freedreno_screen.h" |
struct pipe_screen * |
fd_drm_screen_create(int fd) |
{ |
struct fd_device *dev = fd_device_new(fd); |
if (!dev) |
return NULL; |
return fd_screen_create(dev); |
} |
/contrib/sdk/sources/Mesa/src/gallium/winsys/i915/drm/Android.mk |
---|
0,0 → 1,41 |
# Mesa 3-D graphics library |
# |
# Copyright (C) 2010-2011 Chia-I Wu <olvaffe@gmail.com> |
# Copyright (C) 2010-2011 LunarG Inc. |
# |
# Permission is hereby granted, free of charge, to any person obtaining a |
# copy of this software and associated documentation files (the "Software"), |
# to deal in the Software without restriction, including without limitation |
# the rights to use, copy, modify, merge, publish, distribute, sublicense, |
# and/or sell copies of the Software, and to permit persons to whom the |
# Software is furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice shall be included |
# in all copies or substantial portions of the Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
# DEALINGS IN THE SOFTWARE. |
LOCAL_PATH := $(call my-dir) |
# get C_SOURCES |
include $(LOCAL_PATH)/Makefile.sources |
include $(CLEAR_VARS) |
LOCAL_SRC_FILES := $(C_SOURCES) |
LOCAL_C_INCLUDES := \ |
$(DRM_TOP) \ |
$(DRM_TOP)/include/drm \ |
$(DRM_TOP)/intel |
LOCAL_MODULE := libmesa_winsys_i915 |
include $(GALLIUM_COMMON_MK) |
include $(BUILD_STATIC_LIBRARY) |
/contrib/sdk/sources/Mesa/src/gallium/winsys/i915/drm/Makefile.am |
---|
0,0 → 1,34 |
# Copyright © 2012 Intel Corporation |
# |
# Permission is hereby granted, free of charge, to any person obtaining a |
# copy of this software and associated documentation files (the "Software"), |
# to deal in the Software without restriction, including without limitation |
# the rights to use, copy, modify, merge, publish, distribute, sublicense, |
# and/or sell copies of the Software, and to permit persons to whom the |
# Software is furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice (including the next |
# paragraph) shall be included in all copies or substantial portions of the |
# Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
# DEALINGS IN THE SOFTWARE. |
include Makefile.sources |
include $(top_srcdir)/src/gallium/Automake.inc |
AM_CFLAGS = \ |
-I$(top_srcdir)/include \ |
-I$(top_srcdir)/src/gallium/drivers \ |
$(GALLIUM_CFLAGS) \ |
$(INTEL_CFLAGS) |
noinst_LTLIBRARIES = libi915drm.la |
libi915drm_la_SOURCES = $(C_SOURCES) |
/contrib/sdk/sources/Mesa/src/gallium/winsys/i915/drm/Makefile.in |
---|
0,0 → 1,790 |
# Makefile.in generated by automake 1.14 from Makefile.am. |
# @configure_input@ |
# Copyright (C) 1994-2013 Free Software Foundation, Inc. |
# This Makefile.in is free software; the Free Software Foundation |
# gives unlimited permission to copy and/or distribute it, |
# with or without modifications, as long as this notice is preserved. |
# This program is distributed in the hope that it will be useful, |
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without |
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A |
# PARTICULAR PURPOSE. |
@SET_MAKE@ |
# Copyright © 2012 Intel Corporation |
# |
# Permission is hereby granted, free of charge, to any person obtaining a |
# copy of this software and associated documentation files (the "Software"), |
# to deal in the Software without restriction, including without limitation |
# the rights to use, copy, modify, merge, publish, distribute, sublicense, |
# and/or sell copies of the Software, and to permit persons to whom the |
# Software is furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice (including the next |
# paragraph) shall be included in all copies or substantial portions of the |
# Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
# DEALINGS IN THE SOFTWARE. |
VPATH = @srcdir@ |
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' |
am__make_running_with_option = \ |
case $${target_option-} in \ |
?) ;; \ |
*) echo "am__make_running_with_option: internal error: invalid" \ |
"target option '$${target_option-}' specified" >&2; \ |
exit 1;; \ |
esac; \ |
has_opt=no; \ |
sane_makeflags=$$MAKEFLAGS; \ |
if $(am__is_gnu_make); then \ |
sane_makeflags=$$MFLAGS; \ |
else \ |
case $$MAKEFLAGS in \ |
*\\[\ \ ]*) \ |
bs=\\; \ |
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ |
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ |
esac; \ |
fi; \ |
skip_next=no; \ |
strip_trailopt () \ |
{ \ |
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ |
}; \ |
for flg in $$sane_makeflags; do \ |
test $$skip_next = yes && { skip_next=no; continue; }; \ |
case $$flg in \ |
*=*|--*) continue;; \ |
-*I) strip_trailopt 'I'; skip_next=yes;; \ |
-*I?*) strip_trailopt 'I';; \ |
-*O) strip_trailopt 'O'; skip_next=yes;; \ |
-*O?*) strip_trailopt 'O';; \ |
-*l) strip_trailopt 'l'; skip_next=yes;; \ |
-*l?*) strip_trailopt 'l';; \ |
-[dEDm]) skip_next=yes;; \ |
-[JT]) skip_next=yes;; \ |
esac; \ |
case $$flg in \ |
*$$target_option*) has_opt=yes; break;; \ |
esac; \ |
done; \ |
test $$has_opt = yes |
am__make_dryrun = (target_option=n; $(am__make_running_with_option)) |
am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) |
pkgdatadir = $(datadir)/@PACKAGE@ |
pkgincludedir = $(includedir)/@PACKAGE@ |
pkglibdir = $(libdir)/@PACKAGE@ |
pkglibexecdir = $(libexecdir)/@PACKAGE@ |
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd |
install_sh_DATA = $(install_sh) -c -m 644 |
install_sh_PROGRAM = $(install_sh) -c |
install_sh_SCRIPT = $(install_sh) -c |
INSTALL_HEADER = $(INSTALL_DATA) |
transform = $(program_transform_name) |
NORMAL_INSTALL = : |
PRE_INSTALL = : |
POST_INSTALL = : |
NORMAL_UNINSTALL = : |
PRE_UNINSTALL = : |
POST_UNINSTALL = : |
build_triplet = @build@ |
host_triplet = @host@ |
target_triplet = @target@ |
DIST_COMMON = $(srcdir)/Makefile.sources \ |
$(top_srcdir)/src/gallium/Automake.inc $(srcdir)/Makefile.in \ |
$(srcdir)/Makefile.am $(top_srcdir)/bin/depcomp |
subdir = src/gallium/winsys/i915/drm |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_prog_bison.m4 \ |
$(top_srcdir)/m4/ax_prog_cc_for_build.m4 \ |
$(top_srcdir)/m4/ax_prog_cxx_for_build.m4 \ |
$(top_srcdir)/m4/ax_prog_flex.m4 \ |
$(top_srcdir)/m4/ax_pthread.m4 \ |
$(top_srcdir)/m4/ax_python_module.m4 \ |
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ |
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ |
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac |
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
$(ACLOCAL_M4) |
mkinstalldirs = $(install_sh) -d |
CONFIG_CLEAN_FILES = |
CONFIG_CLEAN_VPATH_FILES = |
LTLIBRARIES = $(noinst_LTLIBRARIES) |
libi915drm_la_LIBADD = |
am__objects_1 = i915_drm_batchbuffer.lo i915_drm_buffer.lo \ |
i915_drm_fence.lo i915_drm_winsys.lo |
am_libi915drm_la_OBJECTS = $(am__objects_1) |
libi915drm_la_OBJECTS = $(am_libi915drm_la_OBJECTS) |
AM_V_lt = $(am__v_lt_@AM_V@) |
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) |
am__v_lt_0 = --silent |
am__v_lt_1 = |
AM_V_P = $(am__v_P_@AM_V@) |
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) |
am__v_P_0 = false |
am__v_P_1 = : |
AM_V_GEN = $(am__v_GEN_@AM_V@) |
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) |
am__v_GEN_0 = @echo " GEN " $@; |
am__v_GEN_1 = |
AM_V_at = $(am__v_at_@AM_V@) |
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) |
am__v_at_0 = @ |
am__v_at_1 = |
DEFAULT_INCLUDES = -I.@am__isrc@ |
depcomp = $(SHELL) $(top_srcdir)/bin/depcomp |
am__depfiles_maybe = depfiles |
am__mv = mv -f |
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ |
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) |
LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ |
$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ |
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ |
$(AM_CFLAGS) $(CFLAGS) |
AM_V_CC = $(am__v_CC_@AM_V@) |
am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) |
am__v_CC_0 = @echo " CC " $@; |
am__v_CC_1 = |
CCLD = $(CC) |
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ |
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ |
$(AM_LDFLAGS) $(LDFLAGS) -o $@ |
AM_V_CCLD = $(am__v_CCLD_@AM_V@) |
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) |
am__v_CCLD_0 = @echo " CCLD " $@; |
am__v_CCLD_1 = |
SOURCES = $(libi915drm_la_SOURCES) |
DIST_SOURCES = $(libi915drm_la_SOURCES) |
am__can_run_installinfo = \ |
case $$AM_UPDATE_INFO_DIR in \ |
n|no|NO) false;; \ |
*) (install-info --version) >/dev/null 2>&1;; \ |
esac |
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) |
# Read a list of newline-separated strings from the standard input, |
# and print each of them once, without duplicates. Input order is |
# *not* preserved. |
am__uniquify_input = $(AWK) '\ |
BEGIN { nonempty = 0; } \ |
{ items[$$0] = 1; nonempty = 1; } \ |
END { if (nonempty) { for (i in items) print i; }; } \ |
' |
# Make sure the list of sources is unique. This is necessary because, |
# e.g., the same source file might be shared among _SOURCES variables |
# for different programs/libraries. |
am__define_uniq_tagged_files = \ |
list='$(am__tagged_files)'; \ |
unique=`for i in $$list; do \ |
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ |
done | $(am__uniquify_input)` |
ETAGS = etags |
CTAGS = ctags |
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) |
ACLOCAL = @ACLOCAL@ |
AMTAR = @AMTAR@ |
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ |
AR = @AR@ |
AUTOCONF = @AUTOCONF@ |
AUTOHEADER = @AUTOHEADER@ |
AUTOMAKE = @AUTOMAKE@ |
AWK = @AWK@ |
BUILD_EXEEXT = @BUILD_EXEEXT@ |
BUILD_OBJEXT = @BUILD_OBJEXT@ |
CC = @CC@ |
CCAS = @CCAS@ |
CCASDEPMODE = @CCASDEPMODE@ |
CCASFLAGS = @CCASFLAGS@ |
CCDEPMODE = @CCDEPMODE@ |
CC_FOR_BUILD = @CC_FOR_BUILD@ |
CFLAGS = @CFLAGS@ |
CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ |
CLANG_RESOURCE_DIR = @CLANG_RESOURCE_DIR@ |
CLOCK_LIB = @CLOCK_LIB@ |
CPP = @CPP@ |
CPPFLAGS = @CPPFLAGS@ |
CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@ |
CPP_FOR_BUILD = @CPP_FOR_BUILD@ |
CXX = @CXX@ |
CXXCPP = @CXXCPP@ |
CXXCPPFLAGS_FOR_BUILD = @CXXCPPFLAGS_FOR_BUILD@ |
CXXCPP_FOR_BUILD = @CXXCPP_FOR_BUILD@ |
CXXDEPMODE = @CXXDEPMODE@ |
CXXFLAGS = @CXXFLAGS@ |
CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@ |
CXX_FOR_BUILD = @CXX_FOR_BUILD@ |
CYGPATH_W = @CYGPATH_W@ |
DEFINES = @DEFINES@ |
DEFINES_FOR_BUILD = @DEFINES_FOR_BUILD@ |
DEFS = @DEFS@ |
DEPDIR = @DEPDIR@ |
DLLTOOL = @DLLTOOL@ |
DLOPEN_LIBS = @DLOPEN_LIBS@ |
DRI2PROTO_CFLAGS = @DRI2PROTO_CFLAGS@ |
DRI2PROTO_LIBS = @DRI2PROTO_LIBS@ |
DRIGL_CFLAGS = @DRIGL_CFLAGS@ |
DRIGL_LIBS = @DRIGL_LIBS@ |
DRI_DRIVER_INSTALL_DIR = @DRI_DRIVER_INSTALL_DIR@ |
DRI_DRIVER_SEARCH_DIR = @DRI_DRIVER_SEARCH_DIR@ |
DRI_LIB_DEPS = @DRI_LIB_DEPS@ |
DRI_PC_REQ_PRIV = @DRI_PC_REQ_PRIV@ |
DSYMUTIL = @DSYMUTIL@ |
DUMPBIN = @DUMPBIN@ |
ECHO_C = @ECHO_C@ |
ECHO_N = @ECHO_N@ |
ECHO_T = @ECHO_T@ |
EGL_CFLAGS = @EGL_CFLAGS@ |
EGL_CLIENT_APIS = @EGL_CLIENT_APIS@ |
EGL_DRIVER_INSTALL_DIR = @EGL_DRIVER_INSTALL_DIR@ |
EGL_LIB_DEPS = @EGL_LIB_DEPS@ |
EGL_LIB_GLOB = @EGL_LIB_GLOB@ |
EGL_LIB_NAME = @EGL_LIB_NAME@ |
EGL_NATIVE_PLATFORM = @EGL_NATIVE_PLATFORM@ |
EGL_PLATFORMS = @EGL_PLATFORMS@ |
EGREP = @EGREP@ |
ELF_LIB = @ELF_LIB@ |
EXEEXT = @EXEEXT@ |
EXPAT_INCLUDES = @EXPAT_INCLUDES@ |
FGREP = @FGREP@ |
FREEDRENO_CFLAGS = @FREEDRENO_CFLAGS@ |
FREEDRENO_LIBS = @FREEDRENO_LIBS@ |
GALLIUM_DRI_LIB_DEPS = @GALLIUM_DRI_LIB_DEPS@ |
GALLIUM_PIPE_LOADER_DEFINES = @GALLIUM_PIPE_LOADER_DEFINES@ |
GALLIUM_PIPE_LOADER_LIBS = @GALLIUM_PIPE_LOADER_LIBS@ |
GALLIUM_PIPE_LOADER_XCB_CFLAGS = @GALLIUM_PIPE_LOADER_XCB_CFLAGS@ |
GALLIUM_PIPE_LOADER_XCB_LIBS = @GALLIUM_PIPE_LOADER_XCB_LIBS@ |
GBM_PC_LIB_PRIV = @GBM_PC_LIB_PRIV@ |
GBM_PC_REQ_PRIV = @GBM_PC_REQ_PRIV@ |
GLAPI_LIB_GLOB = @GLAPI_LIB_GLOB@ |
GLAPI_LIB_NAME = @GLAPI_LIB_NAME@ |
GLESv1_CM_LIB_DEPS = @GLESv1_CM_LIB_DEPS@ |
GLESv1_CM_LIB_GLOB = @GLESv1_CM_LIB_GLOB@ |
GLESv1_CM_LIB_NAME = @GLESv1_CM_LIB_NAME@ |
GLESv1_CM_PC_LIB_PRIV = @GLESv1_CM_PC_LIB_PRIV@ |
GLESv2_LIB_DEPS = @GLESv2_LIB_DEPS@ |
GLESv2_LIB_GLOB = @GLESv2_LIB_GLOB@ |
GLESv2_LIB_NAME = @GLESv2_LIB_NAME@ |
GLESv2_PC_LIB_PRIV = @GLESv2_PC_LIB_PRIV@ |
GLPROTO_CFLAGS = @GLPROTO_CFLAGS@ |
GLPROTO_LIBS = @GLPROTO_LIBS@ |
GLX_TLS = @GLX_TLS@ |
GL_LIB = @GL_LIB@ |
GL_LIB_DEPS = @GL_LIB_DEPS@ |
GL_LIB_GLOB = @GL_LIB_GLOB@ |
GL_LIB_NAME = @GL_LIB_NAME@ |
GL_PC_CFLAGS = @GL_PC_CFLAGS@ |
GL_PC_LIB_PRIV = @GL_PC_LIB_PRIV@ |
GL_PC_REQ_PRIV = @GL_PC_REQ_PRIV@ |
GREP = @GREP@ |
HAVE_XF86VIDMODE = @HAVE_XF86VIDMODE@ |
INDENT = @INDENT@ |
INDENT_FLAGS = @INDENT_FLAGS@ |
INSTALL = @INSTALL@ |
INSTALL_DATA = @INSTALL_DATA@ |
INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ |
INTEL_CFLAGS = @INTEL_CFLAGS@ |
INTEL_LIBS = @INTEL_LIBS@ |
LD = @LD@ |
LDFLAGS = @LDFLAGS@ |
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ |
LEX = @LEX@ |
LEXLIB = @LEXLIB@ |
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ |
LIBCLC_INCLUDEDIR = @LIBCLC_INCLUDEDIR@ |
LIBCLC_LIBEXECDIR = @LIBCLC_LIBEXECDIR@ |
LIBDRM_CFLAGS = @LIBDRM_CFLAGS@ |
LIBDRM_LIBS = @LIBDRM_LIBS@ |
LIBDRM_XORG_CFLAGS = @LIBDRM_XORG_CFLAGS@ |
LIBDRM_XORG_LIBS = @LIBDRM_XORG_LIBS@ |
LIBKMS_XORG_CFLAGS = @LIBKMS_XORG_CFLAGS@ |
LIBKMS_XORG_LIBS = @LIBKMS_XORG_LIBS@ |
LIBOBJS = @LIBOBJS@ |
LIBS = @LIBS@ |
LIBTOOL = @LIBTOOL@ |
LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ |
LIBUDEV_LIBS = @LIBUDEV_LIBS@ |
LIB_DIR = @LIB_DIR@ |
LIPO = @LIPO@ |
LLVM_BINDIR = @LLVM_BINDIR@ |
LLVM_CFLAGS = @LLVM_CFLAGS@ |
LLVM_CONFIG = @LLVM_CONFIG@ |
LLVM_CPPFLAGS = @LLVM_CPPFLAGS@ |
LLVM_CXXFLAGS = @LLVM_CXXFLAGS@ |
LLVM_INCLUDEDIR = @LLVM_INCLUDEDIR@ |
LLVM_LDFLAGS = @LLVM_LDFLAGS@ |
LLVM_LIBDIR = @LLVM_LIBDIR@ |
LLVM_LIBS = @LLVM_LIBS@ |
LLVM_VERSION = @LLVM_VERSION@ |
LN_S = @LN_S@ |
LTLIBOBJS = @LTLIBOBJS@ |
MAKE = @MAKE@ |
MAKEINFO = @MAKEINFO@ |
MANIFEST_TOOL = @MANIFEST_TOOL@ |
MESA_LLVM = @MESA_LLVM@ |
MKDIR_P = @MKDIR_P@ |
NM = @NM@ |
NMEDIT = @NMEDIT@ |
NOUVEAU_CFLAGS = @NOUVEAU_CFLAGS@ |
NOUVEAU_LIBS = @NOUVEAU_LIBS@ |
OBJDUMP = @OBJDUMP@ |
OBJEXT = @OBJEXT@ |
OPENCL_LIB_INSTALL_DIR = @OPENCL_LIB_INSTALL_DIR@ |
OSMESA_LIB = @OSMESA_LIB@ |
OSMESA_LIB_DEPS = @OSMESA_LIB_DEPS@ |
OSMESA_LIB_NAME = @OSMESA_LIB_NAME@ |
OSMESA_MESA_DEPS = @OSMESA_MESA_DEPS@ |
OSMESA_PC_LIB_PRIV = @OSMESA_PC_LIB_PRIV@ |
OSMESA_PC_REQ = @OSMESA_PC_REQ@ |
OSMESA_VERSION = @OSMESA_VERSION@ |
OTOOL = @OTOOL@ |
OTOOL64 = @OTOOL64@ |
PACKAGE = @PACKAGE@ |
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ |
PACKAGE_NAME = @PACKAGE_NAME@ |
PACKAGE_STRING = @PACKAGE_STRING@ |
PACKAGE_TARNAME = @PACKAGE_TARNAME@ |
PACKAGE_URL = @PACKAGE_URL@ |
PACKAGE_VERSION = @PACKAGE_VERSION@ |
PATH_SEPARATOR = @PATH_SEPARATOR@ |
PERL = @PERL@ |
PKG_CONFIG = @PKG_CONFIG@ |
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ |
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ |
POSIX_SHELL = @POSIX_SHELL@ |
PTHREAD_CC = @PTHREAD_CC@ |
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ |
PTHREAD_LIBS = @PTHREAD_LIBS@ |
PYTHON2 = @PYTHON2@ |
RADEON_CFLAGS = @RADEON_CFLAGS@ |
RADEON_LIBS = @RADEON_LIBS@ |
RANLIB = @RANLIB@ |
SED = @SED@ |
SELINUX_LIBS = @SELINUX_LIBS@ |
SET_MAKE = @SET_MAKE@ |
SHELL = @SHELL@ |
STRIP = @STRIP@ |
VDPAU_CFLAGS = @VDPAU_CFLAGS@ |
VDPAU_LIBS = @VDPAU_LIBS@ |
VDPAU_LIB_INSTALL_DIR = @VDPAU_LIB_INSTALL_DIR@ |
VDPAU_MAJOR = @VDPAU_MAJOR@ |
VDPAU_MINOR = @VDPAU_MINOR@ |
VERSION = @VERSION@ |
VG_LIB_DEPS = @VG_LIB_DEPS@ |
VG_LIB_GLOB = @VG_LIB_GLOB@ |
VG_LIB_NAME = @VG_LIB_NAME@ |
VG_PC_LIB_PRIV = @VG_PC_LIB_PRIV@ |
VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@ |
VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@ |
WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ |
WAYLAND_LIBS = @WAYLAND_LIBS@ |
WAYLAND_SCANNER = @WAYLAND_SCANNER@ |
X11_INCLUDES = @X11_INCLUDES@ |
XA_MAJOR = @XA_MAJOR@ |
XA_MINOR = @XA_MINOR@ |
XA_TINY = @XA_TINY@ |
XA_VERSION = @XA_VERSION@ |
XCB_DRI2_CFLAGS = @XCB_DRI2_CFLAGS@ |
XCB_DRI2_LIBS = @XCB_DRI2_LIBS@ |
XEXT_CFLAGS = @XEXT_CFLAGS@ |
XEXT_LIBS = @XEXT_LIBS@ |
XF86VIDMODE_CFLAGS = @XF86VIDMODE_CFLAGS@ |
XF86VIDMODE_LIBS = @XF86VIDMODE_LIBS@ |
XLIBGL_CFLAGS = @XLIBGL_CFLAGS@ |
XLIBGL_LIBS = @XLIBGL_LIBS@ |
XORG_CFLAGS = @XORG_CFLAGS@ |
XORG_DRIVER_INSTALL_DIR = @XORG_DRIVER_INSTALL_DIR@ |
XORG_LIBS = @XORG_LIBS@ |
XVMC_CFLAGS = @XVMC_CFLAGS@ |
XVMC_LIBS = @XVMC_LIBS@ |
XVMC_LIB_INSTALL_DIR = @XVMC_LIB_INSTALL_DIR@ |
XVMC_MAJOR = @XVMC_MAJOR@ |
XVMC_MINOR = @XVMC_MINOR@ |
YACC = @YACC@ |
YFLAGS = @YFLAGS@ |
abs_builddir = @abs_builddir@ |
abs_srcdir = @abs_srcdir@ |
abs_top_builddir = @abs_top_builddir@ |
abs_top_srcdir = @abs_top_srcdir@ |
ac_ct_AR = @ac_ct_AR@ |
ac_ct_CC = @ac_ct_CC@ |
ac_ct_CC_FOR_BUILD = @ac_ct_CC_FOR_BUILD@ |
ac_ct_CXX = @ac_ct_CXX@ |
ac_ct_CXX_FOR_BUILD = @ac_ct_CXX_FOR_BUILD@ |
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ |
am__include = @am__include@ |
am__leading_dot = @am__leading_dot@ |
am__quote = @am__quote@ |
am__tar = @am__tar@ |
am__untar = @am__untar@ |
ax_pthread_config = @ax_pthread_config@ |
bindir = @bindir@ |
build = @build@ |
build_alias = @build_alias@ |
build_cpu = @build_cpu@ |
build_os = @build_os@ |
build_vendor = @build_vendor@ |
builddir = @builddir@ |
datadir = @datadir@ |
datarootdir = @datarootdir@ |
docdir = @docdir@ |
dvidir = @dvidir@ |
exec_prefix = @exec_prefix@ |
host = @host@ |
host_alias = @host_alias@ |
host_cpu = @host_cpu@ |
host_os = @host_os@ |
host_vendor = @host_vendor@ |
htmldir = @htmldir@ |
includedir = @includedir@ |
infodir = @infodir@ |
install_sh = @install_sh@ |
libdir = @libdir@ |
libexecdir = @libexecdir@ |
localedir = @localedir@ |
localstatedir = @localstatedir@ |
mandir = @mandir@ |
mkdir_p = @mkdir_p@ |
oldincludedir = @oldincludedir@ |
pdfdir = @pdfdir@ |
prefix = @prefix@ |
program_transform_name = @program_transform_name@ |
psdir = @psdir@ |
sbindir = @sbindir@ |
sharedstatedir = @sharedstatedir@ |
srcdir = @srcdir@ |
sysconfdir = @sysconfdir@ |
target = @target@ |
target_alias = @target_alias@ |
target_cpu = @target_cpu@ |
target_os = @target_os@ |
target_vendor = @target_vendor@ |
top_build_prefix = @top_build_prefix@ |
top_builddir = @top_builddir@ |
top_srcdir = @top_srcdir@ |
C_SOURCES := \ |
i915_drm_batchbuffer.c \ |
i915_drm_buffer.c \ |
i915_drm_fence.c \ |
i915_drm_winsys.c |
GALLIUM_CFLAGS = \ |
-I$(top_srcdir)/include \ |
-I$(top_srcdir)/src/gallium/include \ |
-I$(top_srcdir)/src/gallium/auxiliary \ |
$(DEFINES) |
AM_CFLAGS = \ |
-I$(top_srcdir)/include \ |
-I$(top_srcdir)/src/gallium/drivers \ |
$(GALLIUM_CFLAGS) \ |
$(INTEL_CFLAGS) |
noinst_LTLIBRARIES = libi915drm.la |
libi915drm_la_SOURCES = $(C_SOURCES) |
all: all-am |
.SUFFIXES: |
.SUFFIXES: .c .lo .o .obj |
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/Makefile.sources $(top_srcdir)/src/gallium/Automake.inc $(am__configure_deps) |
@for dep in $?; do \ |
case '$(am__configure_deps)' in \ |
*$$dep*) \ |
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ |
&& { if test -f $@; then exit 0; else break; fi; }; \ |
exit 1;; \ |
esac; \ |
done; \ |
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/gallium/winsys/i915/drm/Makefile'; \ |
$(am__cd) $(top_srcdir) && \ |
$(AUTOMAKE) --foreign src/gallium/winsys/i915/drm/Makefile |
.PRECIOUS: Makefile |
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
@case '$?' in \ |
*config.status*) \ |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ |
*) \ |
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ |
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ |
esac; |
$(srcdir)/Makefile.sources $(top_srcdir)/src/gallium/Automake.inc: |
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(top_srcdir)/configure: $(am__configure_deps) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(ACLOCAL_M4): $(am__aclocal_m4_deps) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(am__aclocal_m4_deps): |
clean-noinstLTLIBRARIES: |
-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) |
@list='$(noinst_LTLIBRARIES)'; \ |
locs=`for p in $$list; do echo $$p; done | \ |
sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ |
sort -u`; \ |
test -z "$$locs" || { \ |
echo rm -f $${locs}; \ |
rm -f $${locs}; \ |
} |
libi915drm.la: $(libi915drm_la_OBJECTS) $(libi915drm_la_DEPENDENCIES) $(EXTRA_libi915drm_la_DEPENDENCIES) |
$(AM_V_CCLD)$(LINK) $(libi915drm_la_OBJECTS) $(libi915drm_la_LIBADD) $(LIBS) |
mostlyclean-compile: |
-rm -f *.$(OBJEXT) |
distclean-compile: |
-rm -f *.tab.c |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i915_drm_batchbuffer.Plo@am__quote@ |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i915_drm_buffer.Plo@am__quote@ |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i915_drm_fence.Plo@am__quote@ |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i915_drm_winsys.Plo@am__quote@ |
.c.o: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< |
.c.obj: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` |
.c.lo: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< |
mostlyclean-libtool: |
-rm -f *.lo |
clean-libtool: |
-rm -rf .libs _libs |
ID: $(am__tagged_files) |
$(am__define_uniq_tagged_files); mkid -fID $$unique |
tags: tags-am |
TAGS: tags |
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
set x; \ |
here=`pwd`; \ |
$(am__define_uniq_tagged_files); \ |
shift; \ |
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ |
test -n "$$unique" || unique=$$empty_fix; \ |
if test $$# -gt 0; then \ |
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
"$$@" $$unique; \ |
else \ |
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
$$unique; \ |
fi; \ |
fi |
ctags: ctags-am |
CTAGS: ctags |
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
$(am__define_uniq_tagged_files); \ |
test -z "$(CTAGS_ARGS)$$unique" \ |
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ |
$$unique |
GTAGS: |
here=`$(am__cd) $(top_builddir) && pwd` \ |
&& $(am__cd) $(top_srcdir) \ |
&& gtags -i $(GTAGS_ARGS) "$$here" |
cscopelist: cscopelist-am |
cscopelist-am: $(am__tagged_files) |
list='$(am__tagged_files)'; \ |
case "$(srcdir)" in \ |
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ |
*) sdir=$(subdir)/$(srcdir) ;; \ |
esac; \ |
for i in $$list; do \ |
if test -f "$$i"; then \ |
echo "$(subdir)/$$i"; \ |
else \ |
echo "$$sdir/$$i"; \ |
fi; \ |
done >> $(top_builddir)/cscope.files |
distclean-tags: |
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |
distdir: $(DISTFILES) |
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
list='$(DISTFILES)'; \ |
dist_files=`for file in $$list; do echo $$file; done | \ |
sed -e "s|^$$srcdirstrip/||;t" \ |
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ |
case $$dist_files in \ |
*/*) $(MKDIR_P) `echo "$$dist_files" | \ |
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ |
sort -u` ;; \ |
esac; \ |
for file in $$dist_files; do \ |
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ |
if test -d $$d/$$file; then \ |
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ |
if test -d "$(distdir)/$$file"; then \ |
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |
fi; \ |
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ |
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ |
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |
fi; \ |
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ |
else \ |
test -f "$(distdir)/$$file" \ |
|| cp -p $$d/$$file "$(distdir)/$$file" \ |
|| exit 1; \ |
fi; \ |
done |
check-am: all-am |
check: check-am |
all-am: Makefile $(LTLIBRARIES) |
installdirs: |
install: install-am |
install-exec: install-exec-am |
install-data: install-data-am |
uninstall: uninstall-am |
install-am: all-am |
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am |
installcheck: installcheck-am |
install-strip: |
if test -z '$(STRIP)'; then \ |
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |
install; \ |
else \ |
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ |
fi |
mostlyclean-generic: |
clean-generic: |
distclean-generic: |
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) |
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) |
maintainer-clean-generic: |
@echo "This command is intended for maintainers to use" |
@echo "it deletes files that may require special tools to rebuild." |
clean: clean-am |
clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ |
mostlyclean-am |
distclean: distclean-am |
-rm -rf ./$(DEPDIR) |
-rm -f Makefile |
distclean-am: clean-am distclean-compile distclean-generic \ |
distclean-tags |
dvi: dvi-am |
dvi-am: |
html: html-am |
html-am: |
info: info-am |
info-am: |
install-data-am: |
install-dvi: install-dvi-am |
install-dvi-am: |
install-exec-am: |
install-html: install-html-am |
install-html-am: |
install-info: install-info-am |
install-info-am: |
install-man: |
install-pdf: install-pdf-am |
install-pdf-am: |
install-ps: install-ps-am |
install-ps-am: |
installcheck-am: |
maintainer-clean: maintainer-clean-am |
-rm -rf ./$(DEPDIR) |
-rm -f Makefile |
maintainer-clean-am: distclean-am maintainer-clean-generic |
mostlyclean: mostlyclean-am |
mostlyclean-am: mostlyclean-compile mostlyclean-generic \ |
mostlyclean-libtool |
pdf: pdf-am |
pdf-am: |
ps: ps-am |
ps-am: |
uninstall-am: |
.MAKE: install-am install-strip |
.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ |
clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ |
ctags-am distclean distclean-compile distclean-generic \ |
distclean-libtool distclean-tags distdir dvi dvi-am html \ |
html-am info info-am install install-am install-data \ |
install-data-am install-dvi install-dvi-am install-exec \ |
install-exec-am install-html install-html-am install-info \ |
install-info-am install-man install-pdf install-pdf-am \ |
install-ps install-ps-am install-strip installcheck \ |
installcheck-am installdirs maintainer-clean \ |
maintainer-clean-generic mostlyclean mostlyclean-compile \ |
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ |
tags tags-am uninstall uninstall-am |
# Tell versions [3.59,3.63) of GNU make to not export all variables. |
# Otherwise a system limit (for SysV at least) may be exceeded. |
.NOEXPORT: |
/contrib/sdk/sources/Mesa/src/gallium/winsys/i915/drm/Makefile.sources |
---|
0,0 → 1,5 |
C_SOURCES := \ |
i915_drm_batchbuffer.c \ |
i915_drm_buffer.c \ |
i915_drm_fence.c \ |
i915_drm_winsys.c |
/contrib/sdk/sources/Mesa/src/gallium/winsys/i915/drm/SConscript |
---|
0,0 → 1,14 |
Import('*') |
env = env.Clone() |
env.PkgUseModules('DRM') |
i915drm_sources = env.ParseSourceList('Makefile.sources', 'C_SOURCES') |
i915drm = env.ConvenienceLibrary( |
target ='i915drm', |
source = i915drm_sources, |
) |
Export('i915drm') |
/contrib/sdk/sources/Mesa/src/gallium/winsys/i915/drm/i915_drm_batchbuffer.c |
---|
0,0 → 1,237 |
#include "i915_drm_winsys.h" |
#include "util/u_memory.h" |
#include "i915_drm.h" |
#include "i915/i915_debug.h" |
#include <xf86drm.h> |
#include <stdio.h> |
#define BATCH_RESERVED 16 |
#define INTEL_DEFAULT_RELOCS 100 |
#define INTEL_MAX_RELOCS 400 |
#define INTEL_BATCH_NO_CLIPRECTS 0x1 |
#define INTEL_BATCH_CLIPRECTS 0x2 |
#undef INTEL_RUN_SYNC |
struct i915_drm_batchbuffer |
{ |
struct i915_winsys_batchbuffer base; |
size_t actual_size; |
drm_intel_bo *bo; |
}; |
static INLINE struct i915_drm_batchbuffer * |
i915_drm_batchbuffer(struct i915_winsys_batchbuffer *batch) |
{ |
return (struct i915_drm_batchbuffer *)batch; |
} |
static void |
i915_drm_batchbuffer_reset(struct i915_drm_batchbuffer *batch) |
{ |
struct i915_drm_winsys *idws = i915_drm_winsys(batch->base.iws); |
if (batch->bo) |
drm_intel_bo_unreference(batch->bo); |
batch->bo = drm_intel_bo_alloc(idws->gem_manager, |
"gallium3d_batchbuffer", |
batch->actual_size, |
4096); |
memset(batch->base.map, 0, batch->actual_size); |
batch->base.ptr = batch->base.map; |
batch->base.size = batch->actual_size - BATCH_RESERVED; |
batch->base.relocs = 0; |
} |
static struct i915_winsys_batchbuffer * |
i915_drm_batchbuffer_create(struct i915_winsys *iws) |
{ |
struct i915_drm_winsys *idws = i915_drm_winsys(iws); |
struct i915_drm_batchbuffer *batch = CALLOC_STRUCT(i915_drm_batchbuffer); |
batch->actual_size = idws->max_batch_size; |
batch->base.map = MALLOC(batch->actual_size); |
batch->base.ptr = NULL; |
batch->base.size = 0; |
batch->base.relocs = 0; |
batch->base.iws = iws; |
i915_drm_batchbuffer_reset(batch); |
return &batch->base; |
} |
static boolean |
i915_drm_batchbuffer_validate_buffers(struct i915_winsys_batchbuffer *batch, |
struct i915_winsys_buffer **buffer, |
int num_of_buffers) |
{ |
struct i915_drm_batchbuffer *drm_batch = i915_drm_batchbuffer(batch); |
drm_intel_bo *bos[num_of_buffers + 1]; |
int i, ret; |
bos[0] = drm_batch->bo; |
for (i = 0; i < num_of_buffers; i++) |
bos[i+1] = intel_bo(buffer[i]); |
ret = drm_intel_bufmgr_check_aperture_space(bos, num_of_buffers); |
if (ret != 0) |
return FALSE; |
return TRUE; |
} |
static int |
i915_drm_batchbuffer_reloc(struct i915_winsys_batchbuffer *ibatch, |
struct i915_winsys_buffer *buffer, |
enum i915_winsys_buffer_usage usage, |
unsigned pre_add, boolean fenced) |
{ |
struct i915_drm_batchbuffer *batch = i915_drm_batchbuffer(ibatch); |
unsigned write_domain = 0; |
unsigned read_domain = 0; |
unsigned offset; |
int ret = 0; |
switch (usage) { |
case I915_USAGE_SAMPLER: |
write_domain = 0; |
read_domain = I915_GEM_DOMAIN_SAMPLER; |
break; |
case I915_USAGE_RENDER: |
write_domain = I915_GEM_DOMAIN_RENDER; |
read_domain = I915_GEM_DOMAIN_RENDER; |
break; |
case I915_USAGE_2D_TARGET: |
write_domain = I915_GEM_DOMAIN_RENDER; |
read_domain = I915_GEM_DOMAIN_RENDER; |
break; |
case I915_USAGE_2D_SOURCE: |
write_domain = 0; |
read_domain = I915_GEM_DOMAIN_RENDER; |
break; |
case I915_USAGE_VERTEX: |
write_domain = 0; |
read_domain = I915_GEM_DOMAIN_VERTEX; |
break; |
default: |
assert(0); |
return -1; |
} |
offset = (unsigned)(batch->base.ptr - batch->base.map); |
if (fenced) |
ret = drm_intel_bo_emit_reloc_fence(batch->bo, offset, |
intel_bo(buffer), pre_add, |
read_domain, |
write_domain); |
else |
ret = drm_intel_bo_emit_reloc(batch->bo, offset, |
intel_bo(buffer), pre_add, |
read_domain, |
write_domain); |
((uint32_t*)batch->base.ptr)[0] = intel_bo(buffer)->offset + pre_add; |
batch->base.ptr += 4; |
if (!ret) |
batch->base.relocs++; |
return ret; |
} |
static void |
i915_drm_throttle(struct i915_drm_winsys *idws) |
{ |
drmIoctl(idws->fd, DRM_IOCTL_I915_GEM_THROTTLE, NULL); |
} |
static void |
i915_drm_batchbuffer_flush(struct i915_winsys_batchbuffer *ibatch, |
struct pipe_fence_handle **fence, |
enum i915_winsys_flush_flags flags) |
{ |
struct i915_drm_batchbuffer *batch = i915_drm_batchbuffer(ibatch); |
unsigned used; |
int ret; |
/* MI_BATCH_BUFFER_END */ |
i915_winsys_batchbuffer_dword_unchecked(ibatch, (0xA<<23)); |
used = batch->base.ptr - batch->base.map; |
if (used & 4) { |
/* MI_NOOP */ |
i915_winsys_batchbuffer_dword_unchecked(ibatch, 0); |
used += 4; |
} |
/* Do the sending to HW */ |
ret = drm_intel_bo_subdata(batch->bo, 0, used, batch->base.map); |
if (ret == 0 && i915_drm_winsys(ibatch->iws)->send_cmd) |
ret = drm_intel_bo_exec(batch->bo, used, NULL, 0, 0); |
if (flags & I915_FLUSH_END_OF_FRAME) |
i915_drm_throttle(i915_drm_winsys(ibatch->iws)); |
if (ret != 0 || i915_drm_winsys(ibatch->iws)->dump_cmd) { |
i915_dump_batchbuffer(ibatch); |
assert(ret == 0); |
} |
if (i915_drm_winsys(ibatch->iws)->dump_raw_file) { |
FILE *file = fopen(i915_drm_winsys(ibatch->iws)->dump_raw_file, "a"); |
if (file) { |
fwrite(batch->base.map, used, 1, file); |
fclose(file); |
} |
} |
#ifdef INTEL_RUN_SYNC |
drm_intel_bo_wait_rendering(batch->bo); |
#endif |
if (fence) { |
ibatch->iws->fence_reference(ibatch->iws, fence, NULL); |
#ifdef INTEL_RUN_SYNC |
/* we run synced to GPU so just pass null */ |
(*fence) = i915_drm_fence_create(NULL); |
#else |
(*fence) = i915_drm_fence_create(batch->bo); |
#endif |
} |
i915_drm_batchbuffer_reset(batch); |
} |
static void |
i915_drm_batchbuffer_destroy(struct i915_winsys_batchbuffer *ibatch) |
{ |
struct i915_drm_batchbuffer *batch = i915_drm_batchbuffer(ibatch); |
if (batch->bo) |
drm_intel_bo_unreference(batch->bo); |
FREE(batch->base.map); |
FREE(batch); |
} |
void i915_drm_winsys_init_batchbuffer_functions(struct i915_drm_winsys *idws) |
{ |
idws->base.batchbuffer_create = i915_drm_batchbuffer_create; |
idws->base.validate_buffers = i915_drm_batchbuffer_validate_buffers; |
idws->base.batchbuffer_reloc = i915_drm_batchbuffer_reloc; |
idws->base.batchbuffer_flush = i915_drm_batchbuffer_flush; |
idws->base.batchbuffer_destroy = i915_drm_batchbuffer_destroy; |
} |
/contrib/sdk/sources/Mesa/src/gallium/winsys/i915/drm/i915_drm_buffer.c |
---|
0,0 → 1,239 |
#include "state_tracker/drm_driver.h" |
#include "i915_drm_winsys.h" |
#include "util/u_memory.h" |
#include "i915_drm.h" |
static char *i915_drm_type_to_name(enum i915_winsys_buffer_type type) |
{ |
char *name; |
if (type == I915_NEW_TEXTURE) { |
name = "gallium3d_texture"; |
} else if (type == I915_NEW_VERTEX) { |
name = "gallium3d_vertex"; |
} else if (type == I915_NEW_SCANOUT) { |
name = "gallium3d_scanout"; |
} else { |
assert(0); |
name = "gallium3d_unknown"; |
} |
return name; |
} |
static struct i915_winsys_buffer * |
i915_drm_buffer_create(struct i915_winsys *iws, |
unsigned size, |
enum i915_winsys_buffer_type type) |
{ |
struct i915_drm_buffer *buf = CALLOC_STRUCT(i915_drm_buffer); |
struct i915_drm_winsys *idws = i915_drm_winsys(iws); |
if (!buf) |
return NULL; |
buf->magic = 0xDEAD1337; |
buf->flinked = FALSE; |
buf->flink = 0; |
buf->bo = drm_intel_bo_alloc(idws->gem_manager, |
i915_drm_type_to_name(type), size, 0); |
if (!buf->bo) |
goto err; |
return (struct i915_winsys_buffer *)buf; |
err: |
assert(0); |
FREE(buf); |
return NULL; |
} |
static struct i915_winsys_buffer * |
i915_drm_buffer_create_tiled(struct i915_winsys *iws, |
unsigned *stride, unsigned height, |
enum i915_winsys_buffer_tile *tiling, |
enum i915_winsys_buffer_type type) |
{ |
struct i915_drm_buffer *buf = CALLOC_STRUCT(i915_drm_buffer); |
struct i915_drm_winsys *idws = i915_drm_winsys(iws); |
unsigned long pitch = 0; |
uint32_t tiling_mode = *tiling; |
if (!buf) |
return NULL; |
buf->magic = 0xDEAD1337; |
buf->flinked = FALSE; |
buf->flink = 0; |
buf->bo = drm_intel_bo_alloc_tiled(idws->gem_manager, |
i915_drm_type_to_name(type), |
*stride, height, 1, |
&tiling_mode, &pitch, 0); |
if (!buf->bo) |
goto err; |
*stride = pitch; |
*tiling = tiling_mode; |
return (struct i915_winsys_buffer *)buf; |
err: |
assert(0); |
FREE(buf); |
return NULL; |
} |
static struct i915_winsys_buffer * |
i915_drm_buffer_from_handle(struct i915_winsys *iws, |
struct winsys_handle *whandle, |
enum i915_winsys_buffer_tile *tiling, |
unsigned *stride) |
{ |
struct i915_drm_winsys *idws = i915_drm_winsys(iws); |
struct i915_drm_buffer *buf = CALLOC_STRUCT(i915_drm_buffer); |
uint32_t tile = 0, swizzle = 0; |
if (!buf) |
return NULL; |
buf->magic = 0xDEAD1337; |
buf->bo = drm_intel_bo_gem_create_from_name(idws->gem_manager, "gallium3d_from_handle", whandle->handle); |
buf->flinked = TRUE; |
buf->flink = whandle->handle; |
if (!buf->bo) |
goto err; |
drm_intel_bo_get_tiling(buf->bo, &tile, &swizzle); |
*stride = whandle->stride; |
*tiling = tile; |
return (struct i915_winsys_buffer *)buf; |
err: |
FREE(buf); |
return NULL; |
} |
static boolean |
i915_drm_buffer_get_handle(struct i915_winsys *iws, |
struct i915_winsys_buffer *buffer, |
struct winsys_handle *whandle, |
unsigned stride) |
{ |
struct i915_drm_buffer *buf = i915_drm_buffer(buffer); |
if (whandle->type == DRM_API_HANDLE_TYPE_SHARED) { |
if (!buf->flinked) { |
if (drm_intel_bo_flink(buf->bo, &buf->flink)) |
return FALSE; |
buf->flinked = TRUE; |
} |
whandle->handle = buf->flink; |
} else if (whandle->type == DRM_API_HANDLE_TYPE_KMS) { |
whandle->handle = buf->bo->handle; |
} else { |
assert(!"unknown usage"); |
return FALSE; |
} |
whandle->stride = stride; |
return TRUE; |
} |
static void * |
i915_drm_buffer_map(struct i915_winsys *iws, |
struct i915_winsys_buffer *buffer, |
boolean write) |
{ |
struct i915_drm_buffer *buf = i915_drm_buffer(buffer); |
drm_intel_bo *bo = intel_bo(buffer); |
int ret = 0; |
assert(bo); |
if (buf->map_count) |
goto out; |
ret = drm_intel_gem_bo_map_gtt(bo); |
buf->ptr = bo->virtual; |
assert(ret == 0); |
out: |
if (ret) |
return NULL; |
buf->map_count++; |
return buf->ptr; |
} |
static void |
i915_drm_buffer_unmap(struct i915_winsys *iws, |
struct i915_winsys_buffer *buffer) |
{ |
struct i915_drm_buffer *buf = i915_drm_buffer(buffer); |
if (--buf->map_count) |
return; |
drm_intel_gem_bo_unmap_gtt(intel_bo(buffer)); |
} |
static int |
i915_drm_buffer_write(struct i915_winsys *iws, |
struct i915_winsys_buffer *buffer, |
size_t offset, |
size_t size, |
const void *data) |
{ |
struct i915_drm_buffer *buf = i915_drm_buffer(buffer); |
return drm_intel_bo_subdata(buf->bo, offset, size, (void*)data); |
} |
static void |
i915_drm_buffer_destroy(struct i915_winsys *iws, |
struct i915_winsys_buffer *buffer) |
{ |
drm_intel_bo_unreference(intel_bo(buffer)); |
#ifdef DEBUG |
i915_drm_buffer(buffer)->magic = 0; |
i915_drm_buffer(buffer)->bo = NULL; |
#endif |
FREE(buffer); |
} |
static boolean |
i915_drm_buffer_is_busy(struct i915_winsys *iws, |
struct i915_winsys_buffer *buffer) |
{ |
struct i915_drm_buffer* i915_buffer = i915_drm_buffer(buffer); |
if (!i915_buffer) |
return FALSE; |
return drm_intel_bo_busy(i915_buffer->bo); |
} |
void |
i915_drm_winsys_init_buffer_functions(struct i915_drm_winsys *idws) |
{ |
idws->base.buffer_create = i915_drm_buffer_create; |
idws->base.buffer_create_tiled = i915_drm_buffer_create_tiled; |
idws->base.buffer_from_handle = i915_drm_buffer_from_handle; |
idws->base.buffer_get_handle = i915_drm_buffer_get_handle; |
idws->base.buffer_map = i915_drm_buffer_map; |
idws->base.buffer_unmap = i915_drm_buffer_unmap; |
idws->base.buffer_write = i915_drm_buffer_write; |
idws->base.buffer_destroy = i915_drm_buffer_destroy; |
idws->base.buffer_is_busy = i915_drm_buffer_is_busy; |
} |
/contrib/sdk/sources/Mesa/src/gallium/winsys/i915/drm/i915_drm_fence.c |
---|
0,0 → 1,87 |
#include "i915_drm_winsys.h" |
#include "util/u_memory.h" |
#include "util/u_atomic.h" |
#include "util/u_inlines.h" |
/** |
* Because gem does not have fence's we have to create our own fences. |
* |
* They work by keeping the batchbuffer around and checking if that has |
* been idled. If bo is NULL fence has expired. |
*/ |
struct i915_drm_fence |
{ |
struct pipe_reference reference; |
drm_intel_bo *bo; |
}; |
struct pipe_fence_handle * |
i915_drm_fence_create(drm_intel_bo *bo) |
{ |
struct i915_drm_fence *fence = CALLOC_STRUCT(i915_drm_fence); |
pipe_reference_init(&fence->reference, 1); |
/* bo is null if fence already expired */ |
if (bo) { |
drm_intel_bo_reference(bo); |
fence->bo = bo; |
} |
return (struct pipe_fence_handle *)fence; |
} |
static void |
i915_drm_fence_reference(struct i915_winsys *iws, |
struct pipe_fence_handle **ptr, |
struct pipe_fence_handle *fence) |
{ |
struct i915_drm_fence *old = (struct i915_drm_fence *)*ptr; |
struct i915_drm_fence *f = (struct i915_drm_fence *)fence; |
if (pipe_reference(&((struct i915_drm_fence *)(*ptr))->reference, &f->reference)) { |
if (old->bo) |
drm_intel_bo_unreference(old->bo); |
FREE(old); |
} |
*ptr = fence; |
} |
static int |
i915_drm_fence_signalled(struct i915_winsys *iws, |
struct pipe_fence_handle *fence) |
{ |
struct i915_drm_fence *f = (struct i915_drm_fence *)fence; |
/* fence already expired */ |
if (!f->bo) |
return 1; |
return !drm_intel_bo_busy(f->bo); |
} |
static int |
i915_drm_fence_finish(struct i915_winsys *iws, |
struct pipe_fence_handle *fence) |
{ |
struct i915_drm_fence *f = (struct i915_drm_fence *)fence; |
/* fence already expired */ |
if (!f->bo) |
return 0; |
drm_intel_bo_wait_rendering(f->bo); |
drm_intel_bo_unreference(f->bo); |
f->bo = NULL; |
return 0; |
} |
void |
i915_drm_winsys_init_fence_functions(struct i915_drm_winsys *idws) |
{ |
idws->base.fence_reference = i915_drm_fence_reference; |
idws->base.fence_signalled = i915_drm_fence_signalled; |
idws->base.fence_finish = i915_drm_fence_finish; |
} |
/contrib/sdk/sources/Mesa/src/gallium/winsys/i915/drm/i915_drm_public.h |
---|
0,0 → 1,9 |
#ifndef I915_DRM_PUBLIC_H |
#define I915_DRM_PUBLIC_H |
struct i915_winsys; |
struct i915_winsys * i915_drm_winsys_create(int drmFD); |
#endif |
/contrib/sdk/sources/Mesa/src/gallium/winsys/i915/drm/i915_drm_winsys.c |
---|
0,0 → 1,72 |
#include <stdio.h> |
#include <sys/ioctl.h> |
#include "i915_drm.h" |
#include "state_tracker/drm_driver.h" |
#include "i915_drm_winsys.h" |
#include "i915_drm_public.h" |
#include "util/u_memory.h" |
/* |
* Helper functions |
*/ |
static void |
i915_drm_get_device_id(int fd, unsigned int *device_id) |
{ |
int ret; |
struct drm_i915_getparam gp; |
gp.param = I915_PARAM_CHIPSET_ID; |
gp.value = (int *)device_id; |
ret = ioctl(fd, DRM_IOCTL_I915_GETPARAM, &gp, sizeof(gp)); |
assert(ret == 0); |
} |
static void |
i915_drm_winsys_destroy(struct i915_winsys *iws) |
{ |
struct i915_drm_winsys *idws = i915_drm_winsys(iws); |
drm_intel_bufmgr_destroy(idws->gem_manager); |
FREE(idws); |
} |
struct i915_winsys * |
i915_drm_winsys_create(int drmFD) |
{ |
struct i915_drm_winsys *idws; |
unsigned int deviceID; |
idws = CALLOC_STRUCT(i915_drm_winsys); |
if (!idws) |
return NULL; |
i915_drm_get_device_id(drmFD, &deviceID); |
i915_drm_winsys_init_batchbuffer_functions(idws); |
i915_drm_winsys_init_buffer_functions(idws); |
i915_drm_winsys_init_fence_functions(idws); |
idws->fd = drmFD; |
idws->base.pci_id = deviceID; |
idws->max_batch_size = 1 * 4096; |
idws->base.destroy = i915_drm_winsys_destroy; |
idws->gem_manager = drm_intel_bufmgr_gem_init(idws->fd, idws->max_batch_size); |
drm_intel_bufmgr_gem_enable_reuse(idws->gem_manager); |
drm_intel_bufmgr_gem_enable_fenced_relocs(idws->gem_manager); |
idws->dump_cmd = debug_get_bool_option("I915_DUMP_CMD", FALSE); |
idws->dump_raw_file = debug_get_option("I915_DUMP_RAW_FILE", NULL); |
idws->send_cmd = !debug_get_bool_option("I915_NO_HW", FALSE); |
return &idws->base; |
} |
/contrib/sdk/sources/Mesa/src/gallium/winsys/i915/drm/i915_drm_winsys.h |
---|
0,0 → 1,73 |
#ifndef INTEL_DRM_WINSYS_H |
#define INTEL_DRM_WINSYS_H |
#include "i915/i915_batchbuffer.h" |
#include "drm.h" |
#include "intel_bufmgr.h" |
/* |
* Winsys |
*/ |
struct i915_drm_winsys |
{ |
struct i915_winsys base; |
boolean dump_cmd; |
const char *dump_raw_file; |
boolean send_cmd; |
int fd; /**< Drm file discriptor */ |
size_t max_batch_size; |
drm_intel_bufmgr *gem_manager; |
}; |
static INLINE struct i915_drm_winsys * |
i915_drm_winsys(struct i915_winsys *iws) |
{ |
return (struct i915_drm_winsys *)iws; |
} |
struct pipe_fence_handle * i915_drm_fence_create(drm_intel_bo *bo); |
void i915_drm_winsys_init_batchbuffer_functions(struct i915_drm_winsys *idws); |
void i915_drm_winsys_init_buffer_functions(struct i915_drm_winsys *idws); |
void i915_drm_winsys_init_fence_functions(struct i915_drm_winsys *idws); |
/* |
* Buffer |
*/ |
struct i915_drm_buffer { |
unsigned magic; |
drm_intel_bo *bo; |
void *ptr; |
unsigned map_count; |
boolean flinked; |
unsigned flink; |
}; |
static INLINE struct i915_drm_buffer * |
i915_drm_buffer(struct i915_winsys_buffer *buffer) |
{ |
return (struct i915_drm_buffer *)buffer; |
} |
static INLINE drm_intel_bo * |
intel_bo(struct i915_winsys_buffer *buffer) |
{ |
return i915_drm_buffer(buffer)->bo; |
} |
#endif |
/contrib/sdk/sources/Mesa/src/gallium/winsys/i915/sw/Makefile.am |
---|
0,0 → 1,37 |
# Copyright © 2012 Intel Corporation |
# |
# Permission is hereby granted, free of charge, to any person obtaining a |
# copy of this software and associated documentation files (the "Software"), |
# to deal in the Software without restriction, including without limitation |
# the rights to use, copy, modify, merge, publish, distribute, sublicense, |
# and/or sell copies of the Software, and to permit persons to whom the |
# Software is furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice (including the next |
# paragraph) shall be included in all copies or substantial portions of the |
# Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
# DEALINGS IN THE SOFTWARE. |
include $(top_srcdir)/src/gallium/Automake.inc |
AM_CFLAGS = \ |
-I$(top_srcdir)/include \ |
-I$(top_srcdir)/src/gallium/drivers \ |
$(GALLIUM_CFLAGS) \ |
$(INTEL_CFLAGS) |
noinst_LTLIBRARIES = libi915sw.la |
libi915sw_la_SOURCES = \ |
i915_sw_batchbuffer.c \ |
i915_sw_buffer.c \ |
i915_sw_fence.c \ |
i915_sw_winsys.c |
/contrib/sdk/sources/Mesa/src/gallium/winsys/i915/sw/Makefile.in |
---|
0,0 → 1,788 |
# Makefile.in generated by automake 1.14 from Makefile.am. |
# @configure_input@ |
# Copyright (C) 1994-2013 Free Software Foundation, Inc. |
# This Makefile.in is free software; the Free Software Foundation |
# gives unlimited permission to copy and/or distribute it, |
# with or without modifications, as long as this notice is preserved. |
# This program is distributed in the hope that it will be useful, |
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without |
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A |
# PARTICULAR PURPOSE. |
@SET_MAKE@ |
# Copyright © 2012 Intel Corporation |
# |
# Permission is hereby granted, free of charge, to any person obtaining a |
# copy of this software and associated documentation files (the "Software"), |
# to deal in the Software without restriction, including without limitation |
# the rights to use, copy, modify, merge, publish, distribute, sublicense, |
# and/or sell copies of the Software, and to permit persons to whom the |
# Software is furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice (including the next |
# paragraph) shall be included in all copies or substantial portions of the |
# Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
# DEALINGS IN THE SOFTWARE. |
VPATH = @srcdir@ |
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' |
am__make_running_with_option = \ |
case $${target_option-} in \ |
?) ;; \ |
*) echo "am__make_running_with_option: internal error: invalid" \ |
"target option '$${target_option-}' specified" >&2; \ |
exit 1;; \ |
esac; \ |
has_opt=no; \ |
sane_makeflags=$$MAKEFLAGS; \ |
if $(am__is_gnu_make); then \ |
sane_makeflags=$$MFLAGS; \ |
else \ |
case $$MAKEFLAGS in \ |
*\\[\ \ ]*) \ |
bs=\\; \ |
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ |
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ |
esac; \ |
fi; \ |
skip_next=no; \ |
strip_trailopt () \ |
{ \ |
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ |
}; \ |
for flg in $$sane_makeflags; do \ |
test $$skip_next = yes && { skip_next=no; continue; }; \ |
case $$flg in \ |
*=*|--*) continue;; \ |
-*I) strip_trailopt 'I'; skip_next=yes;; \ |
-*I?*) strip_trailopt 'I';; \ |
-*O) strip_trailopt 'O'; skip_next=yes;; \ |
-*O?*) strip_trailopt 'O';; \ |
-*l) strip_trailopt 'l'; skip_next=yes;; \ |
-*l?*) strip_trailopt 'l';; \ |
-[dEDm]) skip_next=yes;; \ |
-[JT]) skip_next=yes;; \ |
esac; \ |
case $$flg in \ |
*$$target_option*) has_opt=yes; break;; \ |
esac; \ |
done; \ |
test $$has_opt = yes |
am__make_dryrun = (target_option=n; $(am__make_running_with_option)) |
am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) |
pkgdatadir = $(datadir)/@PACKAGE@ |
pkgincludedir = $(includedir)/@PACKAGE@ |
pkglibdir = $(libdir)/@PACKAGE@ |
pkglibexecdir = $(libexecdir)/@PACKAGE@ |
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd |
install_sh_DATA = $(install_sh) -c -m 644 |
install_sh_PROGRAM = $(install_sh) -c |
install_sh_SCRIPT = $(install_sh) -c |
INSTALL_HEADER = $(INSTALL_DATA) |
transform = $(program_transform_name) |
NORMAL_INSTALL = : |
PRE_INSTALL = : |
POST_INSTALL = : |
NORMAL_UNINSTALL = : |
PRE_UNINSTALL = : |
POST_UNINSTALL = : |
build_triplet = @build@ |
host_triplet = @host@ |
target_triplet = @target@ |
DIST_COMMON = $(top_srcdir)/src/gallium/Automake.inc \ |
$(srcdir)/Makefile.in $(srcdir)/Makefile.am \ |
$(top_srcdir)/bin/depcomp |
subdir = src/gallium/winsys/i915/sw |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_prog_bison.m4 \ |
$(top_srcdir)/m4/ax_prog_cc_for_build.m4 \ |
$(top_srcdir)/m4/ax_prog_cxx_for_build.m4 \ |
$(top_srcdir)/m4/ax_prog_flex.m4 \ |
$(top_srcdir)/m4/ax_pthread.m4 \ |
$(top_srcdir)/m4/ax_python_module.m4 \ |
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ |
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ |
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac |
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
$(ACLOCAL_M4) |
mkinstalldirs = $(install_sh) -d |
CONFIG_CLEAN_FILES = |
CONFIG_CLEAN_VPATH_FILES = |
LTLIBRARIES = $(noinst_LTLIBRARIES) |
libi915sw_la_LIBADD = |
am_libi915sw_la_OBJECTS = i915_sw_batchbuffer.lo i915_sw_buffer.lo \ |
i915_sw_fence.lo i915_sw_winsys.lo |
libi915sw_la_OBJECTS = $(am_libi915sw_la_OBJECTS) |
AM_V_lt = $(am__v_lt_@AM_V@) |
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) |
am__v_lt_0 = --silent |
am__v_lt_1 = |
AM_V_P = $(am__v_P_@AM_V@) |
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) |
am__v_P_0 = false |
am__v_P_1 = : |
AM_V_GEN = $(am__v_GEN_@AM_V@) |
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) |
am__v_GEN_0 = @echo " GEN " $@; |
am__v_GEN_1 = |
AM_V_at = $(am__v_at_@AM_V@) |
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) |
am__v_at_0 = @ |
am__v_at_1 = |
DEFAULT_INCLUDES = -I.@am__isrc@ |
depcomp = $(SHELL) $(top_srcdir)/bin/depcomp |
am__depfiles_maybe = depfiles |
am__mv = mv -f |
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ |
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) |
LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ |
$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ |
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ |
$(AM_CFLAGS) $(CFLAGS) |
AM_V_CC = $(am__v_CC_@AM_V@) |
am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) |
am__v_CC_0 = @echo " CC " $@; |
am__v_CC_1 = |
CCLD = $(CC) |
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ |
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ |
$(AM_LDFLAGS) $(LDFLAGS) -o $@ |
AM_V_CCLD = $(am__v_CCLD_@AM_V@) |
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) |
am__v_CCLD_0 = @echo " CCLD " $@; |
am__v_CCLD_1 = |
SOURCES = $(libi915sw_la_SOURCES) |
DIST_SOURCES = $(libi915sw_la_SOURCES) |
am__can_run_installinfo = \ |
case $$AM_UPDATE_INFO_DIR in \ |
n|no|NO) false;; \ |
*) (install-info --version) >/dev/null 2>&1;; \ |
esac |
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) |
# Read a list of newline-separated strings from the standard input, |
# and print each of them once, without duplicates. Input order is |
# *not* preserved. |
am__uniquify_input = $(AWK) '\ |
BEGIN { nonempty = 0; } \ |
{ items[$$0] = 1; nonempty = 1; } \ |
END { if (nonempty) { for (i in items) print i; }; } \ |
' |
# Make sure the list of sources is unique. This is necessary because, |
# e.g., the same source file might be shared among _SOURCES variables |
# for different programs/libraries. |
am__define_uniq_tagged_files = \ |
list='$(am__tagged_files)'; \ |
unique=`for i in $$list; do \ |
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ |
done | $(am__uniquify_input)` |
ETAGS = etags |
CTAGS = ctags |
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) |
ACLOCAL = @ACLOCAL@ |
AMTAR = @AMTAR@ |
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ |
AR = @AR@ |
AUTOCONF = @AUTOCONF@ |
AUTOHEADER = @AUTOHEADER@ |
AUTOMAKE = @AUTOMAKE@ |
AWK = @AWK@ |
BUILD_EXEEXT = @BUILD_EXEEXT@ |
BUILD_OBJEXT = @BUILD_OBJEXT@ |
CC = @CC@ |
CCAS = @CCAS@ |
CCASDEPMODE = @CCASDEPMODE@ |
CCASFLAGS = @CCASFLAGS@ |
CCDEPMODE = @CCDEPMODE@ |
CC_FOR_BUILD = @CC_FOR_BUILD@ |
CFLAGS = @CFLAGS@ |
CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ |
CLANG_RESOURCE_DIR = @CLANG_RESOURCE_DIR@ |
CLOCK_LIB = @CLOCK_LIB@ |
CPP = @CPP@ |
CPPFLAGS = @CPPFLAGS@ |
CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@ |
CPP_FOR_BUILD = @CPP_FOR_BUILD@ |
CXX = @CXX@ |
CXXCPP = @CXXCPP@ |
CXXCPPFLAGS_FOR_BUILD = @CXXCPPFLAGS_FOR_BUILD@ |
CXXCPP_FOR_BUILD = @CXXCPP_FOR_BUILD@ |
CXXDEPMODE = @CXXDEPMODE@ |
CXXFLAGS = @CXXFLAGS@ |
CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@ |
CXX_FOR_BUILD = @CXX_FOR_BUILD@ |
CYGPATH_W = @CYGPATH_W@ |
DEFINES = @DEFINES@ |
DEFINES_FOR_BUILD = @DEFINES_FOR_BUILD@ |
DEFS = @DEFS@ |
DEPDIR = @DEPDIR@ |
DLLTOOL = @DLLTOOL@ |
DLOPEN_LIBS = @DLOPEN_LIBS@ |
DRI2PROTO_CFLAGS = @DRI2PROTO_CFLAGS@ |
DRI2PROTO_LIBS = @DRI2PROTO_LIBS@ |
DRIGL_CFLAGS = @DRIGL_CFLAGS@ |
DRIGL_LIBS = @DRIGL_LIBS@ |
DRI_DRIVER_INSTALL_DIR = @DRI_DRIVER_INSTALL_DIR@ |
DRI_DRIVER_SEARCH_DIR = @DRI_DRIVER_SEARCH_DIR@ |
DRI_LIB_DEPS = @DRI_LIB_DEPS@ |
DRI_PC_REQ_PRIV = @DRI_PC_REQ_PRIV@ |
DSYMUTIL = @DSYMUTIL@ |
DUMPBIN = @DUMPBIN@ |
ECHO_C = @ECHO_C@ |
ECHO_N = @ECHO_N@ |
ECHO_T = @ECHO_T@ |
EGL_CFLAGS = @EGL_CFLAGS@ |
EGL_CLIENT_APIS = @EGL_CLIENT_APIS@ |
EGL_DRIVER_INSTALL_DIR = @EGL_DRIVER_INSTALL_DIR@ |
EGL_LIB_DEPS = @EGL_LIB_DEPS@ |
EGL_LIB_GLOB = @EGL_LIB_GLOB@ |
EGL_LIB_NAME = @EGL_LIB_NAME@ |
EGL_NATIVE_PLATFORM = @EGL_NATIVE_PLATFORM@ |
EGL_PLATFORMS = @EGL_PLATFORMS@ |
EGREP = @EGREP@ |
ELF_LIB = @ELF_LIB@ |
EXEEXT = @EXEEXT@ |
EXPAT_INCLUDES = @EXPAT_INCLUDES@ |
FGREP = @FGREP@ |
FREEDRENO_CFLAGS = @FREEDRENO_CFLAGS@ |
FREEDRENO_LIBS = @FREEDRENO_LIBS@ |
GALLIUM_DRI_LIB_DEPS = @GALLIUM_DRI_LIB_DEPS@ |
GALLIUM_PIPE_LOADER_DEFINES = @GALLIUM_PIPE_LOADER_DEFINES@ |
GALLIUM_PIPE_LOADER_LIBS = @GALLIUM_PIPE_LOADER_LIBS@ |
GALLIUM_PIPE_LOADER_XCB_CFLAGS = @GALLIUM_PIPE_LOADER_XCB_CFLAGS@ |
GALLIUM_PIPE_LOADER_XCB_LIBS = @GALLIUM_PIPE_LOADER_XCB_LIBS@ |
GBM_PC_LIB_PRIV = @GBM_PC_LIB_PRIV@ |
GBM_PC_REQ_PRIV = @GBM_PC_REQ_PRIV@ |
GLAPI_LIB_GLOB = @GLAPI_LIB_GLOB@ |
GLAPI_LIB_NAME = @GLAPI_LIB_NAME@ |
GLESv1_CM_LIB_DEPS = @GLESv1_CM_LIB_DEPS@ |
GLESv1_CM_LIB_GLOB = @GLESv1_CM_LIB_GLOB@ |
GLESv1_CM_LIB_NAME = @GLESv1_CM_LIB_NAME@ |
GLESv1_CM_PC_LIB_PRIV = @GLESv1_CM_PC_LIB_PRIV@ |
GLESv2_LIB_DEPS = @GLESv2_LIB_DEPS@ |
GLESv2_LIB_GLOB = @GLESv2_LIB_GLOB@ |
GLESv2_LIB_NAME = @GLESv2_LIB_NAME@ |
GLESv2_PC_LIB_PRIV = @GLESv2_PC_LIB_PRIV@ |
GLPROTO_CFLAGS = @GLPROTO_CFLAGS@ |
GLPROTO_LIBS = @GLPROTO_LIBS@ |
GLX_TLS = @GLX_TLS@ |
GL_LIB = @GL_LIB@ |
GL_LIB_DEPS = @GL_LIB_DEPS@ |
GL_LIB_GLOB = @GL_LIB_GLOB@ |
GL_LIB_NAME = @GL_LIB_NAME@ |
GL_PC_CFLAGS = @GL_PC_CFLAGS@ |
GL_PC_LIB_PRIV = @GL_PC_LIB_PRIV@ |
GL_PC_REQ_PRIV = @GL_PC_REQ_PRIV@ |
GREP = @GREP@ |
HAVE_XF86VIDMODE = @HAVE_XF86VIDMODE@ |
INDENT = @INDENT@ |
INDENT_FLAGS = @INDENT_FLAGS@ |
INSTALL = @INSTALL@ |
INSTALL_DATA = @INSTALL_DATA@ |
INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ |
INTEL_CFLAGS = @INTEL_CFLAGS@ |
INTEL_LIBS = @INTEL_LIBS@ |
LD = @LD@ |
LDFLAGS = @LDFLAGS@ |
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ |
LEX = @LEX@ |
LEXLIB = @LEXLIB@ |
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ |
LIBCLC_INCLUDEDIR = @LIBCLC_INCLUDEDIR@ |
LIBCLC_LIBEXECDIR = @LIBCLC_LIBEXECDIR@ |
LIBDRM_CFLAGS = @LIBDRM_CFLAGS@ |
LIBDRM_LIBS = @LIBDRM_LIBS@ |
LIBDRM_XORG_CFLAGS = @LIBDRM_XORG_CFLAGS@ |
LIBDRM_XORG_LIBS = @LIBDRM_XORG_LIBS@ |
LIBKMS_XORG_CFLAGS = @LIBKMS_XORG_CFLAGS@ |
LIBKMS_XORG_LIBS = @LIBKMS_XORG_LIBS@ |
LIBOBJS = @LIBOBJS@ |
LIBS = @LIBS@ |
LIBTOOL = @LIBTOOL@ |
LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ |
LIBUDEV_LIBS = @LIBUDEV_LIBS@ |
LIB_DIR = @LIB_DIR@ |
LIPO = @LIPO@ |
LLVM_BINDIR = @LLVM_BINDIR@ |
LLVM_CFLAGS = @LLVM_CFLAGS@ |
LLVM_CONFIG = @LLVM_CONFIG@ |
LLVM_CPPFLAGS = @LLVM_CPPFLAGS@ |
LLVM_CXXFLAGS = @LLVM_CXXFLAGS@ |
LLVM_INCLUDEDIR = @LLVM_INCLUDEDIR@ |
LLVM_LDFLAGS = @LLVM_LDFLAGS@ |
LLVM_LIBDIR = @LLVM_LIBDIR@ |
LLVM_LIBS = @LLVM_LIBS@ |
LLVM_VERSION = @LLVM_VERSION@ |
LN_S = @LN_S@ |
LTLIBOBJS = @LTLIBOBJS@ |
MAKE = @MAKE@ |
MAKEINFO = @MAKEINFO@ |
MANIFEST_TOOL = @MANIFEST_TOOL@ |
MESA_LLVM = @MESA_LLVM@ |
MKDIR_P = @MKDIR_P@ |
NM = @NM@ |
NMEDIT = @NMEDIT@ |
NOUVEAU_CFLAGS = @NOUVEAU_CFLAGS@ |
NOUVEAU_LIBS = @NOUVEAU_LIBS@ |
OBJDUMP = @OBJDUMP@ |
OBJEXT = @OBJEXT@ |
OPENCL_LIB_INSTALL_DIR = @OPENCL_LIB_INSTALL_DIR@ |
OSMESA_LIB = @OSMESA_LIB@ |
OSMESA_LIB_DEPS = @OSMESA_LIB_DEPS@ |
OSMESA_LIB_NAME = @OSMESA_LIB_NAME@ |
OSMESA_MESA_DEPS = @OSMESA_MESA_DEPS@ |
OSMESA_PC_LIB_PRIV = @OSMESA_PC_LIB_PRIV@ |
OSMESA_PC_REQ = @OSMESA_PC_REQ@ |
OSMESA_VERSION = @OSMESA_VERSION@ |
OTOOL = @OTOOL@ |
OTOOL64 = @OTOOL64@ |
PACKAGE = @PACKAGE@ |
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ |
PACKAGE_NAME = @PACKAGE_NAME@ |
PACKAGE_STRING = @PACKAGE_STRING@ |
PACKAGE_TARNAME = @PACKAGE_TARNAME@ |
PACKAGE_URL = @PACKAGE_URL@ |
PACKAGE_VERSION = @PACKAGE_VERSION@ |
PATH_SEPARATOR = @PATH_SEPARATOR@ |
PERL = @PERL@ |
PKG_CONFIG = @PKG_CONFIG@ |
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ |
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ |
POSIX_SHELL = @POSIX_SHELL@ |
PTHREAD_CC = @PTHREAD_CC@ |
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ |
PTHREAD_LIBS = @PTHREAD_LIBS@ |
PYTHON2 = @PYTHON2@ |
RADEON_CFLAGS = @RADEON_CFLAGS@ |
RADEON_LIBS = @RADEON_LIBS@ |
RANLIB = @RANLIB@ |
SED = @SED@ |
SELINUX_LIBS = @SELINUX_LIBS@ |
SET_MAKE = @SET_MAKE@ |
SHELL = @SHELL@ |
STRIP = @STRIP@ |
VDPAU_CFLAGS = @VDPAU_CFLAGS@ |
VDPAU_LIBS = @VDPAU_LIBS@ |
VDPAU_LIB_INSTALL_DIR = @VDPAU_LIB_INSTALL_DIR@ |
VDPAU_MAJOR = @VDPAU_MAJOR@ |
VDPAU_MINOR = @VDPAU_MINOR@ |
VERSION = @VERSION@ |
VG_LIB_DEPS = @VG_LIB_DEPS@ |
VG_LIB_GLOB = @VG_LIB_GLOB@ |
VG_LIB_NAME = @VG_LIB_NAME@ |
VG_PC_LIB_PRIV = @VG_PC_LIB_PRIV@ |
VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@ |
VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@ |
WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ |
WAYLAND_LIBS = @WAYLAND_LIBS@ |
WAYLAND_SCANNER = @WAYLAND_SCANNER@ |
X11_INCLUDES = @X11_INCLUDES@ |
XA_MAJOR = @XA_MAJOR@ |
XA_MINOR = @XA_MINOR@ |
XA_TINY = @XA_TINY@ |
XA_VERSION = @XA_VERSION@ |
XCB_DRI2_CFLAGS = @XCB_DRI2_CFLAGS@ |
XCB_DRI2_LIBS = @XCB_DRI2_LIBS@ |
XEXT_CFLAGS = @XEXT_CFLAGS@ |
XEXT_LIBS = @XEXT_LIBS@ |
XF86VIDMODE_CFLAGS = @XF86VIDMODE_CFLAGS@ |
XF86VIDMODE_LIBS = @XF86VIDMODE_LIBS@ |
XLIBGL_CFLAGS = @XLIBGL_CFLAGS@ |
XLIBGL_LIBS = @XLIBGL_LIBS@ |
XORG_CFLAGS = @XORG_CFLAGS@ |
XORG_DRIVER_INSTALL_DIR = @XORG_DRIVER_INSTALL_DIR@ |
XORG_LIBS = @XORG_LIBS@ |
XVMC_CFLAGS = @XVMC_CFLAGS@ |
XVMC_LIBS = @XVMC_LIBS@ |
XVMC_LIB_INSTALL_DIR = @XVMC_LIB_INSTALL_DIR@ |
XVMC_MAJOR = @XVMC_MAJOR@ |
XVMC_MINOR = @XVMC_MINOR@ |
YACC = @YACC@ |
YFLAGS = @YFLAGS@ |
abs_builddir = @abs_builddir@ |
abs_srcdir = @abs_srcdir@ |
abs_top_builddir = @abs_top_builddir@ |
abs_top_srcdir = @abs_top_srcdir@ |
ac_ct_AR = @ac_ct_AR@ |
ac_ct_CC = @ac_ct_CC@ |
ac_ct_CC_FOR_BUILD = @ac_ct_CC_FOR_BUILD@ |
ac_ct_CXX = @ac_ct_CXX@ |
ac_ct_CXX_FOR_BUILD = @ac_ct_CXX_FOR_BUILD@ |
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ |
am__include = @am__include@ |
am__leading_dot = @am__leading_dot@ |
am__quote = @am__quote@ |
am__tar = @am__tar@ |
am__untar = @am__untar@ |
ax_pthread_config = @ax_pthread_config@ |
bindir = @bindir@ |
build = @build@ |
build_alias = @build_alias@ |
build_cpu = @build_cpu@ |
build_os = @build_os@ |
build_vendor = @build_vendor@ |
builddir = @builddir@ |
datadir = @datadir@ |
datarootdir = @datarootdir@ |
docdir = @docdir@ |
dvidir = @dvidir@ |
exec_prefix = @exec_prefix@ |
host = @host@ |
host_alias = @host_alias@ |
host_cpu = @host_cpu@ |
host_os = @host_os@ |
host_vendor = @host_vendor@ |
htmldir = @htmldir@ |
includedir = @includedir@ |
infodir = @infodir@ |
install_sh = @install_sh@ |
libdir = @libdir@ |
libexecdir = @libexecdir@ |
localedir = @localedir@ |
localstatedir = @localstatedir@ |
mandir = @mandir@ |
mkdir_p = @mkdir_p@ |
oldincludedir = @oldincludedir@ |
pdfdir = @pdfdir@ |
prefix = @prefix@ |
program_transform_name = @program_transform_name@ |
psdir = @psdir@ |
sbindir = @sbindir@ |
sharedstatedir = @sharedstatedir@ |
srcdir = @srcdir@ |
sysconfdir = @sysconfdir@ |
target = @target@ |
target_alias = @target_alias@ |
target_cpu = @target_cpu@ |
target_os = @target_os@ |
target_vendor = @target_vendor@ |
top_build_prefix = @top_build_prefix@ |
top_builddir = @top_builddir@ |
top_srcdir = @top_srcdir@ |
GALLIUM_CFLAGS = \ |
-I$(top_srcdir)/include \ |
-I$(top_srcdir)/src/gallium/include \ |
-I$(top_srcdir)/src/gallium/auxiliary \ |
$(DEFINES) |
AM_CFLAGS = \ |
-I$(top_srcdir)/include \ |
-I$(top_srcdir)/src/gallium/drivers \ |
$(GALLIUM_CFLAGS) \ |
$(INTEL_CFLAGS) |
noinst_LTLIBRARIES = libi915sw.la |
libi915sw_la_SOURCES = \ |
i915_sw_batchbuffer.c \ |
i915_sw_buffer.c \ |
i915_sw_fence.c \ |
i915_sw_winsys.c |
all: all-am |
.SUFFIXES: |
.SUFFIXES: .c .lo .o .obj |
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/src/gallium/Automake.inc $(am__configure_deps) |
@for dep in $?; do \ |
case '$(am__configure_deps)' in \ |
*$$dep*) \ |
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ |
&& { if test -f $@; then exit 0; else break; fi; }; \ |
exit 1;; \ |
esac; \ |
done; \ |
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/gallium/winsys/i915/sw/Makefile'; \ |
$(am__cd) $(top_srcdir) && \ |
$(AUTOMAKE) --foreign src/gallium/winsys/i915/sw/Makefile |
.PRECIOUS: Makefile |
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
@case '$?' in \ |
*config.status*) \ |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ |
*) \ |
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ |
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ |
esac; |
$(top_srcdir)/src/gallium/Automake.inc: |
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(top_srcdir)/configure: $(am__configure_deps) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(ACLOCAL_M4): $(am__aclocal_m4_deps) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(am__aclocal_m4_deps): |
clean-noinstLTLIBRARIES: |
-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) |
@list='$(noinst_LTLIBRARIES)'; \ |
locs=`for p in $$list; do echo $$p; done | \ |
sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ |
sort -u`; \ |
test -z "$$locs" || { \ |
echo rm -f $${locs}; \ |
rm -f $${locs}; \ |
} |
libi915sw.la: $(libi915sw_la_OBJECTS) $(libi915sw_la_DEPENDENCIES) $(EXTRA_libi915sw_la_DEPENDENCIES) |
$(AM_V_CCLD)$(LINK) $(libi915sw_la_OBJECTS) $(libi915sw_la_LIBADD) $(LIBS) |
mostlyclean-compile: |
-rm -f *.$(OBJEXT) |
distclean-compile: |
-rm -f *.tab.c |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i915_sw_batchbuffer.Plo@am__quote@ |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i915_sw_buffer.Plo@am__quote@ |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i915_sw_fence.Plo@am__quote@ |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i915_sw_winsys.Plo@am__quote@ |
.c.o: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< |
.c.obj: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` |
.c.lo: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< |
mostlyclean-libtool: |
-rm -f *.lo |
clean-libtool: |
-rm -rf .libs _libs |
ID: $(am__tagged_files) |
$(am__define_uniq_tagged_files); mkid -fID $$unique |
tags: tags-am |
TAGS: tags |
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
set x; \ |
here=`pwd`; \ |
$(am__define_uniq_tagged_files); \ |
shift; \ |
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ |
test -n "$$unique" || unique=$$empty_fix; \ |
if test $$# -gt 0; then \ |
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
"$$@" $$unique; \ |
else \ |
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
$$unique; \ |
fi; \ |
fi |
ctags: ctags-am |
CTAGS: ctags |
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
$(am__define_uniq_tagged_files); \ |
test -z "$(CTAGS_ARGS)$$unique" \ |
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ |
$$unique |
GTAGS: |
here=`$(am__cd) $(top_builddir) && pwd` \ |
&& $(am__cd) $(top_srcdir) \ |
&& gtags -i $(GTAGS_ARGS) "$$here" |
cscopelist: cscopelist-am |
cscopelist-am: $(am__tagged_files) |
list='$(am__tagged_files)'; \ |
case "$(srcdir)" in \ |
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ |
*) sdir=$(subdir)/$(srcdir) ;; \ |
esac; \ |
for i in $$list; do \ |
if test -f "$$i"; then \ |
echo "$(subdir)/$$i"; \ |
else \ |
echo "$$sdir/$$i"; \ |
fi; \ |
done >> $(top_builddir)/cscope.files |
distclean-tags: |
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |
distdir: $(DISTFILES) |
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
list='$(DISTFILES)'; \ |
dist_files=`for file in $$list; do echo $$file; done | \ |
sed -e "s|^$$srcdirstrip/||;t" \ |
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ |
case $$dist_files in \ |
*/*) $(MKDIR_P) `echo "$$dist_files" | \ |
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ |
sort -u` ;; \ |
esac; \ |
for file in $$dist_files; do \ |
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ |
if test -d $$d/$$file; then \ |
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ |
if test -d "$(distdir)/$$file"; then \ |
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |
fi; \ |
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ |
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ |
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |
fi; \ |
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ |
else \ |
test -f "$(distdir)/$$file" \ |
|| cp -p $$d/$$file "$(distdir)/$$file" \ |
|| exit 1; \ |
fi; \ |
done |
check-am: all-am |
check: check-am |
all-am: Makefile $(LTLIBRARIES) |
installdirs: |
install: install-am |
install-exec: install-exec-am |
install-data: install-data-am |
uninstall: uninstall-am |
install-am: all-am |
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am |
installcheck: installcheck-am |
install-strip: |
if test -z '$(STRIP)'; then \ |
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |
install; \ |
else \ |
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ |
fi |
mostlyclean-generic: |
clean-generic: |
distclean-generic: |
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) |
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) |
maintainer-clean-generic: |
@echo "This command is intended for maintainers to use" |
@echo "it deletes files that may require special tools to rebuild." |
clean: clean-am |
clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ |
mostlyclean-am |
distclean: distclean-am |
-rm -rf ./$(DEPDIR) |
-rm -f Makefile |
distclean-am: clean-am distclean-compile distclean-generic \ |
distclean-tags |
dvi: dvi-am |
dvi-am: |
html: html-am |
html-am: |
info: info-am |
info-am: |
install-data-am: |
install-dvi: install-dvi-am |
install-dvi-am: |
install-exec-am: |
install-html: install-html-am |
install-html-am: |
install-info: install-info-am |
install-info-am: |
install-man: |
install-pdf: install-pdf-am |
install-pdf-am: |
install-ps: install-ps-am |
install-ps-am: |
installcheck-am: |
maintainer-clean: maintainer-clean-am |
-rm -rf ./$(DEPDIR) |
-rm -f Makefile |
maintainer-clean-am: distclean-am maintainer-clean-generic |
mostlyclean: mostlyclean-am |
mostlyclean-am: mostlyclean-compile mostlyclean-generic \ |
mostlyclean-libtool |
pdf: pdf-am |
pdf-am: |
ps: ps-am |
ps-am: |
uninstall-am: |
.MAKE: install-am install-strip |
.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ |
clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ |
ctags-am distclean distclean-compile distclean-generic \ |
distclean-libtool distclean-tags distdir dvi dvi-am html \ |
html-am info info-am install install-am install-data \ |
install-data-am install-dvi install-dvi-am install-exec \ |
install-exec-am install-html install-html-am install-info \ |
install-info-am install-man install-pdf install-pdf-am \ |
install-ps install-ps-am install-strip installcheck \ |
installcheck-am installdirs maintainer-clean \ |
maintainer-clean-generic mostlyclean mostlyclean-compile \ |
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ |
tags tags-am uninstall uninstall-am |
# Tell versions [3.59,3.63) of GNU make to not export all variables. |
# Otherwise a system limit (for SysV at least) may be exceeded. |
.NOEXPORT: |
/contrib/sdk/sources/Mesa/src/gallium/winsys/i915/sw/SConscript |
---|
0,0 → 1,17 |
Import('*') |
env = env.Clone() |
i915_sw_sources = [ |
'i915_sw_batchbuffer.c', |
'i915_sw_buffer.c', |
'i915_sw_winsys.c', |
'i915_sw_fence.c', |
] |
i915sw = env.ConvenienceLibrary( |
target ='i915sw', |
source = i915_sw_sources, |
) |
Export('i915sw') |
/contrib/sdk/sources/Mesa/src/gallium/winsys/i915/sw/i915_sw_batchbuffer.c |
---|
0,0 → 1,159 |
#include "i915_sw_winsys.h" |
#include "i915/i915_batchbuffer.h" |
#include "i915/i915_debug.h" |
#include "util/u_memory.h" |
#define BATCH_RESERVED 16 |
#define INTEL_DEFAULT_RELOCS 100 |
#define INTEL_MAX_RELOCS 400 |
#define INTEL_BATCH_NO_CLIPRECTS 0x1 |
#define INTEL_BATCH_CLIPRECTS 0x2 |
#define INTEL_ALWAYS_FLUSH |
struct i915_sw_batchbuffer |
{ |
struct i915_winsys_batchbuffer base; |
size_t actual_size; |
}; |
static INLINE struct i915_sw_batchbuffer * |
i915_sw_batchbuffer(struct i915_winsys_batchbuffer *batch) |
{ |
return (struct i915_sw_batchbuffer *)batch; |
} |
static void |
i915_sw_batchbuffer_reset(struct i915_sw_batchbuffer *batch) |
{ |
memset(batch->base.map, 0, batch->actual_size); |
batch->base.ptr = batch->base.map; |
batch->base.size = batch->actual_size - BATCH_RESERVED; |
batch->base.relocs = 0; |
} |
static struct i915_winsys_batchbuffer * |
i915_sw_batchbuffer_create(struct i915_winsys *iws) |
{ |
struct i915_sw_winsys *isws = i915_sw_winsys(iws); |
struct i915_sw_batchbuffer *batch = CALLOC_STRUCT(i915_sw_batchbuffer); |
batch->actual_size = isws->max_batch_size; |
batch->base.map = MALLOC(batch->actual_size); |
batch->base.ptr = NULL; |
batch->base.size = 0; |
batch->base.relocs = 0; |
batch->base.iws = iws; |
i915_sw_batchbuffer_reset(batch); |
return &batch->base; |
} |
static boolean |
i915_sw_batchbuffer_validate_buffers(struct i915_winsys_batchbuffer *batch, |
struct i915_winsys_buffer **buffer, |
int num_of_buffers) |
{ |
return TRUE; |
} |
static int |
i915_sw_batchbuffer_reloc(struct i915_winsys_batchbuffer *ibatch, |
struct i915_winsys_buffer *buffer, |
enum i915_winsys_buffer_usage usage, |
unsigned pre_add, boolean fenced) |
{ |
struct i915_sw_batchbuffer *batch = i915_sw_batchbuffer(ibatch); |
int ret = 0; |
if (usage == I915_USAGE_SAMPLER) { |
} else if (usage == I915_USAGE_RENDER) { |
} else if (usage == I915_USAGE_2D_TARGET) { |
} else if (usage == I915_USAGE_2D_SOURCE) { |
} else if (usage == I915_USAGE_VERTEX) { |
} else { |
assert(0); |
return -1; |
} |
((uint32_t*)batch->base.ptr)[0] = 0; |
batch->base.ptr += 4; |
if (!ret) |
batch->base.relocs++; |
return ret; |
} |
static void |
i915_sw_batchbuffer_flush(struct i915_winsys_batchbuffer *ibatch, |
struct pipe_fence_handle **fence, |
enum i915_winsys_flush_flags flags) |
{ |
struct i915_sw_batchbuffer *batch = i915_sw_batchbuffer(ibatch); |
unsigned used = 0; |
assert(i915_winsys_batchbuffer_space(ibatch) >= 0); |
used = batch->base.ptr - batch->base.map; |
assert((used & 3) == 0); |
#ifdef INTEL_ALWAYS_FLUSH |
/* MI_FLUSH | FLUSH_MAP_CACHE */ |
i915_winsys_batchbuffer_dword_unchecked(ibatch, (0x4<<23)|(1<<0)); |
used += 4; |
#endif |
if ((used & 4) == 0) { |
/* MI_NOOP */ |
i915_winsys_batchbuffer_dword_unchecked(ibatch, 0); |
} |
/* MI_BATCH_BUFFER_END */ |
i915_winsys_batchbuffer_dword_unchecked(ibatch, (0xA<<23)); |
used = batch->base.ptr - batch->base.map; |
assert((used & 4) == 0); |
if (i915_sw_winsys(ibatch->iws)->dump_cmd) { |
i915_dump_batchbuffer(ibatch); |
} |
if (fence) { |
ibatch->iws->fence_reference(ibatch->iws, fence, NULL); |
(*fence) = i915_sw_fence_create(); |
} |
i915_sw_batchbuffer_reset(batch); |
} |
static void |
i915_sw_batchbuffer_destroy(struct i915_winsys_batchbuffer *ibatch) |
{ |
struct i915_sw_batchbuffer *batch = i915_sw_batchbuffer(ibatch); |
FREE(batch->base.map); |
FREE(batch); |
} |
void i915_sw_winsys_init_batchbuffer_functions(struct i915_sw_winsys *isws) |
{ |
isws->base.batchbuffer_create = i915_sw_batchbuffer_create; |
isws->base.validate_buffers = i915_sw_batchbuffer_validate_buffers; |
isws->base.batchbuffer_reloc = i915_sw_batchbuffer_reloc; |
isws->base.batchbuffer_flush = i915_sw_batchbuffer_flush; |
isws->base.batchbuffer_destroy = i915_sw_batchbuffer_destroy; |
} |
/contrib/sdk/sources/Mesa/src/gallium/winsys/i915/sw/i915_sw_buffer.c |
---|
0,0 → 1,114 |
#include "i915_sw_winsys.h" |
#include "util/u_memory.h" |
static struct i915_winsys_buffer * |
i915_sw_buffer_create(struct i915_winsys *iws, |
unsigned size, |
enum i915_winsys_buffer_type type) |
{ |
struct i915_sw_buffer *buf = CALLOC_STRUCT(i915_sw_buffer); |
if (!buf) |
return NULL; |
buf->magic = 0xDEAD1337; |
buf->type = type; |
buf->ptr = CALLOC(size, 1); |
if (!buf->ptr) |
goto err; |
return (struct i915_winsys_buffer *)buf; |
err: |
assert(0); |
FREE(buf); |
return NULL; |
} |
static struct i915_winsys_buffer * |
i915_sw_buffer_create_tiled(struct i915_winsys *iws, |
unsigned *stride, unsigned height, |
enum i915_winsys_buffer_tile *tiling, |
enum i915_winsys_buffer_type type) |
{ |
struct i915_sw_buffer *buf = CALLOC_STRUCT(i915_sw_buffer); |
if (!buf) |
return NULL; |
buf->magic = 0xDEAD1337; |
buf->type = type; |
buf->ptr = CALLOC(*stride * height, 1); |
buf->tiling = *tiling; |
buf->stride = *stride; |
if (!buf->ptr) |
goto err; |
return (struct i915_winsys_buffer *)buf; |
err: |
assert(0); |
FREE(buf); |
return NULL; |
} |
static void * |
i915_sw_buffer_map(struct i915_winsys *iws, |
struct i915_winsys_buffer *buffer, |
boolean write) |
{ |
struct i915_sw_buffer *buf = i915_sw_buffer(buffer); |
buf->map_count += 1; |
return buf->ptr; |
} |
static void |
i915_sw_buffer_unmap(struct i915_winsys *iws, |
struct i915_winsys_buffer *buffer) |
{ |
struct i915_sw_buffer *buf = i915_sw_buffer(buffer); |
buf->map_count -= 1; |
} |
static int |
i915_sw_buffer_write(struct i915_winsys *iws, |
struct i915_winsys_buffer *buffer, |
size_t offset, |
size_t size, |
const void *data) |
{ |
struct i915_sw_buffer *buf = i915_sw_buffer(buffer); |
memcpy((char*)buf->ptr + offset, data, size); |
return 0; |
} |
static void |
i915_sw_buffer_destroy(struct i915_winsys *iws, |
struct i915_winsys_buffer *buffer) |
{ |
struct i915_sw_buffer *buf = i915_sw_buffer(buffer); |
#ifdef DEBUG |
buf->magic = 0; |
#endif |
FREE(buf->ptr); |
FREE(buf); |
} |
void |
i915_sw_winsys_init_buffer_functions(struct i915_sw_winsys *isws) |
{ |
isws->base.buffer_create = i915_sw_buffer_create; |
isws->base.buffer_create_tiled = i915_sw_buffer_create_tiled; |
isws->base.buffer_map = i915_sw_buffer_map; |
isws->base.buffer_unmap = i915_sw_buffer_unmap; |
isws->base.buffer_write = i915_sw_buffer_write; |
isws->base.buffer_destroy = i915_sw_buffer_destroy; |
} |
/contrib/sdk/sources/Mesa/src/gallium/winsys/i915/sw/i915_sw_fence.c |
---|
0,0 → 1,58 |
#include "i915_sw_winsys.h" |
#include "util/u_memory.h" |
#include "util/u_atomic.h" |
#include "util/u_inlines.h" |
struct i915_sw_fence |
{ |
struct pipe_reference reference; |
}; |
struct pipe_fence_handle * |
i915_sw_fence_create() |
{ |
struct i915_sw_fence *fence = CALLOC_STRUCT(i915_sw_fence); |
pipe_reference_init(&fence->reference, 1); |
return (struct pipe_fence_handle *)fence; |
} |
static void |
i915_sw_fence_reference(struct i915_winsys *iws, |
struct pipe_fence_handle **ptr, |
struct pipe_fence_handle *fence) |
{ |
struct i915_sw_fence *old = (struct i915_sw_fence *)*ptr; |
struct i915_sw_fence *f = (struct i915_sw_fence *)fence; |
if (pipe_reference(&((struct i915_sw_fence *)(*ptr))->reference, &f->reference)) { |
FREE(old); |
} |
*ptr = fence; |
} |
static int |
i915_sw_fence_signalled(struct i915_winsys *iws, |
struct pipe_fence_handle *fence) |
{ |
assert(0); |
return 0; |
} |
static int |
i915_sw_fence_finish(struct i915_winsys *iws, |
struct pipe_fence_handle *fence) |
{ |
return 0; |
} |
void |
i915_sw_winsys_init_fence_functions(struct i915_sw_winsys *isws) |
{ |
isws->base.fence_reference = i915_sw_fence_reference; |
isws->base.fence_signalled = i915_sw_fence_signalled; |
isws->base.fence_finish = i915_sw_fence_finish; |
} |
/contrib/sdk/sources/Mesa/src/gallium/winsys/i915/sw/i915_sw_public.h |
---|
0,0 → 1,9 |
#ifndef I915_SW_PUBLIC_H |
#define I915_SW_PUBLIC_H |
struct i915_winsys; |
struct i915_winsys * i915_sw_winsys_create(void); |
#endif |
/contrib/sdk/sources/Mesa/src/gallium/winsys/i915/sw/i915_sw_winsys.c |
---|
0,0 → 1,56 |
#include "i915_sw_winsys.h" |
#include "i915_sw_public.h" |
#include "util/u_memory.h" |
/* |
* Helper functions |
*/ |
static void |
i915_sw_get_device_id(unsigned int *device_id) |
{ |
/* just pick a i945 hw id */ |
*device_id = 0x27A2; |
} |
static void |
i915_sw_destroy(struct i915_winsys *iws) |
{ |
struct i915_sw_winsys *isws = i915_sw_winsys(iws); |
FREE(isws); |
} |
/* |
* Exported functions |
*/ |
struct i915_winsys * |
i915_sw_winsys_create() |
{ |
struct i915_sw_winsys *isws; |
unsigned int deviceID; |
isws = CALLOC_STRUCT(i915_sw_winsys); |
if (!isws) |
return NULL; |
i915_sw_get_device_id(&deviceID); |
i915_sw_winsys_init_batchbuffer_functions(isws); |
i915_sw_winsys_init_buffer_functions(isws); |
i915_sw_winsys_init_fence_functions(isws); |
isws->base.destroy = i915_sw_destroy; |
isws->base.pci_id = deviceID; |
isws->max_batch_size = 16 * 4096; |
isws->dump_cmd = debug_get_bool_option("I915_DUMP_CMD", FALSE); |
return &isws->base; |
} |
/contrib/sdk/sources/Mesa/src/gallium/winsys/i915/sw/i915_sw_winsys.h |
---|
0,0 → 1,56 |
#ifndef I915_SW_WINSYS_H |
#define I915_SW_WINSYS_H |
#include "i915/i915_winsys.h" |
/* |
* Winsys |
*/ |
struct i915_sw_winsys |
{ |
struct i915_winsys base; |
boolean dump_cmd; |
size_t max_batch_size; |
}; |
static INLINE struct i915_sw_winsys * |
i915_sw_winsys(struct i915_winsys *iws) |
{ |
return (struct i915_sw_winsys *)iws; |
} |
struct pipe_fence_handle * i915_sw_fence_create(void); |
void i915_sw_winsys_init_batchbuffer_functions(struct i915_sw_winsys *idws); |
void i915_sw_winsys_init_buffer_functions(struct i915_sw_winsys *idws); |
void i915_sw_winsys_init_fence_functions(struct i915_sw_winsys *idws); |
/* |
* Buffer |
*/ |
struct i915_sw_buffer { |
unsigned magic; |
void *ptr; |
unsigned map_count; |
enum i915_winsys_buffer_type type; |
enum i915_winsys_buffer_tile tiling; |
unsigned stride; |
}; |
static INLINE struct i915_sw_buffer * |
i915_sw_buffer(struct i915_winsys_buffer *buffer) |
{ |
return (struct i915_sw_buffer *)buffer; |
} |
#endif |
/contrib/sdk/sources/Mesa/src/gallium/winsys/intel/drm/Android.mk |
---|
0,0 → 1,40 |
# Mesa 3-D graphics library |
# |
# Copyright (C) 2013 LunarG Inc. |
# |
# Permission is hereby granted, free of charge, to any person obtaining a |
# copy of this software and associated documentation files (the "Software"), |
# to deal in the Software without restriction, including without limitation |
# the rights to use, copy, modify, merge, publish, distribute, sublicense, |
# and/or sell copies of the Software, and to permit persons to whom the |
# Software is furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice shall be included |
# in all copies or substantial portions of the Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
# DEALINGS IN THE SOFTWARE. |
LOCAL_PATH := $(call my-dir) |
# get C_SOURCES |
include $(LOCAL_PATH)/Makefile.sources |
include $(CLEAR_VARS) |
LOCAL_SRC_FILES := $(C_SOURCES) |
LOCAL_C_INCLUDES := \ |
$(DRM_TOP) \ |
$(DRM_TOP)/include/drm \ |
$(DRM_TOP)/intel |
LOCAL_MODULE := libmesa_winsys_intel |
include $(GALLIUM_COMMON_MK) |
include $(BUILD_STATIC_LIBRARY) |
/contrib/sdk/sources/Mesa/src/gallium/winsys/intel/drm/Makefile.am |
---|
0,0 → 1,34 |
# Copyright © 2012 Intel Corporation |
# Copyright (C) 2013 LunarG, Inc. |
# |
# Permission is hereby granted, free of charge, to any person obtaining a |
# copy of this software and associated documentation files (the "Software"), |
# to deal in the Software without restriction, including without limitation |
# the rights to use, copy, modify, merge, publish, distribute, sublicense, |
# and/or sell copies of the Software, and to permit persons to whom the |
# Software is furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice (including the next |
# paragraph) shall be included in all copies or substantial portions of the |
# Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
# DEALINGS IN THE SOFTWARE. |
include Makefile.sources |
include $(top_srcdir)/src/gallium/Automake.inc |
AM_CFLAGS = \ |
$(GALLIUM_CFLAGS) \ |
$(INTEL_CFLAGS) \ |
$(VISIBILITY_CFLAGS) |
noinst_LTLIBRARIES = libintelwinsys.la |
libintelwinsys_la_SOURCES = $(C_SOURCES) |
/contrib/sdk/sources/Mesa/src/gallium/winsys/intel/drm/Makefile.in |
---|
0,0 → 1,783 |
# Makefile.in generated by automake 1.14 from Makefile.am. |
# @configure_input@ |
# Copyright (C) 1994-2013 Free Software Foundation, Inc. |
# This Makefile.in is free software; the Free Software Foundation |
# gives unlimited permission to copy and/or distribute it, |
# with or without modifications, as long as this notice is preserved. |
# This program is distributed in the hope that it will be useful, |
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without |
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A |
# PARTICULAR PURPOSE. |
@SET_MAKE@ |
# Copyright © 2012 Intel Corporation |
# Copyright (C) 2013 LunarG, Inc. |
# |
# Permission is hereby granted, free of charge, to any person obtaining a |
# copy of this software and associated documentation files (the "Software"), |
# to deal in the Software without restriction, including without limitation |
# the rights to use, copy, modify, merge, publish, distribute, sublicense, |
# and/or sell copies of the Software, and to permit persons to whom the |
# Software is furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice (including the next |
# paragraph) shall be included in all copies or substantial portions of the |
# Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
# DEALINGS IN THE SOFTWARE. |
VPATH = @srcdir@ |
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' |
am__make_running_with_option = \ |
case $${target_option-} in \ |
?) ;; \ |
*) echo "am__make_running_with_option: internal error: invalid" \ |
"target option '$${target_option-}' specified" >&2; \ |
exit 1;; \ |
esac; \ |
has_opt=no; \ |
sane_makeflags=$$MAKEFLAGS; \ |
if $(am__is_gnu_make); then \ |
sane_makeflags=$$MFLAGS; \ |
else \ |
case $$MAKEFLAGS in \ |
*\\[\ \ ]*) \ |
bs=\\; \ |
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ |
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ |
esac; \ |
fi; \ |
skip_next=no; \ |
strip_trailopt () \ |
{ \ |
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ |
}; \ |
for flg in $$sane_makeflags; do \ |
test $$skip_next = yes && { skip_next=no; continue; }; \ |
case $$flg in \ |
*=*|--*) continue;; \ |
-*I) strip_trailopt 'I'; skip_next=yes;; \ |
-*I?*) strip_trailopt 'I';; \ |
-*O) strip_trailopt 'O'; skip_next=yes;; \ |
-*O?*) strip_trailopt 'O';; \ |
-*l) strip_trailopt 'l'; skip_next=yes;; \ |
-*l?*) strip_trailopt 'l';; \ |
-[dEDm]) skip_next=yes;; \ |
-[JT]) skip_next=yes;; \ |
esac; \ |
case $$flg in \ |
*$$target_option*) has_opt=yes; break;; \ |
esac; \ |
done; \ |
test $$has_opt = yes |
am__make_dryrun = (target_option=n; $(am__make_running_with_option)) |
am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) |
pkgdatadir = $(datadir)/@PACKAGE@ |
pkgincludedir = $(includedir)/@PACKAGE@ |
pkglibdir = $(libdir)/@PACKAGE@ |
pkglibexecdir = $(libexecdir)/@PACKAGE@ |
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd |
install_sh_DATA = $(install_sh) -c -m 644 |
install_sh_PROGRAM = $(install_sh) -c |
install_sh_SCRIPT = $(install_sh) -c |
INSTALL_HEADER = $(INSTALL_DATA) |
transform = $(program_transform_name) |
NORMAL_INSTALL = : |
PRE_INSTALL = : |
POST_INSTALL = : |
NORMAL_UNINSTALL = : |
PRE_UNINSTALL = : |
POST_UNINSTALL = : |
build_triplet = @build@ |
host_triplet = @host@ |
target_triplet = @target@ |
DIST_COMMON = $(srcdir)/Makefile.sources \ |
$(top_srcdir)/src/gallium/Automake.inc $(srcdir)/Makefile.in \ |
$(srcdir)/Makefile.am $(top_srcdir)/bin/depcomp |
subdir = src/gallium/winsys/intel/drm |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_prog_bison.m4 \ |
$(top_srcdir)/m4/ax_prog_cc_for_build.m4 \ |
$(top_srcdir)/m4/ax_prog_cxx_for_build.m4 \ |
$(top_srcdir)/m4/ax_prog_flex.m4 \ |
$(top_srcdir)/m4/ax_pthread.m4 \ |
$(top_srcdir)/m4/ax_python_module.m4 \ |
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ |
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ |
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac |
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
$(ACLOCAL_M4) |
mkinstalldirs = $(install_sh) -d |
CONFIG_CLEAN_FILES = |
CONFIG_CLEAN_VPATH_FILES = |
LTLIBRARIES = $(noinst_LTLIBRARIES) |
libintelwinsys_la_LIBADD = |
am__objects_1 = intel_drm_winsys.lo |
am_libintelwinsys_la_OBJECTS = $(am__objects_1) |
libintelwinsys_la_OBJECTS = $(am_libintelwinsys_la_OBJECTS) |
AM_V_lt = $(am__v_lt_@AM_V@) |
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) |
am__v_lt_0 = --silent |
am__v_lt_1 = |
AM_V_P = $(am__v_P_@AM_V@) |
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) |
am__v_P_0 = false |
am__v_P_1 = : |
AM_V_GEN = $(am__v_GEN_@AM_V@) |
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) |
am__v_GEN_0 = @echo " GEN " $@; |
am__v_GEN_1 = |
AM_V_at = $(am__v_at_@AM_V@) |
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) |
am__v_at_0 = @ |
am__v_at_1 = |
DEFAULT_INCLUDES = -I.@am__isrc@ |
depcomp = $(SHELL) $(top_srcdir)/bin/depcomp |
am__depfiles_maybe = depfiles |
am__mv = mv -f |
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ |
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) |
LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ |
$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ |
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ |
$(AM_CFLAGS) $(CFLAGS) |
AM_V_CC = $(am__v_CC_@AM_V@) |
am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) |
am__v_CC_0 = @echo " CC " $@; |
am__v_CC_1 = |
CCLD = $(CC) |
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ |
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ |
$(AM_LDFLAGS) $(LDFLAGS) -o $@ |
AM_V_CCLD = $(am__v_CCLD_@AM_V@) |
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) |
am__v_CCLD_0 = @echo " CCLD " $@; |
am__v_CCLD_1 = |
SOURCES = $(libintelwinsys_la_SOURCES) |
DIST_SOURCES = $(libintelwinsys_la_SOURCES) |
am__can_run_installinfo = \ |
case $$AM_UPDATE_INFO_DIR in \ |
n|no|NO) false;; \ |
*) (install-info --version) >/dev/null 2>&1;; \ |
esac |
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) |
# Read a list of newline-separated strings from the standard input, |
# and print each of them once, without duplicates. Input order is |
# *not* preserved. |
am__uniquify_input = $(AWK) '\ |
BEGIN { nonempty = 0; } \ |
{ items[$$0] = 1; nonempty = 1; } \ |
END { if (nonempty) { for (i in items) print i; }; } \ |
' |
# Make sure the list of sources is unique. This is necessary because, |
# e.g., the same source file might be shared among _SOURCES variables |
# for different programs/libraries. |
am__define_uniq_tagged_files = \ |
list='$(am__tagged_files)'; \ |
unique=`for i in $$list; do \ |
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ |
done | $(am__uniquify_input)` |
ETAGS = etags |
CTAGS = ctags |
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) |
ACLOCAL = @ACLOCAL@ |
AMTAR = @AMTAR@ |
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ |
AR = @AR@ |
AUTOCONF = @AUTOCONF@ |
AUTOHEADER = @AUTOHEADER@ |
AUTOMAKE = @AUTOMAKE@ |
AWK = @AWK@ |
BUILD_EXEEXT = @BUILD_EXEEXT@ |
BUILD_OBJEXT = @BUILD_OBJEXT@ |
CC = @CC@ |
CCAS = @CCAS@ |
CCASDEPMODE = @CCASDEPMODE@ |
CCASFLAGS = @CCASFLAGS@ |
CCDEPMODE = @CCDEPMODE@ |
CC_FOR_BUILD = @CC_FOR_BUILD@ |
CFLAGS = @CFLAGS@ |
CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ |
CLANG_RESOURCE_DIR = @CLANG_RESOURCE_DIR@ |
CLOCK_LIB = @CLOCK_LIB@ |
CPP = @CPP@ |
CPPFLAGS = @CPPFLAGS@ |
CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@ |
CPP_FOR_BUILD = @CPP_FOR_BUILD@ |
CXX = @CXX@ |
CXXCPP = @CXXCPP@ |
CXXCPPFLAGS_FOR_BUILD = @CXXCPPFLAGS_FOR_BUILD@ |
CXXCPP_FOR_BUILD = @CXXCPP_FOR_BUILD@ |
CXXDEPMODE = @CXXDEPMODE@ |
CXXFLAGS = @CXXFLAGS@ |
CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@ |
CXX_FOR_BUILD = @CXX_FOR_BUILD@ |
CYGPATH_W = @CYGPATH_W@ |
DEFINES = @DEFINES@ |
DEFINES_FOR_BUILD = @DEFINES_FOR_BUILD@ |
DEFS = @DEFS@ |
DEPDIR = @DEPDIR@ |
DLLTOOL = @DLLTOOL@ |
DLOPEN_LIBS = @DLOPEN_LIBS@ |
DRI2PROTO_CFLAGS = @DRI2PROTO_CFLAGS@ |
DRI2PROTO_LIBS = @DRI2PROTO_LIBS@ |
DRIGL_CFLAGS = @DRIGL_CFLAGS@ |
DRIGL_LIBS = @DRIGL_LIBS@ |
DRI_DRIVER_INSTALL_DIR = @DRI_DRIVER_INSTALL_DIR@ |
DRI_DRIVER_SEARCH_DIR = @DRI_DRIVER_SEARCH_DIR@ |
DRI_LIB_DEPS = @DRI_LIB_DEPS@ |
DRI_PC_REQ_PRIV = @DRI_PC_REQ_PRIV@ |
DSYMUTIL = @DSYMUTIL@ |
DUMPBIN = @DUMPBIN@ |
ECHO_C = @ECHO_C@ |
ECHO_N = @ECHO_N@ |
ECHO_T = @ECHO_T@ |
EGL_CFLAGS = @EGL_CFLAGS@ |
EGL_CLIENT_APIS = @EGL_CLIENT_APIS@ |
EGL_DRIVER_INSTALL_DIR = @EGL_DRIVER_INSTALL_DIR@ |
EGL_LIB_DEPS = @EGL_LIB_DEPS@ |
EGL_LIB_GLOB = @EGL_LIB_GLOB@ |
EGL_LIB_NAME = @EGL_LIB_NAME@ |
EGL_NATIVE_PLATFORM = @EGL_NATIVE_PLATFORM@ |
EGL_PLATFORMS = @EGL_PLATFORMS@ |
EGREP = @EGREP@ |
ELF_LIB = @ELF_LIB@ |
EXEEXT = @EXEEXT@ |
EXPAT_INCLUDES = @EXPAT_INCLUDES@ |
FGREP = @FGREP@ |
FREEDRENO_CFLAGS = @FREEDRENO_CFLAGS@ |
FREEDRENO_LIBS = @FREEDRENO_LIBS@ |
GALLIUM_DRI_LIB_DEPS = @GALLIUM_DRI_LIB_DEPS@ |
GALLIUM_PIPE_LOADER_DEFINES = @GALLIUM_PIPE_LOADER_DEFINES@ |
GALLIUM_PIPE_LOADER_LIBS = @GALLIUM_PIPE_LOADER_LIBS@ |
GALLIUM_PIPE_LOADER_XCB_CFLAGS = @GALLIUM_PIPE_LOADER_XCB_CFLAGS@ |
GALLIUM_PIPE_LOADER_XCB_LIBS = @GALLIUM_PIPE_LOADER_XCB_LIBS@ |
GBM_PC_LIB_PRIV = @GBM_PC_LIB_PRIV@ |
GBM_PC_REQ_PRIV = @GBM_PC_REQ_PRIV@ |
GLAPI_LIB_GLOB = @GLAPI_LIB_GLOB@ |
GLAPI_LIB_NAME = @GLAPI_LIB_NAME@ |
GLESv1_CM_LIB_DEPS = @GLESv1_CM_LIB_DEPS@ |
GLESv1_CM_LIB_GLOB = @GLESv1_CM_LIB_GLOB@ |
GLESv1_CM_LIB_NAME = @GLESv1_CM_LIB_NAME@ |
GLESv1_CM_PC_LIB_PRIV = @GLESv1_CM_PC_LIB_PRIV@ |
GLESv2_LIB_DEPS = @GLESv2_LIB_DEPS@ |
GLESv2_LIB_GLOB = @GLESv2_LIB_GLOB@ |
GLESv2_LIB_NAME = @GLESv2_LIB_NAME@ |
GLESv2_PC_LIB_PRIV = @GLESv2_PC_LIB_PRIV@ |
GLPROTO_CFLAGS = @GLPROTO_CFLAGS@ |
GLPROTO_LIBS = @GLPROTO_LIBS@ |
GLX_TLS = @GLX_TLS@ |
GL_LIB = @GL_LIB@ |
GL_LIB_DEPS = @GL_LIB_DEPS@ |
GL_LIB_GLOB = @GL_LIB_GLOB@ |
GL_LIB_NAME = @GL_LIB_NAME@ |
GL_PC_CFLAGS = @GL_PC_CFLAGS@ |
GL_PC_LIB_PRIV = @GL_PC_LIB_PRIV@ |
GL_PC_REQ_PRIV = @GL_PC_REQ_PRIV@ |
GREP = @GREP@ |
HAVE_XF86VIDMODE = @HAVE_XF86VIDMODE@ |
INDENT = @INDENT@ |
INDENT_FLAGS = @INDENT_FLAGS@ |
INSTALL = @INSTALL@ |
INSTALL_DATA = @INSTALL_DATA@ |
INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ |
INTEL_CFLAGS = @INTEL_CFLAGS@ |
INTEL_LIBS = @INTEL_LIBS@ |
LD = @LD@ |
LDFLAGS = @LDFLAGS@ |
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ |
LEX = @LEX@ |
LEXLIB = @LEXLIB@ |
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ |
LIBCLC_INCLUDEDIR = @LIBCLC_INCLUDEDIR@ |
LIBCLC_LIBEXECDIR = @LIBCLC_LIBEXECDIR@ |
LIBDRM_CFLAGS = @LIBDRM_CFLAGS@ |
LIBDRM_LIBS = @LIBDRM_LIBS@ |
LIBDRM_XORG_CFLAGS = @LIBDRM_XORG_CFLAGS@ |
LIBDRM_XORG_LIBS = @LIBDRM_XORG_LIBS@ |
LIBKMS_XORG_CFLAGS = @LIBKMS_XORG_CFLAGS@ |
LIBKMS_XORG_LIBS = @LIBKMS_XORG_LIBS@ |
LIBOBJS = @LIBOBJS@ |
LIBS = @LIBS@ |
LIBTOOL = @LIBTOOL@ |
LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ |
LIBUDEV_LIBS = @LIBUDEV_LIBS@ |
LIB_DIR = @LIB_DIR@ |
LIPO = @LIPO@ |
LLVM_BINDIR = @LLVM_BINDIR@ |
LLVM_CFLAGS = @LLVM_CFLAGS@ |
LLVM_CONFIG = @LLVM_CONFIG@ |
LLVM_CPPFLAGS = @LLVM_CPPFLAGS@ |
LLVM_CXXFLAGS = @LLVM_CXXFLAGS@ |
LLVM_INCLUDEDIR = @LLVM_INCLUDEDIR@ |
LLVM_LDFLAGS = @LLVM_LDFLAGS@ |
LLVM_LIBDIR = @LLVM_LIBDIR@ |
LLVM_LIBS = @LLVM_LIBS@ |
LLVM_VERSION = @LLVM_VERSION@ |
LN_S = @LN_S@ |
LTLIBOBJS = @LTLIBOBJS@ |
MAKE = @MAKE@ |
MAKEINFO = @MAKEINFO@ |
MANIFEST_TOOL = @MANIFEST_TOOL@ |
MESA_LLVM = @MESA_LLVM@ |
MKDIR_P = @MKDIR_P@ |
NM = @NM@ |
NMEDIT = @NMEDIT@ |
NOUVEAU_CFLAGS = @NOUVEAU_CFLAGS@ |
NOUVEAU_LIBS = @NOUVEAU_LIBS@ |
OBJDUMP = @OBJDUMP@ |
OBJEXT = @OBJEXT@ |
OPENCL_LIB_INSTALL_DIR = @OPENCL_LIB_INSTALL_DIR@ |
OSMESA_LIB = @OSMESA_LIB@ |
OSMESA_LIB_DEPS = @OSMESA_LIB_DEPS@ |
OSMESA_LIB_NAME = @OSMESA_LIB_NAME@ |
OSMESA_MESA_DEPS = @OSMESA_MESA_DEPS@ |
OSMESA_PC_LIB_PRIV = @OSMESA_PC_LIB_PRIV@ |
OSMESA_PC_REQ = @OSMESA_PC_REQ@ |
OSMESA_VERSION = @OSMESA_VERSION@ |
OTOOL = @OTOOL@ |
OTOOL64 = @OTOOL64@ |
PACKAGE = @PACKAGE@ |
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ |
PACKAGE_NAME = @PACKAGE_NAME@ |
PACKAGE_STRING = @PACKAGE_STRING@ |
PACKAGE_TARNAME = @PACKAGE_TARNAME@ |
PACKAGE_URL = @PACKAGE_URL@ |
PACKAGE_VERSION = @PACKAGE_VERSION@ |
PATH_SEPARATOR = @PATH_SEPARATOR@ |
PERL = @PERL@ |
PKG_CONFIG = @PKG_CONFIG@ |
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ |
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ |
POSIX_SHELL = @POSIX_SHELL@ |
PTHREAD_CC = @PTHREAD_CC@ |
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ |
PTHREAD_LIBS = @PTHREAD_LIBS@ |
PYTHON2 = @PYTHON2@ |
RADEON_CFLAGS = @RADEON_CFLAGS@ |
RADEON_LIBS = @RADEON_LIBS@ |
RANLIB = @RANLIB@ |
SED = @SED@ |
SELINUX_LIBS = @SELINUX_LIBS@ |
SET_MAKE = @SET_MAKE@ |
SHELL = @SHELL@ |
STRIP = @STRIP@ |
VDPAU_CFLAGS = @VDPAU_CFLAGS@ |
VDPAU_LIBS = @VDPAU_LIBS@ |
VDPAU_LIB_INSTALL_DIR = @VDPAU_LIB_INSTALL_DIR@ |
VDPAU_MAJOR = @VDPAU_MAJOR@ |
VDPAU_MINOR = @VDPAU_MINOR@ |
VERSION = @VERSION@ |
VG_LIB_DEPS = @VG_LIB_DEPS@ |
VG_LIB_GLOB = @VG_LIB_GLOB@ |
VG_LIB_NAME = @VG_LIB_NAME@ |
VG_PC_LIB_PRIV = @VG_PC_LIB_PRIV@ |
VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@ |
VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@ |
WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ |
WAYLAND_LIBS = @WAYLAND_LIBS@ |
WAYLAND_SCANNER = @WAYLAND_SCANNER@ |
X11_INCLUDES = @X11_INCLUDES@ |
XA_MAJOR = @XA_MAJOR@ |
XA_MINOR = @XA_MINOR@ |
XA_TINY = @XA_TINY@ |
XA_VERSION = @XA_VERSION@ |
XCB_DRI2_CFLAGS = @XCB_DRI2_CFLAGS@ |
XCB_DRI2_LIBS = @XCB_DRI2_LIBS@ |
XEXT_CFLAGS = @XEXT_CFLAGS@ |
XEXT_LIBS = @XEXT_LIBS@ |
XF86VIDMODE_CFLAGS = @XF86VIDMODE_CFLAGS@ |
XF86VIDMODE_LIBS = @XF86VIDMODE_LIBS@ |
XLIBGL_CFLAGS = @XLIBGL_CFLAGS@ |
XLIBGL_LIBS = @XLIBGL_LIBS@ |
XORG_CFLAGS = @XORG_CFLAGS@ |
XORG_DRIVER_INSTALL_DIR = @XORG_DRIVER_INSTALL_DIR@ |
XORG_LIBS = @XORG_LIBS@ |
XVMC_CFLAGS = @XVMC_CFLAGS@ |
XVMC_LIBS = @XVMC_LIBS@ |
XVMC_LIB_INSTALL_DIR = @XVMC_LIB_INSTALL_DIR@ |
XVMC_MAJOR = @XVMC_MAJOR@ |
XVMC_MINOR = @XVMC_MINOR@ |
YACC = @YACC@ |
YFLAGS = @YFLAGS@ |
abs_builddir = @abs_builddir@ |
abs_srcdir = @abs_srcdir@ |
abs_top_builddir = @abs_top_builddir@ |
abs_top_srcdir = @abs_top_srcdir@ |
ac_ct_AR = @ac_ct_AR@ |
ac_ct_CC = @ac_ct_CC@ |
ac_ct_CC_FOR_BUILD = @ac_ct_CC_FOR_BUILD@ |
ac_ct_CXX = @ac_ct_CXX@ |
ac_ct_CXX_FOR_BUILD = @ac_ct_CXX_FOR_BUILD@ |
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ |
am__include = @am__include@ |
am__leading_dot = @am__leading_dot@ |
am__quote = @am__quote@ |
am__tar = @am__tar@ |
am__untar = @am__untar@ |
ax_pthread_config = @ax_pthread_config@ |
bindir = @bindir@ |
build = @build@ |
build_alias = @build_alias@ |
build_cpu = @build_cpu@ |
build_os = @build_os@ |
build_vendor = @build_vendor@ |
builddir = @builddir@ |
datadir = @datadir@ |
datarootdir = @datarootdir@ |
docdir = @docdir@ |
dvidir = @dvidir@ |
exec_prefix = @exec_prefix@ |
host = @host@ |
host_alias = @host_alias@ |
host_cpu = @host_cpu@ |
host_os = @host_os@ |
host_vendor = @host_vendor@ |
htmldir = @htmldir@ |
includedir = @includedir@ |
infodir = @infodir@ |
install_sh = @install_sh@ |
libdir = @libdir@ |
libexecdir = @libexecdir@ |
localedir = @localedir@ |
localstatedir = @localstatedir@ |
mandir = @mandir@ |
mkdir_p = @mkdir_p@ |
oldincludedir = @oldincludedir@ |
pdfdir = @pdfdir@ |
prefix = @prefix@ |
program_transform_name = @program_transform_name@ |
psdir = @psdir@ |
sbindir = @sbindir@ |
sharedstatedir = @sharedstatedir@ |
srcdir = @srcdir@ |
sysconfdir = @sysconfdir@ |
target = @target@ |
target_alias = @target_alias@ |
target_cpu = @target_cpu@ |
target_os = @target_os@ |
target_vendor = @target_vendor@ |
top_build_prefix = @top_build_prefix@ |
top_builddir = @top_builddir@ |
top_srcdir = @top_srcdir@ |
C_SOURCES := \ |
intel_drm_winsys.c |
GALLIUM_CFLAGS = \ |
-I$(top_srcdir)/include \ |
-I$(top_srcdir)/src/gallium/include \ |
-I$(top_srcdir)/src/gallium/auxiliary \ |
$(DEFINES) |
AM_CFLAGS = \ |
$(GALLIUM_CFLAGS) \ |
$(INTEL_CFLAGS) \ |
$(VISIBILITY_CFLAGS) |
noinst_LTLIBRARIES = libintelwinsys.la |
libintelwinsys_la_SOURCES = $(C_SOURCES) |
all: all-am |
.SUFFIXES: |
.SUFFIXES: .c .lo .o .obj |
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/Makefile.sources $(top_srcdir)/src/gallium/Automake.inc $(am__configure_deps) |
@for dep in $?; do \ |
case '$(am__configure_deps)' in \ |
*$$dep*) \ |
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ |
&& { if test -f $@; then exit 0; else break; fi; }; \ |
exit 1;; \ |
esac; \ |
done; \ |
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/gallium/winsys/intel/drm/Makefile'; \ |
$(am__cd) $(top_srcdir) && \ |
$(AUTOMAKE) --foreign src/gallium/winsys/intel/drm/Makefile |
.PRECIOUS: Makefile |
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
@case '$?' in \ |
*config.status*) \ |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ |
*) \ |
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ |
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ |
esac; |
$(srcdir)/Makefile.sources $(top_srcdir)/src/gallium/Automake.inc: |
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(top_srcdir)/configure: $(am__configure_deps) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(ACLOCAL_M4): $(am__aclocal_m4_deps) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(am__aclocal_m4_deps): |
clean-noinstLTLIBRARIES: |
-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) |
@list='$(noinst_LTLIBRARIES)'; \ |
locs=`for p in $$list; do echo $$p; done | \ |
sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ |
sort -u`; \ |
test -z "$$locs" || { \ |
echo rm -f $${locs}; \ |
rm -f $${locs}; \ |
} |
libintelwinsys.la: $(libintelwinsys_la_OBJECTS) $(libintelwinsys_la_DEPENDENCIES) $(EXTRA_libintelwinsys_la_DEPENDENCIES) |
$(AM_V_CCLD)$(LINK) $(libintelwinsys_la_OBJECTS) $(libintelwinsys_la_LIBADD) $(LIBS) |
mostlyclean-compile: |
-rm -f *.$(OBJEXT) |
distclean-compile: |
-rm -f *.tab.c |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/intel_drm_winsys.Plo@am__quote@ |
.c.o: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< |
.c.obj: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` |
.c.lo: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< |
mostlyclean-libtool: |
-rm -f *.lo |
clean-libtool: |
-rm -rf .libs _libs |
ID: $(am__tagged_files) |
$(am__define_uniq_tagged_files); mkid -fID $$unique |
tags: tags-am |
TAGS: tags |
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
set x; \ |
here=`pwd`; \ |
$(am__define_uniq_tagged_files); \ |
shift; \ |
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ |
test -n "$$unique" || unique=$$empty_fix; \ |
if test $$# -gt 0; then \ |
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
"$$@" $$unique; \ |
else \ |
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
$$unique; \ |
fi; \ |
fi |
ctags: ctags-am |
CTAGS: ctags |
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
$(am__define_uniq_tagged_files); \ |
test -z "$(CTAGS_ARGS)$$unique" \ |
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ |
$$unique |
GTAGS: |
here=`$(am__cd) $(top_builddir) && pwd` \ |
&& $(am__cd) $(top_srcdir) \ |
&& gtags -i $(GTAGS_ARGS) "$$here" |
cscopelist: cscopelist-am |
cscopelist-am: $(am__tagged_files) |
list='$(am__tagged_files)'; \ |
case "$(srcdir)" in \ |
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ |
*) sdir=$(subdir)/$(srcdir) ;; \ |
esac; \ |
for i in $$list; do \ |
if test -f "$$i"; then \ |
echo "$(subdir)/$$i"; \ |
else \ |
echo "$$sdir/$$i"; \ |
fi; \ |
done >> $(top_builddir)/cscope.files |
distclean-tags: |
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |
distdir: $(DISTFILES) |
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
list='$(DISTFILES)'; \ |
dist_files=`for file in $$list; do echo $$file; done | \ |
sed -e "s|^$$srcdirstrip/||;t" \ |
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ |
case $$dist_files in \ |
*/*) $(MKDIR_P) `echo "$$dist_files" | \ |
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ |
sort -u` ;; \ |
esac; \ |
for file in $$dist_files; do \ |
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ |
if test -d $$d/$$file; then \ |
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ |
if test -d "$(distdir)/$$file"; then \ |
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |
fi; \ |
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ |
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ |
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |
fi; \ |
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ |
else \ |
test -f "$(distdir)/$$file" \ |
|| cp -p $$d/$$file "$(distdir)/$$file" \ |
|| exit 1; \ |
fi; \ |
done |
check-am: all-am |
check: check-am |
all-am: Makefile $(LTLIBRARIES) |
installdirs: |
install: install-am |
install-exec: install-exec-am |
install-data: install-data-am |
uninstall: uninstall-am |
install-am: all-am |
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am |
installcheck: installcheck-am |
install-strip: |
if test -z '$(STRIP)'; then \ |
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |
install; \ |
else \ |
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ |
fi |
mostlyclean-generic: |
clean-generic: |
distclean-generic: |
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) |
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) |
maintainer-clean-generic: |
@echo "This command is intended for maintainers to use" |
@echo "it deletes files that may require special tools to rebuild." |
clean: clean-am |
clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ |
mostlyclean-am |
distclean: distclean-am |
-rm -rf ./$(DEPDIR) |
-rm -f Makefile |
distclean-am: clean-am distclean-compile distclean-generic \ |
distclean-tags |
dvi: dvi-am |
dvi-am: |
html: html-am |
html-am: |
info: info-am |
info-am: |
install-data-am: |
install-dvi: install-dvi-am |
install-dvi-am: |
install-exec-am: |
install-html: install-html-am |
install-html-am: |
install-info: install-info-am |
install-info-am: |
install-man: |
install-pdf: install-pdf-am |
install-pdf-am: |
install-ps: install-ps-am |
install-ps-am: |
installcheck-am: |
maintainer-clean: maintainer-clean-am |
-rm -rf ./$(DEPDIR) |
-rm -f Makefile |
maintainer-clean-am: distclean-am maintainer-clean-generic |
mostlyclean: mostlyclean-am |
mostlyclean-am: mostlyclean-compile mostlyclean-generic \ |
mostlyclean-libtool |
pdf: pdf-am |
pdf-am: |
ps: ps-am |
ps-am: |
uninstall-am: |
.MAKE: install-am install-strip |
.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ |
clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ |
ctags-am distclean distclean-compile distclean-generic \ |
distclean-libtool distclean-tags distdir dvi dvi-am html \ |
html-am info info-am install install-am install-data \ |
install-data-am install-dvi install-dvi-am install-exec \ |
install-exec-am install-html install-html-am install-info \ |
install-info-am install-man install-pdf install-pdf-am \ |
install-ps install-ps-am install-strip installcheck \ |
installcheck-am installdirs maintainer-clean \ |
maintainer-clean-generic mostlyclean mostlyclean-compile \ |
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ |
tags tags-am uninstall uninstall-am |
# Tell versions [3.59,3.63) of GNU make to not export all variables. |
# Otherwise a system limit (for SysV at least) may be exceeded. |
.NOEXPORT: |
/contrib/sdk/sources/Mesa/src/gallium/winsys/intel/drm/Makefile.sources |
---|
0,0 → 1,2 |
C_SOURCES := \ |
intel_drm_winsys.c |
/contrib/sdk/sources/Mesa/src/gallium/winsys/intel/drm/intel_drm_winsys.c |
---|
0,0 → 1,501 |
/* |
* Mesa 3-D graphics library |
* |
* Copyright (C) 2012-2013 LunarG, Inc. |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the "Software"), |
* to deal in the Software without restriction, including without limitation |
* the rights to use, copy, modify, merge, publish, distribute, sublicense, |
* and/or sell copies of the Software, and to permit persons to whom the |
* Software is furnished to do so, subject to the following conditions: |
* |
* The above copyright notice and this permission notice shall be included |
* in all copies or substantial portions of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
* DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Chia-I Wu <olv@lunarg.com> |
*/ |
#include <string.h> |
#include <errno.h> |
#ifndef ETIME |
#define ETIME ETIMEDOUT |
#endif |
#include <xf86drm.h> |
#include <i915_drm.h> |
#include <intel_bufmgr.h> |
#include "state_tracker/drm_driver.h" |
#include "pipe/p_state.h" |
#include "util/u_inlines.h" |
#include "util/u_memory.h" |
#include "util/u_debug.h" |
#include "../intel_winsys.h" |
#define BATCH_SZ (8192 * sizeof(uint32_t)) |
struct intel_winsys { |
int fd; |
drm_intel_bufmgr *bufmgr; |
struct intel_winsys_info info; |
struct drm_intel_decode *decode; |
}; |
static bool |
get_param(struct intel_winsys *winsys, int param, int *value) |
{ |
struct drm_i915_getparam gp; |
int err; |
*value = 0; |
memset(&gp, 0, sizeof(gp)); |
gp.param = param; |
gp.value = value; |
err = drmCommandWriteRead(winsys->fd, DRM_I915_GETPARAM, &gp, sizeof(gp)); |
if (err) { |
*value = 0; |
return false; |
} |
return true; |
} |
static bool |
test_address_swizzling(struct intel_winsys *winsys) |
{ |
drm_intel_bo *bo; |
uint32_t tiling = I915_TILING_X, swizzle; |
unsigned long pitch; |
bo = drm_intel_bo_alloc_tiled(winsys->bufmgr, |
"address swizzling test", 64, 64, 4, &tiling, &pitch, 0); |
if (bo) { |
drm_intel_bo_get_tiling(bo, &tiling, &swizzle); |
drm_intel_bo_unreference(bo); |
} |
else { |
swizzle = I915_BIT_6_SWIZZLE_NONE; |
} |
return (swizzle != I915_BIT_6_SWIZZLE_NONE); |
} |
static bool |
init_info(struct intel_winsys *winsys) |
{ |
struct intel_winsys_info *info = &winsys->info; |
int val; |
/* follow the classic driver here */ |
get_param(winsys, I915_PARAM_HAS_RELAXED_DELTA, &val); |
if (!val) { |
debug_error("kernel 2.6.39 required"); |
return false; |
} |
info->devid = drm_intel_bufmgr_gem_get_devid(winsys->bufmgr); |
get_param(winsys, I915_PARAM_HAS_LLC, &val); |
info->has_llc = val; |
get_param(winsys, I915_PARAM_HAS_GEN7_SOL_RESET, &val); |
info->has_gen7_sol_reset = val; |
info->has_address_swizzling = test_address_swizzling(winsys); |
return true; |
} |
struct intel_winsys * |
intel_winsys_create_for_fd(int fd) |
{ |
struct intel_winsys *winsys; |
winsys = CALLOC_STRUCT(intel_winsys); |
if (!winsys) |
return NULL; |
winsys->fd = fd; |
winsys->bufmgr = drm_intel_bufmgr_gem_init(winsys->fd, BATCH_SZ); |
if (!winsys->bufmgr) { |
debug_error("failed to create GEM buffer manager"); |
FREE(winsys); |
return NULL; |
} |
if (!init_info(winsys)) { |
drm_intel_bufmgr_destroy(winsys->bufmgr); |
FREE(winsys); |
return NULL; |
} |
drm_intel_bufmgr_gem_enable_fenced_relocs(winsys->bufmgr); |
return winsys; |
} |
void |
intel_winsys_destroy(struct intel_winsys *winsys) |
{ |
if (winsys->decode) |
drm_intel_decode_context_free(winsys->decode); |
drm_intel_bufmgr_destroy(winsys->bufmgr); |
FREE(winsys); |
} |
const struct intel_winsys_info * |
intel_winsys_get_info(const struct intel_winsys *winsys) |
{ |
return &winsys->info; |
} |
void |
intel_winsys_enable_reuse(struct intel_winsys *winsys) |
{ |
drm_intel_bufmgr_gem_enable_reuse(winsys->bufmgr); |
} |
struct intel_context * |
intel_winsys_create_context(struct intel_winsys *winsys) |
{ |
return (struct intel_context *) |
drm_intel_gem_context_create(winsys->bufmgr); |
} |
void |
intel_winsys_destroy_context(struct intel_winsys *winsys, |
struct intel_context *ctx) |
{ |
drm_intel_gem_context_destroy((drm_intel_context *) ctx); |
} |
int |
intel_winsys_read_reg(struct intel_winsys *winsys, |
uint32_t reg, uint64_t *val) |
{ |
return drm_intel_reg_read(winsys->bufmgr, reg, val); |
} |
struct intel_bo * |
intel_winsys_alloc_buffer(struct intel_winsys *winsys, |
const char *name, |
unsigned long size, |
unsigned long flags) |
{ |
const int alignment = 4096; /* always page-aligned */ |
drm_intel_bo *bo; |
if (flags == INTEL_ALLOC_FOR_RENDER) { |
bo = drm_intel_bo_alloc_for_render(winsys->bufmgr, |
name, size, alignment); |
} |
else { |
assert(!flags); |
bo = drm_intel_bo_alloc(winsys->bufmgr, name, size, alignment); |
} |
return (struct intel_bo *) bo; |
} |
struct intel_bo * |
intel_winsys_alloc_texture(struct intel_winsys *winsys, |
const char *name, |
int width, int height, int cpp, |
enum intel_tiling_mode tiling, |
unsigned long flags, |
unsigned long *pitch) |
{ |
uint32_t real_tiling = tiling; |
drm_intel_bo *bo; |
bo = drm_intel_bo_alloc_tiled(winsys->bufmgr, name, |
width, height, cpp, &real_tiling, pitch, flags); |
if (!bo) |
return NULL; |
if (real_tiling != tiling) { |
assert(!"tiling mismatch"); |
drm_intel_bo_unreference(bo); |
return NULL; |
} |
return (struct intel_bo *) bo; |
} |
struct intel_bo * |
intel_winsys_import_handle(struct intel_winsys *winsys, |
const char *name, |
const struct winsys_handle *handle, |
int width, int height, int cpp, |
enum intel_tiling_mode *tiling, |
unsigned long *pitch) |
{ |
uint32_t real_tiling, swizzle; |
drm_intel_bo *bo; |
int err; |
switch (handle->type) { |
case DRM_API_HANDLE_TYPE_SHARED: |
{ |
const uint32_t gem_name = handle->handle; |
bo = drm_intel_bo_gem_create_from_name(winsys->bufmgr, |
name, gem_name); |
} |
break; |
#if 0 |
case DRM_API_HANDLE_TYPE_FD: |
{ |
const int fd = (int) handle->handle; |
bo = drm_intel_bo_gem_create_from_prime(winsys->bufmgr, |
fd, height * handle->stride); |
} |
break; |
#endif |
default: |
bo = NULL; |
break; |
} |
if (!bo) |
return NULL; |
err = drm_intel_bo_get_tiling(bo, &real_tiling, &swizzle); |
if (err) { |
drm_intel_bo_unreference(bo); |
return NULL; |
} |
*tiling = real_tiling; |
*pitch = handle->stride; |
return (struct intel_bo *) bo; |
} |
int |
intel_winsys_export_handle(struct intel_winsys *winsys, |
struct intel_bo *bo, |
enum intel_tiling_mode tiling, |
unsigned long pitch, |
struct winsys_handle *handle) |
{ |
int err = 0; |
switch (handle->type) { |
case DRM_API_HANDLE_TYPE_SHARED: |
{ |
uint32_t name; |
err = drm_intel_bo_flink((drm_intel_bo *) bo, &name); |
if (!err) |
handle->handle = name; |
} |
break; |
case DRM_API_HANDLE_TYPE_KMS: |
handle->handle = ((drm_intel_bo *) bo)->handle; |
break; |
#if 0 |
case DRM_API_HANDLE_TYPE_FD: |
{ |
int fd; |
err = drm_intel_bo_gem_export_to_prime((drm_intel_bo *) bo, &fd); |
if (!err) |
handle->handle = fd; |
} |
break; |
#endif |
default: |
err = -EINVAL; |
break; |
} |
if (err) |
return err; |
handle->stride = pitch; |
return 0; |
} |
int |
intel_winsys_check_aperture_space(struct intel_winsys *winsys, |
struct intel_bo **bo_array, |
int count) |
{ |
return drm_intel_bufmgr_check_aperture_space((drm_intel_bo **) bo_array, |
count); |
} |
void |
intel_winsys_decode_commands(struct intel_winsys *winsys, |
struct intel_bo *bo, int used) |
{ |
int err; |
if (!winsys->decode) { |
winsys->decode = drm_intel_decode_context_alloc(winsys->info.devid); |
if (!winsys->decode) |
return; |
/* debug_printf()/debug_error() uses stderr by default */ |
drm_intel_decode_set_output_file(winsys->decode, stderr); |
} |
err = intel_bo_map(bo, false); |
if (err) { |
debug_printf("failed to map buffer for decoding\n"); |
return; |
} |
/* in dwords */ |
used /= 4; |
drm_intel_decode_set_batch_pointer(winsys->decode, |
intel_bo_get_virtual(bo), intel_bo_get_offset(bo), used); |
drm_intel_decode(winsys->decode); |
intel_bo_unmap(bo); |
} |
void |
intel_bo_reference(struct intel_bo *bo) |
{ |
drm_intel_bo_reference((drm_intel_bo *) bo); |
} |
void |
intel_bo_unreference(struct intel_bo *bo) |
{ |
drm_intel_bo_unreference((drm_intel_bo *) bo); |
} |
unsigned long |
intel_bo_get_size(const struct intel_bo *bo) |
{ |
return ((drm_intel_bo *) bo)->size; |
} |
unsigned long |
intel_bo_get_offset(const struct intel_bo *bo) |
{ |
return ((drm_intel_bo *) bo)->offset; |
} |
void * |
intel_bo_get_virtual(const struct intel_bo *bo) |
{ |
return ((drm_intel_bo *) bo)->virtual; |
} |
int |
intel_bo_map(struct intel_bo *bo, bool write_enable) |
{ |
return drm_intel_bo_map((drm_intel_bo *) bo, write_enable); |
} |
int |
intel_bo_map_gtt(struct intel_bo *bo) |
{ |
return drm_intel_gem_bo_map_gtt((drm_intel_bo *) bo); |
} |
int |
intel_bo_map_unsynchronized(struct intel_bo *bo) |
{ |
return drm_intel_gem_bo_map_unsynchronized((drm_intel_bo *) bo); |
} |
void |
intel_bo_unmap(struct intel_bo *bo) |
{ |
int err; |
err = drm_intel_bo_unmap((drm_intel_bo *) bo); |
assert(!err); |
} |
int |
intel_bo_pwrite(struct intel_bo *bo, unsigned long offset, |
unsigned long size, const void *data) |
{ |
return drm_intel_bo_subdata((drm_intel_bo *) bo, offset, size, data); |
} |
int |
intel_bo_pread(struct intel_bo *bo, unsigned long offset, |
unsigned long size, void *data) |
{ |
return drm_intel_bo_get_subdata((drm_intel_bo *) bo, offset, size, data); |
} |
int |
intel_bo_emit_reloc(struct intel_bo *bo, uint32_t offset, |
struct intel_bo *target_bo, uint32_t target_offset, |
uint32_t read_domains, uint32_t write_domain) |
{ |
return drm_intel_bo_emit_reloc((drm_intel_bo *) bo, offset, |
(drm_intel_bo *) target_bo, target_offset, |
read_domains, write_domain); |
} |
int |
intel_bo_get_reloc_count(struct intel_bo *bo) |
{ |
return drm_intel_gem_bo_get_reloc_count((drm_intel_bo *) bo); |
} |
void |
intel_bo_clear_relocs(struct intel_bo *bo, int start) |
{ |
return drm_intel_gem_bo_clear_relocs((drm_intel_bo *) bo, start); |
} |
bool |
intel_bo_references(struct intel_bo *bo, struct intel_bo *target_bo) |
{ |
return drm_intel_bo_references((drm_intel_bo *) bo, |
(drm_intel_bo *) target_bo); |
} |
int |
intel_bo_exec(struct intel_bo *bo, int used, |
struct intel_context *ctx, unsigned long flags) |
{ |
if (ctx) { |
return drm_intel_gem_bo_context_exec((drm_intel_bo *) bo, |
(drm_intel_context *) ctx, used, flags); |
} |
else { |
return drm_intel_bo_mrb_exec((drm_intel_bo *) bo, |
used, NULL, 0, 0, flags); |
} |
} |
int |
intel_bo_wait(struct intel_bo *bo, int64_t timeout) |
{ |
int err; |
err = drm_intel_gem_bo_wait((drm_intel_bo *) bo, timeout); |
/* consider the bo idle on errors */ |
if (err && err != -ETIME) |
err = 0; |
return err; |
} |
/contrib/sdk/sources/Mesa/src/gallium/winsys/intel/intel_winsys.h |
---|
0,0 → 1,261 |
/* |
* Mesa 3-D graphics library |
* |
* Copyright (C) 2012-2013 LunarG, Inc. |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the "Software"), |
* to deal in the Software without restriction, including without limitation |
* the rights to use, copy, modify, merge, publish, distribute, sublicense, |
* and/or sell copies of the Software, and to permit persons to whom the |
* Software is furnished to do so, subject to the following conditions: |
* |
* The above copyright notice and this permission notice shall be included |
* in all copies or substantial portions of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
* DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Chia-I Wu <olv@lunarg.com> |
*/ |
#ifndef INTEL_WINSYS_H |
#define INTEL_WINSYS_H |
#include "pipe/p_compiler.h" |
/* this is compatible with i915_drm.h's definitions */ |
enum intel_exec_flag { |
/* bits[2:0]: ring type */ |
INTEL_EXEC_DEFAULT = 0 << 0, |
INTEL_EXEC_RENDER = 1 << 0, |
INTEL_EXEC_BSD = 2 << 0, |
INTEL_EXEC_BLT = 3 << 0, |
/* bits[7:6]: constant buffer addressing mode */ |
/* bits[8]: reset SO write offset register on GEN7+ */ |
INTEL_EXEC_GEN7_SOL_RESET = 1 << 8, |
}; |
/* this is compatible with i915_drm.h's definitions */ |
enum intel_domain_flag { |
INTEL_DOMAIN_CPU = 0x00000001, |
INTEL_DOMAIN_RENDER = 0x00000002, |
INTEL_DOMAIN_SAMPLER = 0x00000004, |
INTEL_DOMAIN_COMMAND = 0x00000008, |
INTEL_DOMAIN_INSTRUCTION = 0x00000010, |
INTEL_DOMAIN_VERTEX = 0x00000020, |
INTEL_DOMAIN_GTT = 0x00000040, |
}; |
/* this is compatible with i915_drm.h's definitions */ |
enum intel_tiling_mode { |
INTEL_TILING_NONE = 0, |
INTEL_TILING_X = 1, |
INTEL_TILING_Y = 2, |
}; |
/* this is compatible with intel_bufmgr.h's definitions */ |
enum intel_alloc_flag { |
INTEL_ALLOC_FOR_RENDER = 1 << 0, |
}; |
struct winsys_handle; |
struct intel_winsys; |
struct intel_context; |
struct intel_bo; |
struct intel_winsys_info { |
int devid; |
bool has_llc; |
bool has_gen7_sol_reset; |
bool has_address_swizzling; |
}; |
struct intel_winsys * |
intel_winsys_create_for_fd(int fd); |
void |
intel_winsys_destroy(struct intel_winsys *winsys); |
const struct intel_winsys_info * |
intel_winsys_get_info(const struct intel_winsys *winsys); |
void |
intel_winsys_enable_reuse(struct intel_winsys *winsys); |
struct intel_context * |
intel_winsys_create_context(struct intel_winsys *winsys); |
void |
intel_winsys_destroy_context(struct intel_winsys *winsys, |
struct intel_context *ctx); |
int |
intel_winsys_read_reg(struct intel_winsys *winsys, |
uint32_t reg, uint64_t *val); |
struct intel_bo * |
intel_winsys_alloc_buffer(struct intel_winsys *winsys, |
const char *name, |
unsigned long size, |
unsigned long flags); |
struct intel_bo * |
intel_winsys_alloc_texture(struct intel_winsys *winsys, |
const char *name, |
int width, int height, int cpp, |
enum intel_tiling_mode tiling, |
unsigned long flags, |
unsigned long *pitch); |
struct intel_bo * |
intel_winsys_import_handle(struct intel_winsys *winsys, |
const char *name, |
const struct winsys_handle *handle, |
int width, int height, int cpp, |
enum intel_tiling_mode *tiling, |
unsigned long *pitch); |
/** |
* Export a handle for inter-process sharing. |
*/ |
int |
intel_winsys_export_handle(struct intel_winsys *winsys, |
struct intel_bo *bo, |
enum intel_tiling_mode tiling, |
unsigned long pitch, |
struct winsys_handle *handle); |
int |
intel_winsys_check_aperture_space(struct intel_winsys *winsys, |
struct intel_bo **bo_array, |
int count); |
void |
intel_winsys_decode_commands(struct intel_winsys *winsys, |
struct intel_bo *bo, int used); |
void |
intel_bo_reference(struct intel_bo *bo); |
void |
intel_bo_unreference(struct intel_bo *bo); |
unsigned long |
intel_bo_get_size(const struct intel_bo *bo); |
unsigned long |
intel_bo_get_offset(const struct intel_bo *bo); |
void * |
intel_bo_get_virtual(const struct intel_bo *bo); |
/** |
* Map/unmap \p bo for CPU access. |
* |
* map() maps the backing store into CPU address space, cached. This |
* variant allows for fast random reads and writes. But the caller needs |
* handle tiling or swizzling manually if the bo is tiled or swizzled. If |
* write is enabled and there is no shared last-level cache (LLC), unmap() |
* needs to flush the cache, which is rather expensive. |
* |
* map_gtt() maps the bo for MMIO access, uncached but write-combined. |
* This variant promises a reasonable speed for sequential writes, but |
* reads would be very slow. Callers always have a linear view of the bo. |
* |
* map_unsynchronized() is similar to map_gtt(), except that it does not |
* wait until the bo is idle. |
*/ |
int |
intel_bo_map(struct intel_bo *bo, bool write_enable); |
int |
intel_bo_map_gtt(struct intel_bo *bo); |
int |
intel_bo_map_unsynchronized(struct intel_bo *bo); |
void |
intel_bo_unmap(struct intel_bo *bo); |
/** |
* Move data in to or out of the bo. |
*/ |
int |
intel_bo_pwrite(struct intel_bo *bo, unsigned long offset, |
unsigned long size, const void *data); |
int |
intel_bo_pread(struct intel_bo *bo, unsigned long offset, |
unsigned long size, void *data); |
/** |
* Add \p target_bo to the relocation list. |
* |
* When \p bo is submitted for execution, and if \p target_bo has moved, |
* the kernel will patch \p bo at \p offset to \p target_bo->offset plus |
* \p target_offset. |
*/ |
int |
intel_bo_emit_reloc(struct intel_bo *bo, uint32_t offset, |
struct intel_bo *target_bo, uint32_t target_offset, |
uint32_t read_domains, uint32_t write_domain); |
/** |
* Return the current number of relocations. |
*/ |
int |
intel_bo_get_reloc_count(struct intel_bo *bo); |
/** |
* Discard all relocations except the first \p start ones. |
* |
* Combined with \p get_reloc_count(), they can be used to undo |
* the \p emit_reloc() calls that were just made. |
*/ |
void |
intel_bo_clear_relocs(struct intel_bo *bo, int start); |
/** |
* Return true if \p target_bo is on the relocation list of \p bo, or on |
* the relocation list of some bo that is referenced by \p bo. |
*/ |
bool |
intel_bo_references(struct intel_bo *bo, struct intel_bo *target_bo); |
/** |
* Submit \p bo for execution. |
* |
* \p bo and all bos referenced by \p bo will be considered busy until all |
* commands are parsed and executed. |
*/ |
int |
intel_bo_exec(struct intel_bo *bo, int used, |
struct intel_context *ctx, unsigned long flags); |
/** |
* Wait until \bo is idle, or \p timeout nanoseconds have passed. A |
* negative timeout means to wait indefinitely. |
* |
* \return 0 only when \p bo is idle |
*/ |
int |
intel_bo_wait(struct intel_bo *bo, int64_t timeout); |
/** |
* Return true if \p bo is busy. |
*/ |
static inline bool |
intel_bo_is_busy(struct intel_bo *bo) |
{ |
return (intel_bo_wait(bo, 0) != 0); |
} |
#endif /* INTEL_WINSYS_H */ |
/contrib/sdk/sources/Mesa/src/gallium/winsys/nouveau/drm/Android.mk |
---|
0,0 → 1,41 |
# Mesa 3-D graphics library |
# |
# Copyright (C) 2011 Chia-I Wu <olvaffe@gmail.com> |
# Copyright (C) 2011 LunarG Inc. |
# |
# Permission is hereby granted, free of charge, to any person obtaining a |
# copy of this software and associated documentation files (the "Software"), |
# to deal in the Software without restriction, including without limitation |
# the rights to use, copy, modify, merge, publish, distribute, sublicense, |
# and/or sell copies of the Software, and to permit persons to whom the |
# Software is furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice shall be included |
# in all copies or substantial portions of the Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
# DEALINGS IN THE SOFTWARE. |
LOCAL_PATH := $(call my-dir) |
# from Makefile |
C_SOURCES = nouveau_drm_winsys.c |
include $(CLEAR_VARS) |
LOCAL_SRC_FILES := $(C_SOURCES) |
LOCAL_C_INCLUDES := \ |
$(DRM_TOP) \ |
$(DRM_TOP)/include/drm \ |
$(DRM_TOP)/nouveau |
LOCAL_MODULE := libmesa_winsys_nouveau |
include $(GALLIUM_COMMON_MK) |
include $(BUILD_STATIC_LIBRARY) |
/contrib/sdk/sources/Mesa/src/gallium/winsys/nouveau/drm/Makefile.am |
---|
0,0 → 1,33 |
# Copyright © 2012 Intel Corporation |
# |
# Permission is hereby granted, free of charge, to any person obtaining a |
# copy of this software and associated documentation files (the "Software"), |
# to deal in the Software without restriction, including without limitation |
# the rights to use, copy, modify, merge, publish, distribute, sublicense, |
# and/or sell copies of the Software, and to permit persons to whom the |
# Software is furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice (including the next |
# paragraph) shall be included in all copies or substantial portions of the |
# Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
# DEALINGS IN THE SOFTWARE. |
include $(top_srcdir)/src/gallium/Automake.inc |
AM_CFLAGS = \ |
-I$(top_srcdir)/include \ |
-I$(top_srcdir)/src/gallium/drivers \ |
$(GALLIUM_CFLAGS) \ |
$(NOUVEAU_CFLAGS) |
noinst_LTLIBRARIES = libnouveaudrm.la |
libnouveaudrm_la_SOURCES = nouveau_drm_winsys.c |
/contrib/sdk/sources/Mesa/src/gallium/winsys/nouveau/drm/Makefile.in |
---|
0,0 → 1,779 |
# Makefile.in generated by automake 1.14 from Makefile.am. |
# @configure_input@ |
# Copyright (C) 1994-2013 Free Software Foundation, Inc. |
# This Makefile.in is free software; the Free Software Foundation |
# gives unlimited permission to copy and/or distribute it, |
# with or without modifications, as long as this notice is preserved. |
# This program is distributed in the hope that it will be useful, |
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without |
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A |
# PARTICULAR PURPOSE. |
@SET_MAKE@ |
# Copyright © 2012 Intel Corporation |
# |
# Permission is hereby granted, free of charge, to any person obtaining a |
# copy of this software and associated documentation files (the "Software"), |
# to deal in the Software without restriction, including without limitation |
# the rights to use, copy, modify, merge, publish, distribute, sublicense, |
# and/or sell copies of the Software, and to permit persons to whom the |
# Software is furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice (including the next |
# paragraph) shall be included in all copies or substantial portions of the |
# Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
# DEALINGS IN THE SOFTWARE. |
VPATH = @srcdir@ |
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' |
am__make_running_with_option = \ |
case $${target_option-} in \ |
?) ;; \ |
*) echo "am__make_running_with_option: internal error: invalid" \ |
"target option '$${target_option-}' specified" >&2; \ |
exit 1;; \ |
esac; \ |
has_opt=no; \ |
sane_makeflags=$$MAKEFLAGS; \ |
if $(am__is_gnu_make); then \ |
sane_makeflags=$$MFLAGS; \ |
else \ |
case $$MAKEFLAGS in \ |
*\\[\ \ ]*) \ |
bs=\\; \ |
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ |
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ |
esac; \ |
fi; \ |
skip_next=no; \ |
strip_trailopt () \ |
{ \ |
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ |
}; \ |
for flg in $$sane_makeflags; do \ |
test $$skip_next = yes && { skip_next=no; continue; }; \ |
case $$flg in \ |
*=*|--*) continue;; \ |
-*I) strip_trailopt 'I'; skip_next=yes;; \ |
-*I?*) strip_trailopt 'I';; \ |
-*O) strip_trailopt 'O'; skip_next=yes;; \ |
-*O?*) strip_trailopt 'O';; \ |
-*l) strip_trailopt 'l'; skip_next=yes;; \ |
-*l?*) strip_trailopt 'l';; \ |
-[dEDm]) skip_next=yes;; \ |
-[JT]) skip_next=yes;; \ |
esac; \ |
case $$flg in \ |
*$$target_option*) has_opt=yes; break;; \ |
esac; \ |
done; \ |
test $$has_opt = yes |
am__make_dryrun = (target_option=n; $(am__make_running_with_option)) |
am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) |
pkgdatadir = $(datadir)/@PACKAGE@ |
pkgincludedir = $(includedir)/@PACKAGE@ |
pkglibdir = $(libdir)/@PACKAGE@ |
pkglibexecdir = $(libexecdir)/@PACKAGE@ |
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd |
install_sh_DATA = $(install_sh) -c -m 644 |
install_sh_PROGRAM = $(install_sh) -c |
install_sh_SCRIPT = $(install_sh) -c |
INSTALL_HEADER = $(INSTALL_DATA) |
transform = $(program_transform_name) |
NORMAL_INSTALL = : |
PRE_INSTALL = : |
POST_INSTALL = : |
NORMAL_UNINSTALL = : |
PRE_UNINSTALL = : |
POST_UNINSTALL = : |
build_triplet = @build@ |
host_triplet = @host@ |
target_triplet = @target@ |
DIST_COMMON = $(top_srcdir)/src/gallium/Automake.inc \ |
$(srcdir)/Makefile.in $(srcdir)/Makefile.am \ |
$(top_srcdir)/bin/depcomp |
subdir = src/gallium/winsys/nouveau/drm |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_prog_bison.m4 \ |
$(top_srcdir)/m4/ax_prog_cc_for_build.m4 \ |
$(top_srcdir)/m4/ax_prog_cxx_for_build.m4 \ |
$(top_srcdir)/m4/ax_prog_flex.m4 \ |
$(top_srcdir)/m4/ax_pthread.m4 \ |
$(top_srcdir)/m4/ax_python_module.m4 \ |
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ |
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ |
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac |
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
$(ACLOCAL_M4) |
mkinstalldirs = $(install_sh) -d |
CONFIG_CLEAN_FILES = |
CONFIG_CLEAN_VPATH_FILES = |
LTLIBRARIES = $(noinst_LTLIBRARIES) |
libnouveaudrm_la_LIBADD = |
am_libnouveaudrm_la_OBJECTS = nouveau_drm_winsys.lo |
libnouveaudrm_la_OBJECTS = $(am_libnouveaudrm_la_OBJECTS) |
AM_V_lt = $(am__v_lt_@AM_V@) |
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) |
am__v_lt_0 = --silent |
am__v_lt_1 = |
AM_V_P = $(am__v_P_@AM_V@) |
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) |
am__v_P_0 = false |
am__v_P_1 = : |
AM_V_GEN = $(am__v_GEN_@AM_V@) |
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) |
am__v_GEN_0 = @echo " GEN " $@; |
am__v_GEN_1 = |
AM_V_at = $(am__v_at_@AM_V@) |
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) |
am__v_at_0 = @ |
am__v_at_1 = |
DEFAULT_INCLUDES = -I.@am__isrc@ |
depcomp = $(SHELL) $(top_srcdir)/bin/depcomp |
am__depfiles_maybe = depfiles |
am__mv = mv -f |
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ |
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) |
LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ |
$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ |
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ |
$(AM_CFLAGS) $(CFLAGS) |
AM_V_CC = $(am__v_CC_@AM_V@) |
am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) |
am__v_CC_0 = @echo " CC " $@; |
am__v_CC_1 = |
CCLD = $(CC) |
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ |
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ |
$(AM_LDFLAGS) $(LDFLAGS) -o $@ |
AM_V_CCLD = $(am__v_CCLD_@AM_V@) |
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) |
am__v_CCLD_0 = @echo " CCLD " $@; |
am__v_CCLD_1 = |
SOURCES = $(libnouveaudrm_la_SOURCES) |
DIST_SOURCES = $(libnouveaudrm_la_SOURCES) |
am__can_run_installinfo = \ |
case $$AM_UPDATE_INFO_DIR in \ |
n|no|NO) false;; \ |
*) (install-info --version) >/dev/null 2>&1;; \ |
esac |
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) |
# Read a list of newline-separated strings from the standard input, |
# and print each of them once, without duplicates. Input order is |
# *not* preserved. |
am__uniquify_input = $(AWK) '\ |
BEGIN { nonempty = 0; } \ |
{ items[$$0] = 1; nonempty = 1; } \ |
END { if (nonempty) { for (i in items) print i; }; } \ |
' |
# Make sure the list of sources is unique. This is necessary because, |
# e.g., the same source file might be shared among _SOURCES variables |
# for different programs/libraries. |
am__define_uniq_tagged_files = \ |
list='$(am__tagged_files)'; \ |
unique=`for i in $$list; do \ |
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ |
done | $(am__uniquify_input)` |
ETAGS = etags |
CTAGS = ctags |
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) |
ACLOCAL = @ACLOCAL@ |
AMTAR = @AMTAR@ |
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ |
AR = @AR@ |
AUTOCONF = @AUTOCONF@ |
AUTOHEADER = @AUTOHEADER@ |
AUTOMAKE = @AUTOMAKE@ |
AWK = @AWK@ |
BUILD_EXEEXT = @BUILD_EXEEXT@ |
BUILD_OBJEXT = @BUILD_OBJEXT@ |
CC = @CC@ |
CCAS = @CCAS@ |
CCASDEPMODE = @CCASDEPMODE@ |
CCASFLAGS = @CCASFLAGS@ |
CCDEPMODE = @CCDEPMODE@ |
CC_FOR_BUILD = @CC_FOR_BUILD@ |
CFLAGS = @CFLAGS@ |
CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ |
CLANG_RESOURCE_DIR = @CLANG_RESOURCE_DIR@ |
CLOCK_LIB = @CLOCK_LIB@ |
CPP = @CPP@ |
CPPFLAGS = @CPPFLAGS@ |
CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@ |
CPP_FOR_BUILD = @CPP_FOR_BUILD@ |
CXX = @CXX@ |
CXXCPP = @CXXCPP@ |
CXXCPPFLAGS_FOR_BUILD = @CXXCPPFLAGS_FOR_BUILD@ |
CXXCPP_FOR_BUILD = @CXXCPP_FOR_BUILD@ |
CXXDEPMODE = @CXXDEPMODE@ |
CXXFLAGS = @CXXFLAGS@ |
CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@ |
CXX_FOR_BUILD = @CXX_FOR_BUILD@ |
CYGPATH_W = @CYGPATH_W@ |
DEFINES = @DEFINES@ |
DEFINES_FOR_BUILD = @DEFINES_FOR_BUILD@ |
DEFS = @DEFS@ |
DEPDIR = @DEPDIR@ |
DLLTOOL = @DLLTOOL@ |
DLOPEN_LIBS = @DLOPEN_LIBS@ |
DRI2PROTO_CFLAGS = @DRI2PROTO_CFLAGS@ |
DRI2PROTO_LIBS = @DRI2PROTO_LIBS@ |
DRIGL_CFLAGS = @DRIGL_CFLAGS@ |
DRIGL_LIBS = @DRIGL_LIBS@ |
DRI_DRIVER_INSTALL_DIR = @DRI_DRIVER_INSTALL_DIR@ |
DRI_DRIVER_SEARCH_DIR = @DRI_DRIVER_SEARCH_DIR@ |
DRI_LIB_DEPS = @DRI_LIB_DEPS@ |
DRI_PC_REQ_PRIV = @DRI_PC_REQ_PRIV@ |
DSYMUTIL = @DSYMUTIL@ |
DUMPBIN = @DUMPBIN@ |
ECHO_C = @ECHO_C@ |
ECHO_N = @ECHO_N@ |
ECHO_T = @ECHO_T@ |
EGL_CFLAGS = @EGL_CFLAGS@ |
EGL_CLIENT_APIS = @EGL_CLIENT_APIS@ |
EGL_DRIVER_INSTALL_DIR = @EGL_DRIVER_INSTALL_DIR@ |
EGL_LIB_DEPS = @EGL_LIB_DEPS@ |
EGL_LIB_GLOB = @EGL_LIB_GLOB@ |
EGL_LIB_NAME = @EGL_LIB_NAME@ |
EGL_NATIVE_PLATFORM = @EGL_NATIVE_PLATFORM@ |
EGL_PLATFORMS = @EGL_PLATFORMS@ |
EGREP = @EGREP@ |
ELF_LIB = @ELF_LIB@ |
EXEEXT = @EXEEXT@ |
EXPAT_INCLUDES = @EXPAT_INCLUDES@ |
FGREP = @FGREP@ |
FREEDRENO_CFLAGS = @FREEDRENO_CFLAGS@ |
FREEDRENO_LIBS = @FREEDRENO_LIBS@ |
GALLIUM_DRI_LIB_DEPS = @GALLIUM_DRI_LIB_DEPS@ |
GALLIUM_PIPE_LOADER_DEFINES = @GALLIUM_PIPE_LOADER_DEFINES@ |
GALLIUM_PIPE_LOADER_LIBS = @GALLIUM_PIPE_LOADER_LIBS@ |
GALLIUM_PIPE_LOADER_XCB_CFLAGS = @GALLIUM_PIPE_LOADER_XCB_CFLAGS@ |
GALLIUM_PIPE_LOADER_XCB_LIBS = @GALLIUM_PIPE_LOADER_XCB_LIBS@ |
GBM_PC_LIB_PRIV = @GBM_PC_LIB_PRIV@ |
GBM_PC_REQ_PRIV = @GBM_PC_REQ_PRIV@ |
GLAPI_LIB_GLOB = @GLAPI_LIB_GLOB@ |
GLAPI_LIB_NAME = @GLAPI_LIB_NAME@ |
GLESv1_CM_LIB_DEPS = @GLESv1_CM_LIB_DEPS@ |
GLESv1_CM_LIB_GLOB = @GLESv1_CM_LIB_GLOB@ |
GLESv1_CM_LIB_NAME = @GLESv1_CM_LIB_NAME@ |
GLESv1_CM_PC_LIB_PRIV = @GLESv1_CM_PC_LIB_PRIV@ |
GLESv2_LIB_DEPS = @GLESv2_LIB_DEPS@ |
GLESv2_LIB_GLOB = @GLESv2_LIB_GLOB@ |
GLESv2_LIB_NAME = @GLESv2_LIB_NAME@ |
GLESv2_PC_LIB_PRIV = @GLESv2_PC_LIB_PRIV@ |
GLPROTO_CFLAGS = @GLPROTO_CFLAGS@ |
GLPROTO_LIBS = @GLPROTO_LIBS@ |
GLX_TLS = @GLX_TLS@ |
GL_LIB = @GL_LIB@ |
GL_LIB_DEPS = @GL_LIB_DEPS@ |
GL_LIB_GLOB = @GL_LIB_GLOB@ |
GL_LIB_NAME = @GL_LIB_NAME@ |
GL_PC_CFLAGS = @GL_PC_CFLAGS@ |
GL_PC_LIB_PRIV = @GL_PC_LIB_PRIV@ |
GL_PC_REQ_PRIV = @GL_PC_REQ_PRIV@ |
GREP = @GREP@ |
HAVE_XF86VIDMODE = @HAVE_XF86VIDMODE@ |
INDENT = @INDENT@ |
INDENT_FLAGS = @INDENT_FLAGS@ |
INSTALL = @INSTALL@ |
INSTALL_DATA = @INSTALL_DATA@ |
INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ |
INTEL_CFLAGS = @INTEL_CFLAGS@ |
INTEL_LIBS = @INTEL_LIBS@ |
LD = @LD@ |
LDFLAGS = @LDFLAGS@ |
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ |
LEX = @LEX@ |
LEXLIB = @LEXLIB@ |
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ |
LIBCLC_INCLUDEDIR = @LIBCLC_INCLUDEDIR@ |
LIBCLC_LIBEXECDIR = @LIBCLC_LIBEXECDIR@ |
LIBDRM_CFLAGS = @LIBDRM_CFLAGS@ |
LIBDRM_LIBS = @LIBDRM_LIBS@ |
LIBDRM_XORG_CFLAGS = @LIBDRM_XORG_CFLAGS@ |
LIBDRM_XORG_LIBS = @LIBDRM_XORG_LIBS@ |
LIBKMS_XORG_CFLAGS = @LIBKMS_XORG_CFLAGS@ |
LIBKMS_XORG_LIBS = @LIBKMS_XORG_LIBS@ |
LIBOBJS = @LIBOBJS@ |
LIBS = @LIBS@ |
LIBTOOL = @LIBTOOL@ |
LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ |
LIBUDEV_LIBS = @LIBUDEV_LIBS@ |
LIB_DIR = @LIB_DIR@ |
LIPO = @LIPO@ |
LLVM_BINDIR = @LLVM_BINDIR@ |
LLVM_CFLAGS = @LLVM_CFLAGS@ |
LLVM_CONFIG = @LLVM_CONFIG@ |
LLVM_CPPFLAGS = @LLVM_CPPFLAGS@ |
LLVM_CXXFLAGS = @LLVM_CXXFLAGS@ |
LLVM_INCLUDEDIR = @LLVM_INCLUDEDIR@ |
LLVM_LDFLAGS = @LLVM_LDFLAGS@ |
LLVM_LIBDIR = @LLVM_LIBDIR@ |
LLVM_LIBS = @LLVM_LIBS@ |
LLVM_VERSION = @LLVM_VERSION@ |
LN_S = @LN_S@ |
LTLIBOBJS = @LTLIBOBJS@ |
MAKE = @MAKE@ |
MAKEINFO = @MAKEINFO@ |
MANIFEST_TOOL = @MANIFEST_TOOL@ |
MESA_LLVM = @MESA_LLVM@ |
MKDIR_P = @MKDIR_P@ |
NM = @NM@ |
NMEDIT = @NMEDIT@ |
NOUVEAU_CFLAGS = @NOUVEAU_CFLAGS@ |
NOUVEAU_LIBS = @NOUVEAU_LIBS@ |
OBJDUMP = @OBJDUMP@ |
OBJEXT = @OBJEXT@ |
OPENCL_LIB_INSTALL_DIR = @OPENCL_LIB_INSTALL_DIR@ |
OSMESA_LIB = @OSMESA_LIB@ |
OSMESA_LIB_DEPS = @OSMESA_LIB_DEPS@ |
OSMESA_LIB_NAME = @OSMESA_LIB_NAME@ |
OSMESA_MESA_DEPS = @OSMESA_MESA_DEPS@ |
OSMESA_PC_LIB_PRIV = @OSMESA_PC_LIB_PRIV@ |
OSMESA_PC_REQ = @OSMESA_PC_REQ@ |
OSMESA_VERSION = @OSMESA_VERSION@ |
OTOOL = @OTOOL@ |
OTOOL64 = @OTOOL64@ |
PACKAGE = @PACKAGE@ |
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ |
PACKAGE_NAME = @PACKAGE_NAME@ |
PACKAGE_STRING = @PACKAGE_STRING@ |
PACKAGE_TARNAME = @PACKAGE_TARNAME@ |
PACKAGE_URL = @PACKAGE_URL@ |
PACKAGE_VERSION = @PACKAGE_VERSION@ |
PATH_SEPARATOR = @PATH_SEPARATOR@ |
PERL = @PERL@ |
PKG_CONFIG = @PKG_CONFIG@ |
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ |
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ |
POSIX_SHELL = @POSIX_SHELL@ |
PTHREAD_CC = @PTHREAD_CC@ |
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ |
PTHREAD_LIBS = @PTHREAD_LIBS@ |
PYTHON2 = @PYTHON2@ |
RADEON_CFLAGS = @RADEON_CFLAGS@ |
RADEON_LIBS = @RADEON_LIBS@ |
RANLIB = @RANLIB@ |
SED = @SED@ |
SELINUX_LIBS = @SELINUX_LIBS@ |
SET_MAKE = @SET_MAKE@ |
SHELL = @SHELL@ |
STRIP = @STRIP@ |
VDPAU_CFLAGS = @VDPAU_CFLAGS@ |
VDPAU_LIBS = @VDPAU_LIBS@ |
VDPAU_LIB_INSTALL_DIR = @VDPAU_LIB_INSTALL_DIR@ |
VDPAU_MAJOR = @VDPAU_MAJOR@ |
VDPAU_MINOR = @VDPAU_MINOR@ |
VERSION = @VERSION@ |
VG_LIB_DEPS = @VG_LIB_DEPS@ |
VG_LIB_GLOB = @VG_LIB_GLOB@ |
VG_LIB_NAME = @VG_LIB_NAME@ |
VG_PC_LIB_PRIV = @VG_PC_LIB_PRIV@ |
VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@ |
VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@ |
WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ |
WAYLAND_LIBS = @WAYLAND_LIBS@ |
WAYLAND_SCANNER = @WAYLAND_SCANNER@ |
X11_INCLUDES = @X11_INCLUDES@ |
XA_MAJOR = @XA_MAJOR@ |
XA_MINOR = @XA_MINOR@ |
XA_TINY = @XA_TINY@ |
XA_VERSION = @XA_VERSION@ |
XCB_DRI2_CFLAGS = @XCB_DRI2_CFLAGS@ |
XCB_DRI2_LIBS = @XCB_DRI2_LIBS@ |
XEXT_CFLAGS = @XEXT_CFLAGS@ |
XEXT_LIBS = @XEXT_LIBS@ |
XF86VIDMODE_CFLAGS = @XF86VIDMODE_CFLAGS@ |
XF86VIDMODE_LIBS = @XF86VIDMODE_LIBS@ |
XLIBGL_CFLAGS = @XLIBGL_CFLAGS@ |
XLIBGL_LIBS = @XLIBGL_LIBS@ |
XORG_CFLAGS = @XORG_CFLAGS@ |
XORG_DRIVER_INSTALL_DIR = @XORG_DRIVER_INSTALL_DIR@ |
XORG_LIBS = @XORG_LIBS@ |
XVMC_CFLAGS = @XVMC_CFLAGS@ |
XVMC_LIBS = @XVMC_LIBS@ |
XVMC_LIB_INSTALL_DIR = @XVMC_LIB_INSTALL_DIR@ |
XVMC_MAJOR = @XVMC_MAJOR@ |
XVMC_MINOR = @XVMC_MINOR@ |
YACC = @YACC@ |
YFLAGS = @YFLAGS@ |
abs_builddir = @abs_builddir@ |
abs_srcdir = @abs_srcdir@ |
abs_top_builddir = @abs_top_builddir@ |
abs_top_srcdir = @abs_top_srcdir@ |
ac_ct_AR = @ac_ct_AR@ |
ac_ct_CC = @ac_ct_CC@ |
ac_ct_CC_FOR_BUILD = @ac_ct_CC_FOR_BUILD@ |
ac_ct_CXX = @ac_ct_CXX@ |
ac_ct_CXX_FOR_BUILD = @ac_ct_CXX_FOR_BUILD@ |
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ |
am__include = @am__include@ |
am__leading_dot = @am__leading_dot@ |
am__quote = @am__quote@ |
am__tar = @am__tar@ |
am__untar = @am__untar@ |
ax_pthread_config = @ax_pthread_config@ |
bindir = @bindir@ |
build = @build@ |
build_alias = @build_alias@ |
build_cpu = @build_cpu@ |
build_os = @build_os@ |
build_vendor = @build_vendor@ |
builddir = @builddir@ |
datadir = @datadir@ |
datarootdir = @datarootdir@ |
docdir = @docdir@ |
dvidir = @dvidir@ |
exec_prefix = @exec_prefix@ |
host = @host@ |
host_alias = @host_alias@ |
host_cpu = @host_cpu@ |
host_os = @host_os@ |
host_vendor = @host_vendor@ |
htmldir = @htmldir@ |
includedir = @includedir@ |
infodir = @infodir@ |
install_sh = @install_sh@ |
libdir = @libdir@ |
libexecdir = @libexecdir@ |
localedir = @localedir@ |
localstatedir = @localstatedir@ |
mandir = @mandir@ |
mkdir_p = @mkdir_p@ |
oldincludedir = @oldincludedir@ |
pdfdir = @pdfdir@ |
prefix = @prefix@ |
program_transform_name = @program_transform_name@ |
psdir = @psdir@ |
sbindir = @sbindir@ |
sharedstatedir = @sharedstatedir@ |
srcdir = @srcdir@ |
sysconfdir = @sysconfdir@ |
target = @target@ |
target_alias = @target_alias@ |
target_cpu = @target_cpu@ |
target_os = @target_os@ |
target_vendor = @target_vendor@ |
top_build_prefix = @top_build_prefix@ |
top_builddir = @top_builddir@ |
top_srcdir = @top_srcdir@ |
GALLIUM_CFLAGS = \ |
-I$(top_srcdir)/include \ |
-I$(top_srcdir)/src/gallium/include \ |
-I$(top_srcdir)/src/gallium/auxiliary \ |
$(DEFINES) |
AM_CFLAGS = \ |
-I$(top_srcdir)/include \ |
-I$(top_srcdir)/src/gallium/drivers \ |
$(GALLIUM_CFLAGS) \ |
$(NOUVEAU_CFLAGS) |
noinst_LTLIBRARIES = libnouveaudrm.la |
libnouveaudrm_la_SOURCES = nouveau_drm_winsys.c |
all: all-am |
.SUFFIXES: |
.SUFFIXES: .c .lo .o .obj |
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/src/gallium/Automake.inc $(am__configure_deps) |
@for dep in $?; do \ |
case '$(am__configure_deps)' in \ |
*$$dep*) \ |
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ |
&& { if test -f $@; then exit 0; else break; fi; }; \ |
exit 1;; \ |
esac; \ |
done; \ |
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/gallium/winsys/nouveau/drm/Makefile'; \ |
$(am__cd) $(top_srcdir) && \ |
$(AUTOMAKE) --foreign src/gallium/winsys/nouveau/drm/Makefile |
.PRECIOUS: Makefile |
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
@case '$?' in \ |
*config.status*) \ |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ |
*) \ |
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ |
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ |
esac; |
$(top_srcdir)/src/gallium/Automake.inc: |
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(top_srcdir)/configure: $(am__configure_deps) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(ACLOCAL_M4): $(am__aclocal_m4_deps) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(am__aclocal_m4_deps): |
clean-noinstLTLIBRARIES: |
-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) |
@list='$(noinst_LTLIBRARIES)'; \ |
locs=`for p in $$list; do echo $$p; done | \ |
sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ |
sort -u`; \ |
test -z "$$locs" || { \ |
echo rm -f $${locs}; \ |
rm -f $${locs}; \ |
} |
libnouveaudrm.la: $(libnouveaudrm_la_OBJECTS) $(libnouveaudrm_la_DEPENDENCIES) $(EXTRA_libnouveaudrm_la_DEPENDENCIES) |
$(AM_V_CCLD)$(LINK) $(libnouveaudrm_la_OBJECTS) $(libnouveaudrm_la_LIBADD) $(LIBS) |
mostlyclean-compile: |
-rm -f *.$(OBJEXT) |
distclean-compile: |
-rm -f *.tab.c |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nouveau_drm_winsys.Plo@am__quote@ |
.c.o: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< |
.c.obj: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` |
.c.lo: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< |
mostlyclean-libtool: |
-rm -f *.lo |
clean-libtool: |
-rm -rf .libs _libs |
ID: $(am__tagged_files) |
$(am__define_uniq_tagged_files); mkid -fID $$unique |
tags: tags-am |
TAGS: tags |
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
set x; \ |
here=`pwd`; \ |
$(am__define_uniq_tagged_files); \ |
shift; \ |
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ |
test -n "$$unique" || unique=$$empty_fix; \ |
if test $$# -gt 0; then \ |
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
"$$@" $$unique; \ |
else \ |
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
$$unique; \ |
fi; \ |
fi |
ctags: ctags-am |
CTAGS: ctags |
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
$(am__define_uniq_tagged_files); \ |
test -z "$(CTAGS_ARGS)$$unique" \ |
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ |
$$unique |
GTAGS: |
here=`$(am__cd) $(top_builddir) && pwd` \ |
&& $(am__cd) $(top_srcdir) \ |
&& gtags -i $(GTAGS_ARGS) "$$here" |
cscopelist: cscopelist-am |
cscopelist-am: $(am__tagged_files) |
list='$(am__tagged_files)'; \ |
case "$(srcdir)" in \ |
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ |
*) sdir=$(subdir)/$(srcdir) ;; \ |
esac; \ |
for i in $$list; do \ |
if test -f "$$i"; then \ |
echo "$(subdir)/$$i"; \ |
else \ |
echo "$$sdir/$$i"; \ |
fi; \ |
done >> $(top_builddir)/cscope.files |
distclean-tags: |
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |
distdir: $(DISTFILES) |
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
list='$(DISTFILES)'; \ |
dist_files=`for file in $$list; do echo $$file; done | \ |
sed -e "s|^$$srcdirstrip/||;t" \ |
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ |
case $$dist_files in \ |
*/*) $(MKDIR_P) `echo "$$dist_files" | \ |
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ |
sort -u` ;; \ |
esac; \ |
for file in $$dist_files; do \ |
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ |
if test -d $$d/$$file; then \ |
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ |
if test -d "$(distdir)/$$file"; then \ |
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |
fi; \ |
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ |
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ |
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |
fi; \ |
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ |
else \ |
test -f "$(distdir)/$$file" \ |
|| cp -p $$d/$$file "$(distdir)/$$file" \ |
|| exit 1; \ |
fi; \ |
done |
check-am: all-am |
check: check-am |
all-am: Makefile $(LTLIBRARIES) |
installdirs: |
install: install-am |
install-exec: install-exec-am |
install-data: install-data-am |
uninstall: uninstall-am |
install-am: all-am |
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am |
installcheck: installcheck-am |
install-strip: |
if test -z '$(STRIP)'; then \ |
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |
install; \ |
else \ |
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ |
fi |
mostlyclean-generic: |
clean-generic: |
distclean-generic: |
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) |
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) |
maintainer-clean-generic: |
@echo "This command is intended for maintainers to use" |
@echo "it deletes files that may require special tools to rebuild." |
clean: clean-am |
clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ |
mostlyclean-am |
distclean: distclean-am |
-rm -rf ./$(DEPDIR) |
-rm -f Makefile |
distclean-am: clean-am distclean-compile distclean-generic \ |
distclean-tags |
dvi: dvi-am |
dvi-am: |
html: html-am |
html-am: |
info: info-am |
info-am: |
install-data-am: |
install-dvi: install-dvi-am |
install-dvi-am: |
install-exec-am: |
install-html: install-html-am |
install-html-am: |
install-info: install-info-am |
install-info-am: |
install-man: |
install-pdf: install-pdf-am |
install-pdf-am: |
install-ps: install-ps-am |
install-ps-am: |
installcheck-am: |
maintainer-clean: maintainer-clean-am |
-rm -rf ./$(DEPDIR) |
-rm -f Makefile |
maintainer-clean-am: distclean-am maintainer-clean-generic |
mostlyclean: mostlyclean-am |
mostlyclean-am: mostlyclean-compile mostlyclean-generic \ |
mostlyclean-libtool |
pdf: pdf-am |
pdf-am: |
ps: ps-am |
ps-am: |
uninstall-am: |
.MAKE: install-am install-strip |
.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ |
clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ |
ctags-am distclean distclean-compile distclean-generic \ |
distclean-libtool distclean-tags distdir dvi dvi-am html \ |
html-am info info-am install install-am install-data \ |
install-data-am install-dvi install-dvi-am install-exec \ |
install-exec-am install-html install-html-am install-info \ |
install-info-am install-man install-pdf install-pdf-am \ |
install-ps install-ps-am install-strip installcheck \ |
installcheck-am installdirs maintainer-clean \ |
maintainer-clean-generic mostlyclean mostlyclean-compile \ |
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ |
tags tags-am uninstall uninstall-am |
# Tell versions [3.59,3.63) of GNU make to not export all variables. |
# Otherwise a system limit (for SysV at least) may be exceeded. |
.NOEXPORT: |
/contrib/sdk/sources/Mesa/src/gallium/winsys/nouveau/drm/nouveau_drm_public.h |
---|
0,0 → 1,9 |
#ifndef __NOUVEAU_DRM_PUBLIC_H__ |
#define __NOUVEAU_DRM_PUBLIC_H__ |
struct pipe_screen; |
struct pipe_screen *nouveau_drm_screen_create(int drmFD); |
#endif |
/contrib/sdk/sources/Mesa/src/gallium/winsys/nouveau/drm/nouveau_drm_winsys.c |
---|
0,0 → 1,48 |
#include "pipe/p_context.h" |
#include "pipe/p_state.h" |
#include "util/u_format.h" |
#include "util/u_memory.h" |
#include "util/u_inlines.h" |
#include "nouveau_drm_public.h" |
#include "nouveau/nouveau_winsys.h" |
#include "nouveau/nouveau_screen.h" |
struct pipe_screen * |
nouveau_drm_screen_create(int fd) |
{ |
struct nouveau_device *dev = NULL; |
struct pipe_screen *(*init)(struct nouveau_device *); |
int ret; |
ret = nouveau_device_wrap(fd, 0, &dev); |
if (ret) |
return NULL; |
switch (dev->chipset & 0xf0) { |
case 0x30: |
case 0x40: |
case 0x60: |
init = nv30_screen_create; |
break; |
case 0x50: |
case 0x80: |
case 0x90: |
case 0xa0: |
init = nv50_screen_create; |
break; |
case 0xc0: |
case 0xd0: |
case 0xe0: |
case 0xf0: |
init = nvc0_screen_create; |
break; |
default: |
debug_printf("%s: unknown chipset nv%02x\n", __func__, |
dev->chipset); |
return NULL; |
} |
return init(dev); |
} |
/contrib/sdk/sources/Mesa/src/gallium/winsys/radeon/drm/Android.mk |
---|
0,0 → 1,40 |
# Mesa 3-D graphics library |
# |
# Copyright (C) 2011 Chia-I Wu <olvaffe@gmail.com> |
# Copyright (C) 2011 LunarG Inc. |
# |
# Permission is hereby granted, free of charge, to any person obtaining a |
# copy of this software and associated documentation files (the "Software"), |
# to deal in the Software without restriction, including without limitation |
# the rights to use, copy, modify, merge, publish, distribute, sublicense, |
# and/or sell copies of the Software, and to permit persons to whom the |
# Software is furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice shall be included |
# in all copies or substantial portions of the Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
# DEALINGS IN THE SOFTWARE. |
LOCAL_PATH := $(call my-dir) |
# get C_SOURCES |
include $(LOCAL_PATH)/Makefile.sources |
include $(CLEAR_VARS) |
LOCAL_SRC_FILES := $(C_SOURCES) |
LOCAL_C_INCLUDES := \ |
$(DRM_TOP) \ |
$(DRM_TOP)/include/drm |
LOCAL_MODULE := libmesa_winsys_radeon |
include $(GALLIUM_COMMON_MK) |
include $(BUILD_STATIC_LIBRARY) |
/contrib/sdk/sources/Mesa/src/gallium/winsys/radeon/drm/Makefile.am |
---|
0,0 → 1,11 |
include Makefile.sources |
include $(top_srcdir)/src/gallium/Automake.inc |
AM_CFLAGS = \ |
-I$(top_srcdir)/include \ |
$(GALLIUM_CFLAGS) \ |
$(RADEON_CFLAGS) |
noinst_LTLIBRARIES = libradeonwinsys.la |
libradeonwinsys_la_SOURCES = $(C_SOURCES) |
/contrib/sdk/sources/Mesa/src/gallium/winsys/radeon/drm/Makefile.in |
---|
0,0 → 1,767 |
# Makefile.in generated by automake 1.14 from Makefile.am. |
# @configure_input@ |
# Copyright (C) 1994-2013 Free Software Foundation, Inc. |
# This Makefile.in is free software; the Free Software Foundation |
# gives unlimited permission to copy and/or distribute it, |
# with or without modifications, as long as this notice is preserved. |
# This program is distributed in the hope that it will be useful, |
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without |
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A |
# PARTICULAR PURPOSE. |
@SET_MAKE@ |
VPATH = @srcdir@ |
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' |
am__make_running_with_option = \ |
case $${target_option-} in \ |
?) ;; \ |
*) echo "am__make_running_with_option: internal error: invalid" \ |
"target option '$${target_option-}' specified" >&2; \ |
exit 1;; \ |
esac; \ |
has_opt=no; \ |
sane_makeflags=$$MAKEFLAGS; \ |
if $(am__is_gnu_make); then \ |
sane_makeflags=$$MFLAGS; \ |
else \ |
case $$MAKEFLAGS in \ |
*\\[\ \ ]*) \ |
bs=\\; \ |
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ |
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ |
esac; \ |
fi; \ |
skip_next=no; \ |
strip_trailopt () \ |
{ \ |
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ |
}; \ |
for flg in $$sane_makeflags; do \ |
test $$skip_next = yes && { skip_next=no; continue; }; \ |
case $$flg in \ |
*=*|--*) continue;; \ |
-*I) strip_trailopt 'I'; skip_next=yes;; \ |
-*I?*) strip_trailopt 'I';; \ |
-*O) strip_trailopt 'O'; skip_next=yes;; \ |
-*O?*) strip_trailopt 'O';; \ |
-*l) strip_trailopt 'l'; skip_next=yes;; \ |
-*l?*) strip_trailopt 'l';; \ |
-[dEDm]) skip_next=yes;; \ |
-[JT]) skip_next=yes;; \ |
esac; \ |
case $$flg in \ |
*$$target_option*) has_opt=yes; break;; \ |
esac; \ |
done; \ |
test $$has_opt = yes |
am__make_dryrun = (target_option=n; $(am__make_running_with_option)) |
am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) |
pkgdatadir = $(datadir)/@PACKAGE@ |
pkgincludedir = $(includedir)/@PACKAGE@ |
pkglibdir = $(libdir)/@PACKAGE@ |
pkglibexecdir = $(libexecdir)/@PACKAGE@ |
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd |
install_sh_DATA = $(install_sh) -c -m 644 |
install_sh_PROGRAM = $(install_sh) -c |
install_sh_SCRIPT = $(install_sh) -c |
INSTALL_HEADER = $(INSTALL_DATA) |
transform = $(program_transform_name) |
NORMAL_INSTALL = : |
PRE_INSTALL = : |
POST_INSTALL = : |
NORMAL_UNINSTALL = : |
PRE_UNINSTALL = : |
POST_UNINSTALL = : |
build_triplet = @build@ |
host_triplet = @host@ |
target_triplet = @target@ |
DIST_COMMON = $(srcdir)/Makefile.sources \ |
$(top_srcdir)/src/gallium/Automake.inc $(srcdir)/Makefile.in \ |
$(srcdir)/Makefile.am $(top_srcdir)/bin/depcomp |
subdir = src/gallium/winsys/radeon/drm |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_prog_bison.m4 \ |
$(top_srcdir)/m4/ax_prog_cc_for_build.m4 \ |
$(top_srcdir)/m4/ax_prog_cxx_for_build.m4 \ |
$(top_srcdir)/m4/ax_prog_flex.m4 \ |
$(top_srcdir)/m4/ax_pthread.m4 \ |
$(top_srcdir)/m4/ax_python_module.m4 \ |
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ |
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ |
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac |
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
$(ACLOCAL_M4) |
mkinstalldirs = $(install_sh) -d |
CONFIG_CLEAN_FILES = |
CONFIG_CLEAN_VPATH_FILES = |
LTLIBRARIES = $(noinst_LTLIBRARIES) |
libradeonwinsys_la_LIBADD = |
am__objects_1 = radeon_drm_bo.lo radeon_drm_cs.lo \ |
radeon_drm_cs_dump.lo radeon_drm_winsys.lo |
am_libradeonwinsys_la_OBJECTS = $(am__objects_1) |
libradeonwinsys_la_OBJECTS = $(am_libradeonwinsys_la_OBJECTS) |
AM_V_lt = $(am__v_lt_@AM_V@) |
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) |
am__v_lt_0 = --silent |
am__v_lt_1 = |
AM_V_P = $(am__v_P_@AM_V@) |
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) |
am__v_P_0 = false |
am__v_P_1 = : |
AM_V_GEN = $(am__v_GEN_@AM_V@) |
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) |
am__v_GEN_0 = @echo " GEN " $@; |
am__v_GEN_1 = |
AM_V_at = $(am__v_at_@AM_V@) |
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) |
am__v_at_0 = @ |
am__v_at_1 = |
DEFAULT_INCLUDES = -I.@am__isrc@ |
depcomp = $(SHELL) $(top_srcdir)/bin/depcomp |
am__depfiles_maybe = depfiles |
am__mv = mv -f |
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ |
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) |
LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ |
$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ |
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ |
$(AM_CFLAGS) $(CFLAGS) |
AM_V_CC = $(am__v_CC_@AM_V@) |
am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) |
am__v_CC_0 = @echo " CC " $@; |
am__v_CC_1 = |
CCLD = $(CC) |
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ |
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ |
$(AM_LDFLAGS) $(LDFLAGS) -o $@ |
AM_V_CCLD = $(am__v_CCLD_@AM_V@) |
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) |
am__v_CCLD_0 = @echo " CCLD " $@; |
am__v_CCLD_1 = |
SOURCES = $(libradeonwinsys_la_SOURCES) |
DIST_SOURCES = $(libradeonwinsys_la_SOURCES) |
am__can_run_installinfo = \ |
case $$AM_UPDATE_INFO_DIR in \ |
n|no|NO) false;; \ |
*) (install-info --version) >/dev/null 2>&1;; \ |
esac |
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) |
# Read a list of newline-separated strings from the standard input, |
# and print each of them once, without duplicates. Input order is |
# *not* preserved. |
am__uniquify_input = $(AWK) '\ |
BEGIN { nonempty = 0; } \ |
{ items[$$0] = 1; nonempty = 1; } \ |
END { if (nonempty) { for (i in items) print i; }; } \ |
' |
# Make sure the list of sources is unique. This is necessary because, |
# e.g., the same source file might be shared among _SOURCES variables |
# for different programs/libraries. |
am__define_uniq_tagged_files = \ |
list='$(am__tagged_files)'; \ |
unique=`for i in $$list; do \ |
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ |
done | $(am__uniquify_input)` |
ETAGS = etags |
CTAGS = ctags |
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) |
ACLOCAL = @ACLOCAL@ |
AMTAR = @AMTAR@ |
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ |
AR = @AR@ |
AUTOCONF = @AUTOCONF@ |
AUTOHEADER = @AUTOHEADER@ |
AUTOMAKE = @AUTOMAKE@ |
AWK = @AWK@ |
BUILD_EXEEXT = @BUILD_EXEEXT@ |
BUILD_OBJEXT = @BUILD_OBJEXT@ |
CC = @CC@ |
CCAS = @CCAS@ |
CCASDEPMODE = @CCASDEPMODE@ |
CCASFLAGS = @CCASFLAGS@ |
CCDEPMODE = @CCDEPMODE@ |
CC_FOR_BUILD = @CC_FOR_BUILD@ |
CFLAGS = @CFLAGS@ |
CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ |
CLANG_RESOURCE_DIR = @CLANG_RESOURCE_DIR@ |
CLOCK_LIB = @CLOCK_LIB@ |
CPP = @CPP@ |
CPPFLAGS = @CPPFLAGS@ |
CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@ |
CPP_FOR_BUILD = @CPP_FOR_BUILD@ |
CXX = @CXX@ |
CXXCPP = @CXXCPP@ |
CXXCPPFLAGS_FOR_BUILD = @CXXCPPFLAGS_FOR_BUILD@ |
CXXCPP_FOR_BUILD = @CXXCPP_FOR_BUILD@ |
CXXDEPMODE = @CXXDEPMODE@ |
CXXFLAGS = @CXXFLAGS@ |
CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@ |
CXX_FOR_BUILD = @CXX_FOR_BUILD@ |
CYGPATH_W = @CYGPATH_W@ |
DEFINES = @DEFINES@ |
DEFINES_FOR_BUILD = @DEFINES_FOR_BUILD@ |
DEFS = @DEFS@ |
DEPDIR = @DEPDIR@ |
DLLTOOL = @DLLTOOL@ |
DLOPEN_LIBS = @DLOPEN_LIBS@ |
DRI2PROTO_CFLAGS = @DRI2PROTO_CFLAGS@ |
DRI2PROTO_LIBS = @DRI2PROTO_LIBS@ |
DRIGL_CFLAGS = @DRIGL_CFLAGS@ |
DRIGL_LIBS = @DRIGL_LIBS@ |
DRI_DRIVER_INSTALL_DIR = @DRI_DRIVER_INSTALL_DIR@ |
DRI_DRIVER_SEARCH_DIR = @DRI_DRIVER_SEARCH_DIR@ |
DRI_LIB_DEPS = @DRI_LIB_DEPS@ |
DRI_PC_REQ_PRIV = @DRI_PC_REQ_PRIV@ |
DSYMUTIL = @DSYMUTIL@ |
DUMPBIN = @DUMPBIN@ |
ECHO_C = @ECHO_C@ |
ECHO_N = @ECHO_N@ |
ECHO_T = @ECHO_T@ |
EGL_CFLAGS = @EGL_CFLAGS@ |
EGL_CLIENT_APIS = @EGL_CLIENT_APIS@ |
EGL_DRIVER_INSTALL_DIR = @EGL_DRIVER_INSTALL_DIR@ |
EGL_LIB_DEPS = @EGL_LIB_DEPS@ |
EGL_LIB_GLOB = @EGL_LIB_GLOB@ |
EGL_LIB_NAME = @EGL_LIB_NAME@ |
EGL_NATIVE_PLATFORM = @EGL_NATIVE_PLATFORM@ |
EGL_PLATFORMS = @EGL_PLATFORMS@ |
EGREP = @EGREP@ |
ELF_LIB = @ELF_LIB@ |
EXEEXT = @EXEEXT@ |
EXPAT_INCLUDES = @EXPAT_INCLUDES@ |
FGREP = @FGREP@ |
FREEDRENO_CFLAGS = @FREEDRENO_CFLAGS@ |
FREEDRENO_LIBS = @FREEDRENO_LIBS@ |
GALLIUM_DRI_LIB_DEPS = @GALLIUM_DRI_LIB_DEPS@ |
GALLIUM_PIPE_LOADER_DEFINES = @GALLIUM_PIPE_LOADER_DEFINES@ |
GALLIUM_PIPE_LOADER_LIBS = @GALLIUM_PIPE_LOADER_LIBS@ |
GALLIUM_PIPE_LOADER_XCB_CFLAGS = @GALLIUM_PIPE_LOADER_XCB_CFLAGS@ |
GALLIUM_PIPE_LOADER_XCB_LIBS = @GALLIUM_PIPE_LOADER_XCB_LIBS@ |
GBM_PC_LIB_PRIV = @GBM_PC_LIB_PRIV@ |
GBM_PC_REQ_PRIV = @GBM_PC_REQ_PRIV@ |
GLAPI_LIB_GLOB = @GLAPI_LIB_GLOB@ |
GLAPI_LIB_NAME = @GLAPI_LIB_NAME@ |
GLESv1_CM_LIB_DEPS = @GLESv1_CM_LIB_DEPS@ |
GLESv1_CM_LIB_GLOB = @GLESv1_CM_LIB_GLOB@ |
GLESv1_CM_LIB_NAME = @GLESv1_CM_LIB_NAME@ |
GLESv1_CM_PC_LIB_PRIV = @GLESv1_CM_PC_LIB_PRIV@ |
GLESv2_LIB_DEPS = @GLESv2_LIB_DEPS@ |
GLESv2_LIB_GLOB = @GLESv2_LIB_GLOB@ |
GLESv2_LIB_NAME = @GLESv2_LIB_NAME@ |
GLESv2_PC_LIB_PRIV = @GLESv2_PC_LIB_PRIV@ |
GLPROTO_CFLAGS = @GLPROTO_CFLAGS@ |
GLPROTO_LIBS = @GLPROTO_LIBS@ |
GLX_TLS = @GLX_TLS@ |
GL_LIB = @GL_LIB@ |
GL_LIB_DEPS = @GL_LIB_DEPS@ |
GL_LIB_GLOB = @GL_LIB_GLOB@ |
GL_LIB_NAME = @GL_LIB_NAME@ |
GL_PC_CFLAGS = @GL_PC_CFLAGS@ |
GL_PC_LIB_PRIV = @GL_PC_LIB_PRIV@ |
GL_PC_REQ_PRIV = @GL_PC_REQ_PRIV@ |
GREP = @GREP@ |
HAVE_XF86VIDMODE = @HAVE_XF86VIDMODE@ |
INDENT = @INDENT@ |
INDENT_FLAGS = @INDENT_FLAGS@ |
INSTALL = @INSTALL@ |
INSTALL_DATA = @INSTALL_DATA@ |
INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ |
INTEL_CFLAGS = @INTEL_CFLAGS@ |
INTEL_LIBS = @INTEL_LIBS@ |
LD = @LD@ |
LDFLAGS = @LDFLAGS@ |
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ |
LEX = @LEX@ |
LEXLIB = @LEXLIB@ |
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ |
LIBCLC_INCLUDEDIR = @LIBCLC_INCLUDEDIR@ |
LIBCLC_LIBEXECDIR = @LIBCLC_LIBEXECDIR@ |
LIBDRM_CFLAGS = @LIBDRM_CFLAGS@ |
LIBDRM_LIBS = @LIBDRM_LIBS@ |
LIBDRM_XORG_CFLAGS = @LIBDRM_XORG_CFLAGS@ |
LIBDRM_XORG_LIBS = @LIBDRM_XORG_LIBS@ |
LIBKMS_XORG_CFLAGS = @LIBKMS_XORG_CFLAGS@ |
LIBKMS_XORG_LIBS = @LIBKMS_XORG_LIBS@ |
LIBOBJS = @LIBOBJS@ |
LIBS = @LIBS@ |
LIBTOOL = @LIBTOOL@ |
LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ |
LIBUDEV_LIBS = @LIBUDEV_LIBS@ |
LIB_DIR = @LIB_DIR@ |
LIPO = @LIPO@ |
LLVM_BINDIR = @LLVM_BINDIR@ |
LLVM_CFLAGS = @LLVM_CFLAGS@ |
LLVM_CONFIG = @LLVM_CONFIG@ |
LLVM_CPPFLAGS = @LLVM_CPPFLAGS@ |
LLVM_CXXFLAGS = @LLVM_CXXFLAGS@ |
LLVM_INCLUDEDIR = @LLVM_INCLUDEDIR@ |
LLVM_LDFLAGS = @LLVM_LDFLAGS@ |
LLVM_LIBDIR = @LLVM_LIBDIR@ |
LLVM_LIBS = @LLVM_LIBS@ |
LLVM_VERSION = @LLVM_VERSION@ |
LN_S = @LN_S@ |
LTLIBOBJS = @LTLIBOBJS@ |
MAKE = @MAKE@ |
MAKEINFO = @MAKEINFO@ |
MANIFEST_TOOL = @MANIFEST_TOOL@ |
MESA_LLVM = @MESA_LLVM@ |
MKDIR_P = @MKDIR_P@ |
NM = @NM@ |
NMEDIT = @NMEDIT@ |
NOUVEAU_CFLAGS = @NOUVEAU_CFLAGS@ |
NOUVEAU_LIBS = @NOUVEAU_LIBS@ |
OBJDUMP = @OBJDUMP@ |
OBJEXT = @OBJEXT@ |
OPENCL_LIB_INSTALL_DIR = @OPENCL_LIB_INSTALL_DIR@ |
OSMESA_LIB = @OSMESA_LIB@ |
OSMESA_LIB_DEPS = @OSMESA_LIB_DEPS@ |
OSMESA_LIB_NAME = @OSMESA_LIB_NAME@ |
OSMESA_MESA_DEPS = @OSMESA_MESA_DEPS@ |
OSMESA_PC_LIB_PRIV = @OSMESA_PC_LIB_PRIV@ |
OSMESA_PC_REQ = @OSMESA_PC_REQ@ |
OSMESA_VERSION = @OSMESA_VERSION@ |
OTOOL = @OTOOL@ |
OTOOL64 = @OTOOL64@ |
PACKAGE = @PACKAGE@ |
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ |
PACKAGE_NAME = @PACKAGE_NAME@ |
PACKAGE_STRING = @PACKAGE_STRING@ |
PACKAGE_TARNAME = @PACKAGE_TARNAME@ |
PACKAGE_URL = @PACKAGE_URL@ |
PACKAGE_VERSION = @PACKAGE_VERSION@ |
PATH_SEPARATOR = @PATH_SEPARATOR@ |
PERL = @PERL@ |
PKG_CONFIG = @PKG_CONFIG@ |
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ |
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ |
POSIX_SHELL = @POSIX_SHELL@ |
PTHREAD_CC = @PTHREAD_CC@ |
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ |
PTHREAD_LIBS = @PTHREAD_LIBS@ |
PYTHON2 = @PYTHON2@ |
RADEON_CFLAGS = @RADEON_CFLAGS@ |
RADEON_LIBS = @RADEON_LIBS@ |
RANLIB = @RANLIB@ |
SED = @SED@ |
SELINUX_LIBS = @SELINUX_LIBS@ |
SET_MAKE = @SET_MAKE@ |
SHELL = @SHELL@ |
STRIP = @STRIP@ |
VDPAU_CFLAGS = @VDPAU_CFLAGS@ |
VDPAU_LIBS = @VDPAU_LIBS@ |
VDPAU_LIB_INSTALL_DIR = @VDPAU_LIB_INSTALL_DIR@ |
VDPAU_MAJOR = @VDPAU_MAJOR@ |
VDPAU_MINOR = @VDPAU_MINOR@ |
VERSION = @VERSION@ |
VG_LIB_DEPS = @VG_LIB_DEPS@ |
VG_LIB_GLOB = @VG_LIB_GLOB@ |
VG_LIB_NAME = @VG_LIB_NAME@ |
VG_PC_LIB_PRIV = @VG_PC_LIB_PRIV@ |
VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@ |
VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@ |
WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ |
WAYLAND_LIBS = @WAYLAND_LIBS@ |
WAYLAND_SCANNER = @WAYLAND_SCANNER@ |
X11_INCLUDES = @X11_INCLUDES@ |
XA_MAJOR = @XA_MAJOR@ |
XA_MINOR = @XA_MINOR@ |
XA_TINY = @XA_TINY@ |
XA_VERSION = @XA_VERSION@ |
XCB_DRI2_CFLAGS = @XCB_DRI2_CFLAGS@ |
XCB_DRI2_LIBS = @XCB_DRI2_LIBS@ |
XEXT_CFLAGS = @XEXT_CFLAGS@ |
XEXT_LIBS = @XEXT_LIBS@ |
XF86VIDMODE_CFLAGS = @XF86VIDMODE_CFLAGS@ |
XF86VIDMODE_LIBS = @XF86VIDMODE_LIBS@ |
XLIBGL_CFLAGS = @XLIBGL_CFLAGS@ |
XLIBGL_LIBS = @XLIBGL_LIBS@ |
XORG_CFLAGS = @XORG_CFLAGS@ |
XORG_DRIVER_INSTALL_DIR = @XORG_DRIVER_INSTALL_DIR@ |
XORG_LIBS = @XORG_LIBS@ |
XVMC_CFLAGS = @XVMC_CFLAGS@ |
XVMC_LIBS = @XVMC_LIBS@ |
XVMC_LIB_INSTALL_DIR = @XVMC_LIB_INSTALL_DIR@ |
XVMC_MAJOR = @XVMC_MAJOR@ |
XVMC_MINOR = @XVMC_MINOR@ |
YACC = @YACC@ |
YFLAGS = @YFLAGS@ |
abs_builddir = @abs_builddir@ |
abs_srcdir = @abs_srcdir@ |
abs_top_builddir = @abs_top_builddir@ |
abs_top_srcdir = @abs_top_srcdir@ |
ac_ct_AR = @ac_ct_AR@ |
ac_ct_CC = @ac_ct_CC@ |
ac_ct_CC_FOR_BUILD = @ac_ct_CC_FOR_BUILD@ |
ac_ct_CXX = @ac_ct_CXX@ |
ac_ct_CXX_FOR_BUILD = @ac_ct_CXX_FOR_BUILD@ |
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ |
am__include = @am__include@ |
am__leading_dot = @am__leading_dot@ |
am__quote = @am__quote@ |
am__tar = @am__tar@ |
am__untar = @am__untar@ |
ax_pthread_config = @ax_pthread_config@ |
bindir = @bindir@ |
build = @build@ |
build_alias = @build_alias@ |
build_cpu = @build_cpu@ |
build_os = @build_os@ |
build_vendor = @build_vendor@ |
builddir = @builddir@ |
datadir = @datadir@ |
datarootdir = @datarootdir@ |
docdir = @docdir@ |
dvidir = @dvidir@ |
exec_prefix = @exec_prefix@ |
host = @host@ |
host_alias = @host_alias@ |
host_cpu = @host_cpu@ |
host_os = @host_os@ |
host_vendor = @host_vendor@ |
htmldir = @htmldir@ |
includedir = @includedir@ |
infodir = @infodir@ |
install_sh = @install_sh@ |
libdir = @libdir@ |
libexecdir = @libexecdir@ |
localedir = @localedir@ |
localstatedir = @localstatedir@ |
mandir = @mandir@ |
mkdir_p = @mkdir_p@ |
oldincludedir = @oldincludedir@ |
pdfdir = @pdfdir@ |
prefix = @prefix@ |
program_transform_name = @program_transform_name@ |
psdir = @psdir@ |
sbindir = @sbindir@ |
sharedstatedir = @sharedstatedir@ |
srcdir = @srcdir@ |
sysconfdir = @sysconfdir@ |
target = @target@ |
target_alias = @target_alias@ |
target_cpu = @target_cpu@ |
target_os = @target_os@ |
target_vendor = @target_vendor@ |
top_build_prefix = @top_build_prefix@ |
top_builddir = @top_builddir@ |
top_srcdir = @top_srcdir@ |
C_SOURCES := \ |
radeon_drm_bo.c \ |
radeon_drm_cs.c \ |
radeon_drm_cs_dump.c \ |
radeon_drm_winsys.c |
GALLIUM_CFLAGS = \ |
-I$(top_srcdir)/include \ |
-I$(top_srcdir)/src/gallium/include \ |
-I$(top_srcdir)/src/gallium/auxiliary \ |
$(DEFINES) |
AM_CFLAGS = \ |
-I$(top_srcdir)/include \ |
$(GALLIUM_CFLAGS) \ |
$(RADEON_CFLAGS) |
noinst_LTLIBRARIES = libradeonwinsys.la |
libradeonwinsys_la_SOURCES = $(C_SOURCES) |
all: all-am |
.SUFFIXES: |
.SUFFIXES: .c .lo .o .obj |
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/Makefile.sources $(top_srcdir)/src/gallium/Automake.inc $(am__configure_deps) |
@for dep in $?; do \ |
case '$(am__configure_deps)' in \ |
*$$dep*) \ |
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ |
&& { if test -f $@; then exit 0; else break; fi; }; \ |
exit 1;; \ |
esac; \ |
done; \ |
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/gallium/winsys/radeon/drm/Makefile'; \ |
$(am__cd) $(top_srcdir) && \ |
$(AUTOMAKE) --foreign src/gallium/winsys/radeon/drm/Makefile |
.PRECIOUS: Makefile |
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
@case '$?' in \ |
*config.status*) \ |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ |
*) \ |
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ |
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ |
esac; |
$(srcdir)/Makefile.sources $(top_srcdir)/src/gallium/Automake.inc: |
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(top_srcdir)/configure: $(am__configure_deps) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(ACLOCAL_M4): $(am__aclocal_m4_deps) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(am__aclocal_m4_deps): |
clean-noinstLTLIBRARIES: |
-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) |
@list='$(noinst_LTLIBRARIES)'; \ |
locs=`for p in $$list; do echo $$p; done | \ |
sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ |
sort -u`; \ |
test -z "$$locs" || { \ |
echo rm -f $${locs}; \ |
rm -f $${locs}; \ |
} |
libradeonwinsys.la: $(libradeonwinsys_la_OBJECTS) $(libradeonwinsys_la_DEPENDENCIES) $(EXTRA_libradeonwinsys_la_DEPENDENCIES) |
$(AM_V_CCLD)$(LINK) $(libradeonwinsys_la_OBJECTS) $(libradeonwinsys_la_LIBADD) $(LIBS) |
mostlyclean-compile: |
-rm -f *.$(OBJEXT) |
distclean-compile: |
-rm -f *.tab.c |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/radeon_drm_bo.Plo@am__quote@ |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/radeon_drm_cs.Plo@am__quote@ |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/radeon_drm_cs_dump.Plo@am__quote@ |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/radeon_drm_winsys.Plo@am__quote@ |
.c.o: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< |
.c.obj: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` |
.c.lo: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< |
mostlyclean-libtool: |
-rm -f *.lo |
clean-libtool: |
-rm -rf .libs _libs |
ID: $(am__tagged_files) |
$(am__define_uniq_tagged_files); mkid -fID $$unique |
tags: tags-am |
TAGS: tags |
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
set x; \ |
here=`pwd`; \ |
$(am__define_uniq_tagged_files); \ |
shift; \ |
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ |
test -n "$$unique" || unique=$$empty_fix; \ |
if test $$# -gt 0; then \ |
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
"$$@" $$unique; \ |
else \ |
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
$$unique; \ |
fi; \ |
fi |
ctags: ctags-am |
CTAGS: ctags |
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
$(am__define_uniq_tagged_files); \ |
test -z "$(CTAGS_ARGS)$$unique" \ |
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ |
$$unique |
GTAGS: |
here=`$(am__cd) $(top_builddir) && pwd` \ |
&& $(am__cd) $(top_srcdir) \ |
&& gtags -i $(GTAGS_ARGS) "$$here" |
cscopelist: cscopelist-am |
cscopelist-am: $(am__tagged_files) |
list='$(am__tagged_files)'; \ |
case "$(srcdir)" in \ |
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ |
*) sdir=$(subdir)/$(srcdir) ;; \ |
esac; \ |
for i in $$list; do \ |
if test -f "$$i"; then \ |
echo "$(subdir)/$$i"; \ |
else \ |
echo "$$sdir/$$i"; \ |
fi; \ |
done >> $(top_builddir)/cscope.files |
distclean-tags: |
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |
distdir: $(DISTFILES) |
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
list='$(DISTFILES)'; \ |
dist_files=`for file in $$list; do echo $$file; done | \ |
sed -e "s|^$$srcdirstrip/||;t" \ |
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ |
case $$dist_files in \ |
*/*) $(MKDIR_P) `echo "$$dist_files" | \ |
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ |
sort -u` ;; \ |
esac; \ |
for file in $$dist_files; do \ |
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ |
if test -d $$d/$$file; then \ |
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ |
if test -d "$(distdir)/$$file"; then \ |
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |
fi; \ |
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ |
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ |
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |
fi; \ |
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ |
else \ |
test -f "$(distdir)/$$file" \ |
|| cp -p $$d/$$file "$(distdir)/$$file" \ |
|| exit 1; \ |
fi; \ |
done |
check-am: all-am |
check: check-am |
all-am: Makefile $(LTLIBRARIES) |
installdirs: |
install: install-am |
install-exec: install-exec-am |
install-data: install-data-am |
uninstall: uninstall-am |
install-am: all-am |
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am |
installcheck: installcheck-am |
install-strip: |
if test -z '$(STRIP)'; then \ |
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |
install; \ |
else \ |
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ |
fi |
mostlyclean-generic: |
clean-generic: |
distclean-generic: |
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) |
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) |
maintainer-clean-generic: |
@echo "This command is intended for maintainers to use" |
@echo "it deletes files that may require special tools to rebuild." |
clean: clean-am |
clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ |
mostlyclean-am |
distclean: distclean-am |
-rm -rf ./$(DEPDIR) |
-rm -f Makefile |
distclean-am: clean-am distclean-compile distclean-generic \ |
distclean-tags |
dvi: dvi-am |
dvi-am: |
html: html-am |
html-am: |
info: info-am |
info-am: |
install-data-am: |
install-dvi: install-dvi-am |
install-dvi-am: |
install-exec-am: |
install-html: install-html-am |
install-html-am: |
install-info: install-info-am |
install-info-am: |
install-man: |
install-pdf: install-pdf-am |
install-pdf-am: |
install-ps: install-ps-am |
install-ps-am: |
installcheck-am: |
maintainer-clean: maintainer-clean-am |
-rm -rf ./$(DEPDIR) |
-rm -f Makefile |
maintainer-clean-am: distclean-am maintainer-clean-generic |
mostlyclean: mostlyclean-am |
mostlyclean-am: mostlyclean-compile mostlyclean-generic \ |
mostlyclean-libtool |
pdf: pdf-am |
pdf-am: |
ps: ps-am |
ps-am: |
uninstall-am: |
.MAKE: install-am install-strip |
.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ |
clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ |
ctags-am distclean distclean-compile distclean-generic \ |
distclean-libtool distclean-tags distdir dvi dvi-am html \ |
html-am info info-am install install-am install-data \ |
install-data-am install-dvi install-dvi-am install-exec \ |
install-exec-am install-html install-html-am install-info \ |
install-info-am install-man install-pdf install-pdf-am \ |
install-ps install-ps-am install-strip installcheck \ |
installcheck-am installdirs maintainer-clean \ |
maintainer-clean-generic mostlyclean mostlyclean-compile \ |
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ |
tags tags-am uninstall uninstall-am |
# Tell versions [3.59,3.63) of GNU make to not export all variables. |
# Otherwise a system limit (for SysV at least) may be exceeded. |
.NOEXPORT: |
/contrib/sdk/sources/Mesa/src/gallium/winsys/radeon/drm/Makefile.sources |
---|
0,0 → 1,5 |
C_SOURCES := \ |
radeon_drm_bo.c \ |
radeon_drm_cs.c \ |
radeon_drm_cs_dump.c \ |
radeon_drm_winsys.c |
/contrib/sdk/sources/Mesa/src/gallium/winsys/radeon/drm/radeon_drm_bo.c |
---|
0,0 → 1,1019 |
/* |
* Copyright © 2011 Marek Olšák <maraeo@gmail.com> |
* All Rights Reserved. |
* |
* Permission is hereby granted, free of charge, to any person obtaining |
* a copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES |
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
* NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS, AUTHORS |
* AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, |
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE |
* USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
*/ |
#define _FILE_OFFSET_BITS 64 |
#include "radeon_drm_cs.h" |
#include "util/u_hash_table.h" |
#include "util/u_memory.h" |
#include "util/u_simple_list.h" |
#include "util/u_double_list.h" |
#include "os/os_thread.h" |
#include "os/os_mman.h" |
#include "os/os_time.h" |
#include "state_tracker/drm_driver.h" |
#include <sys/ioctl.h> |
#include <xf86drm.h> |
#include <errno.h> |
/* |
* this are copy from radeon_drm, once an updated libdrm is released |
* we should bump configure.ac requirement for it and remove the following |
* field |
*/ |
#define RADEON_BO_FLAGS_MACRO_TILE 1 |
#define RADEON_BO_FLAGS_MICRO_TILE 2 |
#define RADEON_BO_FLAGS_MICRO_TILE_SQUARE 0x20 |
#ifndef DRM_RADEON_GEM_WAIT |
#define DRM_RADEON_GEM_WAIT 0x2b |
#define RADEON_GEM_NO_WAIT 0x1 |
#define RADEON_GEM_USAGE_READ 0x2 |
#define RADEON_GEM_USAGE_WRITE 0x4 |
struct drm_radeon_gem_wait { |
uint32_t handle; |
uint32_t flags; /* one of RADEON_GEM_* */ |
}; |
#endif |
#ifndef RADEON_VA_MAP |
#define RADEON_VA_MAP 1 |
#define RADEON_VA_UNMAP 2 |
#define RADEON_VA_RESULT_OK 0 |
#define RADEON_VA_RESULT_ERROR 1 |
#define RADEON_VA_RESULT_VA_EXIST 2 |
#define RADEON_VM_PAGE_VALID (1 << 0) |
#define RADEON_VM_PAGE_READABLE (1 << 1) |
#define RADEON_VM_PAGE_WRITEABLE (1 << 2) |
#define RADEON_VM_PAGE_SYSTEM (1 << 3) |
#define RADEON_VM_PAGE_SNOOPED (1 << 4) |
struct drm_radeon_gem_va { |
uint32_t handle; |
uint32_t operation; |
uint32_t vm_id; |
uint32_t flags; |
uint64_t offset; |
}; |
#define DRM_RADEON_GEM_VA 0x2b |
#endif |
extern const struct pb_vtbl radeon_bo_vtbl; |
static INLINE struct radeon_bo *radeon_bo(struct pb_buffer *bo) |
{ |
assert(bo->vtbl == &radeon_bo_vtbl); |
return (struct radeon_bo *)bo; |
} |
struct radeon_bo_va_hole { |
struct list_head list; |
uint64_t offset; |
uint64_t size; |
}; |
struct radeon_bomgr { |
/* Base class. */ |
struct pb_manager base; |
/* Winsys. */ |
struct radeon_drm_winsys *rws; |
/* List of buffer handles and its mutex. */ |
struct util_hash_table *bo_handles; |
pipe_mutex bo_handles_mutex; |
pipe_mutex bo_va_mutex; |
/* is virtual address supported */ |
bool va; |
uint64_t va_offset; |
struct list_head va_holes; |
}; |
static INLINE struct radeon_bomgr *radeon_bomgr(struct pb_manager *mgr) |
{ |
return (struct radeon_bomgr *)mgr; |
} |
static struct radeon_bo *get_radeon_bo(struct pb_buffer *_buf) |
{ |
struct radeon_bo *bo = NULL; |
if (_buf->vtbl == &radeon_bo_vtbl) { |
bo = radeon_bo(_buf); |
} else { |
struct pb_buffer *base_buf; |
pb_size offset; |
pb_get_base_buffer(_buf, &base_buf, &offset); |
if (base_buf->vtbl == &radeon_bo_vtbl) |
bo = radeon_bo(base_buf); |
} |
return bo; |
} |
static void radeon_bo_wait(struct pb_buffer *_buf, enum radeon_bo_usage usage) |
{ |
struct radeon_bo *bo = get_radeon_bo(_buf); |
while (p_atomic_read(&bo->num_active_ioctls)) { |
sched_yield(); |
} |
/* XXX use this when it's ready */ |
/*if (bo->rws->info.drm_minor >= 12) { |
struct drm_radeon_gem_wait args = {}; |
args.handle = bo->handle; |
args.flags = usage; |
while (drmCommandWriteRead(bo->rws->fd, DRM_RADEON_GEM_WAIT, |
&args, sizeof(args)) == -EBUSY); |
} else*/ { |
struct drm_radeon_gem_wait_idle args; |
memset(&args, 0, sizeof(args)); |
args.handle = bo->handle; |
while (drmCommandWrite(bo->rws->fd, DRM_RADEON_GEM_WAIT_IDLE, |
&args, sizeof(args)) == -EBUSY); |
} |
} |
static boolean radeon_bo_is_busy(struct pb_buffer *_buf, |
enum radeon_bo_usage usage) |
{ |
struct radeon_bo *bo = get_radeon_bo(_buf); |
if (p_atomic_read(&bo->num_active_ioctls)) { |
return TRUE; |
} |
/* XXX use this when it's ready */ |
/*if (bo->rws->info.drm_minor >= 12) { |
struct drm_radeon_gem_wait args = {}; |
args.handle = bo->handle; |
args.flags = usage | RADEON_GEM_NO_WAIT; |
return drmCommandWriteRead(bo->rws->fd, DRM_RADEON_GEM_WAIT, |
&args, sizeof(args)) != 0; |
} else*/ { |
struct drm_radeon_gem_busy args; |
memset(&args, 0, sizeof(args)); |
args.handle = bo->handle; |
return drmCommandWriteRead(bo->rws->fd, DRM_RADEON_GEM_BUSY, |
&args, sizeof(args)) != 0; |
} |
} |
static uint64_t radeon_bomgr_find_va(struct radeon_bomgr *mgr, uint64_t size, uint64_t alignment) |
{ |
struct radeon_bo_va_hole *hole, *n; |
uint64_t offset = 0, waste = 0; |
pipe_mutex_lock(mgr->bo_va_mutex); |
/* first look for a hole */ |
LIST_FOR_EACH_ENTRY_SAFE(hole, n, &mgr->va_holes, list) { |
offset = hole->offset; |
waste = 0; |
if (alignment) { |
waste = offset % alignment; |
waste = waste ? alignment - waste : 0; |
} |
offset += waste; |
if (offset >= (hole->offset + hole->size)) { |
continue; |
} |
if (!waste && hole->size == size) { |
offset = hole->offset; |
list_del(&hole->list); |
FREE(hole); |
pipe_mutex_unlock(mgr->bo_va_mutex); |
return offset; |
} |
if ((hole->size - waste) > size) { |
if (waste) { |
n = CALLOC_STRUCT(radeon_bo_va_hole); |
n->size = waste; |
n->offset = hole->offset; |
list_add(&n->list, &hole->list); |
} |
hole->size -= (size + waste); |
hole->offset += size + waste; |
pipe_mutex_unlock(mgr->bo_va_mutex); |
return offset; |
} |
if ((hole->size - waste) == size) { |
hole->size = waste; |
pipe_mutex_unlock(mgr->bo_va_mutex); |
return offset; |
} |
} |
offset = mgr->va_offset; |
waste = 0; |
if (alignment) { |
waste = offset % alignment; |
waste = waste ? alignment - waste : 0; |
} |
if (waste) { |
n = CALLOC_STRUCT(radeon_bo_va_hole); |
n->size = waste; |
n->offset = offset; |
list_add(&n->list, &mgr->va_holes); |
} |
offset += waste; |
mgr->va_offset += size + waste; |
pipe_mutex_unlock(mgr->bo_va_mutex); |
return offset; |
} |
static void radeon_bomgr_force_va(struct radeon_bomgr *mgr, uint64_t va, uint64_t size) |
{ |
pipe_mutex_lock(mgr->bo_va_mutex); |
if (va >= mgr->va_offset) { |
if (va > mgr->va_offset) { |
struct radeon_bo_va_hole *hole; |
hole = CALLOC_STRUCT(radeon_bo_va_hole); |
if (hole) { |
hole->size = va - mgr->va_offset; |
hole->offset = mgr->va_offset; |
list_add(&hole->list, &mgr->va_holes); |
} |
} |
mgr->va_offset = va + size; |
} else { |
struct radeon_bo_va_hole *hole, *n; |
uint64_t hole_end, va_end; |
/* Prune/free all holes that fall into the range |
*/ |
LIST_FOR_EACH_ENTRY_SAFE(hole, n, &mgr->va_holes, list) { |
hole_end = hole->offset + hole->size; |
va_end = va + size; |
if (hole->offset >= va_end || hole_end <= va) |
continue; |
if (hole->offset >= va && hole_end <= va_end) { |
list_del(&hole->list); |
FREE(hole); |
continue; |
} |
if (hole->offset >= va) |
hole->offset = va_end; |
else |
hole_end = va; |
hole->size = hole_end - hole->offset; |
} |
} |
pipe_mutex_unlock(mgr->bo_va_mutex); |
} |
static void radeon_bomgr_free_va(struct radeon_bomgr *mgr, uint64_t va, uint64_t size) |
{ |
struct radeon_bo_va_hole *hole; |
pipe_mutex_lock(mgr->bo_va_mutex); |
if ((va + size) == mgr->va_offset) { |
mgr->va_offset = va; |
/* Delete uppermost hole if it reaches the new top */ |
if (!LIST_IS_EMPTY(&mgr->va_holes)) { |
hole = container_of(mgr->va_holes.next, hole, list); |
if ((hole->offset + hole->size) == va) { |
mgr->va_offset = hole->offset; |
list_del(&hole->list); |
FREE(hole); |
} |
} |
} else { |
struct radeon_bo_va_hole *next; |
hole = container_of(&mgr->va_holes, hole, list); |
LIST_FOR_EACH_ENTRY(next, &mgr->va_holes, list) { |
if (next->offset < va) |
break; |
hole = next; |
} |
if (&hole->list != &mgr->va_holes) { |
/* Grow upper hole if it's adjacent */ |
if (hole->offset == (va + size)) { |
hole->offset = va; |
hole->size += size; |
/* Merge lower hole if it's adjacent */ |
if (next != hole && &next->list != &mgr->va_holes && |
(next->offset + next->size) == va) { |
next->size += hole->size; |
list_del(&hole->list); |
FREE(hole); |
} |
goto out; |
} |
} |
/* Grow lower hole if it's adjacent */ |
if (next != hole && &next->list != &mgr->va_holes && |
(next->offset + next->size) == va) { |
next->size += size; |
goto out; |
} |
/* FIXME on allocation failure we just lose virtual address space |
* maybe print a warning |
*/ |
next = CALLOC_STRUCT(radeon_bo_va_hole); |
if (next) { |
next->size = size; |
next->offset = va; |
list_add(&next->list, &hole->list); |
} |
} |
out: |
pipe_mutex_unlock(mgr->bo_va_mutex); |
} |
static void radeon_bo_destroy(struct pb_buffer *_buf) |
{ |
struct radeon_bo *bo = radeon_bo(_buf); |
struct radeon_bomgr *mgr = bo->mgr; |
struct drm_gem_close args; |
memset(&args, 0, sizeof(args)); |
if (bo->name) { |
pipe_mutex_lock(bo->mgr->bo_handles_mutex); |
util_hash_table_remove(bo->mgr->bo_handles, |
(void*)(uintptr_t)bo->name); |
pipe_mutex_unlock(bo->mgr->bo_handles_mutex); |
} |
if (bo->ptr) |
os_munmap(bo->ptr, bo->base.size); |
/* Close object. */ |
args.handle = bo->handle; |
drmIoctl(bo->rws->fd, DRM_IOCTL_GEM_CLOSE, &args); |
if (mgr->va) { |
radeon_bomgr_free_va(mgr, bo->va, bo->va_size); |
} |
pipe_mutex_destroy(bo->map_mutex); |
if (bo->initial_domain & RADEON_DOMAIN_VRAM) |
bo->rws->allocated_vram -= align(bo->base.size, 4096); |
else if (bo->initial_domain & RADEON_DOMAIN_GTT) |
bo->rws->allocated_gtt -= align(bo->base.size, 4096); |
FREE(bo); |
} |
void *radeon_bo_do_map(struct radeon_bo *bo) |
{ |
struct drm_radeon_gem_mmap args = {0}; |
void *ptr; |
/* Return the pointer if it's already mapped. */ |
if (bo->ptr) |
return bo->ptr; |
/* Map the buffer. */ |
pipe_mutex_lock(bo->map_mutex); |
/* Return the pointer if it's already mapped (in case of a race). */ |
if (bo->ptr) { |
pipe_mutex_unlock(bo->map_mutex); |
return bo->ptr; |
} |
args.handle = bo->handle; |
args.offset = 0; |
args.size = (uint64_t)bo->base.size; |
if (drmCommandWriteRead(bo->rws->fd, |
DRM_RADEON_GEM_MMAP, |
&args, |
sizeof(args))) { |
pipe_mutex_unlock(bo->map_mutex); |
fprintf(stderr, "radeon: gem_mmap failed: %p 0x%08X\n", |
bo, bo->handle); |
return NULL; |
} |
ptr = os_mmap(0, args.size, PROT_READ|PROT_WRITE, MAP_SHARED, |
bo->rws->fd, args.addr_ptr); |
if (ptr == MAP_FAILED) { |
pipe_mutex_unlock(bo->map_mutex); |
fprintf(stderr, "radeon: mmap failed, errno: %i\n", errno); |
return NULL; |
} |
bo->ptr = ptr; |
pipe_mutex_unlock(bo->map_mutex); |
return bo->ptr; |
} |
static void *radeon_bo_map(struct radeon_winsys_cs_handle *buf, |
struct radeon_winsys_cs *rcs, |
enum pipe_transfer_usage usage) |
{ |
struct radeon_bo *bo = (struct radeon_bo*)buf; |
struct radeon_drm_cs *cs = (struct radeon_drm_cs*)rcs; |
/* If it's not unsynchronized bo_map, flush CS if needed and then wait. */ |
if (!(usage & PIPE_TRANSFER_UNSYNCHRONIZED)) { |
/* DONTBLOCK doesn't make sense with UNSYNCHRONIZED. */ |
if (usage & PIPE_TRANSFER_DONTBLOCK) { |
if (!(usage & PIPE_TRANSFER_WRITE)) { |
/* Mapping for read. |
* |
* Since we are mapping for read, we don't need to wait |
* if the GPU is using the buffer for read too |
* (neither one is changing it). |
* |
* Only check whether the buffer is being used for write. */ |
if (cs && radeon_bo_is_referenced_by_cs_for_write(cs, bo)) { |
cs->flush_cs(cs->flush_data, RADEON_FLUSH_ASYNC); |
return NULL; |
} |
if (radeon_bo_is_busy((struct pb_buffer*)bo, |
RADEON_USAGE_WRITE)) { |
return NULL; |
} |
} else { |
if (cs && radeon_bo_is_referenced_by_cs(cs, bo)) { |
cs->flush_cs(cs->flush_data, RADEON_FLUSH_ASYNC); |
return NULL; |
} |
if (radeon_bo_is_busy((struct pb_buffer*)bo, |
RADEON_USAGE_READWRITE)) { |
return NULL; |
} |
} |
} else { |
uint64_t time = os_time_get_nano(); |
if (!(usage & PIPE_TRANSFER_WRITE)) { |
/* Mapping for read. |
* |
* Since we are mapping for read, we don't need to wait |
* if the GPU is using the buffer for read too |
* (neither one is changing it). |
* |
* Only check whether the buffer is being used for write. */ |
if (cs && radeon_bo_is_referenced_by_cs_for_write(cs, bo)) { |
cs->flush_cs(cs->flush_data, 0); |
} |
radeon_bo_wait((struct pb_buffer*)bo, |
RADEON_USAGE_WRITE); |
} else { |
/* Mapping for write. */ |
if (cs) { |
if (radeon_bo_is_referenced_by_cs(cs, bo)) { |
cs->flush_cs(cs->flush_data, 0); |
} else { |
/* Try to avoid busy-waiting in radeon_bo_wait. */ |
if (p_atomic_read(&bo->num_active_ioctls)) |
radeon_drm_cs_sync_flush(rcs); |
} |
} |
radeon_bo_wait((struct pb_buffer*)bo, RADEON_USAGE_READWRITE); |
} |
bo->mgr->rws->buffer_wait_time += os_time_get_nano() - time; |
} |
} |
return radeon_bo_do_map(bo); |
} |
static void radeon_bo_unmap(struct radeon_winsys_cs_handle *_buf) |
{ |
/* NOP */ |
} |
static void radeon_bo_get_base_buffer(struct pb_buffer *buf, |
struct pb_buffer **base_buf, |
unsigned *offset) |
{ |
*base_buf = buf; |
*offset = 0; |
} |
static enum pipe_error radeon_bo_validate(struct pb_buffer *_buf, |
struct pb_validate *vl, |
unsigned flags) |
{ |
/* Always pinned */ |
return PIPE_OK; |
} |
static void radeon_bo_fence(struct pb_buffer *buf, |
struct pipe_fence_handle *fence) |
{ |
} |
const struct pb_vtbl radeon_bo_vtbl = { |
radeon_bo_destroy, |
NULL, /* never called */ |
NULL, /* never called */ |
radeon_bo_validate, |
radeon_bo_fence, |
radeon_bo_get_base_buffer, |
}; |
static struct pb_buffer *radeon_bomgr_create_bo(struct pb_manager *_mgr, |
pb_size size, |
const struct pb_desc *desc) |
{ |
struct radeon_bomgr *mgr = radeon_bomgr(_mgr); |
struct radeon_drm_winsys *rws = mgr->rws; |
struct radeon_bo *bo; |
struct drm_radeon_gem_create args; |
struct radeon_bo_desc *rdesc = (struct radeon_bo_desc*)desc; |
int r; |
memset(&args, 0, sizeof(args)); |
assert(rdesc->initial_domains); |
assert((rdesc->initial_domains & |
~(RADEON_GEM_DOMAIN_GTT | RADEON_GEM_DOMAIN_VRAM)) == 0); |
args.size = size; |
args.alignment = desc->alignment; |
args.initial_domain = rdesc->initial_domains; |
if (drmCommandWriteRead(rws->fd, DRM_RADEON_GEM_CREATE, |
&args, sizeof(args))) { |
fprintf(stderr, "radeon: Failed to allocate a buffer:\n"); |
fprintf(stderr, "radeon: size : %d bytes\n", size); |
fprintf(stderr, "radeon: alignment : %d bytes\n", desc->alignment); |
fprintf(stderr, "radeon: domains : %d\n", args.initial_domain); |
return NULL; |
} |
bo = CALLOC_STRUCT(radeon_bo); |
if (!bo) |
return NULL; |
pipe_reference_init(&bo->base.reference, 1); |
bo->base.alignment = desc->alignment; |
bo->base.usage = desc->usage; |
bo->base.size = size; |
bo->base.vtbl = &radeon_bo_vtbl; |
bo->mgr = mgr; |
bo->rws = mgr->rws; |
bo->handle = args.handle; |
bo->va = 0; |
bo->initial_domain = rdesc->initial_domains; |
pipe_mutex_init(bo->map_mutex); |
if (mgr->va) { |
struct drm_radeon_gem_va va; |
bo->va_size = align(size, 4096); |
bo->va = radeon_bomgr_find_va(mgr, bo->va_size, desc->alignment); |
va.handle = bo->handle; |
va.vm_id = 0; |
va.operation = RADEON_VA_MAP; |
va.flags = RADEON_VM_PAGE_READABLE | |
RADEON_VM_PAGE_WRITEABLE | |
RADEON_VM_PAGE_SNOOPED; |
va.offset = bo->va; |
r = drmCommandWriteRead(rws->fd, DRM_RADEON_GEM_VA, &va, sizeof(va)); |
if (r && va.operation == RADEON_VA_RESULT_ERROR) { |
fprintf(stderr, "radeon: Failed to allocate virtual address for buffer:\n"); |
fprintf(stderr, "radeon: size : %d bytes\n", size); |
fprintf(stderr, "radeon: alignment : %d bytes\n", desc->alignment); |
fprintf(stderr, "radeon: domains : %d\n", args.initial_domain); |
fprintf(stderr, "radeon: va : 0x%016llx\n", (unsigned long long)bo->va); |
radeon_bo_destroy(&bo->base); |
return NULL; |
} |
if (va.operation == RADEON_VA_RESULT_VA_EXIST) { |
radeon_bomgr_free_va(mgr, bo->va, bo->va_size); |
bo->va = va.offset; |
radeon_bomgr_force_va(mgr, bo->va, bo->va_size); |
} |
} |
if (rdesc->initial_domains & RADEON_DOMAIN_VRAM) |
rws->allocated_vram += align(size, 4096); |
else if (rdesc->initial_domains & RADEON_DOMAIN_GTT) |
rws->allocated_gtt += align(size, 4096); |
return &bo->base; |
} |
static void radeon_bomgr_flush(struct pb_manager *mgr) |
{ |
/* NOP */ |
} |
/* This is for the cache bufmgr. */ |
static boolean radeon_bomgr_is_buffer_busy(struct pb_manager *_mgr, |
struct pb_buffer *_buf) |
{ |
struct radeon_bo *bo = radeon_bo(_buf); |
if (radeon_bo_is_referenced_by_any_cs(bo)) { |
return TRUE; |
} |
if (radeon_bo_is_busy((struct pb_buffer*)bo, RADEON_USAGE_READWRITE)) { |
return TRUE; |
} |
return FALSE; |
} |
static void radeon_bomgr_destroy(struct pb_manager *_mgr) |
{ |
struct radeon_bomgr *mgr = radeon_bomgr(_mgr); |
util_hash_table_destroy(mgr->bo_handles); |
pipe_mutex_destroy(mgr->bo_handles_mutex); |
pipe_mutex_destroy(mgr->bo_va_mutex); |
FREE(mgr); |
} |
#define PTR_TO_UINT(x) ((unsigned)((intptr_t)(x))) |
static unsigned handle_hash(void *key) |
{ |
return PTR_TO_UINT(key); |
} |
static int handle_compare(void *key1, void *key2) |
{ |
return PTR_TO_UINT(key1) != PTR_TO_UINT(key2); |
} |
struct pb_manager *radeon_bomgr_create(struct radeon_drm_winsys *rws) |
{ |
struct radeon_bomgr *mgr; |
mgr = CALLOC_STRUCT(radeon_bomgr); |
if (!mgr) |
return NULL; |
mgr->base.destroy = radeon_bomgr_destroy; |
mgr->base.create_buffer = radeon_bomgr_create_bo; |
mgr->base.flush = radeon_bomgr_flush; |
mgr->base.is_buffer_busy = radeon_bomgr_is_buffer_busy; |
mgr->rws = rws; |
mgr->bo_handles = util_hash_table_create(handle_hash, handle_compare); |
pipe_mutex_init(mgr->bo_handles_mutex); |
pipe_mutex_init(mgr->bo_va_mutex); |
mgr->va = rws->info.r600_virtual_address; |
mgr->va_offset = rws->info.r600_va_start; |
list_inithead(&mgr->va_holes); |
return &mgr->base; |
} |
static unsigned eg_tile_split(unsigned tile_split) |
{ |
switch (tile_split) { |
case 0: tile_split = 64; break; |
case 1: tile_split = 128; break; |
case 2: tile_split = 256; break; |
case 3: tile_split = 512; break; |
default: |
case 4: tile_split = 1024; break; |
case 5: tile_split = 2048; break; |
case 6: tile_split = 4096; break; |
} |
return tile_split; |
} |
static unsigned eg_tile_split_rev(unsigned eg_tile_split) |
{ |
switch (eg_tile_split) { |
case 64: return 0; |
case 128: return 1; |
case 256: return 2; |
case 512: return 3; |
default: |
case 1024: return 4; |
case 2048: return 5; |
case 4096: return 6; |
} |
} |
static void radeon_bo_get_tiling(struct pb_buffer *_buf, |
enum radeon_bo_layout *microtiled, |
enum radeon_bo_layout *macrotiled, |
unsigned *bankw, unsigned *bankh, |
unsigned *tile_split, |
unsigned *stencil_tile_split, |
unsigned *mtilea) |
{ |
struct radeon_bo *bo = get_radeon_bo(_buf); |
struct drm_radeon_gem_set_tiling args; |
memset(&args, 0, sizeof(args)); |
args.handle = bo->handle; |
drmCommandWriteRead(bo->rws->fd, |
DRM_RADEON_GEM_GET_TILING, |
&args, |
sizeof(args)); |
*microtiled = RADEON_LAYOUT_LINEAR; |
*macrotiled = RADEON_LAYOUT_LINEAR; |
if (args.tiling_flags & RADEON_BO_FLAGS_MICRO_TILE) |
*microtiled = RADEON_LAYOUT_TILED; |
if (args.tiling_flags & RADEON_BO_FLAGS_MACRO_TILE) |
*macrotiled = RADEON_LAYOUT_TILED; |
if (bankw && tile_split && stencil_tile_split && mtilea && tile_split) { |
*bankw = (args.tiling_flags >> RADEON_TILING_EG_BANKW_SHIFT) & RADEON_TILING_EG_BANKW_MASK; |
*bankh = (args.tiling_flags >> RADEON_TILING_EG_BANKH_SHIFT) & RADEON_TILING_EG_BANKH_MASK; |
*tile_split = (args.tiling_flags >> RADEON_TILING_EG_TILE_SPLIT_SHIFT) & RADEON_TILING_EG_TILE_SPLIT_MASK; |
*stencil_tile_split = (args.tiling_flags >> RADEON_TILING_EG_STENCIL_TILE_SPLIT_SHIFT) & RADEON_TILING_EG_STENCIL_TILE_SPLIT_MASK; |
*mtilea = (args.tiling_flags >> RADEON_TILING_EG_MACRO_TILE_ASPECT_SHIFT) & RADEON_TILING_EG_MACRO_TILE_ASPECT_MASK; |
*tile_split = eg_tile_split(*tile_split); |
} |
} |
static void radeon_bo_set_tiling(struct pb_buffer *_buf, |
struct radeon_winsys_cs *rcs, |
enum radeon_bo_layout microtiled, |
enum radeon_bo_layout macrotiled, |
unsigned bankw, unsigned bankh, |
unsigned tile_split, |
unsigned stencil_tile_split, |
unsigned mtilea, |
uint32_t pitch) |
{ |
struct radeon_bo *bo = get_radeon_bo(_buf); |
struct radeon_drm_cs *cs = radeon_drm_cs(rcs); |
struct drm_radeon_gem_set_tiling args; |
memset(&args, 0, sizeof(args)); |
/* Tiling determines how DRM treats the buffer data. |
* We must flush CS when changing it if the buffer is referenced. */ |
if (cs && radeon_bo_is_referenced_by_cs(cs, bo)) { |
cs->flush_cs(cs->flush_data, 0); |
} |
while (p_atomic_read(&bo->num_active_ioctls)) { |
sched_yield(); |
} |
if (microtiled == RADEON_LAYOUT_TILED) |
args.tiling_flags |= RADEON_BO_FLAGS_MICRO_TILE; |
else if (microtiled == RADEON_LAYOUT_SQUARETILED) |
args.tiling_flags |= RADEON_BO_FLAGS_MICRO_TILE_SQUARE; |
if (macrotiled == RADEON_LAYOUT_TILED) |
args.tiling_flags |= RADEON_BO_FLAGS_MACRO_TILE; |
args.tiling_flags |= (bankw & RADEON_TILING_EG_BANKW_MASK) << |
RADEON_TILING_EG_BANKW_SHIFT; |
args.tiling_flags |= (bankh & RADEON_TILING_EG_BANKH_MASK) << |
RADEON_TILING_EG_BANKH_SHIFT; |
if (tile_split) { |
args.tiling_flags |= (eg_tile_split_rev(tile_split) & |
RADEON_TILING_EG_TILE_SPLIT_MASK) << |
RADEON_TILING_EG_TILE_SPLIT_SHIFT; |
} |
args.tiling_flags |= (stencil_tile_split & |
RADEON_TILING_EG_STENCIL_TILE_SPLIT_MASK) << |
RADEON_TILING_EG_STENCIL_TILE_SPLIT_SHIFT; |
args.tiling_flags |= (mtilea & RADEON_TILING_EG_MACRO_TILE_ASPECT_MASK) << |
RADEON_TILING_EG_MACRO_TILE_ASPECT_SHIFT; |
args.handle = bo->handle; |
args.pitch = pitch; |
drmCommandWriteRead(bo->rws->fd, |
DRM_RADEON_GEM_SET_TILING, |
&args, |
sizeof(args)); |
} |
static struct radeon_winsys_cs_handle *radeon_drm_get_cs_handle(struct pb_buffer *_buf) |
{ |
/* return radeon_bo. */ |
return (struct radeon_winsys_cs_handle*)get_radeon_bo(_buf); |
} |
static struct pb_buffer * |
radeon_winsys_bo_create(struct radeon_winsys *rws, |
unsigned size, |
unsigned alignment, |
boolean use_reusable_pool, |
enum radeon_bo_domain domain) |
{ |
struct radeon_drm_winsys *ws = radeon_drm_winsys(rws); |
struct radeon_bo_desc desc; |
struct pb_manager *provider; |
struct pb_buffer *buffer; |
memset(&desc, 0, sizeof(desc)); |
desc.base.alignment = alignment; |
/* Additional criteria for the cache manager. */ |
desc.base.usage = domain; |
desc.initial_domains = domain; |
/* Assign a buffer manager. */ |
if (use_reusable_pool) |
provider = ws->cman; |
else |
provider = ws->kman; |
buffer = provider->create_buffer(provider, size, &desc.base); |
if (!buffer) |
return NULL; |
return (struct pb_buffer*)buffer; |
} |
static struct pb_buffer *radeon_winsys_bo_from_handle(struct radeon_winsys *rws, |
struct winsys_handle *whandle, |
unsigned *stride) |
{ |
struct radeon_drm_winsys *ws = radeon_drm_winsys(rws); |
struct radeon_bo *bo; |
struct radeon_bomgr *mgr = radeon_bomgr(ws->kman); |
struct drm_gem_open open_arg = {}; |
int r; |
memset(&open_arg, 0, sizeof(open_arg)); |
/* We must maintain a list of pairs <handle, bo>, so that we always return |
* the same BO for one particular handle. If we didn't do that and created |
* more than one BO for the same handle and then relocated them in a CS, |
* we would hit a deadlock in the kernel. |
* |
* The list of pairs is guarded by a mutex, of course. */ |
pipe_mutex_lock(mgr->bo_handles_mutex); |
/* First check if there already is an existing bo for the handle. */ |
bo = util_hash_table_get(mgr->bo_handles, (void*)(uintptr_t)whandle->handle); |
if (bo) { |
/* Increase the refcount. */ |
struct pb_buffer *b = NULL; |
pb_reference(&b, &bo->base); |
goto done; |
} |
/* There isn't, create a new one. */ |
bo = CALLOC_STRUCT(radeon_bo); |
if (!bo) { |
goto fail; |
} |
/* Open the BO. */ |
open_arg.name = whandle->handle; |
if (drmIoctl(ws->fd, DRM_IOCTL_GEM_OPEN, &open_arg)) { |
FREE(bo); |
goto fail; |
} |
bo->handle = open_arg.handle; |
bo->name = whandle->handle; |
/* Initialize it. */ |
pipe_reference_init(&bo->base.reference, 1); |
bo->base.alignment = 0; |
bo->base.usage = PB_USAGE_GPU_WRITE | PB_USAGE_GPU_READ; |
bo->base.size = open_arg.size; |
bo->base.vtbl = &radeon_bo_vtbl; |
bo->mgr = mgr; |
bo->rws = mgr->rws; |
bo->va = 0; |
pipe_mutex_init(bo->map_mutex); |
util_hash_table_set(mgr->bo_handles, (void*)(uintptr_t)whandle->handle, bo); |
done: |
pipe_mutex_unlock(mgr->bo_handles_mutex); |
if (stride) |
*stride = whandle->stride; |
if (mgr->va && !bo->va) { |
struct drm_radeon_gem_va va; |
bo->va_size = ((bo->base.size + 4095) & ~4095); |
bo->va = radeon_bomgr_find_va(mgr, bo->va_size, 1 << 20); |
va.handle = bo->handle; |
va.operation = RADEON_VA_MAP; |
va.vm_id = 0; |
va.offset = bo->va; |
va.flags = RADEON_VM_PAGE_READABLE | |
RADEON_VM_PAGE_WRITEABLE | |
RADEON_VM_PAGE_SNOOPED; |
va.offset = bo->va; |
r = drmCommandWriteRead(ws->fd, DRM_RADEON_GEM_VA, &va, sizeof(va)); |
if (r && va.operation == RADEON_VA_RESULT_ERROR) { |
fprintf(stderr, "radeon: Failed to assign virtual address space\n"); |
radeon_bo_destroy(&bo->base); |
return NULL; |
} |
if (va.operation == RADEON_VA_RESULT_VA_EXIST) { |
radeon_bomgr_free_va(mgr, bo->va, bo->va_size); |
bo->va = va.offset; |
radeon_bomgr_force_va(mgr, bo->va, bo->va_size); |
} |
} |
ws->allocated_vram += align(open_arg.size, 4096); |
bo->initial_domain = RADEON_DOMAIN_VRAM; |
return (struct pb_buffer*)bo; |
fail: |
pipe_mutex_unlock(mgr->bo_handles_mutex); |
return NULL; |
} |
static boolean radeon_winsys_bo_get_handle(struct pb_buffer *buffer, |
unsigned stride, |
struct winsys_handle *whandle) |
{ |
struct drm_gem_flink flink; |
struct radeon_bo *bo = get_radeon_bo(buffer); |
memset(&flink, 0, sizeof(flink)); |
if (whandle->type == DRM_API_HANDLE_TYPE_SHARED) { |
if (!bo->flinked) { |
flink.handle = bo->handle; |
if (ioctl(bo->rws->fd, DRM_IOCTL_GEM_FLINK, &flink)) { |
return FALSE; |
} |
bo->flinked = TRUE; |
bo->flink = flink.name; |
pipe_mutex_lock(bo->mgr->bo_handles_mutex); |
util_hash_table_set(bo->mgr->bo_handles, (void*)(uintptr_t)bo->flink, bo); |
pipe_mutex_unlock(bo->mgr->bo_handles_mutex); |
} |
whandle->handle = bo->flink; |
} else if (whandle->type == DRM_API_HANDLE_TYPE_KMS) { |
whandle->handle = bo->handle; |
} |
whandle->stride = stride; |
return TRUE; |
} |
static uint64_t radeon_winsys_bo_va(struct radeon_winsys_cs_handle *buf) |
{ |
return ((struct radeon_bo*)buf)->va; |
} |
void radeon_bomgr_init_functions(struct radeon_drm_winsys *ws) |
{ |
ws->base.buffer_get_cs_handle = radeon_drm_get_cs_handle; |
ws->base.buffer_set_tiling = radeon_bo_set_tiling; |
ws->base.buffer_get_tiling = radeon_bo_get_tiling; |
ws->base.buffer_map = radeon_bo_map; |
ws->base.buffer_unmap = radeon_bo_unmap; |
ws->base.buffer_wait = radeon_bo_wait; |
ws->base.buffer_is_busy = radeon_bo_is_busy; |
ws->base.buffer_create = radeon_winsys_bo_create; |
ws->base.buffer_from_handle = radeon_winsys_bo_from_handle; |
ws->base.buffer_get_handle = radeon_winsys_bo_get_handle; |
ws->base.buffer_get_virtual_address = radeon_winsys_bo_va; |
} |
/contrib/sdk/sources/Mesa/src/gallium/winsys/radeon/drm/radeon_drm_bo.h |
---|
0,0 → 1,84 |
/* |
* Copyright © 2008 Jérôme Glisse |
* Copyright © 2011 Marek Olšák <maraeo@gmail.com> |
* All Rights Reserved. |
* |
* Permission is hereby granted, free of charge, to any person obtaining |
* a copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES |
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
* NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS, AUTHORS |
* AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, |
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE |
* USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
*/ |
/* |
* Authors: |
* Jérôme Glisse <glisse@freedesktop.org> |
* Marek Olšák <maraeo@gmail.com> |
*/ |
#ifndef RADEON_DRM_BO_H |
#define RADEON_DRM_BO_H |
#include "radeon_drm_winsys.h" |
#include "pipebuffer/pb_bufmgr.h" |
#include "os/os_thread.h" |
struct radeon_bomgr; |
struct radeon_bo_desc { |
struct pb_desc base; |
unsigned initial_domains; |
}; |
struct radeon_bo { |
struct pb_buffer base; |
struct radeon_bomgr *mgr; |
struct radeon_drm_winsys *rws; |
void *ptr; |
pipe_mutex map_mutex; |
uint32_t handle; |
uint32_t name; |
uint64_t va; |
uint64_t va_size; |
enum radeon_bo_domain initial_domain; |
/* how many command streams is this bo referenced in? */ |
int num_cs_references; |
/* how many command streams, which are being emitted in a separate |
* thread, is this bo referenced in? */ |
int num_active_ioctls; |
boolean flinked; |
uint32_t flink; |
}; |
struct pb_manager *radeon_bomgr_create(struct radeon_drm_winsys *rws); |
void radeon_bomgr_init_functions(struct radeon_drm_winsys *ws); |
static INLINE |
void radeon_bo_reference(struct radeon_bo **dst, struct radeon_bo *src) |
{ |
pb_reference((struct pb_buffer**)dst, (struct pb_buffer*)src); |
} |
void *radeon_bo_do_map(struct radeon_bo *bo); |
#endif |
/contrib/sdk/sources/Mesa/src/gallium/winsys/radeon/drm/radeon_drm_cs.c |
---|
0,0 → 1,644 |
/* |
* Copyright © 2008 Jérôme Glisse |
* Copyright © 2010 Marek Olšák <maraeo@gmail.com> |
* All Rights Reserved. |
* |
* Permission is hereby granted, free of charge, to any person obtaining |
* a copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES |
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
* NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS, AUTHORS |
* AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, |
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE |
* USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
*/ |
/* |
* Authors: |
* Marek Olšák <maraeo@gmail.com> |
* |
* Based on work from libdrm_radeon by: |
* Aapo Tahkola <aet@rasterburn.org> |
* Nicolai Haehnle <prefect_@gmx.net> |
* Jérôme Glisse <glisse@freedesktop.org> |
*/ |
/* |
This file replaces libdrm's radeon_cs_gem with our own implemention. |
It's optimized specifically for Radeon DRM. |
Reloc writes and space checking are faster and simpler than their |
counterparts in libdrm (the time complexity of all the functions |
is O(1) in nearly all scenarios, thanks to hashing). |
It works like this: |
cs_add_reloc(cs, buf, read_domain, write_domain) adds a new relocation and |
also adds the size of 'buf' to the used_gart and used_vram winsys variables |
based on the domains, which are simply or'd for the accounting purposes. |
The adding is skipped if the reloc is already present in the list, but it |
accounts any newly-referenced domains. |
cs_validate is then called, which just checks: |
used_vram/gart < vram/gart_size * 0.8 |
The 0.8 number allows for some memory fragmentation. If the validation |
fails, the pipe driver flushes CS and tries do the validation again, |
i.e. it validates only that one operation. If it fails again, it drops |
the operation on the floor and prints some nasty message to stderr. |
(done in the pipe driver) |
cs_write_reloc(cs, buf) just writes a reloc that has been added using |
cs_add_reloc. The read_domain and write_domain parameters have been removed, |
because we already specify them in cs_add_reloc. |
*/ |
#include "radeon_drm_cs.h" |
#include "util/u_memory.h" |
#include <stdio.h> |
#include <stdlib.h> |
#include <stdint.h> |
#include <xf86drm.h> |
/* |
* this are copy from radeon_drm, once an updated libdrm is released |
* we should bump configure.ac requirement for it and remove the following |
* field |
*/ |
#ifndef RADEON_CHUNK_ID_FLAGS |
#define RADEON_CHUNK_ID_FLAGS 0x03 |
/* The first dword of RADEON_CHUNK_ID_FLAGS is a uint32 of these flags: */ |
#define RADEON_CS_KEEP_TILING_FLAGS 0x01 |
#endif |
#ifndef RADEON_CS_USE_VM |
#define RADEON_CS_USE_VM 0x02 |
/* The second dword of RADEON_CHUNK_ID_FLAGS is a uint32 that sets the ring type */ |
#define RADEON_CS_RING_GFX 0 |
#define RADEON_CS_RING_COMPUTE 1 |
#endif |
#ifndef RADEON_CS_RING_DMA |
#define RADEON_CS_RING_DMA 2 |
#endif |
#ifndef RADEON_CS_RING_UVD |
#define RADEON_CS_RING_UVD 3 |
#endif |
#ifndef RADEON_CS_END_OF_FRAME |
#define RADEON_CS_END_OF_FRAME 0x04 |
#endif |
#define RELOC_DWORDS (sizeof(struct drm_radeon_cs_reloc) / sizeof(uint32_t)) |
static boolean radeon_init_cs_context(struct radeon_cs_context *csc, |
struct radeon_drm_winsys *ws) |
{ |
csc->fd = ws->fd; |
csc->nrelocs = 512; |
csc->relocs_bo = (struct radeon_bo**) |
CALLOC(1, csc->nrelocs * sizeof(struct radeon_bo*)); |
if (!csc->relocs_bo) { |
return FALSE; |
} |
csc->relocs = (struct drm_radeon_cs_reloc*) |
CALLOC(1, csc->nrelocs * sizeof(struct drm_radeon_cs_reloc)); |
if (!csc->relocs) { |
FREE(csc->relocs_bo); |
return FALSE; |
} |
csc->chunks[0].chunk_id = RADEON_CHUNK_ID_IB; |
csc->chunks[0].length_dw = 0; |
csc->chunks[0].chunk_data = (uint64_t)(uintptr_t)csc->buf; |
csc->chunks[1].chunk_id = RADEON_CHUNK_ID_RELOCS; |
csc->chunks[1].length_dw = 0; |
csc->chunks[1].chunk_data = (uint64_t)(uintptr_t)csc->relocs; |
csc->chunks[2].chunk_id = RADEON_CHUNK_ID_FLAGS; |
csc->chunks[2].length_dw = 2; |
csc->chunks[2].chunk_data = (uint64_t)(uintptr_t)&csc->flags; |
csc->chunk_array[0] = (uint64_t)(uintptr_t)&csc->chunks[0]; |
csc->chunk_array[1] = (uint64_t)(uintptr_t)&csc->chunks[1]; |
csc->chunk_array[2] = (uint64_t)(uintptr_t)&csc->chunks[2]; |
csc->cs.chunks = (uint64_t)(uintptr_t)csc->chunk_array; |
return TRUE; |
} |
static void radeon_cs_context_cleanup(struct radeon_cs_context *csc) |
{ |
unsigned i; |
for (i = 0; i < csc->crelocs; i++) { |
p_atomic_dec(&csc->relocs_bo[i]->num_cs_references); |
radeon_bo_reference(&csc->relocs_bo[i], NULL); |
} |
csc->crelocs = 0; |
csc->validated_crelocs = 0; |
csc->chunks[0].length_dw = 0; |
csc->chunks[1].length_dw = 0; |
csc->used_gart = 0; |
csc->used_vram = 0; |
memset(csc->is_handle_added, 0, sizeof(csc->is_handle_added)); |
} |
static void radeon_destroy_cs_context(struct radeon_cs_context *csc) |
{ |
radeon_cs_context_cleanup(csc); |
FREE(csc->relocs_bo); |
FREE(csc->relocs); |
} |
static struct radeon_winsys_cs *radeon_drm_cs_create(struct radeon_winsys *rws, |
enum ring_type ring_type, |
struct radeon_winsys_cs_handle *trace_buf) |
{ |
struct radeon_drm_winsys *ws = radeon_drm_winsys(rws); |
struct radeon_drm_cs *cs; |
cs = CALLOC_STRUCT(radeon_drm_cs); |
if (!cs) { |
return NULL; |
} |
pipe_semaphore_init(&cs->flush_completed, 0); |
cs->ws = ws; |
cs->trace_buf = (struct radeon_bo*)trace_buf; |
if (!radeon_init_cs_context(&cs->csc1, cs->ws)) { |
FREE(cs); |
return NULL; |
} |
if (!radeon_init_cs_context(&cs->csc2, cs->ws)) { |
radeon_destroy_cs_context(&cs->csc1); |
FREE(cs); |
return NULL; |
} |
/* Set the first command buffer as current. */ |
cs->csc = &cs->csc1; |
cs->cst = &cs->csc2; |
cs->base.buf = cs->csc->buf; |
cs->base.ring_type = ring_type; |
p_atomic_inc(&ws->num_cs); |
return &cs->base; |
} |
#define OUT_CS(cs, value) (cs)->buf[(cs)->cdw++] = (value) |
static INLINE void update_reloc_domains(struct drm_radeon_cs_reloc *reloc, |
enum radeon_bo_domain rd, |
enum radeon_bo_domain wd, |
enum radeon_bo_domain *added_domains) |
{ |
*added_domains = (rd | wd) & ~(reloc->read_domains | reloc->write_domain); |
reloc->read_domains |= rd; |
reloc->write_domain |= wd; |
} |
int radeon_get_reloc(struct radeon_cs_context *csc, struct radeon_bo *bo) |
{ |
struct drm_radeon_cs_reloc *reloc; |
unsigned i; |
unsigned hash = bo->handle & (sizeof(csc->is_handle_added)-1); |
if (csc->is_handle_added[hash]) { |
i = csc->reloc_indices_hashlist[hash]; |
reloc = &csc->relocs[i]; |
if (reloc->handle == bo->handle) { |
return i; |
} |
/* Hash collision, look for the BO in the list of relocs linearly. */ |
for (i = csc->crelocs; i != 0;) { |
--i; |
reloc = &csc->relocs[i]; |
if (reloc->handle == bo->handle) { |
/* Put this reloc in the hash list. |
* This will prevent additional hash collisions if there are |
* several consecutive get_reloc calls for the same buffer. |
* |
* Example: Assuming buffers A,B,C collide in the hash list, |
* the following sequence of relocs: |
* AAAAAAAAAAABBBBBBBBBBBBBBCCCCCCCC |
* will collide here: ^ and here: ^, |
* meaning that we should get very few collisions in the end. */ |
csc->reloc_indices_hashlist[hash] = i; |
/*printf("write_reloc collision, hash: %i, handle: %i\n", hash, bo->handle);*/ |
return i; |
} |
} |
} |
return -1; |
} |
static unsigned radeon_add_reloc(struct radeon_drm_cs *cs, |
struct radeon_bo *bo, |
enum radeon_bo_usage usage, |
enum radeon_bo_domain domains, |
enum radeon_bo_domain *added_domains) |
{ |
struct radeon_cs_context *csc = cs->csc; |
struct drm_radeon_cs_reloc *reloc; |
unsigned hash = bo->handle & (sizeof(csc->is_handle_added)-1); |
enum radeon_bo_domain rd = usage & RADEON_USAGE_READ ? domains : 0; |
enum radeon_bo_domain wd = usage & RADEON_USAGE_WRITE ? domains : 0; |
bool update_hash = TRUE; |
int i; |
*added_domains = 0; |
if (csc->is_handle_added[hash]) { |
i = csc->reloc_indices_hashlist[hash]; |
reloc = &csc->relocs[i]; |
if (reloc->handle != bo->handle) { |
/* Hash collision, look for the BO in the list of relocs linearly. */ |
for (i = csc->crelocs - 1; i >= 0; i--) { |
reloc = &csc->relocs[i]; |
if (reloc->handle == bo->handle) { |
/*printf("write_reloc collision, hash: %i, handle: %i\n", hash, bo->handle);*/ |
break; |
} |
} |
} |
if (i >= 0) { |
/* On DMA ring we need to emit as many relocation as there is use of the bo |
* thus each time this function is call we should grow add again the bo to |
* the relocation buffer |
* |
* Do not update the hash table if it's dma ring, so that first hash always point |
* to first bo relocation which will the one used by the kernel. Following relocation |
* will be ignore by the kernel memory placement (but still use by the kernel to |
* update the cmd stream with proper buffer offset). |
*/ |
update_hash = FALSE; |
update_reloc_domains(reloc, rd, wd, added_domains); |
if (cs->base.ring_type != RING_DMA) { |
csc->reloc_indices_hashlist[hash] = i; |
return i; |
} |
} |
} |
/* New relocation, check if the backing array is large enough. */ |
if (csc->crelocs >= csc->nrelocs) { |
uint32_t size; |
csc->nrelocs += 10; |
size = csc->nrelocs * sizeof(struct radeon_bo*); |
csc->relocs_bo = realloc(csc->relocs_bo, size); |
size = csc->nrelocs * sizeof(struct drm_radeon_cs_reloc); |
csc->relocs = realloc(csc->relocs, size); |
csc->chunks[1].chunk_data = (uint64_t)(uintptr_t)csc->relocs; |
} |
/* Initialize the new relocation. */ |
csc->relocs_bo[csc->crelocs] = NULL; |
radeon_bo_reference(&csc->relocs_bo[csc->crelocs], bo); |
p_atomic_inc(&bo->num_cs_references); |
reloc = &csc->relocs[csc->crelocs]; |
reloc->handle = bo->handle; |
reloc->read_domains = rd; |
reloc->write_domain = wd; |
reloc->flags = 0; |
csc->is_handle_added[hash] = TRUE; |
if (update_hash) { |
csc->reloc_indices_hashlist[hash] = csc->crelocs; |
} |
csc->chunks[1].length_dw += RELOC_DWORDS; |
*added_domains = rd | wd; |
return csc->crelocs++; |
} |
static unsigned radeon_drm_cs_add_reloc(struct radeon_winsys_cs *rcs, |
struct radeon_winsys_cs_handle *buf, |
enum radeon_bo_usage usage, |
enum radeon_bo_domain domains) |
{ |
struct radeon_drm_cs *cs = radeon_drm_cs(rcs); |
struct radeon_bo *bo = (struct radeon_bo*)buf; |
enum radeon_bo_domain added_domains; |
unsigned index = radeon_add_reloc(cs, bo, usage, domains, &added_domains); |
if (added_domains & RADEON_DOMAIN_GTT) |
cs->csc->used_gart += bo->base.size; |
if (added_domains & RADEON_DOMAIN_VRAM) |
cs->csc->used_vram += bo->base.size; |
return index; |
} |
static boolean radeon_drm_cs_validate(struct radeon_winsys_cs *rcs) |
{ |
struct radeon_drm_cs *cs = radeon_drm_cs(rcs); |
boolean status = |
cs->csc->used_gart < cs->ws->info.gart_size * 0.8 && |
cs->csc->used_vram < cs->ws->info.vram_size * 0.8; |
if (status) { |
cs->csc->validated_crelocs = cs->csc->crelocs; |
} else { |
/* Remove lately-added relocations. The validation failed with them |
* and the CS is about to be flushed because of that. Keep only |
* the already-validated relocations. */ |
unsigned i; |
for (i = cs->csc->validated_crelocs; i < cs->csc->crelocs; i++) { |
p_atomic_dec(&cs->csc->relocs_bo[i]->num_cs_references); |
radeon_bo_reference(&cs->csc->relocs_bo[i], NULL); |
} |
cs->csc->crelocs = cs->csc->validated_crelocs; |
/* Flush if there are any relocs. Clean up otherwise. */ |
if (cs->csc->crelocs) { |
cs->flush_cs(cs->flush_data, RADEON_FLUSH_ASYNC); |
} else { |
radeon_cs_context_cleanup(cs->csc); |
assert(cs->base.cdw == 0); |
if (cs->base.cdw != 0) { |
fprintf(stderr, "radeon: Unexpected error in %s.\n", __func__); |
} |
} |
} |
return status; |
} |
static boolean radeon_drm_cs_memory_below_limit(struct radeon_winsys_cs *rcs, uint64_t vram, uint64_t gtt) |
{ |
struct radeon_drm_cs *cs = radeon_drm_cs(rcs); |
boolean status = |
(cs->csc->used_gart + gtt) < cs->ws->info.gart_size * 0.7 && |
(cs->csc->used_vram + vram) < cs->ws->info.vram_size * 0.7; |
return status; |
} |
static void radeon_drm_cs_write_reloc(struct radeon_winsys_cs *rcs, |
struct radeon_winsys_cs_handle *buf) |
{ |
struct radeon_drm_cs *cs = radeon_drm_cs(rcs); |
struct radeon_bo *bo = (struct radeon_bo*)buf; |
unsigned index = radeon_get_reloc(cs->csc, bo); |
if (index == -1) { |
fprintf(stderr, "radeon: Cannot get a relocation in %s.\n", __func__); |
return; |
} |
OUT_CS(&cs->base, 0xc0001000); |
OUT_CS(&cs->base, index * RELOC_DWORDS); |
} |
void radeon_drm_cs_emit_ioctl_oneshot(struct radeon_drm_cs *cs, struct radeon_cs_context *csc) |
{ |
unsigned i; |
if (drmCommandWriteRead(csc->fd, DRM_RADEON_CS, |
&csc->cs, sizeof(struct drm_radeon_cs))) { |
if (debug_get_bool_option("RADEON_DUMP_CS", FALSE)) { |
unsigned i; |
fprintf(stderr, "radeon: The kernel rejected CS, dumping...\n"); |
for (i = 0; i < csc->chunks[0].length_dw; i++) { |
fprintf(stderr, "0x%08X\n", csc->buf[i]); |
} |
} else { |
fprintf(stderr, "radeon: The kernel rejected CS, " |
"see dmesg for more information.\n"); |
} |
} |
if (cs->trace_buf) { |
radeon_dump_cs_on_lockup(cs, csc); |
} |
for (i = 0; i < csc->crelocs; i++) |
p_atomic_dec(&csc->relocs_bo[i]->num_active_ioctls); |
radeon_cs_context_cleanup(csc); |
} |
/* |
* Make sure previous submission of this cs are completed |
*/ |
void radeon_drm_cs_sync_flush(struct radeon_winsys_cs *rcs) |
{ |
struct radeon_drm_cs *cs = radeon_drm_cs(rcs); |
/* Wait for any pending ioctl to complete. */ |
if (cs->ws->thread && cs->flush_started) { |
pipe_semaphore_wait(&cs->flush_completed); |
cs->flush_started = 0; |
} |
} |
DEBUG_GET_ONCE_BOOL_OPTION(noop, "RADEON_NOOP", FALSE) |
static void radeon_drm_cs_flush(struct radeon_winsys_cs *rcs, unsigned flags, uint32_t cs_trace_id) |
{ |
struct radeon_drm_cs *cs = radeon_drm_cs(rcs); |
struct radeon_cs_context *tmp; |
switch (cs->base.ring_type) { |
case RING_DMA: |
/* pad DMA ring to 8 DWs */ |
if (cs->ws->info.chip_class <= SI) { |
while (rcs->cdw & 7) |
OUT_CS(&cs->base, 0xf0000000); /* NOP packet */ |
} else { |
while (rcs->cdw & 7) |
OUT_CS(&cs->base, 0x00000000); /* NOP packet */ |
} |
break; |
case RING_GFX: |
/* pad DMA ring to 8 DWs to meet CP fetch alignment requirements |
* r6xx, requires at least 4 dw alignment to avoid a hw bug. |
*/ |
if (flags & RADEON_FLUSH_COMPUTE) { |
if (cs->ws->info.chip_class <= SI) { |
while (rcs->cdw & 7) |
OUT_CS(&cs->base, 0x80000000); /* type2 nop packet */ |
} else { |
while (rcs->cdw & 7) |
OUT_CS(&cs->base, 0xffff1000); /* type3 nop packet */ |
} |
} else { |
while (rcs->cdw & 7) |
OUT_CS(&cs->base, 0x80000000); /* type2 nop packet */ |
} |
break; |
} |
if (rcs->cdw > RADEON_MAX_CMDBUF_DWORDS) { |
fprintf(stderr, "radeon: command stream overflowed\n"); |
} |
radeon_drm_cs_sync_flush(rcs); |
/* Flip command streams. */ |
tmp = cs->csc; |
cs->csc = cs->cst; |
cs->cst = tmp; |
cs->cst->cs_trace_id = cs_trace_id; |
/* If the CS is not empty or overflowed, emit it in a separate thread. */ |
if (cs->base.cdw && cs->base.cdw <= RADEON_MAX_CMDBUF_DWORDS && !debug_get_option_noop()) { |
unsigned i, crelocs = cs->cst->crelocs; |
cs->cst->chunks[0].length_dw = cs->base.cdw; |
for (i = 0; i < crelocs; i++) { |
/* Update the number of active asynchronous CS ioctls for the buffer. */ |
p_atomic_inc(&cs->cst->relocs_bo[i]->num_active_ioctls); |
} |
switch (cs->base.ring_type) { |
case RING_DMA: |
cs->cst->flags[0] = 0; |
cs->cst->flags[1] = RADEON_CS_RING_DMA; |
cs->cst->cs.num_chunks = 3; |
if (cs->ws->info.r600_virtual_address) { |
cs->cst->flags[0] |= RADEON_CS_USE_VM; |
} |
break; |
case RING_UVD: |
cs->cst->flags[0] = 0; |
cs->cst->flags[1] = RADEON_CS_RING_UVD; |
cs->cst->cs.num_chunks = 3; |
break; |
default: |
case RING_GFX: |
cs->cst->flags[0] = 0; |
cs->cst->flags[1] = RADEON_CS_RING_GFX; |
cs->cst->cs.num_chunks = 2; |
if (flags & RADEON_FLUSH_KEEP_TILING_FLAGS) { |
cs->cst->flags[0] |= RADEON_CS_KEEP_TILING_FLAGS; |
cs->cst->cs.num_chunks = 3; |
} |
if (cs->ws->info.r600_virtual_address) { |
cs->cst->flags[0] |= RADEON_CS_USE_VM; |
cs->cst->cs.num_chunks = 3; |
} |
if (flags & RADEON_FLUSH_END_OF_FRAME) { |
cs->cst->flags[0] |= RADEON_CS_END_OF_FRAME; |
cs->cst->cs.num_chunks = 3; |
} |
if (flags & RADEON_FLUSH_COMPUTE) { |
cs->cst->flags[1] = RADEON_CS_RING_COMPUTE; |
cs->cst->cs.num_chunks = 3; |
} |
break; |
} |
if (cs->ws->thread && (flags & RADEON_FLUSH_ASYNC)) { |
cs->flush_started = 1; |
radeon_drm_ws_queue_cs(cs->ws, cs); |
} else { |
pipe_mutex_lock(cs->ws->cs_stack_lock); |
if (cs->ws->thread) { |
while (p_atomic_read(&cs->ws->ncs)) { |
pipe_condvar_wait(cs->ws->cs_queue_empty, cs->ws->cs_stack_lock); |
} |
} |
pipe_mutex_unlock(cs->ws->cs_stack_lock); |
radeon_drm_cs_emit_ioctl_oneshot(cs, cs->cst); |
} |
} else { |
radeon_cs_context_cleanup(cs->cst); |
} |
/* Prepare a new CS. */ |
cs->base.buf = cs->csc->buf; |
cs->base.cdw = 0; |
} |
static void radeon_drm_cs_destroy(struct radeon_winsys_cs *rcs) |
{ |
struct radeon_drm_cs *cs = radeon_drm_cs(rcs); |
radeon_drm_cs_sync_flush(rcs); |
pipe_semaphore_destroy(&cs->flush_completed); |
radeon_cs_context_cleanup(&cs->csc1); |
radeon_cs_context_cleanup(&cs->csc2); |
p_atomic_dec(&cs->ws->num_cs); |
radeon_destroy_cs_context(&cs->csc1); |
radeon_destroy_cs_context(&cs->csc2); |
FREE(cs); |
} |
static void radeon_drm_cs_set_flush(struct radeon_winsys_cs *rcs, |
void (*flush)(void *ctx, unsigned flags), |
void *user) |
{ |
struct radeon_drm_cs *cs = radeon_drm_cs(rcs); |
cs->flush_cs = flush; |
cs->flush_data = user; |
} |
static boolean radeon_bo_is_referenced(struct radeon_winsys_cs *rcs, |
struct radeon_winsys_cs_handle *_buf, |
enum radeon_bo_usage usage) |
{ |
struct radeon_drm_cs *cs = radeon_drm_cs(rcs); |
struct radeon_bo *bo = (struct radeon_bo*)_buf; |
int index; |
if (!bo->num_cs_references) |
return FALSE; |
index = radeon_get_reloc(cs->csc, bo); |
if (index == -1) |
return FALSE; |
if ((usage & RADEON_USAGE_WRITE) && cs->csc->relocs[index].write_domain) |
return TRUE; |
if ((usage & RADEON_USAGE_READ) && cs->csc->relocs[index].read_domains) |
return TRUE; |
return FALSE; |
} |
void radeon_drm_cs_init_functions(struct radeon_drm_winsys *ws) |
{ |
ws->base.cs_create = radeon_drm_cs_create; |
ws->base.cs_destroy = radeon_drm_cs_destroy; |
ws->base.cs_add_reloc = radeon_drm_cs_add_reloc; |
ws->base.cs_validate = radeon_drm_cs_validate; |
ws->base.cs_memory_below_limit = radeon_drm_cs_memory_below_limit; |
ws->base.cs_write_reloc = radeon_drm_cs_write_reloc; |
ws->base.cs_flush = radeon_drm_cs_flush; |
ws->base.cs_set_flush_callback = radeon_drm_cs_set_flush; |
ws->base.cs_is_buffer_referenced = radeon_bo_is_referenced; |
ws->base.cs_sync_flush = radeon_drm_cs_sync_flush; |
} |
/contrib/sdk/sources/Mesa/src/gallium/winsys/radeon/drm/radeon_drm_cs.h |
---|
0,0 → 1,129 |
/* |
* Copyright © 2011 Marek Olšák <maraeo@gmail.com> |
* All Rights Reserved. |
* |
* Permission is hereby granted, free of charge, to any person obtaining |
* a copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES |
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
* NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS, AUTHORS |
* AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, |
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE |
* USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
*/ |
#ifndef RADEON_DRM_CS_H |
#define RADEON_DRM_CS_H |
#include "radeon_drm_bo.h" |
#include <radeon_drm.h> |
struct radeon_cs_context { |
uint32_t buf[RADEON_MAX_CMDBUF_DWORDS]; |
int fd; |
struct drm_radeon_cs cs; |
struct drm_radeon_cs_chunk chunks[3]; |
uint64_t chunk_array[3]; |
uint32_t flags[2]; |
uint32_t cs_trace_id; |
/* Relocs. */ |
unsigned nrelocs; |
unsigned crelocs; |
unsigned validated_crelocs; |
struct radeon_bo **relocs_bo; |
struct drm_radeon_cs_reloc *relocs; |
/* 0 = BO not added, 1 = BO added */ |
char is_handle_added[512]; |
unsigned reloc_indices_hashlist[512]; |
unsigned used_vram; |
unsigned used_gart; |
}; |
struct radeon_drm_cs { |
struct radeon_winsys_cs base; |
/* We flip between these two CS. While one is being consumed |
* by the kernel in another thread, the other one is being filled |
* by the pipe driver. */ |
struct radeon_cs_context csc1; |
struct radeon_cs_context csc2; |
/* The currently-used CS. */ |
struct radeon_cs_context *csc; |
/* The CS being currently-owned by the other thread. */ |
struct radeon_cs_context *cst; |
/* The winsys. */ |
struct radeon_drm_winsys *ws; |
/* Flush CS. */ |
void (*flush_cs)(void *ctx, unsigned flags); |
void *flush_data; |
int flush_started; |
pipe_semaphore flush_completed; |
struct radeon_bo *trace_buf; |
}; |
int radeon_get_reloc(struct radeon_cs_context *csc, struct radeon_bo *bo); |
static INLINE struct radeon_drm_cs * |
radeon_drm_cs(struct radeon_winsys_cs *base) |
{ |
return (struct radeon_drm_cs*)base; |
} |
static INLINE boolean |
radeon_bo_is_referenced_by_cs(struct radeon_drm_cs *cs, |
struct radeon_bo *bo) |
{ |
int num_refs = bo->num_cs_references; |
return num_refs == bo->rws->num_cs || |
(num_refs && radeon_get_reloc(cs->csc, bo) != -1); |
} |
static INLINE boolean |
radeon_bo_is_referenced_by_cs_for_write(struct radeon_drm_cs *cs, |
struct radeon_bo *bo) |
{ |
int index; |
if (!bo->num_cs_references) |
return FALSE; |
index = radeon_get_reloc(cs->csc, bo); |
if (index == -1) |
return FALSE; |
return cs->csc->relocs[index].write_domain != 0; |
} |
static INLINE boolean |
radeon_bo_is_referenced_by_any_cs(struct radeon_bo *bo) |
{ |
return bo->num_cs_references != 0; |
} |
void radeon_drm_cs_sync_flush(struct radeon_winsys_cs *rcs); |
void radeon_drm_cs_init_functions(struct radeon_drm_winsys *ws); |
void radeon_drm_cs_emit_ioctl_oneshot(struct radeon_drm_cs *cs, struct radeon_cs_context *csc); |
void radeon_dump_cs_on_lockup(struct radeon_drm_cs *cs, struct radeon_cs_context *csc); |
#endif |
/contrib/sdk/sources/Mesa/src/gallium/winsys/radeon/drm/radeon_drm_cs_dump.c |
---|
0,0 → 1,160 |
/* |
* Copyright © 2013 Jérôme Glisse |
* All Rights Reserved. |
* |
* Permission is hereby granted, free of charge, to any person obtaining |
* a copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES |
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
* NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS, AUTHORS |
* AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, |
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE |
* USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
*/ |
/* |
* Authors: |
* Jérôme Glisse <jglisse@redhat.com> |
*/ |
#include <stdio.h> |
#include <stdlib.h> |
#include <stdint.h> |
#include <xf86drm.h> |
#include "radeon_drm_cs.h" |
#include "radeon_drm_bo.h" |
#define RADEON_CS_DUMP_AFTER_MS_TIMEOUT 500 |
void radeon_dump_cs_on_lockup(struct radeon_drm_cs *cs, struct radeon_cs_context *csc) |
{ |
struct drm_radeon_gem_busy args; |
FILE *dump; |
unsigned i, lockup; |
uint32_t *ptr; |
char fname[32]; |
/* only dump the first cs to cause a lockup */ |
if (!csc->crelocs) { |
/* can not determine if there was a lockup if no bo were use by |
* the cs and most likely in such case no lockup occurs |
*/ |
return; |
} |
memset(&args, 0, sizeof(args)); |
args.handle = csc->relocs_bo[0]->handle; |
for (i = 0; i < RADEON_CS_DUMP_AFTER_MS_TIMEOUT; i++) { |
usleep(1); |
lockup = drmCommandWriteRead(csc->fd, DRM_RADEON_GEM_BUSY, &args, sizeof(args)); |
if (!lockup) { |
break; |
} |
} |
if (!lockup || i < RADEON_CS_DUMP_AFTER_MS_TIMEOUT) { |
return; |
} |
ptr = radeon_bo_do_map(cs->trace_buf); |
fprintf(stderr, "timeout on cs lockup likely happen at cs 0x%08x dw 0x%08x\n", ptr[1], ptr[0]); |
if (csc->cs_trace_id != ptr[1]) { |
return; |
} |
/* ok we are most likely facing a lockup write the standalone replay file */ |
snprintf(fname, sizeof(fname), "rlockup_0x%08x.c", csc->cs_trace_id); |
dump = fopen(fname, "w"); |
if (dump == NULL) { |
return; |
} |
fprintf(dump, "/* To build this file you will need to copy radeon_ctx.h\n"); |
fprintf(dump, " * in same directory. You can find radeon_ctx.h in mesa tree :\n"); |
fprintf(dump, " * mesa/src/gallium/winsys/radeon/tools/radeon_ctx.h\n"); |
fprintf(dump, " * Build with :\n"); |
fprintf(dump, " * gcc -O0 -g %s -ldrm -o rlockup_0x%08x -I/usr/include/libdrm\n", fname, csc->cs_trace_id); |
fprintf(dump, " */\n"); |
fprintf(dump, " /* timeout on cs lockup likely happen at cs 0x%08x dw 0x%08x*/\n", ptr[1], ptr[0]); |
fprintf(dump, "#include <stdio.h>\n"); |
fprintf(dump, "#include <stdint.h>\n"); |
fprintf(dump, "#include \"radeon_ctx.h\"\n"); |
fprintf(dump, "\n"); |
fprintf(dump, "#define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))\n"); |
fprintf(dump, "\n"); |
for (i = 0; i < csc->crelocs; i++) { |
unsigned j, ndw = (csc->relocs_bo[i]->base.size + 3) >> 2; |
ptr = radeon_bo_do_map(csc->relocs_bo[i]); |
if (ptr) { |
fprintf(dump, "static uint32_t bo_%04d_data[%d] = {\n ", i, ndw); |
for (j = 0; j < ndw; j++) { |
if (j && !(j % 8)) { |
uint32_t offset = (j - 8) << 2; |
fprintf(dump, " /* [0x%08x] va[0x%016lx] */\n ", offset, offset + csc->relocs_bo[i]->va); |
} |
fprintf(dump, " 0x%08x,", ptr[j]); |
} |
fprintf(dump, "};\n\n"); |
} |
} |
fprintf(dump, "static uint32_t bo_relocs[%d] = {\n", csc->crelocs * 4); |
for (i = 0; i < csc->crelocs; i++) { |
fprintf(dump, " 0x%08x, 0x%08x, 0x%08x, 0x%08x,\n", |
0, csc->relocs[i].read_domains, csc->relocs[i].write_domain, csc->relocs[i].flags); |
} |
fprintf(dump, "};\n\n"); |
fprintf(dump, "/* cs %d dw */\n", csc->chunks[0].length_dw); |
fprintf(dump, "static uint32_t cs[] = {\n"); |
ptr = csc->buf; |
for (i = 0; i < csc->chunks[0].length_dw; i++) { |
fprintf(dump, " 0x%08x,\n", ptr[i]); |
} |
fprintf(dump, "};\n\n"); |
fprintf(dump, "static uint32_t cs_flags[2] = {\n"); |
fprintf(dump, " 0x%08x,\n", csc->flags[0]); |
fprintf(dump, " 0x%08x,\n", csc->flags[1]); |
fprintf(dump, "};\n\n"); |
fprintf(dump, "int main(int argc, char *argv[])\n"); |
fprintf(dump, "{\n"); |
fprintf(dump, " struct bo *bo[%d];\n", csc->crelocs); |
fprintf(dump, " struct ctx ctx;\n"); |
fprintf(dump, "\n"); |
fprintf(dump, " ctx_init(&ctx);\n"); |
fprintf(dump, "\n"); |
for (i = 0; i < csc->crelocs; i++) { |
unsigned ndw = (csc->relocs_bo[i]->base.size + 3) >> 2; |
uint32_t *ptr; |
ptr = radeon_bo_do_map(csc->relocs_bo[i]); |
if (ptr) { |
fprintf(dump, " bo[%d] = bo_new(&ctx, %d, bo_%04d_data, 0x%016lx, 0x%08x);\n", |
i, ndw, i, csc->relocs_bo[i]->va, csc->relocs_bo[i]->base.alignment); |
} else { |
fprintf(dump, " bo[%d] = bo_new(&ctx, %d, NULL, 0x%016lx, 0x%08x);\n", |
i, ndw, csc->relocs_bo[i]->va, csc->relocs_bo[i]->base.alignment); |
} |
} |
fprintf(dump, "\n"); |
fprintf(dump, " ctx_cs(&ctx, cs, cs_flags, ARRAY_SIZE(cs), bo, bo_relocs, %d);\n", csc->crelocs); |
fprintf(dump, "\n"); |
fprintf(dump, " fprintf(stderr, \"waiting for cs execution to end ....\\n\");\n"); |
fprintf(dump, " bo_wait(&ctx, bo[0]);\n"); |
fprintf(dump, "}\n"); |
fclose(dump); |
} |
/contrib/sdk/sources/Mesa/src/gallium/winsys/radeon/drm/radeon_drm_public.h |
---|
0,0 → 1,10 |
#ifndef RADEON_DRM_PUBLIC_H |
#define RADEON_DRM_PUBLIC_H |
#include "pipe/p_defines.h" |
struct radeon_winsys; |
struct radeon_winsys *radeon_drm_winsys_create(int fd); |
#endif |
/contrib/sdk/sources/Mesa/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c |
---|
0,0 → 1,669 |
/* |
* Copyright © 2009 Corbin Simpson |
* Copyright © 2011 Marek Olšák <maraeo@gmail.com> |
* All Rights Reserved. |
* |
* Permission is hereby granted, free of charge, to any person obtaining |
* a copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES |
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
* NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS, AUTHORS |
* AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, |
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE |
* USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
*/ |
/* |
* Authors: |
* Corbin Simpson <MostAwesomeDude@gmail.com> |
* Joakim Sindholt <opensource@zhasha.com> |
* Marek Olšák <maraeo@gmail.com> |
*/ |
#include "radeon_drm_bo.h" |
#include "radeon_drm_cs.h" |
#include "radeon_drm_public.h" |
#include "pipebuffer/pb_bufmgr.h" |
#include "util/u_memory.h" |
#include "util/u_hash_table.h" |
#include <xf86drm.h> |
#include <stdio.h> |
/* |
* this are copy from radeon_drm, once an updated libdrm is released |
* we should bump configure.ac requirement for it and remove the following |
* field |
*/ |
#ifndef RADEON_INFO_TILING_CONFIG |
#define RADEON_INFO_TILING_CONFIG 6 |
#endif |
#ifndef RADEON_INFO_WANT_HYPERZ |
#define RADEON_INFO_WANT_HYPERZ 7 |
#endif |
#ifndef RADEON_INFO_WANT_CMASK |
#define RADEON_INFO_WANT_CMASK 8 |
#endif |
#ifndef RADEON_INFO_CLOCK_CRYSTAL_FREQ |
#define RADEON_INFO_CLOCK_CRYSTAL_FREQ 9 |
#endif |
#ifndef RADEON_INFO_NUM_BACKENDS |
#define RADEON_INFO_NUM_BACKENDS 0xa |
#endif |
#ifndef RADEON_INFO_NUM_TILE_PIPES |
#define RADEON_INFO_NUM_TILE_PIPES 0xb |
#endif |
#ifndef RADEON_INFO_BACKEND_MAP |
#define RADEON_INFO_BACKEND_MAP 0xd |
#endif |
#ifndef RADEON_INFO_VA_START |
/* virtual address start, va < start are reserved by the kernel */ |
#define RADEON_INFO_VA_START 0x0e |
/* maximum size of ib using the virtual memory cs */ |
#define RADEON_INFO_IB_VM_MAX_SIZE 0x0f |
#endif |
#ifndef RADEON_INFO_MAX_PIPES |
#define RADEON_INFO_MAX_PIPES 0x10 |
#endif |
#ifndef RADEON_INFO_TIMESTAMP |
#define RADEON_INFO_TIMESTAMP 0x11 |
#endif |
#ifndef RADEON_INFO_RING_WORKING |
#define RADEON_INFO_RING_WORKING 0x15 |
#endif |
#ifndef RADEON_CS_RING_UVD |
#define RADEON_CS_RING_UVD 3 |
#endif |
static struct util_hash_table *fd_tab = NULL; |
/* Enable/disable feature access for one command stream. |
* If enable == TRUE, return TRUE on success. |
* Otherwise, return FALSE. |
* |
* We basically do the same thing kernel does, because we have to deal |
* with multiple contexts (here command streams) backed by one winsys. */ |
static boolean radeon_set_fd_access(struct radeon_drm_cs *applier, |
struct radeon_drm_cs **owner, |
pipe_mutex *mutex, |
unsigned request, const char *request_name, |
boolean enable) |
{ |
struct drm_radeon_info info; |
unsigned value = enable ? 1 : 0; |
memset(&info, 0, sizeof(info)); |
pipe_mutex_lock(*mutex); |
/* Early exit if we are sure the request will fail. */ |
if (enable) { |
if (*owner) { |
pipe_mutex_unlock(*mutex); |
return FALSE; |
} |
} else { |
if (*owner != applier) { |
pipe_mutex_unlock(*mutex); |
return FALSE; |
} |
} |
/* Pass through the request to the kernel. */ |
info.value = (unsigned long)&value; |
info.request = request; |
if (drmCommandWriteRead(applier->ws->fd, DRM_RADEON_INFO, |
&info, sizeof(info)) != 0) { |
pipe_mutex_unlock(*mutex); |
return FALSE; |
} |
/* Update the rights in the winsys. */ |
if (enable) { |
if (value) { |
*owner = applier; |
printf("radeon: Acquired access to %s.\n", request_name); |
pipe_mutex_unlock(*mutex); |
return TRUE; |
} |
} else { |
*owner = NULL; |
printf("radeon: Released access to %s.\n", request_name); |
} |
pipe_mutex_unlock(*mutex); |
return FALSE; |
} |
static boolean radeon_get_drm_value(int fd, unsigned request, |
const char *errname, uint32_t *out) |
{ |
struct drm_radeon_info info; |
int retval; |
memset(&info, 0, sizeof(info)); |
info.value = (unsigned long)out; |
info.request = request; |
retval = drmCommandWriteRead(fd, DRM_RADEON_INFO, &info, sizeof(info)); |
if (retval) { |
if (errname) { |
fprintf(stderr, "radeon: Failed to get %s, error number %d\n", |
errname, retval); |
} |
return FALSE; |
} |
return TRUE; |
} |
/* Helper function to do the ioctls needed for setup and init. */ |
static boolean do_winsys_init(struct radeon_drm_winsys *ws) |
{ |
struct drm_radeon_gem_info gem_info; |
int retval; |
drmVersionPtr version; |
memset(&gem_info, 0, sizeof(gem_info)); |
/* We do things in a specific order here. |
* |
* DRM version first. We need to be sure we're running on a KMS chipset. |
* This is also for some features. |
* |
* Then, the PCI ID. This is essential and should return usable numbers |
* for all Radeons. If this fails, we probably got handed an FD for some |
* non-Radeon card. |
* |
* The GEM info is actually bogus on the kernel side, as well as our side |
* (see radeon_gem_info_ioctl in radeon_gem.c) but that's alright because |
* we don't actually use the info for anything yet. |
* |
* The GB and Z pipe requests should always succeed, but they might not |
* return sensical values for all chipsets, but that's alright because |
* the pipe drivers already know that. |
*/ |
/* Get DRM version. */ |
version = drmGetVersion(ws->fd); |
if (version->version_major != 2 || |
version->version_minor < 3) { |
fprintf(stderr, "%s: DRM version is %d.%d.%d but this driver is " |
"only compatible with 2.3.x (kernel 2.6.34) or later.\n", |
__FUNCTION__, |
version->version_major, |
version->version_minor, |
version->version_patchlevel); |
drmFreeVersion(version); |
return FALSE; |
} |
ws->info.drm_major = version->version_major; |
ws->info.drm_minor = version->version_minor; |
ws->info.drm_patchlevel = version->version_patchlevel; |
drmFreeVersion(version); |
/* Get PCI ID. */ |
if (!radeon_get_drm_value(ws->fd, RADEON_INFO_DEVICE_ID, "PCI ID", |
&ws->info.pci_id)) |
return FALSE; |
/* Check PCI ID. */ |
switch (ws->info.pci_id) { |
#define CHIPSET(pci_id, name, cfamily) case pci_id: ws->info.family = CHIP_##cfamily; ws->gen = DRV_R300; break; |
#include "pci_ids/r300_pci_ids.h" |
#undef CHIPSET |
#define CHIPSET(pci_id, name, cfamily) case pci_id: ws->info.family = CHIP_##cfamily; ws->gen = DRV_R600; break; |
#include "pci_ids/r600_pci_ids.h" |
#undef CHIPSET |
#define CHIPSET(pci_id, name, cfamily) case pci_id: ws->info.family = CHIP_##cfamily; ws->gen = DRV_SI; break; |
#include "pci_ids/radeonsi_pci_ids.h" |
#undef CHIPSET |
default: |
fprintf(stderr, "radeon: Invalid PCI ID.\n"); |
return FALSE; |
} |
switch (ws->info.family) { |
default: |
case CHIP_UNKNOWN: |
fprintf(stderr, "radeon: Unknown family.\n"); |
return FALSE; |
case CHIP_R300: |
case CHIP_R350: |
case CHIP_RV350: |
case CHIP_RV370: |
case CHIP_RV380: |
case CHIP_RS400: |
case CHIP_RC410: |
case CHIP_RS480: |
ws->info.chip_class = R300; |
break; |
case CHIP_R420: /* R4xx-based cores. */ |
case CHIP_R423: |
case CHIP_R430: |
case CHIP_R480: |
case CHIP_R481: |
case CHIP_RV410: |
case CHIP_RS600: |
case CHIP_RS690: |
case CHIP_RS740: |
ws->info.chip_class = R400; |
break; |
case CHIP_RV515: /* R5xx-based cores. */ |
case CHIP_R520: |
case CHIP_RV530: |
case CHIP_R580: |
case CHIP_RV560: |
case CHIP_RV570: |
ws->info.chip_class = R500; |
break; |
case CHIP_R600: |
case CHIP_RV610: |
case CHIP_RV630: |
case CHIP_RV670: |
case CHIP_RV620: |
case CHIP_RV635: |
case CHIP_RS780: |
case CHIP_RS880: |
ws->info.chip_class = R600; |
break; |
case CHIP_RV770: |
case CHIP_RV730: |
case CHIP_RV710: |
case CHIP_RV740: |
ws->info.chip_class = R700; |
break; |
case CHIP_CEDAR: |
case CHIP_REDWOOD: |
case CHIP_JUNIPER: |
case CHIP_CYPRESS: |
case CHIP_HEMLOCK: |
case CHIP_PALM: |
case CHIP_SUMO: |
case CHIP_SUMO2: |
case CHIP_BARTS: |
case CHIP_TURKS: |
case CHIP_CAICOS: |
ws->info.chip_class = EVERGREEN; |
break; |
case CHIP_CAYMAN: |
case CHIP_ARUBA: |
ws->info.chip_class = CAYMAN; |
break; |
case CHIP_TAHITI: |
case CHIP_PITCAIRN: |
case CHIP_VERDE: |
case CHIP_OLAND: |
case CHIP_HAINAN: |
ws->info.chip_class = SI; |
break; |
case CHIP_BONAIRE: |
case CHIP_KAVERI: |
case CHIP_KABINI: |
ws->info.chip_class = CIK; |
break; |
} |
/* Check for dma */ |
ws->info.r600_has_dma = FALSE; |
if (ws->info.chip_class >= R700 && ws->info.drm_minor >= 27) { |
ws->info.r600_has_dma = TRUE; |
} |
/* Check for UVD */ |
ws->info.has_uvd = FALSE; |
if (ws->info.drm_minor >= 32) { |
uint32_t value = RADEON_CS_RING_UVD; |
if (radeon_get_drm_value(ws->fd, RADEON_INFO_RING_WORKING, |
"UVD Ring working", &value)) |
ws->info.has_uvd = value; |
} |
/* Get GEM info. */ |
retval = drmCommandWriteRead(ws->fd, DRM_RADEON_GEM_INFO, |
&gem_info, sizeof(gem_info)); |
if (retval) { |
fprintf(stderr, "radeon: Failed to get MM info, error number %d\n", |
retval); |
return FALSE; |
} |
ws->info.gart_size = gem_info.gart_size; |
ws->info.vram_size = gem_info.vram_size; |
ws->num_cpus = sysconf(_SC_NPROCESSORS_ONLN); |
/* Generation-specific queries. */ |
if (ws->gen == DRV_R300) { |
if (!radeon_get_drm_value(ws->fd, RADEON_INFO_NUM_GB_PIPES, |
"GB pipe count", |
&ws->info.r300_num_gb_pipes)) |
return FALSE; |
if (!radeon_get_drm_value(ws->fd, RADEON_INFO_NUM_Z_PIPES, |
"Z pipe count", |
&ws->info.r300_num_z_pipes)) |
return FALSE; |
} |
else if (ws->gen >= DRV_R600) { |
if (ws->info.drm_minor >= 9 && |
!radeon_get_drm_value(ws->fd, RADEON_INFO_NUM_BACKENDS, |
"num backends", |
&ws->info.r600_num_backends)) |
return FALSE; |
/* get the GPU counter frequency, failure is not fatal */ |
radeon_get_drm_value(ws->fd, RADEON_INFO_CLOCK_CRYSTAL_FREQ, NULL, |
&ws->info.r600_clock_crystal_freq); |
radeon_get_drm_value(ws->fd, RADEON_INFO_TILING_CONFIG, NULL, |
&ws->info.r600_tiling_config); |
if (ws->info.drm_minor >= 11) { |
radeon_get_drm_value(ws->fd, RADEON_INFO_NUM_TILE_PIPES, NULL, |
&ws->info.r600_num_tile_pipes); |
if (radeon_get_drm_value(ws->fd, RADEON_INFO_BACKEND_MAP, NULL, |
&ws->info.r600_backend_map)) |
ws->info.r600_backend_map_valid = TRUE; |
} |
ws->info.r600_virtual_address = FALSE; |
if (ws->info.drm_minor >= 13) { |
ws->info.r600_virtual_address = TRUE; |
if (!radeon_get_drm_value(ws->fd, RADEON_INFO_VA_START, NULL, |
&ws->info.r600_va_start)) |
ws->info.r600_virtual_address = FALSE; |
if (!radeon_get_drm_value(ws->fd, RADEON_INFO_IB_VM_MAX_SIZE, NULL, |
&ws->info.r600_ib_vm_max_size)) |
ws->info.r600_virtual_address = FALSE; |
} |
if (ws->gen == DRV_R600 && !debug_get_bool_option("RADEON_VA", FALSE)) |
ws->info.r600_virtual_address = FALSE; |
} |
/* Get max pipes, this is only needed for compute shaders. All evergreen+ |
* chips have at least 2 pipes, so we use 2 as a default. */ |
ws->info.r600_max_pipes = 2; |
radeon_get_drm_value(ws->fd, RADEON_INFO_MAX_PIPES, NULL, |
&ws->info.r600_max_pipes); |
return TRUE; |
} |
static void radeon_winsys_destroy(struct radeon_winsys *rws) |
{ |
struct radeon_drm_winsys *ws = (struct radeon_drm_winsys*)rws; |
if (ws->thread) { |
ws->kill_thread = 1; |
pipe_semaphore_signal(&ws->cs_queued); |
pipe_thread_wait(ws->thread); |
} |
pipe_semaphore_destroy(&ws->cs_queued); |
pipe_condvar_destroy(ws->cs_queue_empty); |
if (!pipe_reference(&ws->base.reference, NULL)) { |
return; |
} |
pipe_mutex_destroy(ws->hyperz_owner_mutex); |
pipe_mutex_destroy(ws->cmask_owner_mutex); |
pipe_mutex_destroy(ws->cs_stack_lock); |
ws->cman->destroy(ws->cman); |
ws->kman->destroy(ws->kman); |
if (ws->gen >= DRV_R600) { |
radeon_surface_manager_free(ws->surf_man); |
} |
if (fd_tab) { |
util_hash_table_remove(fd_tab, intptr_to_pointer(ws->fd)); |
} |
FREE(rws); |
} |
static void radeon_query_info(struct radeon_winsys *rws, |
struct radeon_info *info) |
{ |
*info = ((struct radeon_drm_winsys *)rws)->info; |
} |
static boolean radeon_cs_request_feature(struct radeon_winsys_cs *rcs, |
enum radeon_feature_id fid, |
boolean enable) |
{ |
struct radeon_drm_cs *cs = radeon_drm_cs(rcs); |
switch (fid) { |
case RADEON_FID_R300_HYPERZ_ACCESS: |
return radeon_set_fd_access(cs, &cs->ws->hyperz_owner, |
&cs->ws->hyperz_owner_mutex, |
RADEON_INFO_WANT_HYPERZ, "Hyper-Z", |
enable); |
case RADEON_FID_R300_CMASK_ACCESS: |
return radeon_set_fd_access(cs, &cs->ws->cmask_owner, |
&cs->ws->cmask_owner_mutex, |
RADEON_INFO_WANT_CMASK, "AA optimizations", |
enable); |
} |
return FALSE; |
} |
static int radeon_drm_winsys_surface_init(struct radeon_winsys *rws, |
struct radeon_surface *surf) |
{ |
struct radeon_drm_winsys *ws = (struct radeon_drm_winsys*)rws; |
return radeon_surface_init(ws->surf_man, surf); |
} |
static int radeon_drm_winsys_surface_best(struct radeon_winsys *rws, |
struct radeon_surface *surf) |
{ |
struct radeon_drm_winsys *ws = (struct radeon_drm_winsys*)rws; |
return radeon_surface_best(ws->surf_man, surf); |
} |
static uint64_t radeon_query_value(struct radeon_winsys *rws, |
enum radeon_value_id value) |
{ |
struct radeon_drm_winsys *ws = (struct radeon_drm_winsys*)rws; |
uint64_t ts = 0; |
switch (value) { |
case RADEON_REQUESTED_VRAM_MEMORY: |
return ws->allocated_vram; |
case RADEON_REQUESTED_GTT_MEMORY: |
return ws->allocated_gtt; |
case RADEON_BUFFER_WAIT_TIME_NS: |
return ws->buffer_wait_time; |
case RADEON_TIMESTAMP: |
if (ws->info.drm_minor < 20 || ws->gen < DRV_R600) { |
assert(0); |
return 0; |
} |
radeon_get_drm_value(ws->fd, RADEON_INFO_TIMESTAMP, "timestamp", |
(uint32_t*)&ts); |
return ts; |
} |
return 0; |
} |
static unsigned hash_fd(void *key) |
{ |
return pointer_to_intptr(key); |
} |
static int compare_fd(void *key1, void *key2) |
{ |
return pointer_to_intptr(key1) != pointer_to_intptr(key2); |
} |
void radeon_drm_ws_queue_cs(struct radeon_drm_winsys *ws, struct radeon_drm_cs *cs) |
{ |
retry: |
pipe_mutex_lock(ws->cs_stack_lock); |
if (p_atomic_read(&ws->ncs) >= RING_LAST) { |
/* no room left for a flush */ |
pipe_mutex_unlock(ws->cs_stack_lock); |
goto retry; |
} |
ws->cs_stack[p_atomic_read(&ws->ncs)] = cs; |
p_atomic_inc(&ws->ncs); |
pipe_mutex_unlock(ws->cs_stack_lock); |
pipe_semaphore_signal(&ws->cs_queued); |
} |
static PIPE_THREAD_ROUTINE(radeon_drm_cs_emit_ioctl, param) |
{ |
struct radeon_drm_winsys *ws = (struct radeon_drm_winsys *)param; |
struct radeon_drm_cs *cs; |
unsigned i, empty_stack; |
while (1) { |
pipe_semaphore_wait(&ws->cs_queued); |
if (ws->kill_thread) |
break; |
next: |
pipe_mutex_lock(ws->cs_stack_lock); |
cs = ws->cs_stack[0]; |
pipe_mutex_unlock(ws->cs_stack_lock); |
if (cs) { |
radeon_drm_cs_emit_ioctl_oneshot(cs, cs->cst); |
pipe_mutex_lock(ws->cs_stack_lock); |
for (i = 1; i < p_atomic_read(&ws->ncs); i++) { |
ws->cs_stack[i - 1] = ws->cs_stack[i]; |
} |
ws->cs_stack[p_atomic_read(&ws->ncs) - 1] = NULL; |
empty_stack = p_atomic_dec_zero(&ws->ncs); |
if (empty_stack) { |
pipe_condvar_signal(ws->cs_queue_empty); |
} |
pipe_mutex_unlock(ws->cs_stack_lock); |
pipe_semaphore_signal(&cs->flush_completed); |
if (!empty_stack) { |
goto next; |
} |
} |
} |
pipe_mutex_lock(ws->cs_stack_lock); |
for (i = 0; i < p_atomic_read(&ws->ncs); i++) { |
pipe_semaphore_signal(&ws->cs_stack[i]->flush_completed); |
ws->cs_stack[i] = NULL; |
} |
p_atomic_set(&ws->ncs, 0); |
pipe_condvar_signal(ws->cs_queue_empty); |
pipe_mutex_unlock(ws->cs_stack_lock); |
return NULL; |
} |
DEBUG_GET_ONCE_BOOL_OPTION(thread, "RADEON_THREAD", TRUE) |
static PIPE_THREAD_ROUTINE(radeon_drm_cs_emit_ioctl, param); |
struct radeon_winsys *radeon_drm_winsys_create(int fd) |
{ |
struct radeon_drm_winsys *ws; |
if (!fd_tab) { |
fd_tab = util_hash_table_create(hash_fd, compare_fd); |
} |
ws = util_hash_table_get(fd_tab, intptr_to_pointer(fd)); |
if (ws) { |
pipe_reference(NULL, &ws->base.reference); |
return &ws->base; |
} |
ws = CALLOC_STRUCT(radeon_drm_winsys); |
if (!ws) { |
return NULL; |
} |
ws->fd = fd; |
util_hash_table_set(fd_tab, intptr_to_pointer(fd), ws); |
if (!do_winsys_init(ws)) |
goto fail; |
/* Create managers. */ |
ws->kman = radeon_bomgr_create(ws); |
if (!ws->kman) |
goto fail; |
ws->cman = pb_cache_manager_create(ws->kman, 1000000); |
if (!ws->cman) |
goto fail; |
if (ws->gen >= DRV_R600) { |
ws->surf_man = radeon_surface_manager_new(fd); |
if (!ws->surf_man) |
goto fail; |
} |
/* init reference */ |
pipe_reference_init(&ws->base.reference, 1); |
/* Set functions. */ |
ws->base.destroy = radeon_winsys_destroy; |
ws->base.query_info = radeon_query_info; |
ws->base.cs_request_feature = radeon_cs_request_feature; |
ws->base.surface_init = radeon_drm_winsys_surface_init; |
ws->base.surface_best = radeon_drm_winsys_surface_best; |
ws->base.query_value = radeon_query_value; |
radeon_bomgr_init_functions(ws); |
radeon_drm_cs_init_functions(ws); |
pipe_mutex_init(ws->hyperz_owner_mutex); |
pipe_mutex_init(ws->cmask_owner_mutex); |
pipe_mutex_init(ws->cs_stack_lock); |
p_atomic_set(&ws->ncs, 0); |
pipe_semaphore_init(&ws->cs_queued, 0); |
pipe_condvar_init(ws->cs_queue_empty); |
if (ws->num_cpus > 1 && debug_get_option_thread()) |
ws->thread = pipe_thread_create(radeon_drm_cs_emit_ioctl, ws); |
return &ws->base; |
fail: |
if (ws->cman) |
ws->cman->destroy(ws->cman); |
if (ws->kman) |
ws->kman->destroy(ws->kman); |
if (ws->surf_man) |
radeon_surface_manager_free(ws->surf_man); |
FREE(ws); |
return NULL; |
} |
/contrib/sdk/sources/Mesa/src/gallium/winsys/radeon/drm/radeon_drm_winsys.h |
---|
0,0 → 1,89 |
/* |
* Copyright © 2009 Corbin Simpson |
* All Rights Reserved. |
* |
* Permission is hereby granted, free of charge, to any person obtaining |
* a copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES |
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
* NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS, AUTHORS |
* AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, |
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE |
* USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
*/ |
/* |
* Authors: |
* Corbin Simpson <MostAwesomeDude@gmail.com> |
*/ |
#ifndef RADEON_DRM_WINSYS_H |
#define RADEON_DRM_WINSYS_H |
#include "radeon_winsys.h" |
#include "os/os_thread.h" |
struct radeon_drm_cs; |
enum radeon_generation { |
DRV_R300, |
DRV_R600, |
DRV_SI |
}; |
struct radeon_drm_winsys { |
struct radeon_winsys base; |
int fd; /* DRM file descriptor */ |
int num_cs; /* The number of command streams created. */ |
uint64_t allocated_vram; |
uint64_t allocated_gtt; |
uint64_t buffer_wait_time; /* time spent in buffer_wait in ns */ |
enum radeon_generation gen; |
struct radeon_info info; |
struct pb_manager *kman; |
struct pb_manager *cman; |
struct radeon_surface_manager *surf_man; |
uint32_t num_cpus; /* Number of CPUs. */ |
struct radeon_drm_cs *hyperz_owner; |
pipe_mutex hyperz_owner_mutex; |
struct radeon_drm_cs *cmask_owner; |
pipe_mutex cmask_owner_mutex; |
/* rings submission thread */ |
pipe_mutex cs_stack_lock; |
pipe_semaphore cs_queued; |
/* we cannot use semaphore for empty queue because maintaining an even |
* number of call to semaphore_wait and semaphore_signal is, to say the |
* least, tricky |
*/ |
pipe_condvar cs_queue_empty; |
pipe_thread thread; |
int kill_thread; |
int ncs; |
struct radeon_drm_cs *cs_stack[RING_LAST]; |
}; |
static INLINE struct radeon_drm_winsys * |
radeon_drm_winsys(struct radeon_winsys *base) |
{ |
return (struct radeon_drm_winsys*)base; |
} |
void radeon_drm_ws_queue_cs(struct radeon_drm_winsys *ws, struct radeon_drm_cs *cs); |
#endif |
/contrib/sdk/sources/Mesa/src/gallium/winsys/radeon/drm/radeon_winsys.h |
---|
0,0 → 1,504 |
/* |
* Copyright 2008 Corbin Simpson <MostAwesomeDude@gmail.com> |
* Copyright 2010 Marek Olšák <maraeo@gmail.com> |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the "Software"), |
* to deal in the Software without restriction, including without limitation |
* on the rights to use, copy, modify, merge, publish, distribute, sub |
* license, and/or sell copies of the Software, and to permit persons to whom |
* the Software is furnished to do so, subject to the following conditions: |
* |
* The above copyright notice and this permission notice (including the next |
* paragraph) shall be included in all copies or substantial portions of the |
* Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL |
* THE AUTHOR(S) AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, |
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR |
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE |
* USE OR OTHER DEALINGS IN THE SOFTWARE. */ |
#ifndef RADEON_WINSYS_H |
#define RADEON_WINSYS_H |
/* The public winsys interface header for the radeon driver. */ |
/* R300 features in DRM. |
* |
* 2.6.0: |
* - Hyper-Z |
* - GB_Z_PEQ_CONFIG on rv350->r4xx |
* - R500 FG_ALPHA_VALUE |
* |
* 2.8.0: |
* - R500 US_FORMAT regs |
* - R500 ARGB2101010 colorbuffer |
* - CMask and AA regs |
* - R16F/RG16F |
*/ |
#include "pipebuffer/pb_buffer.h" |
#include "libdrm/radeon_surface.h" |
#define RADEON_MAX_CMDBUF_DWORDS (16 * 1024) |
#define RADEON_FLUSH_ASYNC (1 << 0) |
#define RADEON_FLUSH_KEEP_TILING_FLAGS (1 << 1) /* needs DRM 2.12.0 */ |
#define RADEON_FLUSH_COMPUTE (1 << 2) |
#define RADEON_FLUSH_END_OF_FRAME (1 << 3) |
/* Tiling flags. */ |
enum radeon_bo_layout { |
RADEON_LAYOUT_LINEAR = 0, |
RADEON_LAYOUT_TILED, |
RADEON_LAYOUT_SQUARETILED, |
RADEON_LAYOUT_UNKNOWN |
}; |
enum radeon_bo_domain { /* bitfield */ |
RADEON_DOMAIN_GTT = 2, |
RADEON_DOMAIN_VRAM = 4 |
}; |
enum radeon_bo_usage { /* bitfield */ |
RADEON_USAGE_READ = 2, |
RADEON_USAGE_WRITE = 4, |
RADEON_USAGE_READWRITE = RADEON_USAGE_READ | RADEON_USAGE_WRITE |
}; |
enum radeon_family { |
CHIP_UNKNOWN = 0, |
CHIP_R300, /* R3xx-based cores. */ |
CHIP_R350, |
CHIP_RV350, |
CHIP_RV370, |
CHIP_RV380, |
CHIP_RS400, |
CHIP_RC410, |
CHIP_RS480, |
CHIP_R420, /* R4xx-based cores. */ |
CHIP_R423, |
CHIP_R430, |
CHIP_R480, |
CHIP_R481, |
CHIP_RV410, |
CHIP_RS600, |
CHIP_RS690, |
CHIP_RS740, |
CHIP_RV515, /* R5xx-based cores. */ |
CHIP_R520, |
CHIP_RV530, |
CHIP_R580, |
CHIP_RV560, |
CHIP_RV570, |
CHIP_R600, |
CHIP_RV610, |
CHIP_RV630, |
CHIP_RV670, |
CHIP_RV620, |
CHIP_RV635, |
CHIP_RS780, |
CHIP_RS880, |
CHIP_RV770, |
CHIP_RV730, |
CHIP_RV710, |
CHIP_RV740, |
CHIP_CEDAR, |
CHIP_REDWOOD, |
CHIP_JUNIPER, |
CHIP_CYPRESS, |
CHIP_HEMLOCK, |
CHIP_PALM, |
CHIP_SUMO, |
CHIP_SUMO2, |
CHIP_BARTS, |
CHIP_TURKS, |
CHIP_CAICOS, |
CHIP_CAYMAN, |
CHIP_ARUBA, |
CHIP_TAHITI, |
CHIP_PITCAIRN, |
CHIP_VERDE, |
CHIP_OLAND, |
CHIP_HAINAN, |
CHIP_BONAIRE, |
CHIP_KAVERI, |
CHIP_KABINI, |
CHIP_LAST, |
}; |
enum chip_class { |
CLASS_UNKNOWN = 0, |
R300, |
R400, |
R500, |
R600, |
R700, |
EVERGREEN, |
CAYMAN, |
SI, |
CIK, |
}; |
enum ring_type { |
RING_GFX = 0, |
RING_DMA, |
RING_UVD, |
RING_LAST, |
}; |
enum radeon_value_id { |
RADEON_REQUESTED_VRAM_MEMORY, |
RADEON_REQUESTED_GTT_MEMORY, |
RADEON_BUFFER_WAIT_TIME_NS, |
RADEON_TIMESTAMP |
}; |
struct winsys_handle; |
struct radeon_winsys_cs_handle; |
struct radeon_winsys_cs { |
unsigned cdw; /* Number of used dwords. */ |
uint32_t *buf; /* The command buffer. */ |
enum ring_type ring_type; |
}; |
struct radeon_info { |
uint32_t pci_id; |
enum radeon_family family; |
enum chip_class chip_class; |
uint32_t gart_size; |
uint32_t vram_size; |
uint32_t drm_major; /* version */ |
uint32_t drm_minor; |
uint32_t drm_patchlevel; |
boolean has_uvd; |
uint32_t r300_num_gb_pipes; |
uint32_t r300_num_z_pipes; |
uint32_t r600_num_backends; |
uint32_t r600_clock_crystal_freq; |
uint32_t r600_tiling_config; |
uint32_t r600_num_tile_pipes; |
uint32_t r600_backend_map; |
uint32_t r600_va_start; |
uint32_t r600_ib_vm_max_size; |
uint32_t r600_max_pipes; |
boolean r600_backend_map_valid; |
boolean r600_virtual_address; |
boolean r600_has_dma; |
}; |
enum radeon_feature_id { |
RADEON_FID_R300_HYPERZ_ACCESS, /* ZMask + HiZ */ |
RADEON_FID_R300_CMASK_ACCESS, |
}; |
struct radeon_winsys { |
/** |
* Reference counting |
*/ |
struct pipe_reference reference; |
/** |
* Destroy this winsys. |
* |
* \param ws The winsys this function is called from. |
*/ |
void (*destroy)(struct radeon_winsys *ws); |
/** |
* Query an info structure from winsys. |
* |
* \param ws The winsys this function is called from. |
* \param info Return structure |
*/ |
void (*query_info)(struct radeon_winsys *ws, |
struct radeon_info *info); |
/************************************************************************** |
* Buffer management. Buffer attributes are mostly fixed over its lifetime. |
* |
* Remember that gallium gets to choose the interface it needs, and the |
* window systems must then implement that interface (rather than the |
* other way around...). |
*************************************************************************/ |
/** |
* Create a buffer object. |
* |
* \param ws The winsys this function is called from. |
* \param size The size to allocate. |
* \param alignment An alignment of the buffer in memory. |
* \param use_reusable_pool Whether the cache buffer manager should be used. |
* \param domain A bitmask of the RADEON_DOMAIN_* flags. |
* \return The created buffer object. |
*/ |
struct pb_buffer *(*buffer_create)(struct radeon_winsys *ws, |
unsigned size, |
unsigned alignment, |
boolean use_reusable_pool, |
enum radeon_bo_domain domain); |
struct radeon_winsys_cs_handle *(*buffer_get_cs_handle)( |
struct pb_buffer *buf); |
/** |
* Map the entire data store of a buffer object into the client's address |
* space. |
* |
* \param buf A winsys buffer object to map. |
* \param cs A command stream to flush if the buffer is referenced by it. |
* \param usage A bitmask of the PIPE_TRANSFER_* flags. |
* \return The pointer at the beginning of the buffer. |
*/ |
void *(*buffer_map)(struct radeon_winsys_cs_handle *buf, |
struct radeon_winsys_cs *cs, |
enum pipe_transfer_usage usage); |
/** |
* Unmap a buffer object from the client's address space. |
* |
* \param buf A winsys buffer object to unmap. |
*/ |
void (*buffer_unmap)(struct radeon_winsys_cs_handle *buf); |
/** |
* Return TRUE if a buffer object is being used by the GPU. |
* |
* \param buf A winsys buffer object. |
* \param usage Only check whether the buffer is busy for the given usage. |
*/ |
boolean (*buffer_is_busy)(struct pb_buffer *buf, |
enum radeon_bo_usage usage); |
/** |
* Wait for a buffer object until it is not used by a GPU. This is |
* equivalent to a fence placed after the last command using the buffer, |
* and synchronizing to the fence. |
* |
* \param buf A winsys buffer object to wait for. |
* \param usage Only wait until the buffer is idle for the given usage, |
* but may still be busy for some other usage. |
*/ |
void (*buffer_wait)(struct pb_buffer *buf, enum radeon_bo_usage usage); |
/** |
* Return tiling flags describing a memory layout of a buffer object. |
* |
* \param buf A winsys buffer object to get the flags from. |
* \param macrotile A pointer to the return value of the microtile flag. |
* \param microtile A pointer to the return value of the macrotile flag. |
* |
* \note microtile and macrotile are not bitmasks! |
*/ |
void (*buffer_get_tiling)(struct pb_buffer *buf, |
enum radeon_bo_layout *microtile, |
enum radeon_bo_layout *macrotile, |
unsigned *bankw, unsigned *bankh, |
unsigned *tile_split, |
unsigned *stencil_tile_split, |
unsigned *mtilea); |
/** |
* Set tiling flags describing a memory layout of a buffer object. |
* |
* \param buf A winsys buffer object to set the flags for. |
* \param cs A command stream to flush if the buffer is referenced by it. |
* \param macrotile A macrotile flag. |
* \param microtile A microtile flag. |
* \param stride A stride of the buffer in bytes, for texturing. |
* |
* \note microtile and macrotile are not bitmasks! |
*/ |
void (*buffer_set_tiling)(struct pb_buffer *buf, |
struct radeon_winsys_cs *rcs, |
enum radeon_bo_layout microtile, |
enum radeon_bo_layout macrotile, |
unsigned bankw, unsigned bankh, |
unsigned tile_split, |
unsigned stencil_tile_split, |
unsigned mtilea, |
unsigned stride); |
/** |
* Get a winsys buffer from a winsys handle. The internal structure |
* of the handle is platform-specific and only a winsys should access it. |
* |
* \param ws The winsys this function is called from. |
* \param whandle A winsys handle pointer as was received from a state |
* tracker. |
* \param stride The returned buffer stride in bytes. |
*/ |
struct pb_buffer *(*buffer_from_handle)(struct radeon_winsys *ws, |
struct winsys_handle *whandle, |
unsigned *stride); |
/** |
* Get a winsys handle from a winsys buffer. The internal structure |
* of the handle is platform-specific and only a winsys should access it. |
* |
* \param buf A winsys buffer object to get the handle from. |
* \param whandle A winsys handle pointer. |
* \param stride A stride of the buffer in bytes, for texturing. |
* \return TRUE on success. |
*/ |
boolean (*buffer_get_handle)(struct pb_buffer *buf, |
unsigned stride, |
struct winsys_handle *whandle); |
/** |
* Return the virtual address of a buffer. |
* |
* \param buf A winsys buffer object |
* \return virtual address |
*/ |
uint64_t (*buffer_get_virtual_address)(struct radeon_winsys_cs_handle *buf); |
/************************************************************************** |
* Command submission. |
* |
* Each pipe context should create its own command stream and submit |
* commands independently of other contexts. |
*************************************************************************/ |
/** |
* Create a command stream. |
* |
* \param ws The winsys this function is called from. |
* \param ring_type The ring type (GFX, DMA, UVD) |
* \param trace_buf Trace buffer when tracing is enabled |
*/ |
struct radeon_winsys_cs *(*cs_create)(struct radeon_winsys *ws, |
enum ring_type ring_type, |
struct radeon_winsys_cs_handle *trace_buf); |
/** |
* Destroy a command stream. |
* |
* \param cs A command stream to destroy. |
*/ |
void (*cs_destroy)(struct radeon_winsys_cs *cs); |
/** |
* Add a new buffer relocation. Every relocation must first be added |
* before it can be written. |
* |
* \param cs A command stream to add buffer for validation against. |
* \param buf A winsys buffer to validate. |
* \param usage Whether the buffer is used for read and/or write. |
* \param domain Bitmask of the RADEON_DOMAIN_* flags. |
* \return Relocation index. |
*/ |
unsigned (*cs_add_reloc)(struct radeon_winsys_cs *cs, |
struct radeon_winsys_cs_handle *buf, |
enum radeon_bo_usage usage, |
enum radeon_bo_domain domain); |
/** |
* Return TRUE if there is enough memory in VRAM and GTT for the relocs |
* added so far. If the validation fails, all the relocations which have |
* been added since the last call of cs_validate will be removed and |
* the CS will be flushed (provided there are still any relocations). |
* |
* \param cs A command stream to validate. |
*/ |
boolean (*cs_validate)(struct radeon_winsys_cs *cs); |
/** |
* Return TRUE if there is enough memory in VRAM and GTT for the relocs |
* added so far. |
* |
* \param cs A command stream to validate. |
* \param vram VRAM memory size pending to be use |
* \param gtt GTT memory size pending to be use |
*/ |
boolean (*cs_memory_below_limit)(struct radeon_winsys_cs *cs, uint64_t vram, uint64_t gtt); |
/** |
* Write a relocated dword to a command buffer. |
* |
* \param cs A command stream the relocation is written to. |
* \param buf A winsys buffer to write the relocation for. |
*/ |
void (*cs_write_reloc)(struct radeon_winsys_cs *cs, |
struct radeon_winsys_cs_handle *buf); |
/** |
* Flush a command stream. |
* |
* \param cs A command stream to flush. |
* \param flags, RADEON_FLUSH_ASYNC or 0. |
* \param cs_trace_id A unique identifiant for the cs |
*/ |
void (*cs_flush)(struct radeon_winsys_cs *cs, unsigned flags, uint32_t cs_trace_id); |
/** |
* Set a flush callback which is called from winsys when flush is |
* required. |
* |
* \param cs A command stream to set the callback for. |
* \param flush A flush callback function associated with the command stream. |
* \param user A user pointer that will be passed to the flush callback. |
*/ |
void (*cs_set_flush_callback)(struct radeon_winsys_cs *cs, |
void (*flush)(void *ctx, unsigned flags), |
void *ctx); |
/** |
* Return TRUE if a buffer is referenced by a command stream. |
* |
* \param cs A command stream. |
* \param buf A winsys buffer. |
*/ |
boolean (*cs_is_buffer_referenced)(struct radeon_winsys_cs *cs, |
struct radeon_winsys_cs_handle *buf, |
enum radeon_bo_usage usage); |
/** |
* Request access to a feature for a command stream. |
* |
* \param cs A command stream. |
* \param fid Feature ID, one of RADEON_FID_* |
* \param enable Whether to enable or disable the feature. |
*/ |
boolean (*cs_request_feature)(struct radeon_winsys_cs *cs, |
enum radeon_feature_id fid, |
boolean enable); |
/** |
* Make sure all asynchronous flush of the cs have completed |
* |
* \param cs A command stream. |
*/ |
void (*cs_sync_flush)(struct radeon_winsys_cs *cs); |
/** |
* Initialize surface |
* |
* \param ws The winsys this function is called from. |
* \param surf Surface structure ptr |
*/ |
int (*surface_init)(struct radeon_winsys *ws, |
struct radeon_surface *surf); |
/** |
* Find best values for a surface |
* |
* \param ws The winsys this function is called from. |
* \param surf Surface structure ptr |
*/ |
int (*surface_best)(struct radeon_winsys *ws, |
struct radeon_surface *surf); |
uint64_t (*query_value)(struct radeon_winsys *ws, |
enum radeon_value_id value); |
}; |
#endif |
/contrib/sdk/sources/Mesa/src/gallium/winsys/radeon/tools/radeon_ctx.h |
---|
0,0 → 1,235 |
/* |
* Copyright 2011 Jerome Glisse <glisse@freedesktop.org> |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the "Software"), |
* to deal in the Software without restriction, including without limitation |
* on the rights to use, copy, modify, merge, publish, distribute, sub |
* license, and/or sell copies of the Software, and to permit persons to whom |
* the Software is furnished to do so, subject to the following conditions: |
* |
* The above copyright notice and this permission notice (including the next |
* paragraph) shall be included in all copies or substantial portions of the |
* Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL |
* THE AUTHOR(S) AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, |
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR |
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE |
* USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Jérôme Glisse |
*/ |
#ifndef RADEON_CTX_H |
#define RADEON_CTX_H |
#define _FILE_OFFSET_BITS 64 |
#include <sys/mman.h> |
#include <errno.h> |
#include <stdio.h> |
#include <stdlib.h> |
#include <stdint.h> |
#include <string.h> |
#include "xf86drm.h" |
#include "radeon_drm.h" |
#ifndef RADEON_CHUNK_ID_FLAGS |
#define RADEON_CHUNK_ID_FLAGS 0x03 |
/* The first dword of RADEON_CHUNK_ID_FLAGS is a uint32 of these flags: */ |
#define RADEON_CS_KEEP_TILING_FLAGS 0x01 |
#endif |
#ifndef RADEON_VA_MAP |
#define RADEON_VA_MAP 1 |
#define RADEON_VA_UNMAP 2 |
#define RADEON_VA_RESULT_OK 0 |
#define RADEON_VA_RESULT_ERROR 1 |
#define RADEON_VA_RESULT_VA_EXIST 2 |
#define RADEON_VM_PAGE_VALID (1 << 0) |
#define RADEON_VM_PAGE_READABLE (1 << 1) |
#define RADEON_VM_PAGE_WRITEABLE (1 << 2) |
#define RADEON_VM_PAGE_SYSTEM (1 << 3) |
#define RADEON_VM_PAGE_SNOOPED (1 << 4) |
struct drm_radeon_gem_va { |
uint32_t handle; |
uint32_t operation; |
uint32_t vm_id; |
uint32_t flags; |
uint64_t offset; |
}; |
#define DRM_RADEON_GEM_VA 0x2b |
#endif |
struct ctx { |
int fd; |
}; |
struct bo { |
uint32_t handle; |
uint32_t alignment; |
uint64_t size; |
uint64_t va; |
void *ptr; |
}; |
static void ctx_init(struct ctx *ctx) |
{ |
ctx->fd = drmOpen("radeon", NULL); |
if (ctx->fd < 0) { |
fprintf(stderr, "failed to open radeon drm device file\n"); |
exit(-1); |
} |
} |
static void bo_wait(struct ctx *ctx, struct bo *bo) |
{ |
struct drm_radeon_gem_wait_idle args; |
void *ptr; |
int r; |
/* Zero out args to make valgrind happy */ |
memset(&args, 0, sizeof(args)); |
args.handle = bo->handle; |
do { |
r = drmCommandWrite(ctx->fd, DRM_RADEON_GEM_WAIT_IDLE, &args, sizeof(args)); |
} while (r == -EBUSY); |
} |
static void ctx_cs(struct ctx *ctx, uint32_t *cs, uint32_t cs_flags[2], unsigned ndw, |
struct bo **bo, uint32_t *bo_relocs, unsigned nbo) |
{ |
struct drm_radeon_cs args; |
struct drm_radeon_cs_chunk chunks[3]; |
uint64_t chunk_array[3]; |
unsigned i; |
int r; |
/* update handle */ |
for (i = 0; i < nbo; i++) { |
bo_relocs[i*4+0] = bo[i]->handle; |
} |
args.num_chunks = 2; |
if (cs_flags[0] || cs_flags[1]) { |
/* enable RADEON_CHUNK_ID_FLAGS */ |
args.num_chunks = 3; |
} |
args.chunks = (uint64_t)(uintptr_t)chunk_array; |
chunks[0].chunk_id = RADEON_CHUNK_ID_IB; |
chunks[0].length_dw = ndw; |
chunks[0].chunk_data = (uintptr_t)cs; |
chunks[1].chunk_id = RADEON_CHUNK_ID_RELOCS; |
chunks[1].length_dw = nbo * 4; |
chunks[1].chunk_data = (uintptr_t)bo_relocs; |
chunks[2].chunk_id = RADEON_CHUNK_ID_FLAGS; |
chunks[2].length_dw = 2; |
chunks[2].chunk_data = (uintptr_t)cs_flags; |
chunk_array[0] = (uintptr_t)&chunks[0]; |
chunk_array[1] = (uintptr_t)&chunks[1]; |
chunk_array[2] = (uintptr_t)&chunks[2]; |
fprintf(stderr, "emiting cs %ddw with %d bo\n", ndw, nbo); |
r = drmCommandWriteRead(ctx->fd, DRM_RADEON_CS, &args, sizeof(args)); |
if (r) { |
fprintf(stderr, "cs submission failed with %d\n", r); |
return; |
} |
} |
static void bo_map(struct ctx *ctx, struct bo *bo) |
{ |
struct drm_radeon_gem_mmap args; |
void *ptr; |
int r; |
/* Zero out args to make valgrind happy */ |
memset(&args, 0, sizeof(args)); |
args.handle = bo->handle; |
args.offset = 0; |
args.size = (uint64_t)bo->size; |
r = drmCommandWriteRead(ctx->fd, DRM_RADEON_GEM_MMAP, &args, sizeof(args)); |
if (r) { |
fprintf(stderr, "error mapping %p 0x%08X (error = %d)\n", bo, bo->handle, r); |
exit(-1); |
} |
ptr = mmap(0, args.size, PROT_READ|PROT_WRITE, MAP_SHARED, ctx->fd, args.addr_ptr); |
if (ptr == MAP_FAILED) { |
fprintf(stderr, "%s failed to map bo\n", __func__); |
exit(-1); |
} |
bo->ptr = ptr; |
} |
static void bo_va(struct ctx *ctx, struct bo *bo) |
{ |
struct drm_radeon_gem_va args; |
int r; |
args.handle = bo->handle; |
args.vm_id = 0; |
args.operation = RADEON_VA_MAP; |
args.flags = RADEON_VM_PAGE_READABLE | RADEON_VM_PAGE_WRITEABLE | RADEON_VM_PAGE_SNOOPED; |
args.offset = bo->va; |
r = drmCommandWriteRead(ctx->fd, DRM_RADEON_GEM_VA, &args, sizeof(args)); |
if (r && args.operation == RADEON_VA_RESULT_ERROR) { |
fprintf(stderr, "radeon: Failed to allocate virtual address for buffer:\n"); |
fprintf(stderr, "radeon: size : %d bytes\n", bo->size); |
fprintf(stderr, "radeon: alignment : %d bytes\n", bo->alignment); |
fprintf(stderr, "radeon: va : 0x%016llx\n", (unsigned long long)bo->va); |
exit(-1); |
} |
} |
static struct bo *bo_new(struct ctx *ctx, unsigned ndw, uint32_t *data, uint64_t va, uint32_t alignment) |
{ |
struct drm_radeon_gem_create args; |
struct bo *bo; |
int r; |
bo = calloc(1, sizeof(*bo)); |
if (bo == NULL) { |
fprintf(stderr, "failed to malloc bo struct\n"); |
exit(-1); |
} |
bo->size = ndw * 4ULL; |
bo->va = va; |
bo->alignment = alignment; |
args.size = bo->size; |
args.alignment = bo->alignment; |
args.initial_domain = RADEON_GEM_DOMAIN_GTT; |
args.flags = 0; |
args.handle = 0; |
r = drmCommandWriteRead(ctx->fd, DRM_RADEON_GEM_CREATE, &args, sizeof(args)); |
bo->handle = args.handle; |
if (r) { |
fprintf(stderr, "Failed to allocate :\n"); |
fprintf(stderr, " size : %d bytes\n", bo->size); |
fprintf(stderr, " alignment : %d bytes\n", bo->alignment); |
free(bo); |
exit(-1); |
} |
if (data) { |
bo_map(ctx, bo); |
memcpy(bo->ptr, data, bo->size); |
} |
if (va) { |
bo_va(ctx, bo); |
} |
return bo; |
} |
#endif |
/contrib/sdk/sources/Mesa/src/gallium/winsys/svga/drm/Android.mk |
---|
0,0 → 1,44 |
# Mesa 3-D graphics library |
# |
# Copyright (C) 2010-2011 Chia-I Wu <olvaffe@gmail.com> |
# Copyright (C) 2010-2011 LunarG Inc. |
# |
# Permission is hereby granted, free of charge, to any person obtaining a |
# copy of this software and associated documentation files (the "Software"), |
# to deal in the Software without restriction, including without limitation |
# the rights to use, copy, modify, merge, publish, distribute, sublicense, |
# and/or sell copies of the Software, and to permit persons to whom the |
# Software is furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice shall be included |
# in all copies or substantial portions of the Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
# DEALINGS IN THE SOFTWARE. |
LOCAL_PATH := $(call my-dir) |
# get C_SOURCES |
include $(LOCAL_PATH)/Makefile.sources |
include $(CLEAR_VARS) |
LOCAL_SRC_FILES := $(C_SOURCES) |
LOCAL_CFLAGS := -D_FILE_OFFSET_BITS=64 |
LOCAL_C_INCLUDES := \ |
$(GALLIUM_TOP)/drivers/svga \ |
$(GALLIUM_TOP)/drivers/svga/include \ |
$(DRM_TOP) \ |
$(DRM_TOP)/include/drm |
LOCAL_MODULE := libmesa_winsys_svga |
include $(GALLIUM_COMMON_MK) |
include $(BUILD_STATIC_LIBRARY) |
/contrib/sdk/sources/Mesa/src/gallium/winsys/svga/drm/Makefile.am |
---|
0,0 → 1,41 |
# Copyright © 2012 Intel Corporation |
# |
# Permission is hereby granted, free of charge, to any person obtaining a |
# copy of this software and associated documentation files (the "Software"), |
# to deal in the Software without restriction, including without limitation |
# the rights to use, copy, modify, merge, publish, distribute, sublicense, |
# and/or sell copies of the Software, and to permit persons to whom the |
# Software is furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice (including the next |
# paragraph) shall be included in all copies or substantial portions of the |
# Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
# DEALINGS IN THE SOFTWARE. |
include Makefile.sources |
include $(top_srcdir)/src/gallium/Automake.inc |
AM_CPPFLAGS = \ |
-I$(top_srcdir)/src/gallium/drivers/svga \ |
-I$(top_srcdir)/src/gallium/drivers/svga/include \ |
-I$(top_srcdir)/include \ |
-I$(top_srcdir)/src/gallium/drivers \ |
$(GALLIUM_CFLAGS) \ |
$(LIBDRM_CFLAGS) |
AM_CFLAGS = $(VISIBILITY_CFLAGS) |
#On some systems -std= must be added to CFLAGS to be the last -std= |
CFLAGS += -std=gnu99 -D_FILE_OFFSET_BITS=64 |
noinst_LTLIBRARIES = libsvgadrm.la |
libsvgadrm_la_SOURCES = $(C_SOURCES) |
/contrib/sdk/sources/Mesa/src/gallium/winsys/svga/drm/Makefile.in |
---|
0,0 → 1,806 |
# Makefile.in generated by automake 1.14 from Makefile.am. |
# @configure_input@ |
# Copyright (C) 1994-2013 Free Software Foundation, Inc. |
# This Makefile.in is free software; the Free Software Foundation |
# gives unlimited permission to copy and/or distribute it, |
# with or without modifications, as long as this notice is preserved. |
# This program is distributed in the hope that it will be useful, |
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without |
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A |
# PARTICULAR PURPOSE. |
@SET_MAKE@ |
# Copyright © 2012 Intel Corporation |
# |
# Permission is hereby granted, free of charge, to any person obtaining a |
# copy of this software and associated documentation files (the "Software"), |
# to deal in the Software without restriction, including without limitation |
# the rights to use, copy, modify, merge, publish, distribute, sublicense, |
# and/or sell copies of the Software, and to permit persons to whom the |
# Software is furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice (including the next |
# paragraph) shall be included in all copies or substantial portions of the |
# Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
# DEALINGS IN THE SOFTWARE. |
VPATH = @srcdir@ |
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' |
am__make_running_with_option = \ |
case $${target_option-} in \ |
?) ;; \ |
*) echo "am__make_running_with_option: internal error: invalid" \ |
"target option '$${target_option-}' specified" >&2; \ |
exit 1;; \ |
esac; \ |
has_opt=no; \ |
sane_makeflags=$$MAKEFLAGS; \ |
if $(am__is_gnu_make); then \ |
sane_makeflags=$$MFLAGS; \ |
else \ |
case $$MAKEFLAGS in \ |
*\\[\ \ ]*) \ |
bs=\\; \ |
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ |
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ |
esac; \ |
fi; \ |
skip_next=no; \ |
strip_trailopt () \ |
{ \ |
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ |
}; \ |
for flg in $$sane_makeflags; do \ |
test $$skip_next = yes && { skip_next=no; continue; }; \ |
case $$flg in \ |
*=*|--*) continue;; \ |
-*I) strip_trailopt 'I'; skip_next=yes;; \ |
-*I?*) strip_trailopt 'I';; \ |
-*O) strip_trailopt 'O'; skip_next=yes;; \ |
-*O?*) strip_trailopt 'O';; \ |
-*l) strip_trailopt 'l'; skip_next=yes;; \ |
-*l?*) strip_trailopt 'l';; \ |
-[dEDm]) skip_next=yes;; \ |
-[JT]) skip_next=yes;; \ |
esac; \ |
case $$flg in \ |
*$$target_option*) has_opt=yes; break;; \ |
esac; \ |
done; \ |
test $$has_opt = yes |
am__make_dryrun = (target_option=n; $(am__make_running_with_option)) |
am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) |
pkgdatadir = $(datadir)/@PACKAGE@ |
pkgincludedir = $(includedir)/@PACKAGE@ |
pkglibdir = $(libdir)/@PACKAGE@ |
pkglibexecdir = $(libexecdir)/@PACKAGE@ |
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd |
install_sh_DATA = $(install_sh) -c -m 644 |
install_sh_PROGRAM = $(install_sh) -c |
install_sh_SCRIPT = $(install_sh) -c |
INSTALL_HEADER = $(INSTALL_DATA) |
transform = $(program_transform_name) |
NORMAL_INSTALL = : |
PRE_INSTALL = : |
POST_INSTALL = : |
NORMAL_UNINSTALL = : |
PRE_UNINSTALL = : |
POST_UNINSTALL = : |
build_triplet = @build@ |
host_triplet = @host@ |
target_triplet = @target@ |
DIST_COMMON = $(srcdir)/Makefile.sources \ |
$(top_srcdir)/src/gallium/Automake.inc $(srcdir)/Makefile.in \ |
$(srcdir)/Makefile.am $(top_srcdir)/bin/depcomp |
subdir = src/gallium/winsys/svga/drm |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_prog_bison.m4 \ |
$(top_srcdir)/m4/ax_prog_cc_for_build.m4 \ |
$(top_srcdir)/m4/ax_prog_cxx_for_build.m4 \ |
$(top_srcdir)/m4/ax_prog_flex.m4 \ |
$(top_srcdir)/m4/ax_pthread.m4 \ |
$(top_srcdir)/m4/ax_python_module.m4 \ |
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ |
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ |
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac |
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
$(ACLOCAL_M4) |
mkinstalldirs = $(install_sh) -d |
CONFIG_CLEAN_FILES = |
CONFIG_CLEAN_VPATH_FILES = |
LTLIBRARIES = $(noinst_LTLIBRARIES) |
libsvgadrm_la_LIBADD = |
am__objects_1 = vmw_buffer.lo vmw_context.lo vmw_fence.lo \ |
vmw_screen.lo vmw_screen_dri.lo vmw_screen_ioctl.lo \ |
vmw_screen_pools.lo vmw_screen_svga.lo vmw_surface.lo |
am_libsvgadrm_la_OBJECTS = $(am__objects_1) |
libsvgadrm_la_OBJECTS = $(am_libsvgadrm_la_OBJECTS) |
AM_V_lt = $(am__v_lt_@AM_V@) |
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) |
am__v_lt_0 = --silent |
am__v_lt_1 = |
AM_V_P = $(am__v_P_@AM_V@) |
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) |
am__v_P_0 = false |
am__v_P_1 = : |
AM_V_GEN = $(am__v_GEN_@AM_V@) |
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) |
am__v_GEN_0 = @echo " GEN " $@; |
am__v_GEN_1 = |
AM_V_at = $(am__v_at_@AM_V@) |
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) |
am__v_at_0 = @ |
am__v_at_1 = |
DEFAULT_INCLUDES = -I.@am__isrc@ |
depcomp = $(SHELL) $(top_srcdir)/bin/depcomp |
am__depfiles_maybe = depfiles |
am__mv = mv -f |
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ |
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) |
LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ |
$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ |
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ |
$(AM_CFLAGS) $(CFLAGS) |
AM_V_CC = $(am__v_CC_@AM_V@) |
am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) |
am__v_CC_0 = @echo " CC " $@; |
am__v_CC_1 = |
CCLD = $(CC) |
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ |
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ |
$(AM_LDFLAGS) $(LDFLAGS) -o $@ |
AM_V_CCLD = $(am__v_CCLD_@AM_V@) |
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) |
am__v_CCLD_0 = @echo " CCLD " $@; |
am__v_CCLD_1 = |
SOURCES = $(libsvgadrm_la_SOURCES) |
DIST_SOURCES = $(libsvgadrm_la_SOURCES) |
am__can_run_installinfo = \ |
case $$AM_UPDATE_INFO_DIR in \ |
n|no|NO) false;; \ |
*) (install-info --version) >/dev/null 2>&1;; \ |
esac |
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) |
# Read a list of newline-separated strings from the standard input, |
# and print each of them once, without duplicates. Input order is |
# *not* preserved. |
am__uniquify_input = $(AWK) '\ |
BEGIN { nonempty = 0; } \ |
{ items[$$0] = 1; nonempty = 1; } \ |
END { if (nonempty) { for (i in items) print i; }; } \ |
' |
# Make sure the list of sources is unique. This is necessary because, |
# e.g., the same source file might be shared among _SOURCES variables |
# for different programs/libraries. |
am__define_uniq_tagged_files = \ |
list='$(am__tagged_files)'; \ |
unique=`for i in $$list; do \ |
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ |
done | $(am__uniquify_input)` |
ETAGS = etags |
CTAGS = ctags |
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) |
ACLOCAL = @ACLOCAL@ |
AMTAR = @AMTAR@ |
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ |
AR = @AR@ |
AUTOCONF = @AUTOCONF@ |
AUTOHEADER = @AUTOHEADER@ |
AUTOMAKE = @AUTOMAKE@ |
AWK = @AWK@ |
BUILD_EXEEXT = @BUILD_EXEEXT@ |
BUILD_OBJEXT = @BUILD_OBJEXT@ |
CC = @CC@ |
CCAS = @CCAS@ |
CCASDEPMODE = @CCASDEPMODE@ |
CCASFLAGS = @CCASFLAGS@ |
CCDEPMODE = @CCDEPMODE@ |
CC_FOR_BUILD = @CC_FOR_BUILD@ |
#On some systems -std= must be added to CFLAGS to be the last -std= |
CFLAGS = @CFLAGS@ -std=gnu99 -D_FILE_OFFSET_BITS=64 |
CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ |
CLANG_RESOURCE_DIR = @CLANG_RESOURCE_DIR@ |
CLOCK_LIB = @CLOCK_LIB@ |
CPP = @CPP@ |
CPPFLAGS = @CPPFLAGS@ |
CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@ |
CPP_FOR_BUILD = @CPP_FOR_BUILD@ |
CXX = @CXX@ |
CXXCPP = @CXXCPP@ |
CXXCPPFLAGS_FOR_BUILD = @CXXCPPFLAGS_FOR_BUILD@ |
CXXCPP_FOR_BUILD = @CXXCPP_FOR_BUILD@ |
CXXDEPMODE = @CXXDEPMODE@ |
CXXFLAGS = @CXXFLAGS@ |
CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@ |
CXX_FOR_BUILD = @CXX_FOR_BUILD@ |
CYGPATH_W = @CYGPATH_W@ |
DEFINES = @DEFINES@ |
DEFINES_FOR_BUILD = @DEFINES_FOR_BUILD@ |
DEFS = @DEFS@ |
DEPDIR = @DEPDIR@ |
DLLTOOL = @DLLTOOL@ |
DLOPEN_LIBS = @DLOPEN_LIBS@ |
DRI2PROTO_CFLAGS = @DRI2PROTO_CFLAGS@ |
DRI2PROTO_LIBS = @DRI2PROTO_LIBS@ |
DRIGL_CFLAGS = @DRIGL_CFLAGS@ |
DRIGL_LIBS = @DRIGL_LIBS@ |
DRI_DRIVER_INSTALL_DIR = @DRI_DRIVER_INSTALL_DIR@ |
DRI_DRIVER_SEARCH_DIR = @DRI_DRIVER_SEARCH_DIR@ |
DRI_LIB_DEPS = @DRI_LIB_DEPS@ |
DRI_PC_REQ_PRIV = @DRI_PC_REQ_PRIV@ |
DSYMUTIL = @DSYMUTIL@ |
DUMPBIN = @DUMPBIN@ |
ECHO_C = @ECHO_C@ |
ECHO_N = @ECHO_N@ |
ECHO_T = @ECHO_T@ |
EGL_CFLAGS = @EGL_CFLAGS@ |
EGL_CLIENT_APIS = @EGL_CLIENT_APIS@ |
EGL_DRIVER_INSTALL_DIR = @EGL_DRIVER_INSTALL_DIR@ |
EGL_LIB_DEPS = @EGL_LIB_DEPS@ |
EGL_LIB_GLOB = @EGL_LIB_GLOB@ |
EGL_LIB_NAME = @EGL_LIB_NAME@ |
EGL_NATIVE_PLATFORM = @EGL_NATIVE_PLATFORM@ |
EGL_PLATFORMS = @EGL_PLATFORMS@ |
EGREP = @EGREP@ |
ELF_LIB = @ELF_LIB@ |
EXEEXT = @EXEEXT@ |
EXPAT_INCLUDES = @EXPAT_INCLUDES@ |
FGREP = @FGREP@ |
FREEDRENO_CFLAGS = @FREEDRENO_CFLAGS@ |
FREEDRENO_LIBS = @FREEDRENO_LIBS@ |
GALLIUM_DRI_LIB_DEPS = @GALLIUM_DRI_LIB_DEPS@ |
GALLIUM_PIPE_LOADER_DEFINES = @GALLIUM_PIPE_LOADER_DEFINES@ |
GALLIUM_PIPE_LOADER_LIBS = @GALLIUM_PIPE_LOADER_LIBS@ |
GALLIUM_PIPE_LOADER_XCB_CFLAGS = @GALLIUM_PIPE_LOADER_XCB_CFLAGS@ |
GALLIUM_PIPE_LOADER_XCB_LIBS = @GALLIUM_PIPE_LOADER_XCB_LIBS@ |
GBM_PC_LIB_PRIV = @GBM_PC_LIB_PRIV@ |
GBM_PC_REQ_PRIV = @GBM_PC_REQ_PRIV@ |
GLAPI_LIB_GLOB = @GLAPI_LIB_GLOB@ |
GLAPI_LIB_NAME = @GLAPI_LIB_NAME@ |
GLESv1_CM_LIB_DEPS = @GLESv1_CM_LIB_DEPS@ |
GLESv1_CM_LIB_GLOB = @GLESv1_CM_LIB_GLOB@ |
GLESv1_CM_LIB_NAME = @GLESv1_CM_LIB_NAME@ |
GLESv1_CM_PC_LIB_PRIV = @GLESv1_CM_PC_LIB_PRIV@ |
GLESv2_LIB_DEPS = @GLESv2_LIB_DEPS@ |
GLESv2_LIB_GLOB = @GLESv2_LIB_GLOB@ |
GLESv2_LIB_NAME = @GLESv2_LIB_NAME@ |
GLESv2_PC_LIB_PRIV = @GLESv2_PC_LIB_PRIV@ |
GLPROTO_CFLAGS = @GLPROTO_CFLAGS@ |
GLPROTO_LIBS = @GLPROTO_LIBS@ |
GLX_TLS = @GLX_TLS@ |
GL_LIB = @GL_LIB@ |
GL_LIB_DEPS = @GL_LIB_DEPS@ |
GL_LIB_GLOB = @GL_LIB_GLOB@ |
GL_LIB_NAME = @GL_LIB_NAME@ |
GL_PC_CFLAGS = @GL_PC_CFLAGS@ |
GL_PC_LIB_PRIV = @GL_PC_LIB_PRIV@ |
GL_PC_REQ_PRIV = @GL_PC_REQ_PRIV@ |
GREP = @GREP@ |
HAVE_XF86VIDMODE = @HAVE_XF86VIDMODE@ |
INDENT = @INDENT@ |
INDENT_FLAGS = @INDENT_FLAGS@ |
INSTALL = @INSTALL@ |
INSTALL_DATA = @INSTALL_DATA@ |
INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ |
INTEL_CFLAGS = @INTEL_CFLAGS@ |
INTEL_LIBS = @INTEL_LIBS@ |
LD = @LD@ |
LDFLAGS = @LDFLAGS@ |
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ |
LEX = @LEX@ |
LEXLIB = @LEXLIB@ |
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ |
LIBCLC_INCLUDEDIR = @LIBCLC_INCLUDEDIR@ |
LIBCLC_LIBEXECDIR = @LIBCLC_LIBEXECDIR@ |
LIBDRM_CFLAGS = @LIBDRM_CFLAGS@ |
LIBDRM_LIBS = @LIBDRM_LIBS@ |
LIBDRM_XORG_CFLAGS = @LIBDRM_XORG_CFLAGS@ |
LIBDRM_XORG_LIBS = @LIBDRM_XORG_LIBS@ |
LIBKMS_XORG_CFLAGS = @LIBKMS_XORG_CFLAGS@ |
LIBKMS_XORG_LIBS = @LIBKMS_XORG_LIBS@ |
LIBOBJS = @LIBOBJS@ |
LIBS = @LIBS@ |
LIBTOOL = @LIBTOOL@ |
LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ |
LIBUDEV_LIBS = @LIBUDEV_LIBS@ |
LIB_DIR = @LIB_DIR@ |
LIPO = @LIPO@ |
LLVM_BINDIR = @LLVM_BINDIR@ |
LLVM_CFLAGS = @LLVM_CFLAGS@ |
LLVM_CONFIG = @LLVM_CONFIG@ |
LLVM_CPPFLAGS = @LLVM_CPPFLAGS@ |
LLVM_CXXFLAGS = @LLVM_CXXFLAGS@ |
LLVM_INCLUDEDIR = @LLVM_INCLUDEDIR@ |
LLVM_LDFLAGS = @LLVM_LDFLAGS@ |
LLVM_LIBDIR = @LLVM_LIBDIR@ |
LLVM_LIBS = @LLVM_LIBS@ |
LLVM_VERSION = @LLVM_VERSION@ |
LN_S = @LN_S@ |
LTLIBOBJS = @LTLIBOBJS@ |
MAKE = @MAKE@ |
MAKEINFO = @MAKEINFO@ |
MANIFEST_TOOL = @MANIFEST_TOOL@ |
MESA_LLVM = @MESA_LLVM@ |
MKDIR_P = @MKDIR_P@ |
NM = @NM@ |
NMEDIT = @NMEDIT@ |
NOUVEAU_CFLAGS = @NOUVEAU_CFLAGS@ |
NOUVEAU_LIBS = @NOUVEAU_LIBS@ |
OBJDUMP = @OBJDUMP@ |
OBJEXT = @OBJEXT@ |
OPENCL_LIB_INSTALL_DIR = @OPENCL_LIB_INSTALL_DIR@ |
OSMESA_LIB = @OSMESA_LIB@ |
OSMESA_LIB_DEPS = @OSMESA_LIB_DEPS@ |
OSMESA_LIB_NAME = @OSMESA_LIB_NAME@ |
OSMESA_MESA_DEPS = @OSMESA_MESA_DEPS@ |
OSMESA_PC_LIB_PRIV = @OSMESA_PC_LIB_PRIV@ |
OSMESA_PC_REQ = @OSMESA_PC_REQ@ |
OSMESA_VERSION = @OSMESA_VERSION@ |
OTOOL = @OTOOL@ |
OTOOL64 = @OTOOL64@ |
PACKAGE = @PACKAGE@ |
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ |
PACKAGE_NAME = @PACKAGE_NAME@ |
PACKAGE_STRING = @PACKAGE_STRING@ |
PACKAGE_TARNAME = @PACKAGE_TARNAME@ |
PACKAGE_URL = @PACKAGE_URL@ |
PACKAGE_VERSION = @PACKAGE_VERSION@ |
PATH_SEPARATOR = @PATH_SEPARATOR@ |
PERL = @PERL@ |
PKG_CONFIG = @PKG_CONFIG@ |
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ |
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ |
POSIX_SHELL = @POSIX_SHELL@ |
PTHREAD_CC = @PTHREAD_CC@ |
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ |
PTHREAD_LIBS = @PTHREAD_LIBS@ |
PYTHON2 = @PYTHON2@ |
RADEON_CFLAGS = @RADEON_CFLAGS@ |
RADEON_LIBS = @RADEON_LIBS@ |
RANLIB = @RANLIB@ |
SED = @SED@ |
SELINUX_LIBS = @SELINUX_LIBS@ |
SET_MAKE = @SET_MAKE@ |
SHELL = @SHELL@ |
STRIP = @STRIP@ |
VDPAU_CFLAGS = @VDPAU_CFLAGS@ |
VDPAU_LIBS = @VDPAU_LIBS@ |
VDPAU_LIB_INSTALL_DIR = @VDPAU_LIB_INSTALL_DIR@ |
VDPAU_MAJOR = @VDPAU_MAJOR@ |
VDPAU_MINOR = @VDPAU_MINOR@ |
VERSION = @VERSION@ |
VG_LIB_DEPS = @VG_LIB_DEPS@ |
VG_LIB_GLOB = @VG_LIB_GLOB@ |
VG_LIB_NAME = @VG_LIB_NAME@ |
VG_PC_LIB_PRIV = @VG_PC_LIB_PRIV@ |
VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@ |
VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@ |
WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ |
WAYLAND_LIBS = @WAYLAND_LIBS@ |
WAYLAND_SCANNER = @WAYLAND_SCANNER@ |
X11_INCLUDES = @X11_INCLUDES@ |
XA_MAJOR = @XA_MAJOR@ |
XA_MINOR = @XA_MINOR@ |
XA_TINY = @XA_TINY@ |
XA_VERSION = @XA_VERSION@ |
XCB_DRI2_CFLAGS = @XCB_DRI2_CFLAGS@ |
XCB_DRI2_LIBS = @XCB_DRI2_LIBS@ |
XEXT_CFLAGS = @XEXT_CFLAGS@ |
XEXT_LIBS = @XEXT_LIBS@ |
XF86VIDMODE_CFLAGS = @XF86VIDMODE_CFLAGS@ |
XF86VIDMODE_LIBS = @XF86VIDMODE_LIBS@ |
XLIBGL_CFLAGS = @XLIBGL_CFLAGS@ |
XLIBGL_LIBS = @XLIBGL_LIBS@ |
XORG_CFLAGS = @XORG_CFLAGS@ |
XORG_DRIVER_INSTALL_DIR = @XORG_DRIVER_INSTALL_DIR@ |
XORG_LIBS = @XORG_LIBS@ |
XVMC_CFLAGS = @XVMC_CFLAGS@ |
XVMC_LIBS = @XVMC_LIBS@ |
XVMC_LIB_INSTALL_DIR = @XVMC_LIB_INSTALL_DIR@ |
XVMC_MAJOR = @XVMC_MAJOR@ |
XVMC_MINOR = @XVMC_MINOR@ |
YACC = @YACC@ |
YFLAGS = @YFLAGS@ |
abs_builddir = @abs_builddir@ |
abs_srcdir = @abs_srcdir@ |
abs_top_builddir = @abs_top_builddir@ |
abs_top_srcdir = @abs_top_srcdir@ |
ac_ct_AR = @ac_ct_AR@ |
ac_ct_CC = @ac_ct_CC@ |
ac_ct_CC_FOR_BUILD = @ac_ct_CC_FOR_BUILD@ |
ac_ct_CXX = @ac_ct_CXX@ |
ac_ct_CXX_FOR_BUILD = @ac_ct_CXX_FOR_BUILD@ |
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ |
am__include = @am__include@ |
am__leading_dot = @am__leading_dot@ |
am__quote = @am__quote@ |
am__tar = @am__tar@ |
am__untar = @am__untar@ |
ax_pthread_config = @ax_pthread_config@ |
bindir = @bindir@ |
build = @build@ |
build_alias = @build_alias@ |
build_cpu = @build_cpu@ |
build_os = @build_os@ |
build_vendor = @build_vendor@ |
builddir = @builddir@ |
datadir = @datadir@ |
datarootdir = @datarootdir@ |
docdir = @docdir@ |
dvidir = @dvidir@ |
exec_prefix = @exec_prefix@ |
host = @host@ |
host_alias = @host_alias@ |
host_cpu = @host_cpu@ |
host_os = @host_os@ |
host_vendor = @host_vendor@ |
htmldir = @htmldir@ |
includedir = @includedir@ |
infodir = @infodir@ |
install_sh = @install_sh@ |
libdir = @libdir@ |
libexecdir = @libexecdir@ |
localedir = @localedir@ |
localstatedir = @localstatedir@ |
mandir = @mandir@ |
mkdir_p = @mkdir_p@ |
oldincludedir = @oldincludedir@ |
pdfdir = @pdfdir@ |
prefix = @prefix@ |
program_transform_name = @program_transform_name@ |
psdir = @psdir@ |
sbindir = @sbindir@ |
sharedstatedir = @sharedstatedir@ |
srcdir = @srcdir@ |
sysconfdir = @sysconfdir@ |
target = @target@ |
target_alias = @target_alias@ |
target_cpu = @target_cpu@ |
target_os = @target_os@ |
target_vendor = @target_vendor@ |
top_build_prefix = @top_build_prefix@ |
top_builddir = @top_builddir@ |
top_srcdir = @top_srcdir@ |
C_SOURCES := \ |
vmw_buffer.c \ |
vmw_context.c \ |
vmw_fence.c \ |
vmw_screen.c \ |
vmw_screen_dri.c \ |
vmw_screen_ioctl.c \ |
vmw_screen_pools.c \ |
vmw_screen_svga.c \ |
vmw_surface.c |
GALLIUM_CFLAGS = \ |
-I$(top_srcdir)/include \ |
-I$(top_srcdir)/src/gallium/include \ |
-I$(top_srcdir)/src/gallium/auxiliary \ |
$(DEFINES) |
AM_CPPFLAGS = \ |
-I$(top_srcdir)/src/gallium/drivers/svga \ |
-I$(top_srcdir)/src/gallium/drivers/svga/include \ |
-I$(top_srcdir)/include \ |
-I$(top_srcdir)/src/gallium/drivers \ |
$(GALLIUM_CFLAGS) \ |
$(LIBDRM_CFLAGS) |
AM_CFLAGS = $(VISIBILITY_CFLAGS) |
noinst_LTLIBRARIES = libsvgadrm.la |
libsvgadrm_la_SOURCES = $(C_SOURCES) |
all: all-am |
.SUFFIXES: |
.SUFFIXES: .c .lo .o .obj |
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/Makefile.sources $(top_srcdir)/src/gallium/Automake.inc $(am__configure_deps) |
@for dep in $?; do \ |
case '$(am__configure_deps)' in \ |
*$$dep*) \ |
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ |
&& { if test -f $@; then exit 0; else break; fi; }; \ |
exit 1;; \ |
esac; \ |
done; \ |
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/gallium/winsys/svga/drm/Makefile'; \ |
$(am__cd) $(top_srcdir) && \ |
$(AUTOMAKE) --foreign src/gallium/winsys/svga/drm/Makefile |
.PRECIOUS: Makefile |
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
@case '$?' in \ |
*config.status*) \ |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ |
*) \ |
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ |
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ |
esac; |
$(srcdir)/Makefile.sources $(top_srcdir)/src/gallium/Automake.inc: |
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(top_srcdir)/configure: $(am__configure_deps) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(ACLOCAL_M4): $(am__aclocal_m4_deps) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(am__aclocal_m4_deps): |
clean-noinstLTLIBRARIES: |
-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) |
@list='$(noinst_LTLIBRARIES)'; \ |
locs=`for p in $$list; do echo $$p; done | \ |
sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ |
sort -u`; \ |
test -z "$$locs" || { \ |
echo rm -f $${locs}; \ |
rm -f $${locs}; \ |
} |
libsvgadrm.la: $(libsvgadrm_la_OBJECTS) $(libsvgadrm_la_DEPENDENCIES) $(EXTRA_libsvgadrm_la_DEPENDENCIES) |
$(AM_V_CCLD)$(LINK) $(libsvgadrm_la_OBJECTS) $(libsvgadrm_la_LIBADD) $(LIBS) |
mostlyclean-compile: |
-rm -f *.$(OBJEXT) |
distclean-compile: |
-rm -f *.tab.c |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vmw_buffer.Plo@am__quote@ |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vmw_context.Plo@am__quote@ |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vmw_fence.Plo@am__quote@ |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vmw_screen.Plo@am__quote@ |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vmw_screen_dri.Plo@am__quote@ |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vmw_screen_ioctl.Plo@am__quote@ |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vmw_screen_pools.Plo@am__quote@ |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vmw_screen_svga.Plo@am__quote@ |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vmw_surface.Plo@am__quote@ |
.c.o: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< |
.c.obj: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` |
.c.lo: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< |
mostlyclean-libtool: |
-rm -f *.lo |
clean-libtool: |
-rm -rf .libs _libs |
ID: $(am__tagged_files) |
$(am__define_uniq_tagged_files); mkid -fID $$unique |
tags: tags-am |
TAGS: tags |
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
set x; \ |
here=`pwd`; \ |
$(am__define_uniq_tagged_files); \ |
shift; \ |
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ |
test -n "$$unique" || unique=$$empty_fix; \ |
if test $$# -gt 0; then \ |
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
"$$@" $$unique; \ |
else \ |
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
$$unique; \ |
fi; \ |
fi |
ctags: ctags-am |
CTAGS: ctags |
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
$(am__define_uniq_tagged_files); \ |
test -z "$(CTAGS_ARGS)$$unique" \ |
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ |
$$unique |
GTAGS: |
here=`$(am__cd) $(top_builddir) && pwd` \ |
&& $(am__cd) $(top_srcdir) \ |
&& gtags -i $(GTAGS_ARGS) "$$here" |
cscopelist: cscopelist-am |
cscopelist-am: $(am__tagged_files) |
list='$(am__tagged_files)'; \ |
case "$(srcdir)" in \ |
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ |
*) sdir=$(subdir)/$(srcdir) ;; \ |
esac; \ |
for i in $$list; do \ |
if test -f "$$i"; then \ |
echo "$(subdir)/$$i"; \ |
else \ |
echo "$$sdir/$$i"; \ |
fi; \ |
done >> $(top_builddir)/cscope.files |
distclean-tags: |
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |
distdir: $(DISTFILES) |
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
list='$(DISTFILES)'; \ |
dist_files=`for file in $$list; do echo $$file; done | \ |
sed -e "s|^$$srcdirstrip/||;t" \ |
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ |
case $$dist_files in \ |
*/*) $(MKDIR_P) `echo "$$dist_files" | \ |
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ |
sort -u` ;; \ |
esac; \ |
for file in $$dist_files; do \ |
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ |
if test -d $$d/$$file; then \ |
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ |
if test -d "$(distdir)/$$file"; then \ |
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |
fi; \ |
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ |
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ |
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |
fi; \ |
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ |
else \ |
test -f "$(distdir)/$$file" \ |
|| cp -p $$d/$$file "$(distdir)/$$file" \ |
|| exit 1; \ |
fi; \ |
done |
check-am: all-am |
check: check-am |
all-am: Makefile $(LTLIBRARIES) |
installdirs: |
install: install-am |
install-exec: install-exec-am |
install-data: install-data-am |
uninstall: uninstall-am |
install-am: all-am |
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am |
installcheck: installcheck-am |
install-strip: |
if test -z '$(STRIP)'; then \ |
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |
install; \ |
else \ |
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ |
fi |
mostlyclean-generic: |
clean-generic: |
distclean-generic: |
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) |
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) |
maintainer-clean-generic: |
@echo "This command is intended for maintainers to use" |
@echo "it deletes files that may require special tools to rebuild." |
clean: clean-am |
clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ |
mostlyclean-am |
distclean: distclean-am |
-rm -rf ./$(DEPDIR) |
-rm -f Makefile |
distclean-am: clean-am distclean-compile distclean-generic \ |
distclean-tags |
dvi: dvi-am |
dvi-am: |
html: html-am |
html-am: |
info: info-am |
info-am: |
install-data-am: |
install-dvi: install-dvi-am |
install-dvi-am: |
install-exec-am: |
install-html: install-html-am |
install-html-am: |
install-info: install-info-am |
install-info-am: |
install-man: |
install-pdf: install-pdf-am |
install-pdf-am: |
install-ps: install-ps-am |
install-ps-am: |
installcheck-am: |
maintainer-clean: maintainer-clean-am |
-rm -rf ./$(DEPDIR) |
-rm -f Makefile |
maintainer-clean-am: distclean-am maintainer-clean-generic |
mostlyclean: mostlyclean-am |
mostlyclean-am: mostlyclean-compile mostlyclean-generic \ |
mostlyclean-libtool |
pdf: pdf-am |
pdf-am: |
ps: ps-am |
ps-am: |
uninstall-am: |
.MAKE: install-am install-strip |
.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ |
clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ |
ctags-am distclean distclean-compile distclean-generic \ |
distclean-libtool distclean-tags distdir dvi dvi-am html \ |
html-am info info-am install install-am install-data \ |
install-data-am install-dvi install-dvi-am install-exec \ |
install-exec-am install-html install-html-am install-info \ |
install-info-am install-man install-pdf install-pdf-am \ |
install-ps install-ps-am install-strip installcheck \ |
installcheck-am installdirs maintainer-clean \ |
maintainer-clean-generic mostlyclean mostlyclean-compile \ |
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ |
tags tags-am uninstall uninstall-am |
# Tell versions [3.59,3.63) of GNU make to not export all variables. |
# Otherwise a system limit (for SysV at least) may be exceeded. |
.NOEXPORT: |
/contrib/sdk/sources/Mesa/src/gallium/winsys/svga/drm/Makefile.sources |
---|
0,0 → 1,10 |
C_SOURCES := \ |
vmw_buffer.c \ |
vmw_context.c \ |
vmw_fence.c \ |
vmw_screen.c \ |
vmw_screen_dri.c \ |
vmw_screen_ioctl.c \ |
vmw_screen_pools.c \ |
vmw_screen_svga.c \ |
vmw_surface.c |
/contrib/sdk/sources/Mesa/src/gallium/winsys/svga/drm/SConscript |
---|
0,0 → 1,31 |
Import('*') |
env = env.Clone() |
env.PkgUseModules('DRM') |
if env['gcc'] or env['clang'] or env['icc']: |
env.Append(CCFLAGS = ['-fvisibility=hidden']) |
env.Append(CPPDEFINES = [ |
'HAVE_STDINT_H', |
'HAVE_SYS_TYPES_H', |
'-D_FILE_OFFSET_BITS=64', |
]) |
env.Prepend(CPPPATH = [ |
'include', |
'#/src/gallium/drivers/svga', |
'#/src/gallium/drivers/svga/include', |
]) |
env.Append(CPPDEFINES = [ |
]) |
sources = env.ParseSourceList('Makefile.sources', 'C_SOURCES') |
svgadrm = env.ConvenienceLibrary( |
target = 'svgadrm', |
source = sources, |
) |
Export('svgadrm') |
/contrib/sdk/sources/Mesa/src/gallium/winsys/svga/drm/svga_drm_public.h |
---|
0,0 → 1,41 |
/********************************************************** |
* Copyright 2010 VMware, Inc. All rights reserved. |
* |
* Permission is hereby granted, free of charge, to any person |
* obtaining a copy of this software and associated documentation |
* files (the "Software"), to deal in the Software without |
* restriction, including without limitation the rights to use, copy, |
* modify, merge, publish, distribute, sublicense, and/or sell copies |
* of the Software, and to permit persons to whom the Software is |
* furnished to do so, subject to the following conditions: |
* |
* The above copyright notice and this permission notice shall be |
* included in all copies or substantial portions of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS |
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
* SOFTWARE. |
* |
**********************************************************/ |
/** |
* @file |
* VMware SVGA DRM winsys public interface. Used by targets to create a stack. |
* |
* @author Jakob Bornecrantz Fonseca <jakob@vmware.com> |
*/ |
#ifndef SVGA_DRM_PUBLIC_H_ |
#define SVGA_DRM_PUBLIC_H_ |
struct svga_winsys_screen; |
struct svga_winsys_screen * |
svga_drm_winsys_screen_create(int fd); |
#endif /* SVGA_PUBLIC_H_ */ |
/contrib/sdk/sources/Mesa/src/gallium/winsys/svga/drm/vmw_buffer.c |
---|
0,0 → 1,259 |
/********************************************************** |
* Copyright 2009 VMware, Inc. All rights reserved. |
* |
* Permission is hereby granted, free of charge, to any person |
* obtaining a copy of this software and associated documentation |
* files (the "Software"), to deal in the Software without |
* restriction, including without limitation the rights to use, copy, |
* modify, merge, publish, distribute, sublicense, and/or sell copies |
* of the Software, and to permit persons to whom the Software is |
* furnished to do so, subject to the following conditions: |
* |
* The above copyright notice and this permission notice shall be |
* included in all copies or substantial portions of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS |
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
* SOFTWARE. |
* |
**********************************************************/ |
/** |
* @file |
* SVGA buffer manager for Guest Memory Regions (GMRs). |
* |
* GMRs are used for pixel and vertex data upload/download to/from the virtual |
* SVGA hardware. There is a limited number of GMRs available, and |
* creating/destroying them is also a slow operation so we must suballocate |
* them. |
* |
* This file implements a pipebuffer library's buffer manager, so that we can |
* use pipepbuffer's suballocation, fencing, and debugging facilities with GMRs. |
* |
* @author Jose Fonseca <jfonseca@vmware.com> |
*/ |
#include "svga_cmd.h" |
#include "util/u_inlines.h" |
#include "util/u_memory.h" |
#include "pipebuffer/pb_buffer.h" |
#include "pipebuffer/pb_bufmgr.h" |
#include "svga_winsys.h" |
#include "vmw_screen.h" |
#include "vmw_buffer.h" |
struct vmw_gmr_bufmgr; |
struct vmw_gmr_buffer |
{ |
struct pb_buffer base; |
struct vmw_gmr_bufmgr *mgr; |
struct vmw_region *region; |
void *map; |
}; |
extern const struct pb_vtbl vmw_gmr_buffer_vtbl; |
static INLINE struct vmw_gmr_buffer * |
vmw_gmr_buffer(struct pb_buffer *buf) |
{ |
assert(buf); |
assert(buf->vtbl == &vmw_gmr_buffer_vtbl); |
return (struct vmw_gmr_buffer *)buf; |
} |
struct vmw_gmr_bufmgr |
{ |
struct pb_manager base; |
struct vmw_winsys_screen *vws; |
}; |
static INLINE struct vmw_gmr_bufmgr * |
vmw_gmr_bufmgr(struct pb_manager *mgr) |
{ |
assert(mgr); |
return (struct vmw_gmr_bufmgr *)mgr; |
} |
static void |
vmw_gmr_buffer_destroy(struct pb_buffer *_buf) |
{ |
struct vmw_gmr_buffer *buf = vmw_gmr_buffer(_buf); |
vmw_ioctl_region_unmap(buf->region); |
vmw_ioctl_region_destroy(buf->region); |
FREE(buf); |
} |
static void * |
vmw_gmr_buffer_map(struct pb_buffer *_buf, |
unsigned flags, |
void *flush_ctx) |
{ |
struct vmw_gmr_buffer *buf = vmw_gmr_buffer(_buf); |
return buf->map; |
} |
static void |
vmw_gmr_buffer_unmap(struct pb_buffer *_buf) |
{ |
/* Do nothing */ |
(void)_buf; |
} |
static void |
vmw_gmr_buffer_get_base_buffer(struct pb_buffer *buf, |
struct pb_buffer **base_buf, |
unsigned *offset) |
{ |
*base_buf = buf; |
*offset = 0; |
} |
static enum pipe_error |
vmw_gmr_buffer_validate( struct pb_buffer *_buf, |
struct pb_validate *vl, |
unsigned flags ) |
{ |
/* Always pinned */ |
return PIPE_OK; |
} |
static void |
vmw_gmr_buffer_fence( struct pb_buffer *_buf, |
struct pipe_fence_handle *fence ) |
{ |
/* We don't need to do anything, as the pipebuffer library |
* will take care of delaying the destruction of fenced buffers */ |
} |
const struct pb_vtbl vmw_gmr_buffer_vtbl = { |
vmw_gmr_buffer_destroy, |
vmw_gmr_buffer_map, |
vmw_gmr_buffer_unmap, |
vmw_gmr_buffer_validate, |
vmw_gmr_buffer_fence, |
vmw_gmr_buffer_get_base_buffer |
}; |
static struct pb_buffer * |
vmw_gmr_bufmgr_create_buffer(struct pb_manager *_mgr, |
pb_size size, |
const struct pb_desc *desc) |
{ |
struct vmw_gmr_bufmgr *mgr = vmw_gmr_bufmgr(_mgr); |
struct vmw_winsys_screen *vws = mgr->vws; |
struct vmw_gmr_buffer *buf; |
buf = CALLOC_STRUCT(vmw_gmr_buffer); |
if(!buf) |
goto error1; |
pipe_reference_init(&buf->base.reference, 1); |
buf->base.alignment = desc->alignment; |
buf->base.usage = desc->usage; |
buf->base.size = size; |
buf->base.vtbl = &vmw_gmr_buffer_vtbl; |
buf->mgr = mgr; |
buf->region = vmw_ioctl_region_create(vws, size); |
if(!buf->region) |
goto error2; |
buf->map = vmw_ioctl_region_map(buf->region); |
if(!buf->map) |
goto error3; |
return &buf->base; |
error3: |
vmw_ioctl_region_destroy(buf->region); |
error2: |
FREE(buf); |
error1: |
return NULL; |
} |
static void |
vmw_gmr_bufmgr_flush(struct pb_manager *mgr) |
{ |
/* No-op */ |
} |
static void |
vmw_gmr_bufmgr_destroy(struct pb_manager *_mgr) |
{ |
struct vmw_gmr_bufmgr *mgr = vmw_gmr_bufmgr(_mgr); |
FREE(mgr); |
} |
struct pb_manager * |
vmw_gmr_bufmgr_create(struct vmw_winsys_screen *vws) |
{ |
struct vmw_gmr_bufmgr *mgr; |
mgr = CALLOC_STRUCT(vmw_gmr_bufmgr); |
if(!mgr) |
return NULL; |
mgr->base.destroy = vmw_gmr_bufmgr_destroy; |
mgr->base.create_buffer = vmw_gmr_bufmgr_create_buffer; |
mgr->base.flush = vmw_gmr_bufmgr_flush; |
mgr->vws = vws; |
return &mgr->base; |
} |
boolean |
vmw_gmr_bufmgr_region_ptr(struct pb_buffer *buf, |
struct SVGAGuestPtr *ptr) |
{ |
struct pb_buffer *base_buf; |
unsigned offset = 0; |
struct vmw_gmr_buffer *gmr_buf; |
pb_get_base_buffer( buf, &base_buf, &offset ); |
gmr_buf = vmw_gmr_buffer(base_buf); |
if(!gmr_buf) |
return FALSE; |
*ptr = vmw_ioctl_region_ptr(gmr_buf->region); |
ptr->offset += offset; |
return TRUE; |
} |
/contrib/sdk/sources/Mesa/src/gallium/winsys/svga/drm/vmw_buffer.h |
---|
0,0 → 1,65 |
/********************************************************** |
* Copyright 2009 VMware, Inc. All rights reserved. |
* |
* Permission is hereby granted, free of charge, to any person |
* obtaining a copy of this software and associated documentation |
* files (the "Software"), to deal in the Software without |
* restriction, including without limitation the rights to use, copy, |
* modify, merge, publish, distribute, sublicense, and/or sell copies |
* of the Software, and to permit persons to whom the Software is |
* furnished to do so, subject to the following conditions: |
* |
* The above copyright notice and this permission notice shall be |
* included in all copies or substantial portions of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS |
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
* SOFTWARE. |
* |
**********************************************************/ |
#ifndef VMW_BUFFER_H_ |
#define VMW_BUFFER_H_ |
#include <assert.h> |
#include "pipe/p_compiler.h" |
struct SVGAGuestPtr; |
struct pb_buffer; |
struct pb_manager; |
struct svga_winsys_buffer; |
struct svga_winsys_surface; |
struct vmw_winsys_screen; |
static INLINE struct pb_buffer * |
vmw_pb_buffer(struct svga_winsys_buffer *buffer) |
{ |
assert(buffer); |
return (struct pb_buffer *)buffer; |
} |
static INLINE struct svga_winsys_buffer * |
vmw_svga_winsys_buffer(struct pb_buffer *buffer) |
{ |
assert(buffer); |
return (struct svga_winsys_buffer *)buffer; |
} |
struct pb_manager * |
vmw_gmr_bufmgr_create(struct vmw_winsys_screen *vws); |
boolean |
vmw_gmr_bufmgr_region_ptr(struct pb_buffer *buf, |
struct SVGAGuestPtr *ptr); |
#endif /* VMW_BUFFER_H_ */ |
/contrib/sdk/sources/Mesa/src/gallium/winsys/svga/drm/vmw_context.c |
---|
0,0 → 1,396 |
/********************************************************** |
* Copyright 2009 VMware, Inc. All rights reserved. |
* |
* Permission is hereby granted, free of charge, to any person |
* obtaining a copy of this software and associated documentation |
* files (the "Software"), to deal in the Software without |
* restriction, including without limitation the rights to use, copy, |
* modify, merge, publish, distribute, sublicense, and/or sell copies |
* of the Software, and to permit persons to whom the Software is |
* furnished to do so, subject to the following conditions: |
* |
* The above copyright notice and this permission notice shall be |
* included in all copies or substantial portions of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS |
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
* SOFTWARE. |
* |
**********************************************************/ |
#include "svga_cmd.h" |
#include "util/u_debug.h" |
#include "util/u_memory.h" |
#include "util/u_debug_stack.h" |
#include "pipebuffer/pb_buffer.h" |
#include "pipebuffer/pb_validate.h" |
#include "svga_winsys.h" |
#include "vmw_context.h" |
#include "vmw_screen.h" |
#include "vmw_buffer.h" |
#include "vmw_surface.h" |
#include "vmw_fence.h" |
#define VMW_COMMAND_SIZE (64*1024) |
#define VMW_SURFACE_RELOCS (1024) |
#define VMW_REGION_RELOCS (512) |
#define VMW_MUST_FLUSH_STACK 8 |
struct vmw_region_relocation |
{ |
struct SVGAGuestPtr *where; |
struct pb_buffer *buffer; |
/* TODO: put offset info inside where */ |
uint32 offset; |
}; |
struct vmw_svga_winsys_context |
{ |
struct svga_winsys_context base; |
struct vmw_winsys_screen *vws; |
#ifdef DEBUG |
boolean must_flush; |
struct debug_stack_frame must_flush_stack[VMW_MUST_FLUSH_STACK]; |
#endif |
struct { |
uint8_t buffer[VMW_COMMAND_SIZE]; |
uint32_t size; |
uint32_t used; |
uint32_t reserved; |
} command; |
struct { |
struct vmw_svga_winsys_surface *handles[VMW_SURFACE_RELOCS]; |
uint32_t size; |
uint32_t used; |
uint32_t staged; |
uint32_t reserved; |
} surface; |
struct { |
struct vmw_region_relocation relocs[VMW_REGION_RELOCS]; |
uint32_t size; |
uint32_t used; |
uint32_t staged; |
uint32_t reserved; |
} region; |
struct pb_validate *validate; |
/** |
* The amount of GMR that is referred by the commands currently batched |
* in the context. |
*/ |
uint32_t seen_regions; |
/** |
* Whether this context should fail to reserve more commands, not because it |
* ran out of command space, but because a substantial ammount of GMR was |
* referred. |
*/ |
boolean preemptive_flush; |
}; |
static INLINE struct vmw_svga_winsys_context * |
vmw_svga_winsys_context(struct svga_winsys_context *swc) |
{ |
assert(swc); |
return (struct vmw_svga_winsys_context *)swc; |
} |
static INLINE unsigned |
vmw_translate_to_pb_flags(unsigned flags) |
{ |
unsigned f = 0; |
if (flags & SVGA_RELOC_READ) |
f |= PB_USAGE_GPU_READ; |
if (flags & SVGA_RELOC_WRITE) |
f |= PB_USAGE_GPU_WRITE; |
return f; |
} |
static enum pipe_error |
vmw_swc_flush(struct svga_winsys_context *swc, |
struct pipe_fence_handle **pfence) |
{ |
struct vmw_svga_winsys_context *vswc = vmw_svga_winsys_context(swc); |
struct pipe_fence_handle *fence = NULL; |
unsigned i; |
enum pipe_error ret; |
ret = pb_validate_validate(vswc->validate); |
assert(ret == PIPE_OK); |
if(ret == PIPE_OK) { |
/* Apply relocations */ |
for(i = 0; i < vswc->region.used; ++i) { |
struct vmw_region_relocation *reloc = &vswc->region.relocs[i]; |
struct SVGAGuestPtr ptr; |
if(!vmw_gmr_bufmgr_region_ptr(reloc->buffer, &ptr)) |
assert(0); |
ptr.offset += reloc->offset; |
*reloc->where = ptr; |
} |
if (vswc->command.used || pfence != NULL) |
vmw_ioctl_command(vswc->vws, |
vswc->base.cid, |
0, |
vswc->command.buffer, |
vswc->command.used, |
&fence); |
pb_validate_fence(vswc->validate, fence); |
} |
vswc->command.used = 0; |
vswc->command.reserved = 0; |
for(i = 0; i < vswc->surface.used + vswc->surface.staged; ++i) { |
struct vmw_svga_winsys_surface *vsurf = |
vswc->surface.handles[i]; |
p_atomic_dec(&vsurf->validated); |
vmw_svga_winsys_surface_reference(&vswc->surface.handles[i], NULL); |
} |
vswc->surface.used = 0; |
vswc->surface.reserved = 0; |
for(i = 0; i < vswc->region.used + vswc->region.staged; ++i) { |
pb_reference(&vswc->region.relocs[i].buffer, NULL); |
} |
vswc->region.used = 0; |
vswc->region.reserved = 0; |
#ifdef DEBUG |
vswc->must_flush = FALSE; |
#endif |
vswc->preemptive_flush = FALSE; |
vswc->seen_regions = 0; |
if(pfence) |
vmw_fence_reference(vswc->vws, pfence, fence); |
vmw_fence_reference(vswc->vws, &fence, NULL); |
return ret; |
} |
static void * |
vmw_swc_reserve(struct svga_winsys_context *swc, |
uint32_t nr_bytes, uint32_t nr_relocs ) |
{ |
struct vmw_svga_winsys_context *vswc = vmw_svga_winsys_context(swc); |
#ifdef DEBUG |
/* Check if somebody forgot to check the previous failure */ |
if(vswc->must_flush) { |
debug_printf("Forgot to flush:\n"); |
debug_backtrace_dump(vswc->must_flush_stack, VMW_MUST_FLUSH_STACK); |
assert(!vswc->must_flush); |
} |
#endif |
assert(nr_bytes <= vswc->command.size); |
if(nr_bytes > vswc->command.size) |
return NULL; |
if(vswc->preemptive_flush || |
vswc->command.used + nr_bytes > vswc->command.size || |
vswc->surface.used + nr_relocs > vswc->surface.size || |
vswc->region.used + nr_relocs > vswc->region.size) { |
#ifdef DEBUG |
vswc->must_flush = TRUE; |
debug_backtrace_capture(vswc->must_flush_stack, 1, |
VMW_MUST_FLUSH_STACK); |
#endif |
return NULL; |
} |
assert(vswc->command.used + nr_bytes <= vswc->command.size); |
assert(vswc->surface.used + nr_relocs <= vswc->surface.size); |
assert(vswc->region.used + nr_relocs <= vswc->region.size); |
vswc->command.reserved = nr_bytes; |
vswc->surface.reserved = nr_relocs; |
vswc->surface.staged = 0; |
vswc->region.reserved = nr_relocs; |
vswc->region.staged = 0; |
return vswc->command.buffer + vswc->command.used; |
} |
static void |
vmw_swc_surface_relocation(struct svga_winsys_context *swc, |
uint32 *where, |
struct svga_winsys_surface *surface, |
unsigned flags) |
{ |
struct vmw_svga_winsys_context *vswc = vmw_svga_winsys_context(swc); |
struct vmw_svga_winsys_surface *vsurf; |
if(!surface) { |
*where = SVGA3D_INVALID_ID; |
return; |
} |
assert(vswc->surface.staged < vswc->surface.reserved); |
vsurf = vmw_svga_winsys_surface(surface); |
*where = vsurf->sid; |
vmw_svga_winsys_surface_reference(&vswc->surface.handles[vswc->surface.used + vswc->surface.staged], vsurf); |
p_atomic_inc(&vsurf->validated); |
++vswc->surface.staged; |
} |
static void |
vmw_swc_region_relocation(struct svga_winsys_context *swc, |
struct SVGAGuestPtr *where, |
struct svga_winsys_buffer *buffer, |
uint32 offset, |
unsigned flags) |
{ |
struct vmw_svga_winsys_context *vswc = vmw_svga_winsys_context(swc); |
struct vmw_region_relocation *reloc; |
unsigned translated_flags; |
enum pipe_error ret; |
assert(vswc->region.staged < vswc->region.reserved); |
reloc = &vswc->region.relocs[vswc->region.used + vswc->region.staged]; |
reloc->where = where; |
pb_reference(&reloc->buffer, vmw_pb_buffer(buffer)); |
reloc->offset = offset; |
++vswc->region.staged; |
translated_flags = vmw_translate_to_pb_flags(flags); |
ret = pb_validate_add_buffer(vswc->validate, reloc->buffer, translated_flags); |
/* TODO: Update pipebuffer to reserve buffers and not fail here */ |
assert(ret == PIPE_OK); |
(void)ret; |
/* |
* Flush preemptively the FIFO commands to keep the GMR working set within |
* the GMR pool size. |
* |
* This is necessary for applications like SPECviewperf that generate huge |
* amounts of immediate vertex data, so that we don't pile up too much of |
* that vertex data neither in the guest nor in the host. |
* |
* Note that in the current implementation if a region is referred twice in |
* a command stream, it will be accounted twice. We could detect repeated |
* regions and count only once, but there is no incentive to do that, since |
* regions are typically short-lived; always referred in a single command; |
* and at the worst we just flush the commands a bit sooner, which for the |
* SVGA virtual device it's not a performance issue since flushing commands |
* to the FIFO won't cause flushing in the host. |
*/ |
vswc->seen_regions += reloc->buffer->size; |
if(vswc->seen_regions >= VMW_GMR_POOL_SIZE/3) |
vswc->preemptive_flush = TRUE; |
} |
static void |
vmw_swc_commit(struct svga_winsys_context *swc) |
{ |
struct vmw_svga_winsys_context *vswc = vmw_svga_winsys_context(swc); |
assert(vswc->command.reserved); |
assert(vswc->command.used + vswc->command.reserved <= vswc->command.size); |
vswc->command.used += vswc->command.reserved; |
vswc->command.reserved = 0; |
assert(vswc->surface.staged <= vswc->surface.reserved); |
assert(vswc->surface.used + vswc->surface.staged <= vswc->surface.size); |
vswc->surface.used += vswc->surface.staged; |
vswc->surface.staged = 0; |
vswc->surface.reserved = 0; |
assert(vswc->region.staged <= vswc->region.reserved); |
assert(vswc->region.used + vswc->region.staged <= vswc->region.size); |
vswc->region.used += vswc->region.staged; |
vswc->region.staged = 0; |
vswc->region.reserved = 0; |
} |
static void |
vmw_swc_destroy(struct svga_winsys_context *swc) |
{ |
struct vmw_svga_winsys_context *vswc = vmw_svga_winsys_context(swc); |
unsigned i; |
for(i = 0; i < vswc->region.used; ++i) { |
pb_reference(&vswc->region.relocs[i].buffer, NULL); |
} |
for(i = 0; i < vswc->surface.used; ++i) { |
p_atomic_dec(&vswc->surface.handles[i]->validated); |
vmw_svga_winsys_surface_reference(&vswc->surface.handles[i], NULL); |
} |
pb_validate_destroy(vswc->validate); |
vmw_ioctl_context_destroy(vswc->vws, swc->cid); |
FREE(vswc); |
} |
struct svga_winsys_context * |
vmw_svga_winsys_context_create(struct svga_winsys_screen *sws) |
{ |
struct vmw_winsys_screen *vws = vmw_winsys_screen(sws); |
struct vmw_svga_winsys_context *vswc; |
vswc = CALLOC_STRUCT(vmw_svga_winsys_context); |
if(!vswc) |
return NULL; |
vswc->base.destroy = vmw_swc_destroy; |
vswc->base.reserve = vmw_swc_reserve; |
vswc->base.surface_relocation = vmw_swc_surface_relocation; |
vswc->base.region_relocation = vmw_swc_region_relocation; |
vswc->base.commit = vmw_swc_commit; |
vswc->base.flush = vmw_swc_flush; |
vswc->base.cid = vmw_ioctl_context_create(vws); |
vswc->vws = vws; |
vswc->command.size = VMW_COMMAND_SIZE; |
vswc->surface.size = VMW_SURFACE_RELOCS; |
vswc->region.size = VMW_REGION_RELOCS; |
vswc->validate = pb_validate_create(); |
if(!vswc->validate) { |
FREE(vswc); |
return NULL; |
} |
return &vswc->base; |
} |
/contrib/sdk/sources/Mesa/src/gallium/winsys/svga/drm/vmw_context.h |
---|
0,0 → 1,65 |
/********************************************************** |
* Copyright 2009 VMware, Inc. All rights reserved. |
* |
* Permission is hereby granted, free of charge, to any person |
* obtaining a copy of this software and associated documentation |
* files (the "Software"), to deal in the Software without |
* restriction, including without limitation the rights to use, copy, |
* modify, merge, publish, distribute, sublicense, and/or sell copies |
* of the Software, and to permit persons to whom the Software is |
* furnished to do so, subject to the following conditions: |
* |
* The above copyright notice and this permission notice shall be |
* included in all copies or substantial portions of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS |
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
* SOFTWARE. |
* |
**********************************************************/ |
/** |
* @author Jose Fonseca <jfonseca@vmware.com> |
*/ |
#ifndef VMW_CONTEXT_H_ |
#define VMW_CONTEXT_H_ |
#include <stdio.h> |
#include "pipe/p_compiler.h" |
struct svga_winsys_screen; |
struct svga_winsys_context; |
struct pipe_context; |
struct pipe_screen; |
/** Set to 1 to get extra debug info/output */ |
#define VMW_DEBUG 0 |
#if VMW_DEBUG |
#define vmw_printf debug_printf |
#define VMW_FUNC debug_printf("%s\n", __FUNCTION__) |
#else |
#define VMW_FUNC |
#define vmw_printf(...) |
#endif |
/** |
* Called when an error/failure is encountered. |
* We want these messages reported for all build types. |
*/ |
#define vmw_error(...) fprintf(stderr, "VMware: " __VA_ARGS__) |
struct svga_winsys_context * |
vmw_svga_winsys_context_create(struct svga_winsys_screen *sws); |
#endif /* VMW_CONTEXT_H_ */ |
/contrib/sdk/sources/Mesa/src/gallium/winsys/svga/drm/vmw_fence.c |
---|
0,0 → 1,323 |
/********************************************************** |
* Copyright 2009-2011 VMware, Inc. All rights reserved. |
* |
* Permission is hereby granted, free of charge, to any person |
* obtaining a copy of this software and associated documentation |
* files (the "Software"), to deal in the Software without |
* restriction, including without limitation the rights to use, copy, |
* modify, merge, publish, distribute, sublicense, and/or sell copies |
* of the Software, and to permit persons to whom the Software is |
* furnished to do so, subject to the following conditions: |
* |
* The above copyright notice and this permission notice shall be |
* included in all copies or substantial portions of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS |
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
* SOFTWARE. |
* |
**********************************************************/ |
/* |
* TODO: |
* |
* Fencing is currently a bit inefficient, since we need to call the |
* kernel do determine a fence object signaled status if the fence is not |
* signaled. This can be greatly improved upon by using the fact that the |
* execbuf ioctl returns the last signaled fence seqno, as does the |
* fence signaled ioctl. We should set up a ring of fence objects and |
* walk through them checking for signaled status each time we receive a |
* new passed fence seqno. |
*/ |
#include "util/u_memory.h" |
#include "util/u_atomic.h" |
#include "pipebuffer/pb_buffer_fenced.h" |
#include "vmw_screen.h" |
#include "vmw_fence.h" |
struct vmw_fence_ops |
{ |
struct pb_fence_ops base; |
struct vmw_winsys_screen *vws; |
}; |
struct vmw_fence |
{ |
int32_t refcount; |
uint32_t handle; |
uint32_t mask; |
int32_t signalled; |
}; |
/** |
* vmw_fence - return the vmw_fence object identified by a |
* struct pipe_fence_handle * |
* |
* @fence: The opaque pipe fence handle. |
*/ |
static INLINE struct vmw_fence * |
vmw_fence(struct pipe_fence_handle *fence) |
{ |
return (struct vmw_fence *) fence; |
} |
/** |
* vmw_fence_create - Create a user-space fence object. |
* |
* @handle: Handle identifying the kernel fence object. |
* @mask: Mask of flags that this fence object may signal. |
* |
* Returns NULL on failure. |
*/ |
struct pipe_fence_handle * |
vmw_fence_create(uint32_t handle, uint32_t mask) |
{ |
struct vmw_fence *fence = CALLOC_STRUCT(vmw_fence); |
if (!fence) |
return NULL; |
p_atomic_set(&fence->refcount, 1); |
fence->handle = handle; |
fence->mask = mask; |
p_atomic_set(&fence->signalled, 0); |
return (struct pipe_fence_handle *) fence; |
} |
/** |
* vmw_fence_ops - Return the vmw_fence_ops structure backing a |
* struct pb_fence_ops pointer. |
* |
* @ops: Pointer to a struct pb_fence_ops. |
* |
*/ |
static INLINE struct vmw_fence_ops * |
vmw_fence_ops(struct pb_fence_ops *ops) |
{ |
assert(ops); |
return (struct vmw_fence_ops *)ops; |
} |
/** |
* vmw_fence_reference - Reference / unreference a vmw fence object. |
* |
* @vws: Pointer to the winsys screen. |
* @ptr: Pointer to reference transfer destination. |
* @fence: Pointer to object to reference. May be NULL. |
*/ |
void |
vmw_fence_reference(struct vmw_winsys_screen *vws, |
struct pipe_fence_handle **ptr, |
struct pipe_fence_handle *fence) |
{ |
if (*ptr) { |
struct vmw_fence *vfence = vmw_fence(*ptr); |
if (p_atomic_dec_zero(&vfence->refcount)) { |
vmw_ioctl_fence_unref(vws, vfence->handle); |
FREE(vfence); |
} |
} |
if (fence) { |
struct vmw_fence *vfence = vmw_fence(fence); |
p_atomic_inc(&vfence->refcount); |
} |
*ptr = fence; |
} |
/** |
* vmw_fence_signalled - Check whether a fence object is signalled. |
* |
* @vws: Pointer to the winsys screen. |
* @fence: Handle to the fence object. |
* @flag: Fence flags to check. If the fence object can't signal |
* a flag, it is assumed to be already signaled. |
* |
* Returns 0 if the fence object was signaled, nonzero otherwise. |
*/ |
int |
vmw_fence_signalled(struct vmw_winsys_screen *vws, |
struct pipe_fence_handle *fence, |
unsigned flag) |
{ |
struct vmw_fence *vfence; |
int32_t vflags = SVGA_FENCE_FLAG_EXEC; |
int ret; |
uint32_t old; |
if (!fence) |
return 0; |
vfence = vmw_fence(fence); |
old = p_atomic_read(&vfence->signalled); |
vflags &= ~vfence->mask; |
if ((old & vflags) == vflags) |
return 0; |
ret = vmw_ioctl_fence_signalled(vws, vfence->handle, vflags); |
if (ret == 0) { |
int32_t prev = old; |
do { |
old = prev; |
prev = p_atomic_cmpxchg(&vfence->signalled, old, old | vflags); |
} while (prev != old); |
} |
return ret; |
} |
/** |
* vmw_fence_finish - Wait for a fence object to signal. |
* |
* @vws: Pointer to the winsys screen. |
* @fence: Handle to the fence object. |
* @flag: Fence flags to wait for. If the fence object can't signal |
* a flag, it is assumed to be already signaled. |
* |
* Returns 0 if the wait succeeded. Nonzero otherwise. |
*/ |
int |
vmw_fence_finish(struct vmw_winsys_screen *vws, |
struct pipe_fence_handle *fence, |
unsigned flag) |
{ |
struct vmw_fence *vfence; |
int32_t vflags = SVGA_FENCE_FLAG_EXEC; |
int ret; |
uint32_t old; |
if (!fence) |
return 0; |
vfence = vmw_fence(fence); |
old = p_atomic_read(&vfence->signalled); |
vflags &= ~vfence->mask; |
if ((old & vflags) == vflags) |
return 0; |
ret = vmw_ioctl_fence_finish(vws, vfence->handle, vflags); |
if (ret == 0) { |
int32_t prev = old; |
do { |
old = prev; |
prev = p_atomic_cmpxchg(&vfence->signalled, old, old | vflags); |
} while (prev != old); |
} |
return ret; |
} |
/** |
* vmw_fence_ops_fence_reference - wrapper for the pb_fence_ops api. |
* |
* wrapper around vmw_fence_reference. |
*/ |
static void |
vmw_fence_ops_fence_reference(struct pb_fence_ops *ops, |
struct pipe_fence_handle **ptr, |
struct pipe_fence_handle *fence) |
{ |
struct vmw_winsys_screen *vws = vmw_fence_ops(ops)->vws; |
vmw_fence_reference(vws, ptr, fence); |
} |
/** |
* vmw_fence_ops_fence_signalled - wrapper for the pb_fence_ops api. |
* |
* wrapper around vmw_fence_signalled. |
*/ |
static int |
vmw_fence_ops_fence_signalled(struct pb_fence_ops *ops, |
struct pipe_fence_handle *fence, |
unsigned flag) |
{ |
struct vmw_winsys_screen *vws = vmw_fence_ops(ops)->vws; |
return vmw_fence_signalled(vws, fence, flag); |
} |
/** |
* vmw_fence_ops_fence_finish - wrapper for the pb_fence_ops api. |
* |
* wrapper around vmw_fence_finish. |
*/ |
static int |
vmw_fence_ops_fence_finish(struct pb_fence_ops *ops, |
struct pipe_fence_handle *fence, |
unsigned flag) |
{ |
struct vmw_winsys_screen *vws = vmw_fence_ops(ops)->vws; |
return vmw_fence_finish(vws, fence, flag); |
} |
/** |
* vmw_fence_ops_destroy - Destroy a pb_fence_ops function table. |
* |
* @ops: The function table to destroy. |
* |
* Part of the pb_fence_ops api. |
*/ |
static void |
vmw_fence_ops_destroy(struct pb_fence_ops *ops) |
{ |
FREE(ops); |
} |
/** |
* vmw_fence_ops_create - Create a pb_fence_ops function table. |
* |
* @vws: Pointer to a struct vmw_winsys_screen. |
* |
* Returns a pointer to a pb_fence_ops function table to interface |
* with pipe_buffer. This function is typically called on driver setup. |
* |
* Returns NULL on failure. |
*/ |
struct pb_fence_ops * |
vmw_fence_ops_create(struct vmw_winsys_screen *vws) |
{ |
struct vmw_fence_ops *ops; |
ops = CALLOC_STRUCT(vmw_fence_ops); |
if(!ops) |
return NULL; |
ops->base.destroy = &vmw_fence_ops_destroy; |
ops->base.fence_reference = &vmw_fence_ops_fence_reference; |
ops->base.fence_signalled = &vmw_fence_ops_fence_signalled; |
ops->base.fence_finish = &vmw_fence_ops_fence_finish; |
ops->vws = vws; |
return &ops->base; |
} |
/contrib/sdk/sources/Mesa/src/gallium/winsys/svga/drm/vmw_fence.h |
---|
0,0 → 1,60 |
/********************************************************** |
* Copyright 2009 VMware, Inc. All rights reserved. |
* |
* Permission is hereby granted, free of charge, to any person |
* obtaining a copy of this software and associated documentation |
* files (the "Software"), to deal in the Software without |
* restriction, including without limitation the rights to use, copy, |
* modify, merge, publish, distribute, sublicense, and/or sell copies |
* of the Software, and to permit persons to whom the Software is |
* furnished to do so, subject to the following conditions: |
* |
* The above copyright notice and this permission notice shall be |
* included in all copies or substantial portions of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS |
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
* SOFTWARE. |
* |
**********************************************************/ |
#ifndef VMW_FENCE_H_ |
#define VMW_FENCE_H_ |
#include "pipe/p_compiler.h" |
struct pipe_fence_handle; |
struct pb_fence_ops; |
struct vmw_winsys_screen; |
struct pipe_fence_handle * |
vmw_fence_create(uint32_t handle, uint32_t mask); |
int |
vmw_fence_finish(struct vmw_winsys_screen *vws, |
struct pipe_fence_handle *fence, |
unsigned flag); |
int |
vmw_fence_signalled(struct vmw_winsys_screen *vws, |
struct pipe_fence_handle *fence, |
unsigned flag); |
void |
vmw_fence_reference(struct vmw_winsys_screen *vws, |
struct pipe_fence_handle **ptr, |
struct pipe_fence_handle *fence); |
struct pb_fence_ops * |
vmw_fence_ops_create(struct vmw_winsys_screen *vws); |
#endif /* VMW_FENCE_H_ */ |
/contrib/sdk/sources/Mesa/src/gallium/winsys/svga/drm/vmw_screen.c |
---|
0,0 → 1,75 |
/********************************************************** |
* Copyright 2009 VMware, Inc. All rights reserved. |
* |
* Permission is hereby granted, free of charge, to any person |
* obtaining a copy of this software and associated documentation |
* files (the "Software"), to deal in the Software without |
* restriction, including without limitation the rights to use, copy, |
* modify, merge, publish, distribute, sublicense, and/or sell copies |
* of the Software, and to permit persons to whom the Software is |
* furnished to do so, subject to the following conditions: |
* |
* The above copyright notice and this permission notice shall be |
* included in all copies or substantial portions of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS |
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
* SOFTWARE. |
* |
**********************************************************/ |
#include "vmw_screen.h" |
#include "vmw_context.h" |
#include "util/u_memory.h" |
#include "pipe/p_compiler.h" |
/* Called from vmw_drm_create_screen(), creates and initializes the |
* vmw_winsys_screen structure, which is the main entity in this |
* module. |
*/ |
struct vmw_winsys_screen * |
vmw_winsys_create( int fd, boolean use_old_scanout_flag ) |
{ |
struct vmw_winsys_screen *vws = CALLOC_STRUCT(vmw_winsys_screen); |
if (!vws) |
goto out_no_vws; |
vws->ioctl.drm_fd = fd; |
vws->use_old_scanout_flag = use_old_scanout_flag; |
if (!vmw_ioctl_init(vws)) |
goto out_no_ioctl; |
if(!vmw_pools_init(vws)) |
goto out_no_pools; |
if (!vmw_winsys_screen_init_svga(vws)) |
goto out_no_svga; |
return vws; |
out_no_svga: |
vmw_pools_cleanup(vws); |
out_no_pools: |
vmw_ioctl_cleanup(vws); |
out_no_ioctl: |
FREE(vws); |
out_no_vws: |
return NULL; |
} |
void |
vmw_winsys_destroy(struct vmw_winsys_screen *vws) |
{ |
vmw_pools_cleanup(vws); |
vmw_ioctl_cleanup(vws); |
FREE(vws); |
} |
/contrib/sdk/sources/Mesa/src/gallium/winsys/svga/drm/vmw_screen.h |
---|
0,0 → 1,159 |
/********************************************************** |
* Copyright 2009 VMware, Inc. All rights reserved. |
* |
* Permission is hereby granted, free of charge, to any person |
* obtaining a copy of this software and associated documentation |
* files (the "Software"), to deal in the Software without |
* restriction, including without limitation the rights to use, copy, |
* modify, merge, publish, distribute, sublicense, and/or sell copies |
* of the Software, and to permit persons to whom the Software is |
* furnished to do so, subject to the following conditions: |
* |
* The above copyright notice and this permission notice shall be |
* included in all copies or substantial portions of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS |
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
* SOFTWARE. |
* |
**********************************************************/ |
/** |
* @file |
* Common definitions for the VMware SVGA winsys. |
* |
* @author Jose Fonseca <jfonseca@vmware.com> |
*/ |
#ifndef VMW_SCREEN_H_ |
#define VMW_SCREEN_H_ |
#include "pipe/p_compiler.h" |
#include "pipe/p_state.h" |
#include "svga_winsys.h" |
#define VMW_GMR_POOL_SIZE (16*1024*1024) |
#define VMW_QUERY_POOL_SIZE (8192) |
/* |
* Something big, but arbitrary. The kernel reports an error if it can't |
* handle this, and the svga driver will resort to multiple partial |
* uploads. |
*/ |
#define VMW_MAX_BUFFER_SIZE (512*1024*1024) |
struct pb_manager; |
struct vmw_region; |
struct vmw_winsys_screen |
{ |
struct svga_winsys_screen base; |
boolean use_old_scanout_flag; |
struct { |
int drm_fd; |
uint32_t hwversion; |
uint32_t *buffer; |
} ioctl; |
struct { |
struct pb_manager *gmr; |
struct pb_manager *gmr_mm; |
struct pb_manager *gmr_fenced; |
struct pb_manager *gmr_slab; |
struct pb_manager *gmr_slab_fenced; |
struct pb_manager *query; |
struct pb_manager *query_mm; |
struct pb_manager *query_fenced; |
} pools; |
}; |
static INLINE struct vmw_winsys_screen * |
vmw_winsys_screen(struct svga_winsys_screen *base) |
{ |
return (struct vmw_winsys_screen *)base; |
} |
/* */ |
uint32 |
vmw_ioctl_context_create(struct vmw_winsys_screen *vws); |
void |
vmw_ioctl_context_destroy(struct vmw_winsys_screen *vws, |
uint32 cid); |
uint32 |
vmw_ioctl_surface_create(struct vmw_winsys_screen *vws, |
SVGA3dSurfaceFlags flags, |
SVGA3dSurfaceFormat format, |
SVGA3dSize size, |
uint32 numFaces, |
uint32 numMipLevels); |
void |
vmw_ioctl_surface_destroy(struct vmw_winsys_screen *vws, |
uint32 sid); |
void |
vmw_ioctl_command(struct vmw_winsys_screen *vws, |
int32_t cid, |
uint32_t throttle_us, |
void *commands, |
uint32_t size, |
struct pipe_fence_handle **fence); |
struct vmw_region * |
vmw_ioctl_region_create(struct vmw_winsys_screen *vws, uint32_t size); |
void |
vmw_ioctl_region_destroy(struct vmw_region *region); |
struct SVGAGuestPtr |
vmw_ioctl_region_ptr(struct vmw_region *region); |
void * |
vmw_ioctl_region_map(struct vmw_region *region); |
void |
vmw_ioctl_region_unmap(struct vmw_region *region); |
int |
vmw_ioctl_fence_finish(struct vmw_winsys_screen *vws, |
uint32_t handle, uint32_t flags); |
int |
vmw_ioctl_fence_signalled(struct vmw_winsys_screen *vws, |
uint32_t handle, uint32_t flags); |
void |
vmw_ioctl_fence_unref(struct vmw_winsys_screen *vws, |
uint32_t handle); |
/* Initialize parts of vmw_winsys_screen at startup: |
*/ |
boolean vmw_ioctl_init(struct vmw_winsys_screen *vws); |
boolean vmw_pools_init(struct vmw_winsys_screen *vws); |
boolean vmw_query_pools_init(struct vmw_winsys_screen *vws); |
boolean vmw_winsys_screen_init_svga(struct vmw_winsys_screen *vws); |
void vmw_ioctl_cleanup(struct vmw_winsys_screen *vws); |
void vmw_pools_cleanup(struct vmw_winsys_screen *vws); |
struct vmw_winsys_screen *vmw_winsys_create(int fd, boolean use_old_scanout_flag); |
void vmw_winsys_destroy(struct vmw_winsys_screen *sws); |
void vmw_winsys_screen_set_throttling(struct pipe_screen *screen, |
uint32_t throttle_us); |
#endif /* VMW_SCREEN_H_ */ |
/contrib/sdk/sources/Mesa/src/gallium/winsys/svga/drm/vmw_screen_dri.c |
---|
0,0 → 1,234 |
/********************************************************** |
* Copyright 2009 VMware, Inc. All rights reserved. |
* |
* Permission is hereby granted, free of charge, to any person |
* obtaining a copy of this software and associated documentation |
* files (the "Software"), to deal in the Software without |
* restriction, including without limitation the rights to use, copy, |
* modify, merge, publish, distribute, sublicense, and/or sell copies |
* of the Software, and to permit persons to whom the Software is |
* furnished to do so, subject to the following conditions: |
* |
* The above copyright notice and this permission notice shall be |
* included in all copies or substantial portions of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS |
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
* SOFTWARE. |
* |
**********************************************************/ |
#include "pipe/p_compiler.h" |
#include "util/u_inlines.h" |
#include "util/u_memory.h" |
#include "util/u_format.h" |
#include "vmw_context.h" |
#include "vmw_screen.h" |
#include "vmw_surface.h" |
#include "svga_drm_public.h" |
#include "state_tracker/drm_driver.h" |
#include "vmwgfx_drm.h" |
#include <xf86drm.h> |
#include <stdio.h> |
struct dri1_api_version { |
int major; |
int minor; |
int patch_level; |
}; |
static struct svga_winsys_surface * |
vmw_drm_surface_from_handle(struct svga_winsys_screen *sws, |
struct winsys_handle *whandle, |
SVGA3dSurfaceFormat *format); |
static boolean |
vmw_drm_surface_get_handle(struct svga_winsys_screen *sws, |
struct svga_winsys_surface *surface, |
unsigned stride, |
struct winsys_handle *whandle); |
static struct dri1_api_version drm_required = { 2, 1, 0 }; |
static struct dri1_api_version drm_compat = { 2, 0, 0 }; |
static boolean |
vmw_dri1_check_version(const struct dri1_api_version *cur, |
const struct dri1_api_version *required, |
const struct dri1_api_version *compat, |
const char component[]) |
{ |
if (cur->major > required->major && cur->major <= compat->major) |
return TRUE; |
if (cur->major == required->major && cur->minor >= required->minor) |
return TRUE; |
vmw_error("%s version failure.\n", component); |
vmw_error("%s version is %d.%d.%d and this driver can only work\n" |
"with versions %d.%d.x through %d.x.x.\n", |
component, |
cur->major, cur->minor, cur->patch_level, |
required->major, required->minor, compat->major); |
return FALSE; |
} |
/* This is actually the entrypoint to the entire driver, |
* called by the target bootstrap code. |
*/ |
struct svga_winsys_screen * |
svga_drm_winsys_screen_create(int fd) |
{ |
struct vmw_winsys_screen *vws; |
struct dri1_api_version drm_ver; |
drmVersionPtr ver; |
ver = drmGetVersion(fd); |
if (ver == NULL) |
return NULL; |
drm_ver.major = ver->version_major; |
drm_ver.minor = ver->version_minor; |
drm_ver.patch_level = 0; /* ??? */ |
drmFreeVersion(ver); |
if (!vmw_dri1_check_version(&drm_ver, &drm_required, |
&drm_compat, "vmwgfx drm driver")) |
return NULL; |
vws = vmw_winsys_create( fd, FALSE ); |
if (!vws) |
goto out_no_vws; |
/* XXX do this properly */ |
vws->base.surface_from_handle = vmw_drm_surface_from_handle; |
vws->base.surface_get_handle = vmw_drm_surface_get_handle; |
return &vws->base; |
out_no_vws: |
return NULL; |
} |
static INLINE boolean |
vmw_dri1_intersect_src_bbox(struct drm_clip_rect *dst, |
int dst_x, |
int dst_y, |
const struct drm_clip_rect *src, |
const struct drm_clip_rect *bbox) |
{ |
int xy1; |
int xy2; |
xy1 = ((int)src->x1 > (int)bbox->x1 + dst_x) ? src->x1 : |
(int)bbox->x1 + dst_x; |
xy2 = ((int)src->x2 < (int)bbox->x2 + dst_x) ? src->x2 : |
(int)bbox->x2 + dst_x; |
if (xy1 >= xy2 || xy1 < 0) |
return FALSE; |
dst->x1 = xy1; |
dst->x2 = xy2; |
xy1 = ((int)src->y1 > (int)bbox->y1 + dst_y) ? src->y1 : |
(int)bbox->y1 + dst_y; |
xy2 = ((int)src->y2 < (int)bbox->y2 + dst_y) ? src->y2 : |
(int)bbox->y2 + dst_y; |
if (xy1 >= xy2 || xy1 < 0) |
return FALSE; |
dst->y1 = xy1; |
dst->y2 = xy2; |
return TRUE; |
} |
static struct svga_winsys_surface * |
vmw_drm_surface_from_handle(struct svga_winsys_screen *sws, |
struct winsys_handle *whandle, |
SVGA3dSurfaceFormat *format) |
{ |
struct vmw_svga_winsys_surface *vsrf; |
struct svga_winsys_surface *ssrf; |
struct vmw_winsys_screen *vws = vmw_winsys_screen(sws); |
union drm_vmw_surface_reference_arg arg; |
struct drm_vmw_surface_arg *req = &arg.req; |
struct drm_vmw_surface_create_req *rep = &arg.rep; |
int ret; |
int i; |
/** |
* The vmware device specific handle is the hardware SID. |
* FIXME: We probably want to move this to the ioctl implementations. |
*/ |
memset(&arg, 0, sizeof(arg)); |
req->sid = whandle->handle; |
ret = drmCommandWriteRead(vws->ioctl.drm_fd, DRM_VMW_REF_SURFACE, |
&arg, sizeof(arg)); |
if (ret) { |
vmw_error("Failed referencing shared surface. SID %d.\n" |
"Error %d (%s).\n", |
whandle->handle, ret, strerror(-ret)); |
return NULL; |
} |
if (rep->mip_levels[0] != 1) { |
vmw_error("Incorrect number of mipmap levels on shared surface." |
" SID %d, levels %d\n", |
whandle->handle, rep->mip_levels[0]); |
goto out_mip; |
} |
for (i=1; i < DRM_VMW_MAX_SURFACE_FACES; ++i) { |
if (rep->mip_levels[i] != 0) { |
vmw_error("Incorrect number of faces levels on shared surface." |
" SID %d, face %d present.\n", |
whandle->handle, i); |
goto out_mip; |
} |
} |
vsrf = CALLOC_STRUCT(vmw_svga_winsys_surface); |
if (!vsrf) |
goto out_mip; |
pipe_reference_init(&vsrf->refcnt, 1); |
p_atomic_set(&vsrf->validated, 0); |
vsrf->screen = vws; |
vsrf->sid = whandle->handle; |
ssrf = svga_winsys_surface(vsrf); |
*format = rep->format; |
return ssrf; |
out_mip: |
vmw_ioctl_surface_destroy(vws, whandle->handle); |
return NULL; |
} |
static boolean |
vmw_drm_surface_get_handle(struct svga_winsys_screen *sws, |
struct svga_winsys_surface *surface, |
unsigned stride, |
struct winsys_handle *whandle) |
{ |
struct vmw_svga_winsys_surface *vsrf; |
if (!surface) |
return FALSE; |
vsrf = vmw_svga_winsys_surface(surface); |
whandle->handle = vsrf->sid; |
whandle->stride = stride; |
return TRUE; |
} |
/contrib/sdk/sources/Mesa/src/gallium/winsys/svga/drm/vmw_screen_ioctl.c |
---|
0,0 → 1,504 |
/********************************************************** |
* Copyright 2009 VMware, Inc. All rights reserved. |
* |
* Permission is hereby granted, free of charge, to any person |
* obtaining a copy of this software and associated documentation |
* files (the "Software"), to deal in the Software without |
* restriction, including without limitation the rights to use, copy, |
* modify, merge, publish, distribute, sublicense, and/or sell copies |
* of the Software, and to permit persons to whom the Software is |
* furnished to do so, subject to the following conditions: |
* |
* The above copyright notice and this permission notice shall be |
* included in all copies or substantial portions of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS |
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
* SOFTWARE. |
* |
**********************************************************/ |
/** |
* @file |
* |
* Wrappers for DRM ioctl functionlaity used by the rest of the vmw |
* drm winsys. |
* |
* Based on svgaicd_escape.c |
*/ |
#include "svga_cmd.h" |
#include "util/u_memory.h" |
#include "util/u_math.h" |
#include "svgadump/svga_dump.h" |
#include "vmw_screen.h" |
#include "vmw_context.h" |
#include "vmw_fence.h" |
#include "xf86drm.h" |
#include "vmwgfx_drm.h" |
#include "svga3d_caps.h" |
#include "os/os_mman.h" |
#include <errno.h> |
#include <unistd.h> |
struct vmw_region |
{ |
SVGAGuestPtr ptr; |
uint32_t handle; |
uint64_t map_handle; |
void *data; |
uint32_t map_count; |
int drm_fd; |
uint32_t size; |
}; |
/* XXX: This isn't a real hardware flag, but just a hack for kernel to |
* know about primary surfaces. In newer versions of the kernel |
* interface the driver uses a special field. |
*/ |
#define SVGA3D_SURFACE_HINT_SCANOUT (1 << 9) |
uint32 |
vmw_ioctl_context_create(struct vmw_winsys_screen *vws) |
{ |
struct drm_vmw_context_arg c_arg; |
int ret; |
VMW_FUNC; |
ret = drmCommandRead(vws->ioctl.drm_fd, DRM_VMW_CREATE_CONTEXT, |
&c_arg, sizeof(c_arg)); |
if (ret) |
return -1; |
vmw_printf("Context id is %d\n", c_arg.cid); |
return c_arg.cid; |
} |
void |
vmw_ioctl_context_destroy(struct vmw_winsys_screen *vws, uint32 cid) |
{ |
struct drm_vmw_context_arg c_arg; |
VMW_FUNC; |
memset(&c_arg, 0, sizeof(c_arg)); |
c_arg.cid = cid; |
(void)drmCommandWrite(vws->ioctl.drm_fd, DRM_VMW_UNREF_CONTEXT, |
&c_arg, sizeof(c_arg)); |
} |
uint32 |
vmw_ioctl_surface_create(struct vmw_winsys_screen *vws, |
SVGA3dSurfaceFlags flags, |
SVGA3dSurfaceFormat format, |
SVGA3dSize size, |
uint32_t numFaces, uint32_t numMipLevels) |
{ |
union drm_vmw_surface_create_arg s_arg; |
struct drm_vmw_surface_create_req *req = &s_arg.req; |
struct drm_vmw_surface_arg *rep = &s_arg.rep; |
struct drm_vmw_size sizes[DRM_VMW_MAX_SURFACE_FACES* |
DRM_VMW_MAX_MIP_LEVELS]; |
struct drm_vmw_size *cur_size; |
uint32_t iFace; |
uint32_t iMipLevel; |
int ret; |
vmw_printf("%s flags %d format %d\n", __FUNCTION__, flags, format); |
memset(&s_arg, 0, sizeof(s_arg)); |
if (vws->use_old_scanout_flag && |
(flags & SVGA3D_SURFACE_HINT_SCANOUT)) { |
req->flags = (uint32_t) flags; |
req->scanout = false; |
} else if (flags & SVGA3D_SURFACE_HINT_SCANOUT) { |
req->flags = (uint32_t) (flags & ~SVGA3D_SURFACE_HINT_SCANOUT); |
req->scanout = true; |
} else { |
req->flags = (uint32_t) flags; |
req->scanout = false; |
} |
req->format = (uint32_t) format; |
req->shareable = 1; |
assert(numFaces * numMipLevels < DRM_VMW_MAX_SURFACE_FACES* |
DRM_VMW_MAX_MIP_LEVELS); |
cur_size = sizes; |
for (iFace = 0; iFace < numFaces; ++iFace) { |
SVGA3dSize mipSize = size; |
req->mip_levels[iFace] = numMipLevels; |
for (iMipLevel = 0; iMipLevel < numMipLevels; ++iMipLevel) { |
cur_size->width = mipSize.width; |
cur_size->height = mipSize.height; |
cur_size->depth = mipSize.depth; |
mipSize.width = MAX2(mipSize.width >> 1, 1); |
mipSize.height = MAX2(mipSize.height >> 1, 1); |
mipSize.depth = MAX2(mipSize.depth >> 1, 1); |
cur_size++; |
} |
} |
for (iFace = numFaces; iFace < SVGA3D_MAX_SURFACE_FACES; ++iFace) { |
req->mip_levels[iFace] = 0; |
} |
req->size_addr = (unsigned long)&sizes; |
ret = drmCommandWriteRead(vws->ioctl.drm_fd, DRM_VMW_CREATE_SURFACE, |
&s_arg, sizeof(s_arg)); |
if (ret) |
return -1; |
vmw_printf("Surface id is %d\n", rep->sid); |
return rep->sid; |
} |
void |
vmw_ioctl_surface_destroy(struct vmw_winsys_screen *vws, uint32 sid) |
{ |
struct drm_vmw_surface_arg s_arg; |
VMW_FUNC; |
memset(&s_arg, 0, sizeof(s_arg)); |
s_arg.sid = sid; |
(void)drmCommandWrite(vws->ioctl.drm_fd, DRM_VMW_UNREF_SURFACE, |
&s_arg, sizeof(s_arg)); |
} |
void |
vmw_ioctl_command(struct vmw_winsys_screen *vws, int32_t cid, |
uint32_t throttle_us, void *commands, uint32_t size, |
struct pipe_fence_handle **pfence) |
{ |
struct drm_vmw_execbuf_arg arg; |
struct drm_vmw_fence_rep rep; |
int ret; |
#ifdef DEBUG |
{ |
static boolean firsttime = TRUE; |
static boolean debug = FALSE; |
static boolean skip = FALSE; |
if (firsttime) { |
debug = debug_get_bool_option("SVGA_DUMP_CMD", FALSE); |
skip = debug_get_bool_option("SVGA_SKIP_CMD", FALSE); |
} |
if (debug) { |
VMW_FUNC; |
svga_dump_commands(commands, size); |
} |
firsttime = FALSE; |
if (skip) { |
size = 0; |
} |
} |
#endif |
memset(&arg, 0, sizeof(arg)); |
memset(&rep, 0, sizeof(rep)); |
rep.error = -EFAULT; |
if (pfence) |
arg.fence_rep = (unsigned long)&rep; |
arg.commands = (unsigned long)commands; |
arg.command_size = size; |
arg.throttle_us = throttle_us; |
arg.version = DRM_VMW_EXECBUF_VERSION; |
do { |
ret = drmCommandWrite(vws->ioctl.drm_fd, DRM_VMW_EXECBUF, &arg, sizeof(arg)); |
} while(ret == -ERESTART); |
if (ret) { |
vmw_error("%s error %s.\n", __FUNCTION__, strerror(-ret)); |
} |
if (rep.error) { |
/* |
* Kernel has already synced, or caller requested no fence. |
*/ |
if (pfence) |
*pfence = NULL; |
} else { |
if (pfence) { |
*pfence = vmw_fence_create(rep.handle, rep.mask); |
if (*pfence == NULL) { |
/* |
* Fence creation failed. Need to sync. |
*/ |
(void) vmw_ioctl_fence_finish(vws, rep.handle, rep.mask); |
vmw_ioctl_fence_unref(vws, rep.handle); |
} |
} |
} |
} |
struct vmw_region * |
vmw_ioctl_region_create(struct vmw_winsys_screen *vws, uint32_t size) |
{ |
struct vmw_region *region; |
union drm_vmw_alloc_dmabuf_arg arg; |
struct drm_vmw_alloc_dmabuf_req *req = &arg.req; |
struct drm_vmw_dmabuf_rep *rep = &arg.rep; |
int ret; |
vmw_printf("%s: size = %u\n", __FUNCTION__, size); |
region = CALLOC_STRUCT(vmw_region); |
if (!region) |
goto out_err1; |
memset(&arg, 0, sizeof(arg)); |
req->size = size; |
do { |
ret = drmCommandWriteRead(vws->ioctl.drm_fd, DRM_VMW_ALLOC_DMABUF, &arg, |
sizeof(arg)); |
} while (ret == -ERESTART); |
if (ret) { |
vmw_error("IOCTL failed %d: %s\n", ret, strerror(-ret)); |
goto out_err1; |
} |
region->ptr.gmrId = rep->cur_gmr_id; |
region->ptr.offset = rep->cur_gmr_offset; |
region->data = NULL; |
region->handle = rep->handle; |
region->map_handle = rep->map_handle; |
region->map_count = 0; |
region->size = size; |
region->drm_fd = vws->ioctl.drm_fd; |
vmw_printf(" gmrId = %u, offset = %u\n", |
region->ptr.gmrId, region->ptr.offset); |
return region; |
out_err1: |
FREE(region); |
return NULL; |
} |
void |
vmw_ioctl_region_destroy(struct vmw_region *region) |
{ |
struct drm_vmw_unref_dmabuf_arg arg; |
vmw_printf("%s: gmrId = %u, offset = %u\n", __FUNCTION__, |
region->ptr.gmrId, region->ptr.offset); |
if (region->data) { |
os_munmap(region->data, region->size); |
region->data = NULL; |
} |
memset(&arg, 0, sizeof(arg)); |
arg.handle = region->handle; |
drmCommandWrite(region->drm_fd, DRM_VMW_UNREF_DMABUF, &arg, sizeof(arg)); |
FREE(region); |
} |
SVGAGuestPtr |
vmw_ioctl_region_ptr(struct vmw_region *region) |
{ |
return region->ptr; |
} |
void * |
vmw_ioctl_region_map(struct vmw_region *region) |
{ |
void *map; |
vmw_printf("%s: gmrId = %u, offset = %u\n", __FUNCTION__, |
region->ptr.gmrId, region->ptr.offset); |
if (region->data == NULL) { |
map = os_mmap(NULL, region->size, PROT_READ | PROT_WRITE, MAP_SHARED, |
region->drm_fd, region->map_handle); |
if (map == MAP_FAILED) { |
vmw_error("%s: Map failed.\n", __FUNCTION__); |
return NULL; |
} |
region->data = map; |
} |
++region->map_count; |
return region->data; |
} |
void |
vmw_ioctl_region_unmap(struct vmw_region *region) |
{ |
vmw_printf("%s: gmrId = %u, offset = %u\n", __FUNCTION__, |
region->ptr.gmrId, region->ptr.offset); |
--region->map_count; |
} |
void |
vmw_ioctl_fence_unref(struct vmw_winsys_screen *vws, |
uint32_t handle) |
{ |
struct drm_vmw_fence_arg arg; |
int ret; |
memset(&arg, 0, sizeof(arg)); |
arg.handle = handle; |
ret = drmCommandWrite(vws->ioctl.drm_fd, DRM_VMW_FENCE_UNREF, |
&arg, sizeof(arg)); |
if (ret != 0) |
vmw_error("%s Failed\n", __FUNCTION__); |
} |
static INLINE uint32_t |
vmw_drm_fence_flags(uint32_t flags) |
{ |
uint32_t dflags = 0; |
if (flags & SVGA_FENCE_FLAG_EXEC) |
dflags |= DRM_VMW_FENCE_FLAG_EXEC; |
if (flags & SVGA_FENCE_FLAG_QUERY) |
dflags |= DRM_VMW_FENCE_FLAG_QUERY; |
return dflags; |
} |
int |
vmw_ioctl_fence_signalled(struct vmw_winsys_screen *vws, |
uint32_t handle, |
uint32_t flags) |
{ |
struct drm_vmw_fence_signaled_arg arg; |
uint32_t vflags = vmw_drm_fence_flags(flags); |
int ret; |
memset(&arg, 0, sizeof(arg)); |
arg.handle = handle; |
arg.flags = vflags; |
ret = drmCommandWriteRead(vws->ioctl.drm_fd, DRM_VMW_FENCE_SIGNALED, |
&arg, sizeof(arg)); |
if (ret != 0) |
return ret; |
return (arg.signaled) ? 0 : -1; |
} |
int |
vmw_ioctl_fence_finish(struct vmw_winsys_screen *vws, |
uint32_t handle, |
uint32_t flags) |
{ |
struct drm_vmw_fence_wait_arg arg; |
uint32_t vflags = vmw_drm_fence_flags(flags); |
int ret; |
memset(&arg, 0, sizeof(arg)); |
arg.handle = handle; |
arg.timeout_us = 10*1000000; |
arg.lazy = 0; |
arg.flags = vflags; |
ret = drmCommandWriteRead(vws->ioctl.drm_fd, DRM_VMW_FENCE_WAIT, |
&arg, sizeof(arg)); |
if (ret != 0) |
vmw_error("%s Failed\n", __FUNCTION__); |
return 0; |
} |
boolean |
vmw_ioctl_init(struct vmw_winsys_screen *vws) |
{ |
struct drm_vmw_getparam_arg gp_arg; |
struct drm_vmw_get_3d_cap_arg cap_arg; |
unsigned int size; |
int ret; |
VMW_FUNC; |
memset(&gp_arg, 0, sizeof(gp_arg)); |
gp_arg.param = DRM_VMW_PARAM_3D; |
ret = drmCommandWriteRead(vws->ioctl.drm_fd, DRM_VMW_GET_PARAM, |
&gp_arg, sizeof(gp_arg)); |
if (ret || gp_arg.value == 0) { |
vmw_error("No 3D enabled (%i, %s).\n", ret, strerror(-ret)); |
goto out_no_3d; |
} |
memset(&gp_arg, 0, sizeof(gp_arg)); |
gp_arg.param = DRM_VMW_PARAM_FIFO_HW_VERSION; |
ret = drmCommandWriteRead(vws->ioctl.drm_fd, DRM_VMW_GET_PARAM, |
&gp_arg, sizeof(gp_arg)); |
if (ret) { |
vmw_error("Failed to get fifo hw version (%i, %s).\n", |
ret, strerror(-ret)); |
goto out_no_3d; |
} |
vws->ioctl.hwversion = gp_arg.value; |
size = SVGA_FIFO_3D_CAPS_SIZE * sizeof(uint32_t); |
vws->ioctl.buffer = calloc(1, size); |
if (!vws->ioctl.buffer) { |
debug_printf("Failed alloc fifo 3D caps buffer.\n"); |
goto out_no_3d; |
} |
memset(&cap_arg, 0, sizeof(cap_arg)); |
cap_arg.buffer = (uint64_t) (unsigned long) (vws->ioctl.buffer); |
cap_arg.max_size = size; |
ret = drmCommandWrite(vws->ioctl.drm_fd, DRM_VMW_GET_3D_CAP, |
&cap_arg, sizeof(cap_arg)); |
if (ret) { |
debug_printf("Failed to get 3D capabilities" |
" (%i, %s).\n", ret, strerror(-ret)); |
goto out_no_caps; |
} |
vmw_printf("%s OK\n", __FUNCTION__); |
return TRUE; |
out_no_caps: |
free(vws->ioctl.buffer); |
out_no_3d: |
debug_printf("%s Failed\n", __FUNCTION__); |
return FALSE; |
} |
void |
vmw_ioctl_cleanup(struct vmw_winsys_screen *vws) |
{ |
VMW_FUNC; |
} |
/contrib/sdk/sources/Mesa/src/gallium/winsys/svga/drm/vmw_screen_pools.c |
---|
0,0 → 1,187 |
/********************************************************** |
* Copyright 2009 VMware, Inc. All rights reserved. |
* |
* Permission is hereby granted, free of charge, to any person |
* obtaining a copy of this software and associated documentation |
* files (the "Software"), to deal in the Software without |
* restriction, including without limitation the rights to use, copy, |
* modify, merge, publish, distribute, sublicense, and/or sell copies |
* of the Software, and to permit persons to whom the Software is |
* furnished to do so, subject to the following conditions: |
* |
* The above copyright notice and this permission notice shall be |
* included in all copies or substantial portions of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS |
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
* SOFTWARE. |
* |
**********************************************************/ |
#include "vmw_screen.h" |
#include "vmw_buffer.h" |
#include "vmw_fence.h" |
#include "pipebuffer/pb_buffer.h" |
#include "pipebuffer/pb_bufmgr.h" |
/* |
* TODO: Have the query pool always ask the fence manager for |
* SVGA_FENCE_FLAG_QUERY signaled. Unfortunately, pb_fenced doesn't |
* support that currently, so we'd have to create a separate |
* pb_fence_ops wrapper that does this implicitly. |
*/ |
/** |
* vmw_pools_cleanup - Destroy the buffer pools. |
* |
* @vws: pointer to a struct vmw_winsys_screen. |
*/ |
void |
vmw_pools_cleanup(struct vmw_winsys_screen *vws) |
{ |
if(vws->pools.gmr_fenced) |
vws->pools.gmr_fenced->destroy(vws->pools.gmr_fenced); |
if (vws->pools.query_fenced) |
vws->pools.query_fenced->destroy(vws->pools.query_fenced); |
/* gmr_mm pool is already destroyed above */ |
if (vws->pools.gmr_slab_fenced) |
vws->pools.gmr_slab_fenced->destroy(vws->pools.gmr_slab_fenced); |
if(vws->pools.gmr) |
vws->pools.gmr->destroy(vws->pools.gmr); |
if(vws->pools.query) |
vws->pools.query->destroy(vws->pools.query); |
} |
/** |
* vmw_query_pools_init - Create a pool of query buffers. |
* |
* @vws: Pointer to a struct vmw_winsys_screen. |
* |
* Typically this pool should be created on demand when we |
* detect that the app will be using queries. There's nothing |
* special with this pool other than the backing kernel buffer size, |
* which is limited to 8192. |
*/ |
boolean |
vmw_query_pools_init(struct vmw_winsys_screen *vws) |
{ |
vws->pools.query = vmw_gmr_bufmgr_create(vws); |
if(!vws->pools.query) |
return FALSE; |
vws->pools.query_mm = mm_bufmgr_create(vws->pools.query, |
VMW_QUERY_POOL_SIZE, |
3 /* 8 alignment */); |
if(!vws->pools.query_mm) |
goto out_no_query_mm; |
vws->pools.query_fenced = fenced_bufmgr_create( |
vws->pools.query_mm, |
vmw_fence_ops_create(vws), |
VMW_QUERY_POOL_SIZE, |
~0); |
if(!vws->pools.query_fenced) |
goto out_no_query_fenced; |
return TRUE; |
out_no_query_fenced: |
vws->pools.query_mm->destroy(vws->pools.query_mm); |
out_no_query_mm: |
vws->pools.query->destroy(vws->pools.query); |
return FALSE; |
} |
/** |
* vmw_pools_init - Create a pool of GMR buffers. |
* |
* @vws: Pointer to a struct vmw_winsys_screen. |
*/ |
boolean |
vmw_pools_init(struct vmw_winsys_screen *vws) |
{ |
struct pb_desc desc; |
vws->pools.gmr = vmw_gmr_bufmgr_create(vws); |
if(!vws->pools.gmr) |
goto error; |
vws->pools.gmr_mm = mm_bufmgr_create(vws->pools.gmr, |
VMW_GMR_POOL_SIZE, |
12 /* 4096 alignment */); |
if(!vws->pools.gmr_mm) |
goto error; |
/* |
* We disallow "CPU" buffers to be created by the fenced_bufmgr_create, |
* because that defers "GPU" buffer creation to buffer validation, |
* and at buffer validation we have no means of handling failures |
* due to pools space shortage or fragmentation. Effectively this |
* makes sure all failures are reported immediately on buffer allocation, |
* and we can revert to allocating directly from the kernel. |
*/ |
vws->pools.gmr_fenced = fenced_bufmgr_create( |
vws->pools.gmr_mm, |
vmw_fence_ops_create(vws), |
VMW_GMR_POOL_SIZE, |
0); |
#ifdef DEBUG |
vws->pools.gmr_fenced = pb_debug_manager_create(vws->pools.gmr_fenced, |
4096, |
4096); |
#endif |
if(!vws->pools.gmr_fenced) |
goto error; |
/* |
* The slab pool allocates buffers directly from the kernel except |
* for very small buffers which are allocated from a slab in order |
* not to waste memory, since a kernel buffer is a minimum 4096 bytes. |
* |
* Here we use it only for emergency in the case our pre-allocated |
* buffer pool runs out of memory. |
*/ |
desc.alignment = 64; |
desc.usage = ~0; |
vws->pools.gmr_slab = pb_slab_range_manager_create(vws->pools.gmr, |
64, |
8192, |
16384, |
&desc); |
if (!vws->pools.gmr_slab) |
goto error; |
vws->pools.gmr_slab_fenced = |
fenced_bufmgr_create(vws->pools.gmr_slab, |
vmw_fence_ops_create(vws), |
VMW_MAX_BUFFER_SIZE, |
0); |
if (!vws->pools.gmr_slab_fenced) |
goto error; |
vws->pools.query_fenced = NULL; |
vws->pools.query_mm = NULL; |
vws->pools.query = NULL; |
return TRUE; |
error: |
vmw_pools_cleanup(vws); |
return FALSE; |
} |
/contrib/sdk/sources/Mesa/src/gallium/winsys/svga/drm/vmw_screen_svga.c |
---|
0,0 → 1,316 |
/********************************************************** |
* Copyright 2009 VMware, Inc. All rights reserved. |
* |
* Permission is hereby granted, free of charge, to any person |
* obtaining a copy of this software and associated documentation |
* files (the "Software"), to deal in the Software without |
* restriction, including without limitation the rights to use, copy, |
* modify, merge, publish, distribute, sublicense, and/or sell copies |
* of the Software, and to permit persons to whom the Software is |
* furnished to do so, subject to the following conditions: |
* |
* The above copyright notice and this permission notice shall be |
* included in all copies or substantial portions of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS |
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
* SOFTWARE. |
* |
**********************************************************/ |
/** |
* @file |
* This file implements the SVGA interface into this winsys, defined |
* in drivers/svga/svga_winsys.h. |
* |
* @author Keith Whitwell |
* @author Jose Fonseca |
*/ |
#include "svga_cmd.h" |
#include "svga3d_caps.h" |
#include "util/u_inlines.h" |
#include "util/u_math.h" |
#include "util/u_memory.h" |
#include "pipebuffer/pb_buffer.h" |
#include "pipebuffer/pb_bufmgr.h" |
#include "svga_winsys.h" |
#include "vmw_context.h" |
#include "vmw_screen.h" |
#include "vmw_surface.h" |
#include "vmw_buffer.h" |
#include "vmw_fence.h" |
static struct svga_winsys_buffer * |
vmw_svga_winsys_buffer_create(struct svga_winsys_screen *sws, |
unsigned alignment, |
unsigned usage, |
unsigned size) |
{ |
struct vmw_winsys_screen *vws = vmw_winsys_screen(sws); |
struct pb_desc desc; |
struct pb_manager *provider; |
struct pb_buffer *buffer; |
memset(&desc, 0, sizeof desc); |
desc.alignment = alignment; |
desc.usage = usage; |
if (usage == SVGA_BUFFER_USAGE_PINNED) { |
if (vws->pools.query_fenced == NULL && !vmw_query_pools_init(vws)) |
return NULL; |
provider = vws->pools.query_fenced; |
} else |
provider = vws->pools.gmr_fenced; |
assert(provider); |
buffer = provider->create_buffer(provider, size, &desc); |
if(!buffer && provider == vws->pools.gmr_fenced) { |
assert(provider); |
provider = vws->pools.gmr_slab_fenced; |
buffer = provider->create_buffer(provider, size, &desc); |
} |
if (!buffer) |
return NULL; |
return vmw_svga_winsys_buffer(buffer); |
} |
static void * |
vmw_svga_winsys_buffer_map(struct svga_winsys_screen *sws, |
struct svga_winsys_buffer *buf, |
unsigned flags) |
{ |
(void)sws; |
return pb_map(vmw_pb_buffer(buf), flags, NULL); |
} |
static void |
vmw_svga_winsys_buffer_unmap(struct svga_winsys_screen *sws, |
struct svga_winsys_buffer *buf) |
{ |
(void)sws; |
pb_unmap(vmw_pb_buffer(buf)); |
} |
static void |
vmw_svga_winsys_buffer_destroy(struct svga_winsys_screen *sws, |
struct svga_winsys_buffer *buf) |
{ |
struct pb_buffer *pbuf = vmw_pb_buffer(buf); |
(void)sws; |
pb_reference(&pbuf, NULL); |
} |
static void |
vmw_svga_winsys_fence_reference(struct svga_winsys_screen *sws, |
struct pipe_fence_handle **pdst, |
struct pipe_fence_handle *src) |
{ |
struct vmw_winsys_screen *vws = vmw_winsys_screen(sws); |
vmw_fence_reference(vws, pdst, src); |
} |
static int |
vmw_svga_winsys_fence_signalled(struct svga_winsys_screen *sws, |
struct pipe_fence_handle *fence, |
unsigned flag) |
{ |
struct vmw_winsys_screen *vws = vmw_winsys_screen(sws); |
return vmw_fence_signalled(vws, fence, flag); |
} |
static int |
vmw_svga_winsys_fence_finish(struct svga_winsys_screen *sws, |
struct pipe_fence_handle *fence, |
unsigned flag) |
{ |
struct vmw_winsys_screen *vws = vmw_winsys_screen(sws); |
return vmw_fence_finish(vws, fence, flag); |
} |
static struct svga_winsys_surface * |
vmw_svga_winsys_surface_create(struct svga_winsys_screen *sws, |
SVGA3dSurfaceFlags flags, |
SVGA3dSurfaceFormat format, |
SVGA3dSize size, |
uint32 numFaces, |
uint32 numMipLevels) |
{ |
struct vmw_winsys_screen *vws = vmw_winsys_screen(sws); |
struct vmw_svga_winsys_surface *surface; |
surface = CALLOC_STRUCT(vmw_svga_winsys_surface); |
if(!surface) |
goto no_surface; |
pipe_reference_init(&surface->refcnt, 1); |
p_atomic_set(&surface->validated, 0); |
surface->screen = vws; |
surface->sid = vmw_ioctl_surface_create(vws, |
flags, format, size, |
numFaces, numMipLevels); |
if(surface->sid == SVGA3D_INVALID_ID) |
goto no_sid; |
return svga_winsys_surface(surface); |
no_sid: |
FREE(surface); |
no_surface: |
return NULL; |
} |
static boolean |
vmw_svga_winsys_surface_is_flushed(struct svga_winsys_screen *sws, |
struct svga_winsys_surface *surface) |
{ |
struct vmw_svga_winsys_surface *vsurf = vmw_svga_winsys_surface(surface); |
return (p_atomic_read(&vsurf->validated) == 0); |
} |
static void |
vmw_svga_winsys_surface_ref(struct svga_winsys_screen *sws, |
struct svga_winsys_surface **pDst, |
struct svga_winsys_surface *src) |
{ |
struct vmw_svga_winsys_surface *d_vsurf = vmw_svga_winsys_surface(*pDst); |
struct vmw_svga_winsys_surface *s_vsurf = vmw_svga_winsys_surface(src); |
vmw_svga_winsys_surface_reference(&d_vsurf, s_vsurf); |
*pDst = svga_winsys_surface(d_vsurf); |
} |
static void |
vmw_svga_winsys_destroy(struct svga_winsys_screen *sws) |
{ |
struct vmw_winsys_screen *vws = vmw_winsys_screen(sws); |
vmw_winsys_destroy(vws); |
} |
static SVGA3dHardwareVersion |
vmw_svga_winsys_get_hw_version(struct svga_winsys_screen *sws) |
{ |
struct vmw_winsys_screen *vws = vmw_winsys_screen(sws); |
return (SVGA3dHardwareVersion) vws->ioctl.hwversion; |
} |
static boolean |
vmw_svga_winsys_get_cap(struct svga_winsys_screen *sws, |
SVGA3dDevCapIndex index, |
SVGA3dDevCapResult *result) |
{ |
struct vmw_winsys_screen *vws = vmw_winsys_screen(sws); |
const uint32 *capsBlock; |
const SVGA3dCapsRecord *capsRecord = NULL; |
uint32 offset; |
const SVGA3dCapPair *capArray; |
int numCaps, first, last; |
if(vws->ioctl.hwversion < SVGA3D_HWVERSION_WS6_B1) |
return FALSE; |
/* |
* Search linearly through the caps block records for the specified type. |
*/ |
capsBlock = (const uint32 *)vws->ioctl.buffer; |
for (offset = 0; capsBlock[offset] != 0; offset += capsBlock[offset]) { |
const SVGA3dCapsRecord *record; |
assert(offset < SVGA_FIFO_3D_CAPS_SIZE); |
record = (const SVGA3dCapsRecord *) (capsBlock + offset); |
if ((record->header.type >= SVGA3DCAPS_RECORD_DEVCAPS_MIN) && |
(record->header.type <= SVGA3DCAPS_RECORD_DEVCAPS_MAX) && |
(!capsRecord || (record->header.type > capsRecord->header.type))) { |
capsRecord = record; |
} |
} |
if(!capsRecord) |
return FALSE; |
/* |
* Calculate the number of caps from the size of the record. |
*/ |
capArray = (const SVGA3dCapPair *) capsRecord->data; |
numCaps = (int) ((capsRecord->header.length * sizeof(uint32) - |
sizeof capsRecord->header) / (2 * sizeof(uint32))); |
/* |
* Binary-search for the cap with the specified index. |
*/ |
for (first = 0, last = numCaps - 1; first <= last; ) { |
int mid = (first + last) / 2; |
if ((SVGA3dDevCapIndex) capArray[mid][0] == index) { |
/* |
* Found it. |
*/ |
result->u = capArray[mid][1]; |
return TRUE; |
} |
/* |
* Divide and conquer. |
*/ |
if ((SVGA3dDevCapIndex) capArray[mid][0] > index) { |
last = mid - 1; |
} else { |
first = mid + 1; |
} |
} |
return FALSE; |
} |
boolean |
vmw_winsys_screen_init_svga(struct vmw_winsys_screen *vws) |
{ |
vws->base.destroy = vmw_svga_winsys_destroy; |
vws->base.get_hw_version = vmw_svga_winsys_get_hw_version; |
vws->base.get_cap = vmw_svga_winsys_get_cap; |
vws->base.context_create = vmw_svga_winsys_context_create; |
vws->base.surface_create = vmw_svga_winsys_surface_create; |
vws->base.surface_is_flushed = vmw_svga_winsys_surface_is_flushed; |
vws->base.surface_reference = vmw_svga_winsys_surface_ref; |
vws->base.buffer_create = vmw_svga_winsys_buffer_create; |
vws->base.buffer_map = vmw_svga_winsys_buffer_map; |
vws->base.buffer_unmap = vmw_svga_winsys_buffer_unmap; |
vws->base.buffer_destroy = vmw_svga_winsys_buffer_destroy; |
vws->base.fence_reference = vmw_svga_winsys_fence_reference; |
vws->base.fence_signalled = vmw_svga_winsys_fence_signalled; |
vws->base.fence_finish = vmw_svga_winsys_fence_finish; |
return TRUE; |
} |
/contrib/sdk/sources/Mesa/src/gallium/winsys/svga/drm/vmw_surface.c |
---|
0,0 → 1,61 |
/********************************************************** |
* Copyright 2009 VMware, Inc. All rights reserved. |
* |
* Permission is hereby granted, free of charge, to any person |
* obtaining a copy of this software and associated documentation |
* files (the "Software"), to deal in the Software without |
* restriction, including without limitation the rights to use, copy, |
* modify, merge, publish, distribute, sublicense, and/or sell copies |
* of the Software, and to permit persons to whom the Software is |
* furnished to do so, subject to the following conditions: |
* |
* The above copyright notice and this permission notice shall be |
* included in all copies or substantial portions of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS |
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
* SOFTWARE. |
* |
**********************************************************/ |
#include "svga_cmd.h" |
#include "util/u_debug.h" |
#include "util/u_memory.h" |
#include "vmw_surface.h" |
#include "vmw_screen.h" |
void |
vmw_svga_winsys_surface_reference(struct vmw_svga_winsys_surface **pdst, |
struct vmw_svga_winsys_surface *src) |
{ |
struct pipe_reference *src_ref; |
struct pipe_reference *dst_ref; |
struct vmw_svga_winsys_surface *dst; |
if(pdst == NULL || *pdst == src) |
return; |
dst = *pdst; |
src_ref = src ? &src->refcnt : NULL; |
dst_ref = dst ? &dst->refcnt : NULL; |
if (pipe_reference(dst_ref, src_ref)) { |
vmw_ioctl_surface_destroy(dst->screen, dst->sid); |
#ifdef DEBUG |
/* to detect dangling pointers */ |
assert(p_atomic_read(&dst->validated) == 0); |
dst->sid = SVGA3D_INVALID_ID; |
#endif |
FREE(dst); |
} |
*pdst = src; |
} |
/contrib/sdk/sources/Mesa/src/gallium/winsys/svga/drm/vmw_surface.h |
---|
0,0 → 1,79 |
/********************************************************** |
* Copyright 2009 VMware, Inc. All rights reserved. |
* |
* Permission is hereby granted, free of charge, to any person |
* obtaining a copy of this software and associated documentation |
* files (the "Software"), to deal in the Software without |
* restriction, including without limitation the rights to use, copy, |
* modify, merge, publish, distribute, sublicense, and/or sell copies |
* of the Software, and to permit persons to whom the Software is |
* furnished to do so, subject to the following conditions: |
* |
* The above copyright notice and this permission notice shall be |
* included in all copies or substantial portions of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS |
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
* SOFTWARE. |
* |
**********************************************************/ |
/** |
* @file |
* Surfaces for VMware SVGA winsys. |
* |
* @author Jose Fonseca <jfonseca@vmware.com> |
*/ |
#ifndef VMW_SURFACE_H_ |
#define VMW_SURFACE_H_ |
#include "pipe/p_compiler.h" |
#include "util/u_atomic.h" |
#include "util/u_inlines.h" |
#define VMW_MAX_PRESENTS 3 |
struct vmw_svga_winsys_surface |
{ |
int32_t validated; /* atomic */ |
struct pipe_reference refcnt; |
struct vmw_winsys_screen *screen; |
uint32_t sid; |
/* FIXME: make this thread safe */ |
unsigned next_present_no; |
uint32_t present_fences[VMW_MAX_PRESENTS]; |
}; |
static INLINE struct svga_winsys_surface * |
svga_winsys_surface(struct vmw_svga_winsys_surface *surf) |
{ |
assert(!surf || surf->sid != SVGA3D_INVALID_ID); |
return (struct svga_winsys_surface *)surf; |
} |
static INLINE struct vmw_svga_winsys_surface * |
vmw_svga_winsys_surface(struct svga_winsys_surface *surf) |
{ |
return (struct vmw_svga_winsys_surface *)surf; |
} |
void |
vmw_svga_winsys_surface_reference(struct vmw_svga_winsys_surface **pdst, |
struct vmw_svga_winsys_surface *src); |
#endif /* VMW_SURFACE_H_ */ |
/contrib/sdk/sources/Mesa/src/gallium/winsys/svga/drm/vmwgfx_drm.h |
---|
0,0 → 1,724 |
/************************************************************************** |
* |
* Copyright © 2009 VMware, Inc., Palo Alto, CA., USA |
* All Rights Reserved. |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL |
* THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, |
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR |
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE |
* USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
**************************************************************************/ |
#ifndef __VMWGFX_DRM_H__ |
#define __VMWGFX_DRM_H__ |
#define DRM_VMW_MAX_SURFACE_FACES 6 |
#define DRM_VMW_MAX_MIP_LEVELS 24 |
#define DRM_VMW_GET_PARAM 0 |
#define DRM_VMW_ALLOC_DMABUF 1 |
#define DRM_VMW_UNREF_DMABUF 2 |
#define DRM_VMW_CURSOR_BYPASS 3 |
/* guarded by DRM_VMW_PARAM_NUM_STREAMS != 0*/ |
#define DRM_VMW_CONTROL_STREAM 4 |
#define DRM_VMW_CLAIM_STREAM 5 |
#define DRM_VMW_UNREF_STREAM 6 |
/* guarded by DRM_VMW_PARAM_3D == 1 */ |
#define DRM_VMW_CREATE_CONTEXT 7 |
#define DRM_VMW_UNREF_CONTEXT 8 |
#define DRM_VMW_CREATE_SURFACE 9 |
#define DRM_VMW_UNREF_SURFACE 10 |
#define DRM_VMW_REF_SURFACE 11 |
#define DRM_VMW_EXECBUF 12 |
#define DRM_VMW_GET_3D_CAP 13 |
#define DRM_VMW_FENCE_WAIT 14 |
#define DRM_VMW_FENCE_SIGNALED 15 |
#define DRM_VMW_FENCE_UNREF 16 |
#define DRM_VMW_FENCE_EVENT 17 |
#define DRM_VMW_PRESENT 18 |
#define DRM_VMW_PRESENT_READBACK 19 |
/*************************************************************************/ |
/** |
* DRM_VMW_GET_PARAM - get device information. |
* |
* DRM_VMW_PARAM_FIFO_OFFSET: |
* Offset to use to map the first page of the FIFO read-only. |
* The fifo is mapped using the mmap() system call on the drm device. |
* |
* DRM_VMW_PARAM_OVERLAY_IOCTL: |
* Does the driver support the overlay ioctl. |
*/ |
#define DRM_VMW_PARAM_NUM_STREAMS 0 |
#define DRM_VMW_PARAM_NUM_FREE_STREAMS 1 |
#define DRM_VMW_PARAM_3D 2 |
#define DRM_VMW_PARAM_HW_CAPS 3 |
#define DRM_VMW_PARAM_FIFO_CAPS 4 |
#define DRM_VMW_PARAM_MAX_FB_SIZE 5 |
#define DRM_VMW_PARAM_FIFO_HW_VERSION 6 |
/** |
* struct drm_vmw_getparam_arg |
* |
* @value: Returned value. //Out |
* @param: Parameter to query. //In. |
* |
* Argument to the DRM_VMW_GET_PARAM Ioctl. |
*/ |
struct drm_vmw_getparam_arg { |
uint64_t value; |
uint32_t param; |
uint32_t pad64; |
}; |
/*************************************************************************/ |
/** |
* DRM_VMW_CREATE_CONTEXT - Create a host context. |
* |
* Allocates a device unique context id, and queues a create context command |
* for the host. Does not wait for host completion. |
*/ |
/** |
* struct drm_vmw_context_arg |
* |
* @cid: Device unique context ID. |
* |
* Output argument to the DRM_VMW_CREATE_CONTEXT Ioctl. |
* Input argument to the DRM_VMW_UNREF_CONTEXT Ioctl. |
*/ |
struct drm_vmw_context_arg { |
int32_t cid; |
uint32_t pad64; |
}; |
/*************************************************************************/ |
/** |
* DRM_VMW_UNREF_CONTEXT - Create a host context. |
* |
* Frees a global context id, and queues a destroy host command for the host. |
* Does not wait for host completion. The context ID can be used directly |
* in the command stream and shows up as the same context ID on the host. |
*/ |
/*************************************************************************/ |
/** |
* DRM_VMW_CREATE_SURFACE - Create a host suface. |
* |
* Allocates a device unique surface id, and queues a create surface command |
* for the host. Does not wait for host completion. The surface ID can be |
* used directly in the command stream and shows up as the same surface |
* ID on the host. |
*/ |
/** |
* struct drm_wmv_surface_create_req |
* |
* @flags: Surface flags as understood by the host. |
* @format: Surface format as understood by the host. |
* @mip_levels: Number of mip levels for each face. |
* An unused face should have 0 encoded. |
* @size_addr: Address of a user-space array of sruct drm_vmw_size |
* cast to an uint64_t for 32-64 bit compatibility. |
* The size of the array should equal the total number of mipmap levels. |
* @shareable: Boolean whether other clients (as identified by file descriptors) |
* may reference this surface. |
* @scanout: Boolean whether the surface is intended to be used as a |
* scanout. |
* |
* Input data to the DRM_VMW_CREATE_SURFACE Ioctl. |
* Output data from the DRM_VMW_REF_SURFACE Ioctl. |
*/ |
struct drm_vmw_surface_create_req { |
uint32_t flags; |
uint32_t format; |
uint32_t mip_levels[DRM_VMW_MAX_SURFACE_FACES]; |
uint64_t size_addr; |
int32_t shareable; |
int32_t scanout; |
}; |
/** |
* struct drm_wmv_surface_arg |
* |
* @sid: Surface id of created surface or surface to destroy or reference. |
* |
* Output data from the DRM_VMW_CREATE_SURFACE Ioctl. |
* Input argument to the DRM_VMW_UNREF_SURFACE Ioctl. |
* Input argument to the DRM_VMW_REF_SURFACE Ioctl. |
*/ |
struct drm_vmw_surface_arg { |
int32_t sid; |
uint32_t pad64; |
}; |
/** |
* struct drm_vmw_size ioctl. |
* |
* @width - mip level width |
* @height - mip level height |
* @depth - mip level depth |
* |
* Description of a mip level. |
* Input data to the DRM_WMW_CREATE_SURFACE Ioctl. |
*/ |
struct drm_vmw_size { |
uint32_t width; |
uint32_t height; |
uint32_t depth; |
uint32_t pad64; |
}; |
/** |
* union drm_vmw_surface_create_arg |
* |
* @rep: Output data as described above. |
* @req: Input data as described above. |
* |
* Argument to the DRM_VMW_CREATE_SURFACE Ioctl. |
*/ |
union drm_vmw_surface_create_arg { |
struct drm_vmw_surface_arg rep; |
struct drm_vmw_surface_create_req req; |
}; |
/*************************************************************************/ |
/** |
* DRM_VMW_REF_SURFACE - Reference a host surface. |
* |
* Puts a reference on a host surface with a give sid, as previously |
* returned by the DRM_VMW_CREATE_SURFACE ioctl. |
* A reference will make sure the surface isn't destroyed while we hold |
* it and will allow the calling client to use the surface ID in the command |
* stream. |
* |
* On successful return, the Ioctl returns the surface information given |
* in the DRM_VMW_CREATE_SURFACE ioctl. |
*/ |
/** |
* union drm_vmw_surface_reference_arg |
* |
* @rep: Output data as described above. |
* @req: Input data as described above. |
* |
* Argument to the DRM_VMW_REF_SURFACE Ioctl. |
*/ |
union drm_vmw_surface_reference_arg { |
struct drm_vmw_surface_create_req rep; |
struct drm_vmw_surface_arg req; |
}; |
/*************************************************************************/ |
/** |
* DRM_VMW_UNREF_SURFACE - Unreference a host surface. |
* |
* Clear a reference previously put on a host surface. |
* When all references are gone, including the one implicitly placed |
* on creation, |
* a destroy surface command will be queued for the host. |
* Does not wait for completion. |
*/ |
/*************************************************************************/ |
/** |
* DRM_VMW_EXECBUF |
* |
* Submit a command buffer for execution on the host, and return a |
* fence seqno that when signaled, indicates that the command buffer has |
* executed. |
*/ |
/** |
* struct drm_vmw_execbuf_arg |
* |
* @commands: User-space address of a command buffer cast to an uint64_t. |
* @command-size: Size in bytes of the command buffer. |
* @throttle-us: Sleep until software is less than @throttle_us |
* microseconds ahead of hardware. The driver may round this value |
* to the nearest kernel tick. |
* @fence_rep: User-space address of a struct drm_vmw_fence_rep cast to an |
* uint64_t. |
* @version: Allows expanding the execbuf ioctl parameters without breaking |
* backwards compatibility, since user-space will always tell the kernel |
* which version it uses. |
* @flags: Execbuf flags. None currently. |
* |
* Argument to the DRM_VMW_EXECBUF Ioctl. |
*/ |
#define DRM_VMW_EXECBUF_VERSION 1 |
struct drm_vmw_execbuf_arg { |
uint64_t commands; |
uint32_t command_size; |
uint32_t throttle_us; |
uint64_t fence_rep; |
uint32_t version; |
uint32_t flags; |
}; |
/** |
* struct drm_vmw_fence_rep |
* |
* @handle: Fence object handle for fence associated with a command submission. |
* @mask: Fence flags relevant for this fence object. |
* @seqno: Fence sequence number in fifo. A fence object with a lower |
* seqno will signal the EXEC flag before a fence object with a higher |
* seqno. This can be used by user-space to avoid kernel calls to determine |
* whether a fence has signaled the EXEC flag. Note that @seqno will |
* wrap at 32-bit. |
* @passed_seqno: The highest seqno number processed by the hardware |
* so far. This can be used to mark user-space fence objects as signaled, and |
* to determine whether a fence seqno might be stale. |
* @error: This member should've been set to -EFAULT on submission. |
* The following actions should be take on completion: |
* error == -EFAULT: Fence communication failed. The host is synchronized. |
* Use the last fence id read from the FIFO fence register. |
* error != 0 && error != -EFAULT: |
* Fence submission failed. The host is synchronized. Use the fence_seq member. |
* error == 0: All is OK, The host may not be synchronized. |
* Use the fence_seq member. |
* |
* Input / Output data to the DRM_VMW_EXECBUF Ioctl. |
*/ |
struct drm_vmw_fence_rep { |
uint32_t handle; |
uint32_t mask; |
uint32_t seqno; |
uint32_t passed_seqno; |
uint32_t pad64; |
int32_t error; |
}; |
/*************************************************************************/ |
/** |
* DRM_VMW_ALLOC_DMABUF |
* |
* Allocate a DMA buffer that is visible also to the host. |
* NOTE: The buffer is |
* identified by a handle and an offset, which are private to the guest, but |
* useable in the command stream. The guest kernel may translate these |
* and patch up the command stream accordingly. In the future, the offset may |
* be zero at all times, or it may disappear from the interface before it is |
* fixed. |
* |
* The DMA buffer may stay user-space mapped in the guest at all times, |
* and is thus suitable for sub-allocation. |
* |
* DMA buffers are mapped using the mmap() syscall on the drm device. |
*/ |
/** |
* struct drm_vmw_alloc_dmabuf_req |
* |
* @size: Required minimum size of the buffer. |
* |
* Input data to the DRM_VMW_ALLOC_DMABUF Ioctl. |
*/ |
struct drm_vmw_alloc_dmabuf_req { |
uint32_t size; |
uint32_t pad64; |
}; |
/** |
* struct drm_vmw_dmabuf_rep |
* |
* @map_handle: Offset to use in the mmap() call used to map the buffer. |
* @handle: Handle unique to this buffer. Used for unreferencing. |
* @cur_gmr_id: GMR id to use in the command stream when this buffer is |
* referenced. See not above. |
* @cur_gmr_offset: Offset to use in the command stream when this buffer is |
* referenced. See note above. |
* |
* Output data from the DRM_VMW_ALLOC_DMABUF Ioctl. |
*/ |
struct drm_vmw_dmabuf_rep { |
uint64_t map_handle; |
uint32_t handle; |
uint32_t cur_gmr_id; |
uint32_t cur_gmr_offset; |
uint32_t pad64; |
}; |
/** |
* union drm_vmw_dmabuf_arg |
* |
* @req: Input data as described above. |
* @rep: Output data as described above. |
* |
* Argument to the DRM_VMW_ALLOC_DMABUF Ioctl. |
*/ |
union drm_vmw_alloc_dmabuf_arg { |
struct drm_vmw_alloc_dmabuf_req req; |
struct drm_vmw_dmabuf_rep rep; |
}; |
/*************************************************************************/ |
/** |
* DRM_VMW_UNREF_DMABUF - Free a DMA buffer. |
* |
*/ |
/** |
* struct drm_vmw_unref_dmabuf_arg |
* |
* @handle: Handle indicating what buffer to free. Obtained from the |
* DRM_VMW_ALLOC_DMABUF Ioctl. |
* |
* Argument to the DRM_VMW_UNREF_DMABUF Ioctl. |
*/ |
struct drm_vmw_unref_dmabuf_arg { |
uint32_t handle; |
uint32_t pad64; |
}; |
/*************************************************************************/ |
/** |
* DRM_VMW_CONTROL_STREAM - Control overlays, aka streams. |
* |
* This IOCTL controls the overlay units of the svga device. |
* The SVGA overlay units does not work like regular hardware units in |
* that they do not automaticaly read back the contents of the given dma |
* buffer. But instead only read back for each call to this ioctl, and |
* at any point between this call being made and a following call that |
* either changes the buffer or disables the stream. |
*/ |
/** |
* struct drm_vmw_rect |
* |
* Defines a rectangle. Used in the overlay ioctl to define |
* source and destination rectangle. |
*/ |
struct drm_vmw_rect { |
int32_t x; |
int32_t y; |
uint32_t w; |
uint32_t h; |
}; |
/** |
* struct drm_vmw_control_stream_arg |
* |
* @stream_id: Stearm to control |
* @enabled: If false all following arguments are ignored. |
* @handle: Handle to buffer for getting data from. |
* @format: Format of the overlay as understood by the host. |
* @width: Width of the overlay. |
* @height: Height of the overlay. |
* @size: Size of the overlay in bytes. |
* @pitch: Array of pitches, the two last are only used for YUV12 formats. |
* @offset: Offset from start of dma buffer to overlay. |
* @src: Source rect, must be within the defined area above. |
* @dst: Destination rect, x and y may be negative. |
* |
* Argument to the DRM_VMW_CONTROL_STREAM Ioctl. |
*/ |
struct drm_vmw_control_stream_arg { |
uint32_t stream_id; |
uint32_t enabled; |
uint32_t flags; |
uint32_t color_key; |
uint32_t handle; |
uint32_t offset; |
int32_t format; |
uint32_t size; |
uint32_t width; |
uint32_t height; |
uint32_t pitch[3]; |
uint32_t pad64; |
struct drm_vmw_rect src; |
struct drm_vmw_rect dst; |
}; |
/*************************************************************************/ |
/** |
* DRM_VMW_CURSOR_BYPASS - Give extra information about cursor bypass. |
* |
*/ |
#define DRM_VMW_CURSOR_BYPASS_ALL (1 << 0) |
#define DRM_VMW_CURSOR_BYPASS_FLAGS (1) |
/** |
* struct drm_vmw_cursor_bypass_arg |
* |
* @flags: Flags. |
* @crtc_id: Crtc id, only used if DMR_CURSOR_BYPASS_ALL isn't passed. |
* @xpos: X position of cursor. |
* @ypos: Y position of cursor. |
* @xhot: X hotspot. |
* @yhot: Y hotspot. |
* |
* Argument to the DRM_VMW_CURSOR_BYPASS Ioctl. |
*/ |
struct drm_vmw_cursor_bypass_arg { |
uint32_t flags; |
uint32_t crtc_id; |
int32_t xpos; |
int32_t ypos; |
int32_t xhot; |
int32_t yhot; |
}; |
/*************************************************************************/ |
/** |
* DRM_VMW_CLAIM_STREAM - Claim a single stream. |
*/ |
/** |
* struct drm_vmw_context_arg |
* |
* @stream_id: Device unique context ID. |
* |
* Output argument to the DRM_VMW_CREATE_CONTEXT Ioctl. |
* Input argument to the DRM_VMW_UNREF_CONTEXT Ioctl. |
*/ |
struct drm_vmw_stream_arg { |
uint32_t stream_id; |
uint32_t pad64; |
}; |
/*************************************************************************/ |
/** |
* DRM_VMW_UNREF_STREAM - Unclaim a stream. |
* |
* Return a single stream that was claimed by this process. Also makes |
* sure that the stream has been stopped. |
*/ |
/*************************************************************************/ |
/** |
* DRM_VMW_GET_3D_CAP |
* |
* Read 3D capabilities from the FIFO |
* |
*/ |
/** |
* struct drm_vmw_get_3d_cap_arg |
* |
* @buffer: Pointer to a buffer for capability data, cast to an uint64_t |
* @size: Max size to copy |
* |
* Input argument to the DRM_VMW_GET_3D_CAP_IOCTL |
* ioctls. |
*/ |
struct drm_vmw_get_3d_cap_arg { |
uint64_t buffer; |
uint32_t max_size; |
uint32_t pad64; |
}; |
/*************************************************************************/ |
/** |
* DRM_VMW_FENCE_WAIT |
* |
* Waits for a fence object to signal. The wait is interruptible, so that |
* signals may be delivered during the interrupt. The wait may timeout, |
* in which case the calls returns -EBUSY. If the wait is restarted, |
* that is restarting without resetting @cookie_valid to zero, |
* the timeout is computed from the first call. |
* |
* The flags argument to the DRM_VMW_FENCE_WAIT ioctl indicates what to wait |
* on: |
* DRM_VMW_FENCE_FLAG_EXEC: All commands ahead of the fence in the command |
* stream |
* have executed. |
* DRM_VMW_FENCE_FLAG_QUERY: All query results resulting from query finish |
* commands |
* in the buffer given to the EXECBUF ioctl returning the fence object handle |
* are available to user-space. |
* |
* DRM_VMW_WAIT_OPTION_UNREF: If this wait option is given, and the |
* fenc wait ioctl returns 0, the fence object has been unreferenced after |
* the wait. |
*/ |
#define DRM_VMW_FENCE_FLAG_EXEC (1 << 0) |
#define DRM_VMW_FENCE_FLAG_QUERY (1 << 1) |
#define DRM_VMW_WAIT_OPTION_UNREF (1 << 0) |
/** |
* struct drm_vmw_fence_wait_arg |
* |
* @handle: Fence object handle as returned by the DRM_VMW_EXECBUF ioctl. |
* @cookie_valid: Must be reset to 0 on first call. Left alone on restart. |
* @kernel_cookie: Set to 0 on first call. Left alone on restart. |
* @timeout_us: Wait timeout in microseconds. 0 for indefinite timeout. |
* @lazy: Set to 1 if timing is not critical. Allow more than a kernel tick |
* before returning. |
* @flags: Fence flags to wait on. |
* @wait_options: Options that control the behaviour of the wait ioctl. |
* |
* Input argument to the DRM_VMW_FENCE_WAIT ioctl. |
*/ |
struct drm_vmw_fence_wait_arg { |
uint32_t handle; |
int32_t cookie_valid; |
uint64_t kernel_cookie; |
uint64_t timeout_us; |
int32_t lazy; |
int32_t flags; |
int32_t wait_options; |
int32_t pad64; |
}; |
/*************************************************************************/ |
/** |
* DRM_VMW_FENCE_SIGNALED |
* |
* Checks if a fence object is signaled.. |
*/ |
/** |
* struct drm_vmw_fence_signaled_arg |
* |
* @handle: Fence object handle as returned by the DRM_VMW_EXECBUF ioctl. |
* @flags: Fence object flags input to DRM_VMW_FENCE_SIGNALED ioctl |
* @signaled: Out: Flags signaled. |
* @sequence: Out: Highest sequence passed so far. Can be used to signal the |
* EXEC flag of user-space fence objects. |
* |
* Input/Output argument to the DRM_VMW_FENCE_SIGNALED and DRM_VMW_FENCE_UNREF |
* ioctls. |
*/ |
struct drm_vmw_fence_signaled_arg { |
uint32_t handle; |
uint32_t flags; |
int32_t signaled; |
uint32_t passed_seqno; |
uint32_t signaled_flags; |
uint32_t pad64; |
}; |
/*************************************************************************/ |
/** |
* DRM_VMW_FENCE_UNREF |
* |
* Unreferences a fence object, and causes it to be destroyed if there are no |
* other references to it. |
* |
*/ |
/** |
* struct drm_vmw_fence_arg |
* |
* @handle: Fence object handle as returned by the DRM_VMW_EXECBUF ioctl. |
* |
* Input/Output argument to the DRM_VMW_FENCE_UNREF ioctl.. |
*/ |
struct drm_vmw_fence_arg { |
uint32_t handle; |
uint32_t pad64; |
}; |
/*************************************************************************/ |
/** |
* DRM_VMW_PRESENT |
* |
* Executes an SVGA present on a given fb for a given surface. The surface |
* is placed on the framebuffer. Cliprects are given relative to the given |
* point (the point disignated by dest_{x|y}). |
* |
*/ |
/** |
* struct drm_vmw_present_arg |
* @fb_id: framebuffer id to present / read back from. |
* @sid: Surface id to present from. |
* @dest_x: X placement coordinate for surface. |
* @dest_y: Y placement coordinate for surface. |
* @clips_ptr: Pointer to an array of clip rects cast to an uint64_t. |
* @num_clips: Number of cliprects given relative to the framebuffer origin, |
* in the same coordinate space as the frame buffer. |
* @pad64: Unused 64-bit padding. |
* |
* Input argument to the DRM_VMW_PRESENT ioctl. |
*/ |
struct drm_vmw_present_arg { |
uint32_t fb_id; |
uint32_t sid; |
int32_t dest_x; |
int32_t dest_y; |
uint64_t clips_ptr; |
uint32_t num_clips; |
uint32_t pad64; |
}; |
/*************************************************************************/ |
/** |
* DRM_VMW_PRESENT_READBACK |
* |
* Executes an SVGA present readback from a given fb to the dma buffer |
* currently bound as the fb. If there is no dma buffer bound to the fb, |
* an error will be returned. |
* |
*/ |
/** |
* struct drm_vmw_present_arg |
* @fb_id: fb_id to present / read back from. |
* @num_clips: Number of cliprects. |
* @clips_ptr: Pointer to an array of clip rects cast to an uint64_t. |
* @fence_rep: Pointer to a struct drm_vmw_fence_rep, cast to an uint64_t. |
* If this member is NULL, then the ioctl should not return a fence. |
*/ |
struct drm_vmw_present_readback_arg { |
uint32_t fb_id; |
uint32_t num_clips; |
uint64_t clips_ptr; |
uint64_t fence_rep; |
}; |
#endif |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/android/Android.mk |
---|
0,0 → 1,34 |
# Mesa 3-D graphics library |
# |
# Copyright (C) 2010-2011 Chia-I Wu <olvaffe@gmail.com> |
# Copyright (C) 2010-2011 LunarG Inc. |
# |
# Permission is hereby granted, free of charge, to any person obtaining a |
# copy of this software and associated documentation files (the "Software"), |
# to deal in the Software without restriction, including without limitation |
# the rights to use, copy, modify, merge, publish, distribute, sublicense, |
# and/or sell copies of the Software, and to permit persons to whom the |
# Software is furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice shall be included |
# in all copies or substantial portions of the Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
# DEALINGS IN THE SOFTWARE. |
LOCAL_PATH := $(call my-dir) |
include $(CLEAR_VARS) |
LOCAL_SRC_FILES := \ |
android_sw_winsys.cpp |
LOCAL_MODULE := libmesa_winsys_sw_android |
include $(GALLIUM_COMMON_MK) |
include $(BUILD_STATIC_LIBRARY) |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/android/android_sw_winsys.cpp |
---|
0,0 → 1,263 |
/* |
* Mesa 3-D graphics library |
* |
* Copyright (C) 2010-2011 LunarG Inc. |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the "Software"), |
* to deal in the Software without restriction, including without limitation |
* the rights to use, copy, modify, merge, publish, distribute, sublicense, |
* and/or sell copies of the Software, and to permit persons to whom the |
* Software is furnished to do so, subject to the following conditions: |
* |
* The above copyright notice and this permission notice shall be included |
* in all copies or substantial portions of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
* DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Chia-I Wu <olv@lunarg.com> |
*/ |
#include "pipe/p_compiler.h" |
#include "pipe/p_state.h" |
#include "util/u_memory.h" |
#include "util/u_format.h" |
#include "state_tracker/sw_winsys.h" |
#include <hardware/gralloc.h> |
#include <utils/Errors.h> |
#if ANDROID_VERSION < 0x0300 |
#include <private/ui/sw_gralloc_handle.h> |
#endif |
#include "android_sw_winsys.h" |
struct android_sw_winsys |
{ |
struct sw_winsys base; |
const gralloc_module_t *grmod; |
}; |
struct android_sw_displaytarget |
{ |
buffer_handle_t handle; |
int stride; |
int width, height; |
int usage; /* gralloc usage */ |
void *mapped; |
}; |
static INLINE struct android_sw_winsys * |
android_sw_winsys(struct sw_winsys *ws) |
{ |
return (struct android_sw_winsys *) ws; |
} |
static INLINE struct android_sw_displaytarget * |
android_sw_displaytarget(struct sw_displaytarget *dt) |
{ |
return (struct android_sw_displaytarget *) dt; |
} |
namespace android { |
static void |
android_displaytarget_display(struct sw_winsys *ws, |
struct sw_displaytarget *dt, |
void *context_private) |
{ |
} |
static struct sw_displaytarget * |
android_displaytarget_create(struct sw_winsys *ws, |
unsigned tex_usage, |
enum pipe_format format, |
unsigned width, unsigned height, |
unsigned alignment, |
unsigned *stride) |
{ |
return NULL; |
} |
static void |
android_displaytarget_destroy(struct sw_winsys *ws, |
struct sw_displaytarget *dt) |
{ |
struct android_sw_displaytarget *adt = android_sw_displaytarget(dt); |
assert(!adt->mapped); |
FREE(adt); |
} |
static void |
android_displaytarget_unmap(struct sw_winsys *ws, |
struct sw_displaytarget *dt) |
{ |
struct android_sw_winsys *droid = android_sw_winsys(ws); |
struct android_sw_displaytarget *adt = android_sw_displaytarget(dt); |
#if ANDROID_VERSION < 0x0300 |
/* try sw_gralloc first */ |
if (adt->mapped && sw_gralloc_handle_t::validate(adt->handle) >= 0) { |
adt->mapped = NULL; |
return; |
} |
#endif |
if (adt->mapped) { |
droid->grmod->unlock(droid->grmod, adt->handle); |
adt->mapped = NULL; |
} |
} |
static void * |
android_displaytarget_map(struct sw_winsys *ws, |
struct sw_displaytarget *dt, |
unsigned flags) |
{ |
struct android_sw_winsys *droid = android_sw_winsys(ws); |
struct android_sw_displaytarget *adt = android_sw_displaytarget(dt); |
#if ANDROID_VERSION < 0x0300 |
/* try sw_gralloc first */ |
if (sw_gralloc_handle_t::validate(adt->handle) >= 0) { |
const sw_gralloc_handle_t *swhandle = |
reinterpret_cast<const sw_gralloc_handle_t *>(adt->handle); |
adt->mapped = reinterpret_cast<void *>(swhandle->base); |
return adt->mapped; |
} |
#endif |
if (!adt->mapped) { |
/* lock the buffer for CPU access */ |
droid->grmod->lock(droid->grmod, adt->handle, |
adt->usage, 0, 0, adt->width, adt->height, &adt->mapped); |
} |
return adt->mapped; |
} |
static struct sw_displaytarget * |
android_displaytarget_from_handle(struct sw_winsys *ws, |
const struct pipe_resource *templ, |
struct winsys_handle *whandle, |
unsigned *stride) |
{ |
struct android_winsys_handle *ahandle = |
(struct android_winsys_handle *) whandle; |
struct android_sw_displaytarget *adt; |
adt = CALLOC_STRUCT(android_sw_displaytarget); |
if (!adt) |
return NULL; |
adt->handle = ahandle->handle; |
adt->stride = ahandle->stride; |
adt->width = templ->width0; |
adt->height = templ->height0; |
if (templ->bind & (PIPE_BIND_RENDER_TARGET | PIPE_BIND_TRANSFER_WRITE)) |
adt->usage |= GRALLOC_USAGE_SW_WRITE_OFTEN; |
if (templ->bind & (PIPE_BIND_SAMPLER_VIEW | PIPE_BIND_TRANSFER_READ)) |
adt->usage |= GRALLOC_USAGE_SW_READ_OFTEN; |
if (stride) |
*stride = adt->stride; |
return reinterpret_cast<struct sw_displaytarget *>(adt); |
} |
static boolean |
android_displaytarget_get_handle(struct sw_winsys *ws, |
struct sw_displaytarget *dt, |
struct winsys_handle *whandle) |
{ |
return FALSE; |
} |
static boolean |
android_is_displaytarget_format_supported(struct sw_winsys *ws, |
unsigned tex_usage, |
enum pipe_format format) |
{ |
struct android_sw_winsys *droid = android_sw_winsys(ws); |
int fmt = -1; |
switch (format) { |
case PIPE_FORMAT_R8G8B8A8_UNORM: |
fmt = HAL_PIXEL_FORMAT_RGBA_8888; |
break; |
case PIPE_FORMAT_R8G8B8X8_UNORM: |
fmt = HAL_PIXEL_FORMAT_RGBX_8888; |
break; |
case PIPE_FORMAT_R8G8B8_UNORM: |
fmt = HAL_PIXEL_FORMAT_RGB_888; |
break; |
case PIPE_FORMAT_B5G6R5_UNORM: |
fmt = HAL_PIXEL_FORMAT_RGB_565; |
break; |
case PIPE_FORMAT_B8G8R8A8_UNORM: |
fmt = HAL_PIXEL_FORMAT_BGRA_8888; |
break; |
default: |
break; |
} |
return (fmt != -1); |
} |
static void |
android_destroy(struct sw_winsys *ws) |
{ |
struct android_sw_winsys *droid = android_sw_winsys(ws); |
FREE(droid); |
} |
}; /* namespace android */ |
using namespace android; |
struct sw_winsys * |
android_create_sw_winsys(void) |
{ |
struct android_sw_winsys *droid; |
const hw_module_t *mod; |
droid = CALLOC_STRUCT(android_sw_winsys); |
if (!droid) |
return NULL; |
if (hw_get_module(GRALLOC_HARDWARE_MODULE_ID, &mod)) { |
FREE(droid); |
return NULL; |
} |
droid->grmod = (const gralloc_module_t *) mod; |
droid->base.destroy = android_destroy; |
droid->base.is_displaytarget_format_supported = |
android_is_displaytarget_format_supported; |
droid->base.displaytarget_create = android_displaytarget_create; |
droid->base.displaytarget_destroy = android_displaytarget_destroy; |
droid->base.displaytarget_from_handle = android_displaytarget_from_handle; |
droid->base.displaytarget_get_handle = android_displaytarget_get_handle; |
droid->base.displaytarget_map = android_displaytarget_map; |
droid->base.displaytarget_unmap = android_displaytarget_unmap; |
droid->base.displaytarget_display = android_displaytarget_display; |
return &droid->base; |
} |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/android/android_sw_winsys.h |
---|
0,0 → 1,48 |
/* |
* Mesa 3-D graphics library |
* |
* Copyright (C) 2010-2011 LunarG Inc. |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the "Software"), |
* to deal in the Software without restriction, including without limitation |
* the rights to use, copy, modify, merge, publish, distribute, sublicense, |
* and/or sell copies of the Software, and to permit persons to whom the |
* Software is furnished to do so, subject to the following conditions: |
* |
* The above copyright notice and this permission notice shall be included |
* in all copies or substantial portions of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
* DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Chia-I Wu <olv@lunarg.com> |
*/ |
#ifndef ANDROID_SW_WINSYS |
#define ANDROID_SW_WINSYS |
#include <sys/cdefs.h> |
#include <hardware/gralloc.h> |
__BEGIN_DECLS |
struct sw_winsys; |
struct android_winsys_handle { |
buffer_handle_t handle; |
int stride; |
}; |
struct sw_winsys * |
android_create_sw_winsys(void); |
__END_DECLS |
#endif /* ANDROID_SW_WINSYS */ |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/dri/Makefile.am |
---|
0,0 → 1,30 |
# Copyright © 2012 Intel Corporation |
# |
# Permission is hereby granted, free of charge, to any person obtaining a |
# copy of this software and associated documentation files (the "Software"), |
# to deal in the Software without restriction, including without limitation |
# the rights to use, copy, modify, merge, publish, distribute, sublicense, |
# and/or sell copies of the Software, and to permit persons to whom the |
# Software is furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice (including the next |
# paragraph) shall be included in all copies or substantial portions of the |
# Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
# DEALINGS IN THE SOFTWARE. |
include $(top_srcdir)/src/gallium/Automake.inc |
AM_CPPFLAGS = \ |
$(GALLIUM_CFLAGS) |
noinst_LTLIBRARIES = libswdri.la |
libswdri_la_SOURCES = dri_sw_winsys.c |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/dri/Makefile.in |
---|
0,0 → 1,776 |
# Makefile.in generated by automake 1.14 from Makefile.am. |
# @configure_input@ |
# Copyright (C) 1994-2013 Free Software Foundation, Inc. |
# This Makefile.in is free software; the Free Software Foundation |
# gives unlimited permission to copy and/or distribute it, |
# with or without modifications, as long as this notice is preserved. |
# This program is distributed in the hope that it will be useful, |
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without |
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A |
# PARTICULAR PURPOSE. |
@SET_MAKE@ |
# Copyright © 2012 Intel Corporation |
# |
# Permission is hereby granted, free of charge, to any person obtaining a |
# copy of this software and associated documentation files (the "Software"), |
# to deal in the Software without restriction, including without limitation |
# the rights to use, copy, modify, merge, publish, distribute, sublicense, |
# and/or sell copies of the Software, and to permit persons to whom the |
# Software is furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice (including the next |
# paragraph) shall be included in all copies or substantial portions of the |
# Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
# DEALINGS IN THE SOFTWARE. |
VPATH = @srcdir@ |
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' |
am__make_running_with_option = \ |
case $${target_option-} in \ |
?) ;; \ |
*) echo "am__make_running_with_option: internal error: invalid" \ |
"target option '$${target_option-}' specified" >&2; \ |
exit 1;; \ |
esac; \ |
has_opt=no; \ |
sane_makeflags=$$MAKEFLAGS; \ |
if $(am__is_gnu_make); then \ |
sane_makeflags=$$MFLAGS; \ |
else \ |
case $$MAKEFLAGS in \ |
*\\[\ \ ]*) \ |
bs=\\; \ |
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ |
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ |
esac; \ |
fi; \ |
skip_next=no; \ |
strip_trailopt () \ |
{ \ |
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ |
}; \ |
for flg in $$sane_makeflags; do \ |
test $$skip_next = yes && { skip_next=no; continue; }; \ |
case $$flg in \ |
*=*|--*) continue;; \ |
-*I) strip_trailopt 'I'; skip_next=yes;; \ |
-*I?*) strip_trailopt 'I';; \ |
-*O) strip_trailopt 'O'; skip_next=yes;; \ |
-*O?*) strip_trailopt 'O';; \ |
-*l) strip_trailopt 'l'; skip_next=yes;; \ |
-*l?*) strip_trailopt 'l';; \ |
-[dEDm]) skip_next=yes;; \ |
-[JT]) skip_next=yes;; \ |
esac; \ |
case $$flg in \ |
*$$target_option*) has_opt=yes; break;; \ |
esac; \ |
done; \ |
test $$has_opt = yes |
am__make_dryrun = (target_option=n; $(am__make_running_with_option)) |
am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) |
pkgdatadir = $(datadir)/@PACKAGE@ |
pkgincludedir = $(includedir)/@PACKAGE@ |
pkglibdir = $(libdir)/@PACKAGE@ |
pkglibexecdir = $(libexecdir)/@PACKAGE@ |
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd |
install_sh_DATA = $(install_sh) -c -m 644 |
install_sh_PROGRAM = $(install_sh) -c |
install_sh_SCRIPT = $(install_sh) -c |
INSTALL_HEADER = $(INSTALL_DATA) |
transform = $(program_transform_name) |
NORMAL_INSTALL = : |
PRE_INSTALL = : |
POST_INSTALL = : |
NORMAL_UNINSTALL = : |
PRE_UNINSTALL = : |
POST_UNINSTALL = : |
build_triplet = @build@ |
host_triplet = @host@ |
target_triplet = @target@ |
DIST_COMMON = $(top_srcdir)/src/gallium/Automake.inc \ |
$(srcdir)/Makefile.in $(srcdir)/Makefile.am \ |
$(top_srcdir)/bin/depcomp |
subdir = src/gallium/winsys/sw/dri |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_prog_bison.m4 \ |
$(top_srcdir)/m4/ax_prog_cc_for_build.m4 \ |
$(top_srcdir)/m4/ax_prog_cxx_for_build.m4 \ |
$(top_srcdir)/m4/ax_prog_flex.m4 \ |
$(top_srcdir)/m4/ax_pthread.m4 \ |
$(top_srcdir)/m4/ax_python_module.m4 \ |
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ |
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ |
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac |
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
$(ACLOCAL_M4) |
mkinstalldirs = $(install_sh) -d |
CONFIG_CLEAN_FILES = |
CONFIG_CLEAN_VPATH_FILES = |
LTLIBRARIES = $(noinst_LTLIBRARIES) |
libswdri_la_LIBADD = |
am_libswdri_la_OBJECTS = dri_sw_winsys.lo |
libswdri_la_OBJECTS = $(am_libswdri_la_OBJECTS) |
AM_V_lt = $(am__v_lt_@AM_V@) |
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) |
am__v_lt_0 = --silent |
am__v_lt_1 = |
AM_V_P = $(am__v_P_@AM_V@) |
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) |
am__v_P_0 = false |
am__v_P_1 = : |
AM_V_GEN = $(am__v_GEN_@AM_V@) |
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) |
am__v_GEN_0 = @echo " GEN " $@; |
am__v_GEN_1 = |
AM_V_at = $(am__v_at_@AM_V@) |
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) |
am__v_at_0 = @ |
am__v_at_1 = |
DEFAULT_INCLUDES = -I.@am__isrc@ |
depcomp = $(SHELL) $(top_srcdir)/bin/depcomp |
am__depfiles_maybe = depfiles |
am__mv = mv -f |
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ |
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) |
LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ |
$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ |
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ |
$(AM_CFLAGS) $(CFLAGS) |
AM_V_CC = $(am__v_CC_@AM_V@) |
am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) |
am__v_CC_0 = @echo " CC " $@; |
am__v_CC_1 = |
CCLD = $(CC) |
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ |
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ |
$(AM_LDFLAGS) $(LDFLAGS) -o $@ |
AM_V_CCLD = $(am__v_CCLD_@AM_V@) |
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) |
am__v_CCLD_0 = @echo " CCLD " $@; |
am__v_CCLD_1 = |
SOURCES = $(libswdri_la_SOURCES) |
DIST_SOURCES = $(libswdri_la_SOURCES) |
am__can_run_installinfo = \ |
case $$AM_UPDATE_INFO_DIR in \ |
n|no|NO) false;; \ |
*) (install-info --version) >/dev/null 2>&1;; \ |
esac |
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) |
# Read a list of newline-separated strings from the standard input, |
# and print each of them once, without duplicates. Input order is |
# *not* preserved. |
am__uniquify_input = $(AWK) '\ |
BEGIN { nonempty = 0; } \ |
{ items[$$0] = 1; nonempty = 1; } \ |
END { if (nonempty) { for (i in items) print i; }; } \ |
' |
# Make sure the list of sources is unique. This is necessary because, |
# e.g., the same source file might be shared among _SOURCES variables |
# for different programs/libraries. |
am__define_uniq_tagged_files = \ |
list='$(am__tagged_files)'; \ |
unique=`for i in $$list; do \ |
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ |
done | $(am__uniquify_input)` |
ETAGS = etags |
CTAGS = ctags |
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) |
ACLOCAL = @ACLOCAL@ |
AMTAR = @AMTAR@ |
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ |
AR = @AR@ |
AUTOCONF = @AUTOCONF@ |
AUTOHEADER = @AUTOHEADER@ |
AUTOMAKE = @AUTOMAKE@ |
AWK = @AWK@ |
BUILD_EXEEXT = @BUILD_EXEEXT@ |
BUILD_OBJEXT = @BUILD_OBJEXT@ |
CC = @CC@ |
CCAS = @CCAS@ |
CCASDEPMODE = @CCASDEPMODE@ |
CCASFLAGS = @CCASFLAGS@ |
CCDEPMODE = @CCDEPMODE@ |
CC_FOR_BUILD = @CC_FOR_BUILD@ |
CFLAGS = @CFLAGS@ |
CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ |
CLANG_RESOURCE_DIR = @CLANG_RESOURCE_DIR@ |
CLOCK_LIB = @CLOCK_LIB@ |
CPP = @CPP@ |
CPPFLAGS = @CPPFLAGS@ |
CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@ |
CPP_FOR_BUILD = @CPP_FOR_BUILD@ |
CXX = @CXX@ |
CXXCPP = @CXXCPP@ |
CXXCPPFLAGS_FOR_BUILD = @CXXCPPFLAGS_FOR_BUILD@ |
CXXCPP_FOR_BUILD = @CXXCPP_FOR_BUILD@ |
CXXDEPMODE = @CXXDEPMODE@ |
CXXFLAGS = @CXXFLAGS@ |
CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@ |
CXX_FOR_BUILD = @CXX_FOR_BUILD@ |
CYGPATH_W = @CYGPATH_W@ |
DEFINES = @DEFINES@ |
DEFINES_FOR_BUILD = @DEFINES_FOR_BUILD@ |
DEFS = @DEFS@ |
DEPDIR = @DEPDIR@ |
DLLTOOL = @DLLTOOL@ |
DLOPEN_LIBS = @DLOPEN_LIBS@ |
DRI2PROTO_CFLAGS = @DRI2PROTO_CFLAGS@ |
DRI2PROTO_LIBS = @DRI2PROTO_LIBS@ |
DRIGL_CFLAGS = @DRIGL_CFLAGS@ |
DRIGL_LIBS = @DRIGL_LIBS@ |
DRI_DRIVER_INSTALL_DIR = @DRI_DRIVER_INSTALL_DIR@ |
DRI_DRIVER_SEARCH_DIR = @DRI_DRIVER_SEARCH_DIR@ |
DRI_LIB_DEPS = @DRI_LIB_DEPS@ |
DRI_PC_REQ_PRIV = @DRI_PC_REQ_PRIV@ |
DSYMUTIL = @DSYMUTIL@ |
DUMPBIN = @DUMPBIN@ |
ECHO_C = @ECHO_C@ |
ECHO_N = @ECHO_N@ |
ECHO_T = @ECHO_T@ |
EGL_CFLAGS = @EGL_CFLAGS@ |
EGL_CLIENT_APIS = @EGL_CLIENT_APIS@ |
EGL_DRIVER_INSTALL_DIR = @EGL_DRIVER_INSTALL_DIR@ |
EGL_LIB_DEPS = @EGL_LIB_DEPS@ |
EGL_LIB_GLOB = @EGL_LIB_GLOB@ |
EGL_LIB_NAME = @EGL_LIB_NAME@ |
EGL_NATIVE_PLATFORM = @EGL_NATIVE_PLATFORM@ |
EGL_PLATFORMS = @EGL_PLATFORMS@ |
EGREP = @EGREP@ |
ELF_LIB = @ELF_LIB@ |
EXEEXT = @EXEEXT@ |
EXPAT_INCLUDES = @EXPAT_INCLUDES@ |
FGREP = @FGREP@ |
FREEDRENO_CFLAGS = @FREEDRENO_CFLAGS@ |
FREEDRENO_LIBS = @FREEDRENO_LIBS@ |
GALLIUM_DRI_LIB_DEPS = @GALLIUM_DRI_LIB_DEPS@ |
GALLIUM_PIPE_LOADER_DEFINES = @GALLIUM_PIPE_LOADER_DEFINES@ |
GALLIUM_PIPE_LOADER_LIBS = @GALLIUM_PIPE_LOADER_LIBS@ |
GALLIUM_PIPE_LOADER_XCB_CFLAGS = @GALLIUM_PIPE_LOADER_XCB_CFLAGS@ |
GALLIUM_PIPE_LOADER_XCB_LIBS = @GALLIUM_PIPE_LOADER_XCB_LIBS@ |
GBM_PC_LIB_PRIV = @GBM_PC_LIB_PRIV@ |
GBM_PC_REQ_PRIV = @GBM_PC_REQ_PRIV@ |
GLAPI_LIB_GLOB = @GLAPI_LIB_GLOB@ |
GLAPI_LIB_NAME = @GLAPI_LIB_NAME@ |
GLESv1_CM_LIB_DEPS = @GLESv1_CM_LIB_DEPS@ |
GLESv1_CM_LIB_GLOB = @GLESv1_CM_LIB_GLOB@ |
GLESv1_CM_LIB_NAME = @GLESv1_CM_LIB_NAME@ |
GLESv1_CM_PC_LIB_PRIV = @GLESv1_CM_PC_LIB_PRIV@ |
GLESv2_LIB_DEPS = @GLESv2_LIB_DEPS@ |
GLESv2_LIB_GLOB = @GLESv2_LIB_GLOB@ |
GLESv2_LIB_NAME = @GLESv2_LIB_NAME@ |
GLESv2_PC_LIB_PRIV = @GLESv2_PC_LIB_PRIV@ |
GLPROTO_CFLAGS = @GLPROTO_CFLAGS@ |
GLPROTO_LIBS = @GLPROTO_LIBS@ |
GLX_TLS = @GLX_TLS@ |
GL_LIB = @GL_LIB@ |
GL_LIB_DEPS = @GL_LIB_DEPS@ |
GL_LIB_GLOB = @GL_LIB_GLOB@ |
GL_LIB_NAME = @GL_LIB_NAME@ |
GL_PC_CFLAGS = @GL_PC_CFLAGS@ |
GL_PC_LIB_PRIV = @GL_PC_LIB_PRIV@ |
GL_PC_REQ_PRIV = @GL_PC_REQ_PRIV@ |
GREP = @GREP@ |
HAVE_XF86VIDMODE = @HAVE_XF86VIDMODE@ |
INDENT = @INDENT@ |
INDENT_FLAGS = @INDENT_FLAGS@ |
INSTALL = @INSTALL@ |
INSTALL_DATA = @INSTALL_DATA@ |
INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ |
INTEL_CFLAGS = @INTEL_CFLAGS@ |
INTEL_LIBS = @INTEL_LIBS@ |
LD = @LD@ |
LDFLAGS = @LDFLAGS@ |
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ |
LEX = @LEX@ |
LEXLIB = @LEXLIB@ |
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ |
LIBCLC_INCLUDEDIR = @LIBCLC_INCLUDEDIR@ |
LIBCLC_LIBEXECDIR = @LIBCLC_LIBEXECDIR@ |
LIBDRM_CFLAGS = @LIBDRM_CFLAGS@ |
LIBDRM_LIBS = @LIBDRM_LIBS@ |
LIBDRM_XORG_CFLAGS = @LIBDRM_XORG_CFLAGS@ |
LIBDRM_XORG_LIBS = @LIBDRM_XORG_LIBS@ |
LIBKMS_XORG_CFLAGS = @LIBKMS_XORG_CFLAGS@ |
LIBKMS_XORG_LIBS = @LIBKMS_XORG_LIBS@ |
LIBOBJS = @LIBOBJS@ |
LIBS = @LIBS@ |
LIBTOOL = @LIBTOOL@ |
LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ |
LIBUDEV_LIBS = @LIBUDEV_LIBS@ |
LIB_DIR = @LIB_DIR@ |
LIPO = @LIPO@ |
LLVM_BINDIR = @LLVM_BINDIR@ |
LLVM_CFLAGS = @LLVM_CFLAGS@ |
LLVM_CONFIG = @LLVM_CONFIG@ |
LLVM_CPPFLAGS = @LLVM_CPPFLAGS@ |
LLVM_CXXFLAGS = @LLVM_CXXFLAGS@ |
LLVM_INCLUDEDIR = @LLVM_INCLUDEDIR@ |
LLVM_LDFLAGS = @LLVM_LDFLAGS@ |
LLVM_LIBDIR = @LLVM_LIBDIR@ |
LLVM_LIBS = @LLVM_LIBS@ |
LLVM_VERSION = @LLVM_VERSION@ |
LN_S = @LN_S@ |
LTLIBOBJS = @LTLIBOBJS@ |
MAKE = @MAKE@ |
MAKEINFO = @MAKEINFO@ |
MANIFEST_TOOL = @MANIFEST_TOOL@ |
MESA_LLVM = @MESA_LLVM@ |
MKDIR_P = @MKDIR_P@ |
NM = @NM@ |
NMEDIT = @NMEDIT@ |
NOUVEAU_CFLAGS = @NOUVEAU_CFLAGS@ |
NOUVEAU_LIBS = @NOUVEAU_LIBS@ |
OBJDUMP = @OBJDUMP@ |
OBJEXT = @OBJEXT@ |
OPENCL_LIB_INSTALL_DIR = @OPENCL_LIB_INSTALL_DIR@ |
OSMESA_LIB = @OSMESA_LIB@ |
OSMESA_LIB_DEPS = @OSMESA_LIB_DEPS@ |
OSMESA_LIB_NAME = @OSMESA_LIB_NAME@ |
OSMESA_MESA_DEPS = @OSMESA_MESA_DEPS@ |
OSMESA_PC_LIB_PRIV = @OSMESA_PC_LIB_PRIV@ |
OSMESA_PC_REQ = @OSMESA_PC_REQ@ |
OSMESA_VERSION = @OSMESA_VERSION@ |
OTOOL = @OTOOL@ |
OTOOL64 = @OTOOL64@ |
PACKAGE = @PACKAGE@ |
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ |
PACKAGE_NAME = @PACKAGE_NAME@ |
PACKAGE_STRING = @PACKAGE_STRING@ |
PACKAGE_TARNAME = @PACKAGE_TARNAME@ |
PACKAGE_URL = @PACKAGE_URL@ |
PACKAGE_VERSION = @PACKAGE_VERSION@ |
PATH_SEPARATOR = @PATH_SEPARATOR@ |
PERL = @PERL@ |
PKG_CONFIG = @PKG_CONFIG@ |
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ |
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ |
POSIX_SHELL = @POSIX_SHELL@ |
PTHREAD_CC = @PTHREAD_CC@ |
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ |
PTHREAD_LIBS = @PTHREAD_LIBS@ |
PYTHON2 = @PYTHON2@ |
RADEON_CFLAGS = @RADEON_CFLAGS@ |
RADEON_LIBS = @RADEON_LIBS@ |
RANLIB = @RANLIB@ |
SED = @SED@ |
SELINUX_LIBS = @SELINUX_LIBS@ |
SET_MAKE = @SET_MAKE@ |
SHELL = @SHELL@ |
STRIP = @STRIP@ |
VDPAU_CFLAGS = @VDPAU_CFLAGS@ |
VDPAU_LIBS = @VDPAU_LIBS@ |
VDPAU_LIB_INSTALL_DIR = @VDPAU_LIB_INSTALL_DIR@ |
VDPAU_MAJOR = @VDPAU_MAJOR@ |
VDPAU_MINOR = @VDPAU_MINOR@ |
VERSION = @VERSION@ |
VG_LIB_DEPS = @VG_LIB_DEPS@ |
VG_LIB_GLOB = @VG_LIB_GLOB@ |
VG_LIB_NAME = @VG_LIB_NAME@ |
VG_PC_LIB_PRIV = @VG_PC_LIB_PRIV@ |
VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@ |
VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@ |
WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ |
WAYLAND_LIBS = @WAYLAND_LIBS@ |
WAYLAND_SCANNER = @WAYLAND_SCANNER@ |
X11_INCLUDES = @X11_INCLUDES@ |
XA_MAJOR = @XA_MAJOR@ |
XA_MINOR = @XA_MINOR@ |
XA_TINY = @XA_TINY@ |
XA_VERSION = @XA_VERSION@ |
XCB_DRI2_CFLAGS = @XCB_DRI2_CFLAGS@ |
XCB_DRI2_LIBS = @XCB_DRI2_LIBS@ |
XEXT_CFLAGS = @XEXT_CFLAGS@ |
XEXT_LIBS = @XEXT_LIBS@ |
XF86VIDMODE_CFLAGS = @XF86VIDMODE_CFLAGS@ |
XF86VIDMODE_LIBS = @XF86VIDMODE_LIBS@ |
XLIBGL_CFLAGS = @XLIBGL_CFLAGS@ |
XLIBGL_LIBS = @XLIBGL_LIBS@ |
XORG_CFLAGS = @XORG_CFLAGS@ |
XORG_DRIVER_INSTALL_DIR = @XORG_DRIVER_INSTALL_DIR@ |
XORG_LIBS = @XORG_LIBS@ |
XVMC_CFLAGS = @XVMC_CFLAGS@ |
XVMC_LIBS = @XVMC_LIBS@ |
XVMC_LIB_INSTALL_DIR = @XVMC_LIB_INSTALL_DIR@ |
XVMC_MAJOR = @XVMC_MAJOR@ |
XVMC_MINOR = @XVMC_MINOR@ |
YACC = @YACC@ |
YFLAGS = @YFLAGS@ |
abs_builddir = @abs_builddir@ |
abs_srcdir = @abs_srcdir@ |
abs_top_builddir = @abs_top_builddir@ |
abs_top_srcdir = @abs_top_srcdir@ |
ac_ct_AR = @ac_ct_AR@ |
ac_ct_CC = @ac_ct_CC@ |
ac_ct_CC_FOR_BUILD = @ac_ct_CC_FOR_BUILD@ |
ac_ct_CXX = @ac_ct_CXX@ |
ac_ct_CXX_FOR_BUILD = @ac_ct_CXX_FOR_BUILD@ |
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ |
am__include = @am__include@ |
am__leading_dot = @am__leading_dot@ |
am__quote = @am__quote@ |
am__tar = @am__tar@ |
am__untar = @am__untar@ |
ax_pthread_config = @ax_pthread_config@ |
bindir = @bindir@ |
build = @build@ |
build_alias = @build_alias@ |
build_cpu = @build_cpu@ |
build_os = @build_os@ |
build_vendor = @build_vendor@ |
builddir = @builddir@ |
datadir = @datadir@ |
datarootdir = @datarootdir@ |
docdir = @docdir@ |
dvidir = @dvidir@ |
exec_prefix = @exec_prefix@ |
host = @host@ |
host_alias = @host_alias@ |
host_cpu = @host_cpu@ |
host_os = @host_os@ |
host_vendor = @host_vendor@ |
htmldir = @htmldir@ |
includedir = @includedir@ |
infodir = @infodir@ |
install_sh = @install_sh@ |
libdir = @libdir@ |
libexecdir = @libexecdir@ |
localedir = @localedir@ |
localstatedir = @localstatedir@ |
mandir = @mandir@ |
mkdir_p = @mkdir_p@ |
oldincludedir = @oldincludedir@ |
pdfdir = @pdfdir@ |
prefix = @prefix@ |
program_transform_name = @program_transform_name@ |
psdir = @psdir@ |
sbindir = @sbindir@ |
sharedstatedir = @sharedstatedir@ |
srcdir = @srcdir@ |
sysconfdir = @sysconfdir@ |
target = @target@ |
target_alias = @target_alias@ |
target_cpu = @target_cpu@ |
target_os = @target_os@ |
target_vendor = @target_vendor@ |
top_build_prefix = @top_build_prefix@ |
top_builddir = @top_builddir@ |
top_srcdir = @top_srcdir@ |
GALLIUM_CFLAGS = \ |
-I$(top_srcdir)/include \ |
-I$(top_srcdir)/src/gallium/include \ |
-I$(top_srcdir)/src/gallium/auxiliary \ |
$(DEFINES) |
AM_CPPFLAGS = \ |
$(GALLIUM_CFLAGS) |
noinst_LTLIBRARIES = libswdri.la |
libswdri_la_SOURCES = dri_sw_winsys.c |
all: all-am |
.SUFFIXES: |
.SUFFIXES: .c .lo .o .obj |
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/src/gallium/Automake.inc $(am__configure_deps) |
@for dep in $?; do \ |
case '$(am__configure_deps)' in \ |
*$$dep*) \ |
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ |
&& { if test -f $@; then exit 0; else break; fi; }; \ |
exit 1;; \ |
esac; \ |
done; \ |
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/gallium/winsys/sw/dri/Makefile'; \ |
$(am__cd) $(top_srcdir) && \ |
$(AUTOMAKE) --foreign src/gallium/winsys/sw/dri/Makefile |
.PRECIOUS: Makefile |
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
@case '$?' in \ |
*config.status*) \ |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ |
*) \ |
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ |
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ |
esac; |
$(top_srcdir)/src/gallium/Automake.inc: |
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(top_srcdir)/configure: $(am__configure_deps) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(ACLOCAL_M4): $(am__aclocal_m4_deps) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(am__aclocal_m4_deps): |
clean-noinstLTLIBRARIES: |
-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) |
@list='$(noinst_LTLIBRARIES)'; \ |
locs=`for p in $$list; do echo $$p; done | \ |
sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ |
sort -u`; \ |
test -z "$$locs" || { \ |
echo rm -f $${locs}; \ |
rm -f $${locs}; \ |
} |
libswdri.la: $(libswdri_la_OBJECTS) $(libswdri_la_DEPENDENCIES) $(EXTRA_libswdri_la_DEPENDENCIES) |
$(AM_V_CCLD)$(LINK) $(libswdri_la_OBJECTS) $(libswdri_la_LIBADD) $(LIBS) |
mostlyclean-compile: |
-rm -f *.$(OBJEXT) |
distclean-compile: |
-rm -f *.tab.c |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dri_sw_winsys.Plo@am__quote@ |
.c.o: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< |
.c.obj: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` |
.c.lo: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< |
mostlyclean-libtool: |
-rm -f *.lo |
clean-libtool: |
-rm -rf .libs _libs |
ID: $(am__tagged_files) |
$(am__define_uniq_tagged_files); mkid -fID $$unique |
tags: tags-am |
TAGS: tags |
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
set x; \ |
here=`pwd`; \ |
$(am__define_uniq_tagged_files); \ |
shift; \ |
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ |
test -n "$$unique" || unique=$$empty_fix; \ |
if test $$# -gt 0; then \ |
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
"$$@" $$unique; \ |
else \ |
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
$$unique; \ |
fi; \ |
fi |
ctags: ctags-am |
CTAGS: ctags |
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
$(am__define_uniq_tagged_files); \ |
test -z "$(CTAGS_ARGS)$$unique" \ |
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ |
$$unique |
GTAGS: |
here=`$(am__cd) $(top_builddir) && pwd` \ |
&& $(am__cd) $(top_srcdir) \ |
&& gtags -i $(GTAGS_ARGS) "$$here" |
cscopelist: cscopelist-am |
cscopelist-am: $(am__tagged_files) |
list='$(am__tagged_files)'; \ |
case "$(srcdir)" in \ |
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ |
*) sdir=$(subdir)/$(srcdir) ;; \ |
esac; \ |
for i in $$list; do \ |
if test -f "$$i"; then \ |
echo "$(subdir)/$$i"; \ |
else \ |
echo "$$sdir/$$i"; \ |
fi; \ |
done >> $(top_builddir)/cscope.files |
distclean-tags: |
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |
distdir: $(DISTFILES) |
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
list='$(DISTFILES)'; \ |
dist_files=`for file in $$list; do echo $$file; done | \ |
sed -e "s|^$$srcdirstrip/||;t" \ |
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ |
case $$dist_files in \ |
*/*) $(MKDIR_P) `echo "$$dist_files" | \ |
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ |
sort -u` ;; \ |
esac; \ |
for file in $$dist_files; do \ |
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ |
if test -d $$d/$$file; then \ |
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ |
if test -d "$(distdir)/$$file"; then \ |
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |
fi; \ |
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ |
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ |
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |
fi; \ |
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ |
else \ |
test -f "$(distdir)/$$file" \ |
|| cp -p $$d/$$file "$(distdir)/$$file" \ |
|| exit 1; \ |
fi; \ |
done |
check-am: all-am |
check: check-am |
all-am: Makefile $(LTLIBRARIES) |
installdirs: |
install: install-am |
install-exec: install-exec-am |
install-data: install-data-am |
uninstall: uninstall-am |
install-am: all-am |
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am |
installcheck: installcheck-am |
install-strip: |
if test -z '$(STRIP)'; then \ |
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |
install; \ |
else \ |
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ |
fi |
mostlyclean-generic: |
clean-generic: |
distclean-generic: |
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) |
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) |
maintainer-clean-generic: |
@echo "This command is intended for maintainers to use" |
@echo "it deletes files that may require special tools to rebuild." |
clean: clean-am |
clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ |
mostlyclean-am |
distclean: distclean-am |
-rm -rf ./$(DEPDIR) |
-rm -f Makefile |
distclean-am: clean-am distclean-compile distclean-generic \ |
distclean-tags |
dvi: dvi-am |
dvi-am: |
html: html-am |
html-am: |
info: info-am |
info-am: |
install-data-am: |
install-dvi: install-dvi-am |
install-dvi-am: |
install-exec-am: |
install-html: install-html-am |
install-html-am: |
install-info: install-info-am |
install-info-am: |
install-man: |
install-pdf: install-pdf-am |
install-pdf-am: |
install-ps: install-ps-am |
install-ps-am: |
installcheck-am: |
maintainer-clean: maintainer-clean-am |
-rm -rf ./$(DEPDIR) |
-rm -f Makefile |
maintainer-clean-am: distclean-am maintainer-clean-generic |
mostlyclean: mostlyclean-am |
mostlyclean-am: mostlyclean-compile mostlyclean-generic \ |
mostlyclean-libtool |
pdf: pdf-am |
pdf-am: |
ps: ps-am |
ps-am: |
uninstall-am: |
.MAKE: install-am install-strip |
.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ |
clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ |
ctags-am distclean distclean-compile distclean-generic \ |
distclean-libtool distclean-tags distdir dvi dvi-am html \ |
html-am info info-am install install-am install-data \ |
install-data-am install-dvi install-dvi-am install-exec \ |
install-exec-am install-html install-html-am install-info \ |
install-info-am install-man install-pdf install-pdf-am \ |
install-ps install-ps-am install-strip installcheck \ |
installcheck-am installdirs maintainer-clean \ |
maintainer-clean-generic mostlyclean mostlyclean-compile \ |
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ |
tags tags-am uninstall uninstall-am |
# Tell versions [3.59,3.63) of GNU make to not export all variables. |
# Otherwise a system limit (for SysV at least) may be exceeded. |
.NOEXPORT: |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/dri/SConscript |
---|
0,0 → 1,23 |
####################################################################### |
# SConscript for xlib winsys |
Import('*') |
if env['platform'] in ('linux', 'sunos'): |
env = env.Clone() |
env.Append(CPPPATH = [ |
'#/src/gallium/include', |
'#/src/gallium/auxiliary', |
'#/src/gallium/drivers', |
]) |
ws_dri = env.ConvenienceLibrary( |
target = 'ws_dri', |
source = [ |
'dri_sw_winsys.c', |
] |
) |
Export('ws_dri') |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/dri/dri_sw_winsys.c |
---|
0,0 → 1,223 |
/************************************************************************** |
* |
* Copyright 2009, VMware, Inc. |
* All Rights Reserved. |
* Copyright 2010 George Sapountzis <gsapountzis@gmail.com> |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
**************************************************************************/ |
#include "pipe/p_compiler.h" |
#include "pipe/p_format.h" |
#include "util/u_inlines.h" |
#include "util/u_format.h" |
#include "util/u_math.h" |
#include "util/u_memory.h" |
#include "state_tracker/sw_winsys.h" |
#include "dri_sw_winsys.h" |
struct dri_sw_displaytarget |
{ |
enum pipe_format format; |
unsigned width; |
unsigned height; |
unsigned stride; |
void *data; |
void *mapped; |
}; |
struct dri_sw_winsys |
{ |
struct sw_winsys base; |
struct drisw_loader_funcs *lf; |
}; |
static INLINE struct dri_sw_displaytarget * |
dri_sw_displaytarget( struct sw_displaytarget *dt ) |
{ |
return (struct dri_sw_displaytarget *)dt; |
} |
static INLINE struct dri_sw_winsys * |
dri_sw_winsys( struct sw_winsys *ws ) |
{ |
return (struct dri_sw_winsys *)ws; |
} |
static boolean |
dri_sw_is_displaytarget_format_supported( struct sw_winsys *ws, |
unsigned tex_usage, |
enum pipe_format format ) |
{ |
/* TODO: check visuals or other sensible thing here */ |
return TRUE; |
} |
static struct sw_displaytarget * |
dri_sw_displaytarget_create(struct sw_winsys *winsys, |
unsigned tex_usage, |
enum pipe_format format, |
unsigned width, unsigned height, |
unsigned alignment, |
unsigned *stride) |
{ |
struct dri_sw_displaytarget *dri_sw_dt; |
unsigned nblocksy, size, format_stride; |
dri_sw_dt = CALLOC_STRUCT(dri_sw_displaytarget); |
if(!dri_sw_dt) |
goto no_dt; |
dri_sw_dt->format = format; |
dri_sw_dt->width = width; |
dri_sw_dt->height = height; |
format_stride = util_format_get_stride(format, width); |
dri_sw_dt->stride = align(format_stride, alignment); |
nblocksy = util_format_get_nblocksy(format, height); |
size = dri_sw_dt->stride * nblocksy; |
dri_sw_dt->data = align_malloc(size, alignment); |
if(!dri_sw_dt->data) |
goto no_data; |
*stride = dri_sw_dt->stride; |
return (struct sw_displaytarget *)dri_sw_dt; |
no_data: |
FREE(dri_sw_dt); |
no_dt: |
return NULL; |
} |
static void |
dri_sw_displaytarget_destroy(struct sw_winsys *ws, |
struct sw_displaytarget *dt) |
{ |
struct dri_sw_displaytarget *dri_sw_dt = dri_sw_displaytarget(dt); |
FREE(dri_sw_dt->data); |
FREE(dri_sw_dt); |
} |
static void * |
dri_sw_displaytarget_map(struct sw_winsys *ws, |
struct sw_displaytarget *dt, |
unsigned flags) |
{ |
struct dri_sw_displaytarget *dri_sw_dt = dri_sw_displaytarget(dt); |
dri_sw_dt->mapped = dri_sw_dt->data; |
return dri_sw_dt->mapped; |
} |
static void |
dri_sw_displaytarget_unmap(struct sw_winsys *ws, |
struct sw_displaytarget *dt) |
{ |
struct dri_sw_displaytarget *dri_sw_dt = dri_sw_displaytarget(dt); |
dri_sw_dt->mapped = NULL; |
} |
static struct sw_displaytarget * |
dri_sw_displaytarget_from_handle(struct sw_winsys *winsys, |
const struct pipe_resource *templ, |
struct winsys_handle *whandle, |
unsigned *stride) |
{ |
assert(0); |
return NULL; |
} |
static boolean |
dri_sw_displaytarget_get_handle(struct sw_winsys *winsys, |
struct sw_displaytarget *dt, |
struct winsys_handle *whandle) |
{ |
assert(0); |
return FALSE; |
} |
static void |
dri_sw_displaytarget_display(struct sw_winsys *ws, |
struct sw_displaytarget *dt, |
void *context_private) |
{ |
struct dri_sw_winsys *dri_sw_ws = dri_sw_winsys(ws); |
struct dri_sw_displaytarget *dri_sw_dt = dri_sw_displaytarget(dt); |
struct dri_drawable *dri_drawable = (struct dri_drawable *)context_private; |
unsigned width, height; |
/* Set the width to 'stride / cpp'. |
* |
* PutImage correctly clips to the width of the dst drawable. |
*/ |
width = dri_sw_dt->stride / util_format_get_blocksize(dri_sw_dt->format); |
height = dri_sw_dt->height; |
dri_sw_ws->lf->put_image(dri_drawable, dri_sw_dt->data, width, height); |
} |
static void |
dri_destroy_sw_winsys(struct sw_winsys *winsys) |
{ |
FREE(winsys); |
} |
struct sw_winsys * |
dri_create_sw_winsys(struct drisw_loader_funcs *lf) |
{ |
struct dri_sw_winsys *ws; |
ws = CALLOC_STRUCT(dri_sw_winsys); |
if (!ws) |
return NULL; |
ws->lf = lf; |
ws->base.destroy = dri_destroy_sw_winsys; |
ws->base.is_displaytarget_format_supported = dri_sw_is_displaytarget_format_supported; |
/* screen texture functions */ |
ws->base.displaytarget_create = dri_sw_displaytarget_create; |
ws->base.displaytarget_destroy = dri_sw_displaytarget_destroy; |
ws->base.displaytarget_from_handle = dri_sw_displaytarget_from_handle; |
ws->base.displaytarget_get_handle = dri_sw_displaytarget_get_handle; |
/* texture functions */ |
ws->base.displaytarget_map = dri_sw_displaytarget_map; |
ws->base.displaytarget_unmap = dri_sw_displaytarget_unmap; |
ws->base.displaytarget_display = dri_sw_displaytarget_display; |
return &ws->base; |
} |
/* vim: set sw=3 ts=8 sts=3 expandtab: */ |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/dri/dri_sw_winsys.h |
---|
0,0 → 1,38 |
/************************************************************************** |
* |
* Copyright 2009, VMware, Inc. |
* All Rights Reserved. |
* Copyright 2010 George Sapountzis <gsapountzis@gmail.com> |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
**************************************************************************/ |
#ifndef DRI_SW_WINSYS |
#define DRI_SW_WINSYS |
#include "state_tracker/drisw_api.h" |
struct sw_winsys; |
struct sw_winsys *dri_create_sw_winsys(struct drisw_loader_funcs *lf); |
#endif |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/fbdev/Makefile.am |
---|
0,0 → 1,30 |
# Copyright © 2012 Intel Corporation |
# |
# Permission is hereby granted, free of charge, to any person obtaining a |
# copy of this software and associated documentation files (the "Software"), |
# to deal in the Software without restriction, including without limitation |
# the rights to use, copy, modify, merge, publish, distribute, sublicense, |
# and/or sell copies of the Software, and to permit persons to whom the |
# Software is furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice (including the next |
# paragraph) shall be included in all copies or substantial portions of the |
# Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
# DEALINGS IN THE SOFTWARE. |
include $(top_srcdir)/src/gallium/Automake.inc |
AM_CPPFLAGS = \ |
$(GALLIUM_CFLAGS) |
noinst_LTLIBRARIES = libfbdev.la |
libfbdev_la_SOURCES = fbdev_sw_winsys.c |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/fbdev/Makefile.in |
---|
0,0 → 1,776 |
# Makefile.in generated by automake 1.14 from Makefile.am. |
# @configure_input@ |
# Copyright (C) 1994-2013 Free Software Foundation, Inc. |
# This Makefile.in is free software; the Free Software Foundation |
# gives unlimited permission to copy and/or distribute it, |
# with or without modifications, as long as this notice is preserved. |
# This program is distributed in the hope that it will be useful, |
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without |
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A |
# PARTICULAR PURPOSE. |
@SET_MAKE@ |
# Copyright © 2012 Intel Corporation |
# |
# Permission is hereby granted, free of charge, to any person obtaining a |
# copy of this software and associated documentation files (the "Software"), |
# to deal in the Software without restriction, including without limitation |
# the rights to use, copy, modify, merge, publish, distribute, sublicense, |
# and/or sell copies of the Software, and to permit persons to whom the |
# Software is furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice (including the next |
# paragraph) shall be included in all copies or substantial portions of the |
# Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
# DEALINGS IN THE SOFTWARE. |
VPATH = @srcdir@ |
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' |
am__make_running_with_option = \ |
case $${target_option-} in \ |
?) ;; \ |
*) echo "am__make_running_with_option: internal error: invalid" \ |
"target option '$${target_option-}' specified" >&2; \ |
exit 1;; \ |
esac; \ |
has_opt=no; \ |
sane_makeflags=$$MAKEFLAGS; \ |
if $(am__is_gnu_make); then \ |
sane_makeflags=$$MFLAGS; \ |
else \ |
case $$MAKEFLAGS in \ |
*\\[\ \ ]*) \ |
bs=\\; \ |
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ |
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ |
esac; \ |
fi; \ |
skip_next=no; \ |
strip_trailopt () \ |
{ \ |
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ |
}; \ |
for flg in $$sane_makeflags; do \ |
test $$skip_next = yes && { skip_next=no; continue; }; \ |
case $$flg in \ |
*=*|--*) continue;; \ |
-*I) strip_trailopt 'I'; skip_next=yes;; \ |
-*I?*) strip_trailopt 'I';; \ |
-*O) strip_trailopt 'O'; skip_next=yes;; \ |
-*O?*) strip_trailopt 'O';; \ |
-*l) strip_trailopt 'l'; skip_next=yes;; \ |
-*l?*) strip_trailopt 'l';; \ |
-[dEDm]) skip_next=yes;; \ |
-[JT]) skip_next=yes;; \ |
esac; \ |
case $$flg in \ |
*$$target_option*) has_opt=yes; break;; \ |
esac; \ |
done; \ |
test $$has_opt = yes |
am__make_dryrun = (target_option=n; $(am__make_running_with_option)) |
am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) |
pkgdatadir = $(datadir)/@PACKAGE@ |
pkgincludedir = $(includedir)/@PACKAGE@ |
pkglibdir = $(libdir)/@PACKAGE@ |
pkglibexecdir = $(libexecdir)/@PACKAGE@ |
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd |
install_sh_DATA = $(install_sh) -c -m 644 |
install_sh_PROGRAM = $(install_sh) -c |
install_sh_SCRIPT = $(install_sh) -c |
INSTALL_HEADER = $(INSTALL_DATA) |
transform = $(program_transform_name) |
NORMAL_INSTALL = : |
PRE_INSTALL = : |
POST_INSTALL = : |
NORMAL_UNINSTALL = : |
PRE_UNINSTALL = : |
POST_UNINSTALL = : |
build_triplet = @build@ |
host_triplet = @host@ |
target_triplet = @target@ |
DIST_COMMON = $(top_srcdir)/src/gallium/Automake.inc \ |
$(srcdir)/Makefile.in $(srcdir)/Makefile.am \ |
$(top_srcdir)/bin/depcomp |
subdir = src/gallium/winsys/sw/fbdev |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_prog_bison.m4 \ |
$(top_srcdir)/m4/ax_prog_cc_for_build.m4 \ |
$(top_srcdir)/m4/ax_prog_cxx_for_build.m4 \ |
$(top_srcdir)/m4/ax_prog_flex.m4 \ |
$(top_srcdir)/m4/ax_pthread.m4 \ |
$(top_srcdir)/m4/ax_python_module.m4 \ |
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ |
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ |
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac |
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
$(ACLOCAL_M4) |
mkinstalldirs = $(install_sh) -d |
CONFIG_CLEAN_FILES = |
CONFIG_CLEAN_VPATH_FILES = |
LTLIBRARIES = $(noinst_LTLIBRARIES) |
libfbdev_la_LIBADD = |
am_libfbdev_la_OBJECTS = fbdev_sw_winsys.lo |
libfbdev_la_OBJECTS = $(am_libfbdev_la_OBJECTS) |
AM_V_lt = $(am__v_lt_@AM_V@) |
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) |
am__v_lt_0 = --silent |
am__v_lt_1 = |
AM_V_P = $(am__v_P_@AM_V@) |
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) |
am__v_P_0 = false |
am__v_P_1 = : |
AM_V_GEN = $(am__v_GEN_@AM_V@) |
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) |
am__v_GEN_0 = @echo " GEN " $@; |
am__v_GEN_1 = |
AM_V_at = $(am__v_at_@AM_V@) |
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) |
am__v_at_0 = @ |
am__v_at_1 = |
DEFAULT_INCLUDES = -I.@am__isrc@ |
depcomp = $(SHELL) $(top_srcdir)/bin/depcomp |
am__depfiles_maybe = depfiles |
am__mv = mv -f |
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ |
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) |
LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ |
$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ |
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ |
$(AM_CFLAGS) $(CFLAGS) |
AM_V_CC = $(am__v_CC_@AM_V@) |
am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) |
am__v_CC_0 = @echo " CC " $@; |
am__v_CC_1 = |
CCLD = $(CC) |
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ |
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ |
$(AM_LDFLAGS) $(LDFLAGS) -o $@ |
AM_V_CCLD = $(am__v_CCLD_@AM_V@) |
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) |
am__v_CCLD_0 = @echo " CCLD " $@; |
am__v_CCLD_1 = |
SOURCES = $(libfbdev_la_SOURCES) |
DIST_SOURCES = $(libfbdev_la_SOURCES) |
am__can_run_installinfo = \ |
case $$AM_UPDATE_INFO_DIR in \ |
n|no|NO) false;; \ |
*) (install-info --version) >/dev/null 2>&1;; \ |
esac |
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) |
# Read a list of newline-separated strings from the standard input, |
# and print each of them once, without duplicates. Input order is |
# *not* preserved. |
am__uniquify_input = $(AWK) '\ |
BEGIN { nonempty = 0; } \ |
{ items[$$0] = 1; nonempty = 1; } \ |
END { if (nonempty) { for (i in items) print i; }; } \ |
' |
# Make sure the list of sources is unique. This is necessary because, |
# e.g., the same source file might be shared among _SOURCES variables |
# for different programs/libraries. |
am__define_uniq_tagged_files = \ |
list='$(am__tagged_files)'; \ |
unique=`for i in $$list; do \ |
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ |
done | $(am__uniquify_input)` |
ETAGS = etags |
CTAGS = ctags |
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) |
ACLOCAL = @ACLOCAL@ |
AMTAR = @AMTAR@ |
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ |
AR = @AR@ |
AUTOCONF = @AUTOCONF@ |
AUTOHEADER = @AUTOHEADER@ |
AUTOMAKE = @AUTOMAKE@ |
AWK = @AWK@ |
BUILD_EXEEXT = @BUILD_EXEEXT@ |
BUILD_OBJEXT = @BUILD_OBJEXT@ |
CC = @CC@ |
CCAS = @CCAS@ |
CCASDEPMODE = @CCASDEPMODE@ |
CCASFLAGS = @CCASFLAGS@ |
CCDEPMODE = @CCDEPMODE@ |
CC_FOR_BUILD = @CC_FOR_BUILD@ |
CFLAGS = @CFLAGS@ |
CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ |
CLANG_RESOURCE_DIR = @CLANG_RESOURCE_DIR@ |
CLOCK_LIB = @CLOCK_LIB@ |
CPP = @CPP@ |
CPPFLAGS = @CPPFLAGS@ |
CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@ |
CPP_FOR_BUILD = @CPP_FOR_BUILD@ |
CXX = @CXX@ |
CXXCPP = @CXXCPP@ |
CXXCPPFLAGS_FOR_BUILD = @CXXCPPFLAGS_FOR_BUILD@ |
CXXCPP_FOR_BUILD = @CXXCPP_FOR_BUILD@ |
CXXDEPMODE = @CXXDEPMODE@ |
CXXFLAGS = @CXXFLAGS@ |
CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@ |
CXX_FOR_BUILD = @CXX_FOR_BUILD@ |
CYGPATH_W = @CYGPATH_W@ |
DEFINES = @DEFINES@ |
DEFINES_FOR_BUILD = @DEFINES_FOR_BUILD@ |
DEFS = @DEFS@ |
DEPDIR = @DEPDIR@ |
DLLTOOL = @DLLTOOL@ |
DLOPEN_LIBS = @DLOPEN_LIBS@ |
DRI2PROTO_CFLAGS = @DRI2PROTO_CFLAGS@ |
DRI2PROTO_LIBS = @DRI2PROTO_LIBS@ |
DRIGL_CFLAGS = @DRIGL_CFLAGS@ |
DRIGL_LIBS = @DRIGL_LIBS@ |
DRI_DRIVER_INSTALL_DIR = @DRI_DRIVER_INSTALL_DIR@ |
DRI_DRIVER_SEARCH_DIR = @DRI_DRIVER_SEARCH_DIR@ |
DRI_LIB_DEPS = @DRI_LIB_DEPS@ |
DRI_PC_REQ_PRIV = @DRI_PC_REQ_PRIV@ |
DSYMUTIL = @DSYMUTIL@ |
DUMPBIN = @DUMPBIN@ |
ECHO_C = @ECHO_C@ |
ECHO_N = @ECHO_N@ |
ECHO_T = @ECHO_T@ |
EGL_CFLAGS = @EGL_CFLAGS@ |
EGL_CLIENT_APIS = @EGL_CLIENT_APIS@ |
EGL_DRIVER_INSTALL_DIR = @EGL_DRIVER_INSTALL_DIR@ |
EGL_LIB_DEPS = @EGL_LIB_DEPS@ |
EGL_LIB_GLOB = @EGL_LIB_GLOB@ |
EGL_LIB_NAME = @EGL_LIB_NAME@ |
EGL_NATIVE_PLATFORM = @EGL_NATIVE_PLATFORM@ |
EGL_PLATFORMS = @EGL_PLATFORMS@ |
EGREP = @EGREP@ |
ELF_LIB = @ELF_LIB@ |
EXEEXT = @EXEEXT@ |
EXPAT_INCLUDES = @EXPAT_INCLUDES@ |
FGREP = @FGREP@ |
FREEDRENO_CFLAGS = @FREEDRENO_CFLAGS@ |
FREEDRENO_LIBS = @FREEDRENO_LIBS@ |
GALLIUM_DRI_LIB_DEPS = @GALLIUM_DRI_LIB_DEPS@ |
GALLIUM_PIPE_LOADER_DEFINES = @GALLIUM_PIPE_LOADER_DEFINES@ |
GALLIUM_PIPE_LOADER_LIBS = @GALLIUM_PIPE_LOADER_LIBS@ |
GALLIUM_PIPE_LOADER_XCB_CFLAGS = @GALLIUM_PIPE_LOADER_XCB_CFLAGS@ |
GALLIUM_PIPE_LOADER_XCB_LIBS = @GALLIUM_PIPE_LOADER_XCB_LIBS@ |
GBM_PC_LIB_PRIV = @GBM_PC_LIB_PRIV@ |
GBM_PC_REQ_PRIV = @GBM_PC_REQ_PRIV@ |
GLAPI_LIB_GLOB = @GLAPI_LIB_GLOB@ |
GLAPI_LIB_NAME = @GLAPI_LIB_NAME@ |
GLESv1_CM_LIB_DEPS = @GLESv1_CM_LIB_DEPS@ |
GLESv1_CM_LIB_GLOB = @GLESv1_CM_LIB_GLOB@ |
GLESv1_CM_LIB_NAME = @GLESv1_CM_LIB_NAME@ |
GLESv1_CM_PC_LIB_PRIV = @GLESv1_CM_PC_LIB_PRIV@ |
GLESv2_LIB_DEPS = @GLESv2_LIB_DEPS@ |
GLESv2_LIB_GLOB = @GLESv2_LIB_GLOB@ |
GLESv2_LIB_NAME = @GLESv2_LIB_NAME@ |
GLESv2_PC_LIB_PRIV = @GLESv2_PC_LIB_PRIV@ |
GLPROTO_CFLAGS = @GLPROTO_CFLAGS@ |
GLPROTO_LIBS = @GLPROTO_LIBS@ |
GLX_TLS = @GLX_TLS@ |
GL_LIB = @GL_LIB@ |
GL_LIB_DEPS = @GL_LIB_DEPS@ |
GL_LIB_GLOB = @GL_LIB_GLOB@ |
GL_LIB_NAME = @GL_LIB_NAME@ |
GL_PC_CFLAGS = @GL_PC_CFLAGS@ |
GL_PC_LIB_PRIV = @GL_PC_LIB_PRIV@ |
GL_PC_REQ_PRIV = @GL_PC_REQ_PRIV@ |
GREP = @GREP@ |
HAVE_XF86VIDMODE = @HAVE_XF86VIDMODE@ |
INDENT = @INDENT@ |
INDENT_FLAGS = @INDENT_FLAGS@ |
INSTALL = @INSTALL@ |
INSTALL_DATA = @INSTALL_DATA@ |
INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ |
INTEL_CFLAGS = @INTEL_CFLAGS@ |
INTEL_LIBS = @INTEL_LIBS@ |
LD = @LD@ |
LDFLAGS = @LDFLAGS@ |
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ |
LEX = @LEX@ |
LEXLIB = @LEXLIB@ |
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ |
LIBCLC_INCLUDEDIR = @LIBCLC_INCLUDEDIR@ |
LIBCLC_LIBEXECDIR = @LIBCLC_LIBEXECDIR@ |
LIBDRM_CFLAGS = @LIBDRM_CFLAGS@ |
LIBDRM_LIBS = @LIBDRM_LIBS@ |
LIBDRM_XORG_CFLAGS = @LIBDRM_XORG_CFLAGS@ |
LIBDRM_XORG_LIBS = @LIBDRM_XORG_LIBS@ |
LIBKMS_XORG_CFLAGS = @LIBKMS_XORG_CFLAGS@ |
LIBKMS_XORG_LIBS = @LIBKMS_XORG_LIBS@ |
LIBOBJS = @LIBOBJS@ |
LIBS = @LIBS@ |
LIBTOOL = @LIBTOOL@ |
LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ |
LIBUDEV_LIBS = @LIBUDEV_LIBS@ |
LIB_DIR = @LIB_DIR@ |
LIPO = @LIPO@ |
LLVM_BINDIR = @LLVM_BINDIR@ |
LLVM_CFLAGS = @LLVM_CFLAGS@ |
LLVM_CONFIG = @LLVM_CONFIG@ |
LLVM_CPPFLAGS = @LLVM_CPPFLAGS@ |
LLVM_CXXFLAGS = @LLVM_CXXFLAGS@ |
LLVM_INCLUDEDIR = @LLVM_INCLUDEDIR@ |
LLVM_LDFLAGS = @LLVM_LDFLAGS@ |
LLVM_LIBDIR = @LLVM_LIBDIR@ |
LLVM_LIBS = @LLVM_LIBS@ |
LLVM_VERSION = @LLVM_VERSION@ |
LN_S = @LN_S@ |
LTLIBOBJS = @LTLIBOBJS@ |
MAKE = @MAKE@ |
MAKEINFO = @MAKEINFO@ |
MANIFEST_TOOL = @MANIFEST_TOOL@ |
MESA_LLVM = @MESA_LLVM@ |
MKDIR_P = @MKDIR_P@ |
NM = @NM@ |
NMEDIT = @NMEDIT@ |
NOUVEAU_CFLAGS = @NOUVEAU_CFLAGS@ |
NOUVEAU_LIBS = @NOUVEAU_LIBS@ |
OBJDUMP = @OBJDUMP@ |
OBJEXT = @OBJEXT@ |
OPENCL_LIB_INSTALL_DIR = @OPENCL_LIB_INSTALL_DIR@ |
OSMESA_LIB = @OSMESA_LIB@ |
OSMESA_LIB_DEPS = @OSMESA_LIB_DEPS@ |
OSMESA_LIB_NAME = @OSMESA_LIB_NAME@ |
OSMESA_MESA_DEPS = @OSMESA_MESA_DEPS@ |
OSMESA_PC_LIB_PRIV = @OSMESA_PC_LIB_PRIV@ |
OSMESA_PC_REQ = @OSMESA_PC_REQ@ |
OSMESA_VERSION = @OSMESA_VERSION@ |
OTOOL = @OTOOL@ |
OTOOL64 = @OTOOL64@ |
PACKAGE = @PACKAGE@ |
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ |
PACKAGE_NAME = @PACKAGE_NAME@ |
PACKAGE_STRING = @PACKAGE_STRING@ |
PACKAGE_TARNAME = @PACKAGE_TARNAME@ |
PACKAGE_URL = @PACKAGE_URL@ |
PACKAGE_VERSION = @PACKAGE_VERSION@ |
PATH_SEPARATOR = @PATH_SEPARATOR@ |
PERL = @PERL@ |
PKG_CONFIG = @PKG_CONFIG@ |
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ |
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ |
POSIX_SHELL = @POSIX_SHELL@ |
PTHREAD_CC = @PTHREAD_CC@ |
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ |
PTHREAD_LIBS = @PTHREAD_LIBS@ |
PYTHON2 = @PYTHON2@ |
RADEON_CFLAGS = @RADEON_CFLAGS@ |
RADEON_LIBS = @RADEON_LIBS@ |
RANLIB = @RANLIB@ |
SED = @SED@ |
SELINUX_LIBS = @SELINUX_LIBS@ |
SET_MAKE = @SET_MAKE@ |
SHELL = @SHELL@ |
STRIP = @STRIP@ |
VDPAU_CFLAGS = @VDPAU_CFLAGS@ |
VDPAU_LIBS = @VDPAU_LIBS@ |
VDPAU_LIB_INSTALL_DIR = @VDPAU_LIB_INSTALL_DIR@ |
VDPAU_MAJOR = @VDPAU_MAJOR@ |
VDPAU_MINOR = @VDPAU_MINOR@ |
VERSION = @VERSION@ |
VG_LIB_DEPS = @VG_LIB_DEPS@ |
VG_LIB_GLOB = @VG_LIB_GLOB@ |
VG_LIB_NAME = @VG_LIB_NAME@ |
VG_PC_LIB_PRIV = @VG_PC_LIB_PRIV@ |
VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@ |
VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@ |
WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ |
WAYLAND_LIBS = @WAYLAND_LIBS@ |
WAYLAND_SCANNER = @WAYLAND_SCANNER@ |
X11_INCLUDES = @X11_INCLUDES@ |
XA_MAJOR = @XA_MAJOR@ |
XA_MINOR = @XA_MINOR@ |
XA_TINY = @XA_TINY@ |
XA_VERSION = @XA_VERSION@ |
XCB_DRI2_CFLAGS = @XCB_DRI2_CFLAGS@ |
XCB_DRI2_LIBS = @XCB_DRI2_LIBS@ |
XEXT_CFLAGS = @XEXT_CFLAGS@ |
XEXT_LIBS = @XEXT_LIBS@ |
XF86VIDMODE_CFLAGS = @XF86VIDMODE_CFLAGS@ |
XF86VIDMODE_LIBS = @XF86VIDMODE_LIBS@ |
XLIBGL_CFLAGS = @XLIBGL_CFLAGS@ |
XLIBGL_LIBS = @XLIBGL_LIBS@ |
XORG_CFLAGS = @XORG_CFLAGS@ |
XORG_DRIVER_INSTALL_DIR = @XORG_DRIVER_INSTALL_DIR@ |
XORG_LIBS = @XORG_LIBS@ |
XVMC_CFLAGS = @XVMC_CFLAGS@ |
XVMC_LIBS = @XVMC_LIBS@ |
XVMC_LIB_INSTALL_DIR = @XVMC_LIB_INSTALL_DIR@ |
XVMC_MAJOR = @XVMC_MAJOR@ |
XVMC_MINOR = @XVMC_MINOR@ |
YACC = @YACC@ |
YFLAGS = @YFLAGS@ |
abs_builddir = @abs_builddir@ |
abs_srcdir = @abs_srcdir@ |
abs_top_builddir = @abs_top_builddir@ |
abs_top_srcdir = @abs_top_srcdir@ |
ac_ct_AR = @ac_ct_AR@ |
ac_ct_CC = @ac_ct_CC@ |
ac_ct_CC_FOR_BUILD = @ac_ct_CC_FOR_BUILD@ |
ac_ct_CXX = @ac_ct_CXX@ |
ac_ct_CXX_FOR_BUILD = @ac_ct_CXX_FOR_BUILD@ |
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ |
am__include = @am__include@ |
am__leading_dot = @am__leading_dot@ |
am__quote = @am__quote@ |
am__tar = @am__tar@ |
am__untar = @am__untar@ |
ax_pthread_config = @ax_pthread_config@ |
bindir = @bindir@ |
build = @build@ |
build_alias = @build_alias@ |
build_cpu = @build_cpu@ |
build_os = @build_os@ |
build_vendor = @build_vendor@ |
builddir = @builddir@ |
datadir = @datadir@ |
datarootdir = @datarootdir@ |
docdir = @docdir@ |
dvidir = @dvidir@ |
exec_prefix = @exec_prefix@ |
host = @host@ |
host_alias = @host_alias@ |
host_cpu = @host_cpu@ |
host_os = @host_os@ |
host_vendor = @host_vendor@ |
htmldir = @htmldir@ |
includedir = @includedir@ |
infodir = @infodir@ |
install_sh = @install_sh@ |
libdir = @libdir@ |
libexecdir = @libexecdir@ |
localedir = @localedir@ |
localstatedir = @localstatedir@ |
mandir = @mandir@ |
mkdir_p = @mkdir_p@ |
oldincludedir = @oldincludedir@ |
pdfdir = @pdfdir@ |
prefix = @prefix@ |
program_transform_name = @program_transform_name@ |
psdir = @psdir@ |
sbindir = @sbindir@ |
sharedstatedir = @sharedstatedir@ |
srcdir = @srcdir@ |
sysconfdir = @sysconfdir@ |
target = @target@ |
target_alias = @target_alias@ |
target_cpu = @target_cpu@ |
target_os = @target_os@ |
target_vendor = @target_vendor@ |
top_build_prefix = @top_build_prefix@ |
top_builddir = @top_builddir@ |
top_srcdir = @top_srcdir@ |
GALLIUM_CFLAGS = \ |
-I$(top_srcdir)/include \ |
-I$(top_srcdir)/src/gallium/include \ |
-I$(top_srcdir)/src/gallium/auxiliary \ |
$(DEFINES) |
AM_CPPFLAGS = \ |
$(GALLIUM_CFLAGS) |
noinst_LTLIBRARIES = libfbdev.la |
libfbdev_la_SOURCES = fbdev_sw_winsys.c |
all: all-am |
.SUFFIXES: |
.SUFFIXES: .c .lo .o .obj |
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/src/gallium/Automake.inc $(am__configure_deps) |
@for dep in $?; do \ |
case '$(am__configure_deps)' in \ |
*$$dep*) \ |
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ |
&& { if test -f $@; then exit 0; else break; fi; }; \ |
exit 1;; \ |
esac; \ |
done; \ |
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/gallium/winsys/sw/fbdev/Makefile'; \ |
$(am__cd) $(top_srcdir) && \ |
$(AUTOMAKE) --foreign src/gallium/winsys/sw/fbdev/Makefile |
.PRECIOUS: Makefile |
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
@case '$?' in \ |
*config.status*) \ |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ |
*) \ |
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ |
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ |
esac; |
$(top_srcdir)/src/gallium/Automake.inc: |
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(top_srcdir)/configure: $(am__configure_deps) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(ACLOCAL_M4): $(am__aclocal_m4_deps) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(am__aclocal_m4_deps): |
clean-noinstLTLIBRARIES: |
-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) |
@list='$(noinst_LTLIBRARIES)'; \ |
locs=`for p in $$list; do echo $$p; done | \ |
sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ |
sort -u`; \ |
test -z "$$locs" || { \ |
echo rm -f $${locs}; \ |
rm -f $${locs}; \ |
} |
libfbdev.la: $(libfbdev_la_OBJECTS) $(libfbdev_la_DEPENDENCIES) $(EXTRA_libfbdev_la_DEPENDENCIES) |
$(AM_V_CCLD)$(LINK) $(libfbdev_la_OBJECTS) $(libfbdev_la_LIBADD) $(LIBS) |
mostlyclean-compile: |
-rm -f *.$(OBJEXT) |
distclean-compile: |
-rm -f *.tab.c |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fbdev_sw_winsys.Plo@am__quote@ |
.c.o: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< |
.c.obj: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` |
.c.lo: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< |
mostlyclean-libtool: |
-rm -f *.lo |
clean-libtool: |
-rm -rf .libs _libs |
ID: $(am__tagged_files) |
$(am__define_uniq_tagged_files); mkid -fID $$unique |
tags: tags-am |
TAGS: tags |
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
set x; \ |
here=`pwd`; \ |
$(am__define_uniq_tagged_files); \ |
shift; \ |
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ |
test -n "$$unique" || unique=$$empty_fix; \ |
if test $$# -gt 0; then \ |
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
"$$@" $$unique; \ |
else \ |
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
$$unique; \ |
fi; \ |
fi |
ctags: ctags-am |
CTAGS: ctags |
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
$(am__define_uniq_tagged_files); \ |
test -z "$(CTAGS_ARGS)$$unique" \ |
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ |
$$unique |
GTAGS: |
here=`$(am__cd) $(top_builddir) && pwd` \ |
&& $(am__cd) $(top_srcdir) \ |
&& gtags -i $(GTAGS_ARGS) "$$here" |
cscopelist: cscopelist-am |
cscopelist-am: $(am__tagged_files) |
list='$(am__tagged_files)'; \ |
case "$(srcdir)" in \ |
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ |
*) sdir=$(subdir)/$(srcdir) ;; \ |
esac; \ |
for i in $$list; do \ |
if test -f "$$i"; then \ |
echo "$(subdir)/$$i"; \ |
else \ |
echo "$$sdir/$$i"; \ |
fi; \ |
done >> $(top_builddir)/cscope.files |
distclean-tags: |
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |
distdir: $(DISTFILES) |
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
list='$(DISTFILES)'; \ |
dist_files=`for file in $$list; do echo $$file; done | \ |
sed -e "s|^$$srcdirstrip/||;t" \ |
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ |
case $$dist_files in \ |
*/*) $(MKDIR_P) `echo "$$dist_files" | \ |
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ |
sort -u` ;; \ |
esac; \ |
for file in $$dist_files; do \ |
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ |
if test -d $$d/$$file; then \ |
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ |
if test -d "$(distdir)/$$file"; then \ |
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |
fi; \ |
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ |
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ |
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |
fi; \ |
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ |
else \ |
test -f "$(distdir)/$$file" \ |
|| cp -p $$d/$$file "$(distdir)/$$file" \ |
|| exit 1; \ |
fi; \ |
done |
check-am: all-am |
check: check-am |
all-am: Makefile $(LTLIBRARIES) |
installdirs: |
install: install-am |
install-exec: install-exec-am |
install-data: install-data-am |
uninstall: uninstall-am |
install-am: all-am |
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am |
installcheck: installcheck-am |
install-strip: |
if test -z '$(STRIP)'; then \ |
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |
install; \ |
else \ |
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ |
fi |
mostlyclean-generic: |
clean-generic: |
distclean-generic: |
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) |
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) |
maintainer-clean-generic: |
@echo "This command is intended for maintainers to use" |
@echo "it deletes files that may require special tools to rebuild." |
clean: clean-am |
clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ |
mostlyclean-am |
distclean: distclean-am |
-rm -rf ./$(DEPDIR) |
-rm -f Makefile |
distclean-am: clean-am distclean-compile distclean-generic \ |
distclean-tags |
dvi: dvi-am |
dvi-am: |
html: html-am |
html-am: |
info: info-am |
info-am: |
install-data-am: |
install-dvi: install-dvi-am |
install-dvi-am: |
install-exec-am: |
install-html: install-html-am |
install-html-am: |
install-info: install-info-am |
install-info-am: |
install-man: |
install-pdf: install-pdf-am |
install-pdf-am: |
install-ps: install-ps-am |
install-ps-am: |
installcheck-am: |
maintainer-clean: maintainer-clean-am |
-rm -rf ./$(DEPDIR) |
-rm -f Makefile |
maintainer-clean-am: distclean-am maintainer-clean-generic |
mostlyclean: mostlyclean-am |
mostlyclean-am: mostlyclean-compile mostlyclean-generic \ |
mostlyclean-libtool |
pdf: pdf-am |
pdf-am: |
ps: ps-am |
ps-am: |
uninstall-am: |
.MAKE: install-am install-strip |
.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ |
clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ |
ctags-am distclean distclean-compile distclean-generic \ |
distclean-libtool distclean-tags distdir dvi dvi-am html \ |
html-am info info-am install install-am install-data \ |
install-data-am install-dvi install-dvi-am install-exec \ |
install-exec-am install-html install-html-am install-info \ |
install-info-am install-man install-pdf install-pdf-am \ |
install-ps install-ps-am install-strip installcheck \ |
installcheck-am installdirs maintainer-clean \ |
maintainer-clean-generic mostlyclean mostlyclean-compile \ |
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ |
tags tags-am uninstall uninstall-am |
# Tell versions [3.59,3.63) of GNU make to not export all variables. |
# Otherwise a system limit (for SysV at least) may be exceeded. |
.NOEXPORT: |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/fbdev/SConscript |
---|
0,0 → 1,23 |
####################################################################### |
# SConscript for fbdev winsys |
Import('*') |
if env['platform'] == 'linux': |
env = env.Clone() |
env.Append(CPPPATH = [ |
'#/src/gallium/include', |
'#/src/gallium/auxiliary', |
'#/src/gallium/drivers', |
]) |
ws_fbdev = env.ConvenienceLibrary( |
target = 'ws_fbdev', |
source = [ |
'fbdev_sw_winsys.c', |
] |
) |
Export('ws_fbdev') |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/fbdev/fbdev_sw_winsys.c |
---|
0,0 → 1,238 |
/* |
* Mesa 3-D graphics library |
* |
* Copyright (C) 2010 LunarG Inc. |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the "Software"), |
* to deal in the Software without restriction, including without limitation |
* the rights to use, copy, modify, merge, publish, distribute, sublicense, |
* and/or sell copies of the Software, and to permit persons to whom the |
* Software is furnished to do so, subject to the following conditions: |
* |
* The above copyright notice and this permission notice shall be included |
* in all copies or substantial portions of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
* DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Chia-I Wu <olv@lunarg.com> |
*/ |
#include <sys/mman.h> |
#include <sys/ioctl.h> |
#include <linux/fb.h> |
#include "pipe/p_compiler.h" |
#include "util/u_format.h" |
#include "util/u_math.h" |
#include "util/u_memory.h" |
#include "state_tracker/sw_winsys.h" |
#include "fbdev_sw_winsys.h" |
struct fbdev_sw_displaytarget |
{ |
enum pipe_format format; |
unsigned width; |
unsigned height; |
unsigned stride; |
void *data; |
void *mapped; |
}; |
struct fbdev_sw_winsys |
{ |
struct sw_winsys base; |
int fd; |
struct fb_fix_screeninfo finfo; |
unsigned rows; |
unsigned stride; |
}; |
static INLINE struct fbdev_sw_displaytarget * |
fbdev_sw_displaytarget(struct sw_displaytarget *dt) |
{ |
return (struct fbdev_sw_displaytarget *) dt; |
} |
static INLINE struct fbdev_sw_winsys * |
fbdev_sw_winsys(struct sw_winsys *ws) |
{ |
return (struct fbdev_sw_winsys *) ws; |
} |
static void |
fbdev_displaytarget_display(struct sw_winsys *ws, |
struct sw_displaytarget *dt, |
void *winsys_private) |
{ |
struct fbdev_sw_winsys *fbdev = fbdev_sw_winsys(ws); |
struct fbdev_sw_displaytarget *src = fbdev_sw_displaytarget(dt); |
const struct fbdev_sw_drawable *dst = |
(const struct fbdev_sw_drawable *) winsys_private; |
unsigned height, row_offset, row_len, i; |
void *fbmem; |
/* FIXME format conversion */ |
if (dst->format != src->format) { |
assert(0); |
return; |
} |
height = dst->height; |
if (dst->y + dst->height > fbdev->rows) { |
/* nothing to copy */ |
if (dst->y >= fbdev->rows) |
return; |
height = fbdev->rows - dst->y; |
} |
row_offset = util_format_get_stride(dst->format, dst->x); |
row_len = util_format_get_stride(dst->format, dst->width); |
if (row_offset + row_len > fbdev->stride) { |
/* nothing to copy */ |
if (row_offset >= fbdev->stride) |
return; |
row_len = fbdev->stride - row_offset; |
} |
fbmem = mmap(0, fbdev->finfo.smem_len, |
PROT_WRITE, MAP_SHARED, fbdev->fd, 0); |
if (fbmem == MAP_FAILED) |
return; |
for (i = 0; i < height; i++) { |
char *from = (char *) src->data + src->stride * i; |
char *to = (char *) fbmem + fbdev->stride * (dst->y + i) + row_offset; |
memcpy(to, from, row_len); |
} |
munmap(fbmem, fbdev->finfo.smem_len); |
} |
static void |
fbdev_displaytarget_unmap(struct sw_winsys *ws, |
struct sw_displaytarget *dt) |
{ |
struct fbdev_sw_displaytarget *fbdt = fbdev_sw_displaytarget(dt); |
fbdt->mapped = NULL; |
} |
static void * |
fbdev_displaytarget_map(struct sw_winsys *ws, |
struct sw_displaytarget *dt, |
unsigned flags) |
{ |
struct fbdev_sw_displaytarget *fbdt = fbdev_sw_displaytarget(dt); |
fbdt->mapped = fbdt->data; |
return fbdt->mapped; |
} |
static void |
fbdev_displaytarget_destroy(struct sw_winsys *ws, |
struct sw_displaytarget *dt) |
{ |
struct fbdev_sw_displaytarget *fbdt = fbdev_sw_displaytarget(dt); |
if (fbdt->data) |
align_free(fbdt->data); |
FREE(fbdt); |
} |
static struct sw_displaytarget * |
fbdev_displaytarget_create(struct sw_winsys *ws, |
unsigned tex_usage, |
enum pipe_format format, |
unsigned width, unsigned height, |
unsigned alignment, |
unsigned *stride) |
{ |
struct fbdev_sw_displaytarget *fbdt; |
unsigned nblocksy, size, format_stride; |
fbdt = CALLOC_STRUCT(fbdev_sw_displaytarget); |
if (!fbdt) |
return NULL; |
fbdt->format = format; |
fbdt->width = width; |
fbdt->height = height; |
format_stride = util_format_get_stride(format, width); |
fbdt->stride = align(format_stride, alignment); |
nblocksy = util_format_get_nblocksy(format, height); |
size = fbdt->stride * nblocksy; |
fbdt->data = align_malloc(size, alignment); |
if (!fbdt->data) { |
FREE(fbdt); |
return NULL; |
} |
*stride = fbdt->stride; |
return (struct sw_displaytarget *) fbdt; |
} |
static boolean |
fbdev_is_displaytarget_format_supported(struct sw_winsys *ws, |
unsigned tex_usage, |
enum pipe_format format) |
{ |
return TRUE; |
} |
static void |
fbdev_destroy(struct sw_winsys *ws) |
{ |
struct fbdev_sw_winsys *fbdev = fbdev_sw_winsys(ws); |
FREE(fbdev); |
} |
struct sw_winsys * |
fbdev_create_sw_winsys(int fd) |
{ |
struct fbdev_sw_winsys *fbdev; |
fbdev = CALLOC_STRUCT(fbdev_sw_winsys); |
if (!fbdev) |
return NULL; |
fbdev->fd = fd; |
if (ioctl(fbdev->fd, FBIOGET_FSCREENINFO, &fbdev->finfo)) { |
FREE(fbdev); |
return NULL; |
} |
fbdev->rows = fbdev->finfo.smem_len / fbdev->finfo.line_length; |
fbdev->stride = fbdev->finfo.line_length; |
fbdev->base.destroy = fbdev_destroy; |
fbdev->base.is_displaytarget_format_supported = |
fbdev_is_displaytarget_format_supported; |
fbdev->base.displaytarget_create = fbdev_displaytarget_create; |
fbdev->base.displaytarget_destroy = fbdev_displaytarget_destroy; |
fbdev->base.displaytarget_map = fbdev_displaytarget_map; |
fbdev->base.displaytarget_unmap = fbdev_displaytarget_unmap; |
fbdev->base.displaytarget_display = fbdev_displaytarget_display; |
return &fbdev->base; |
} |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/fbdev/fbdev_sw_winsys.h |
---|
0,0 → 1,44 |
/* |
* Mesa 3-D graphics library |
* |
* Copyright (C) 2010 LunarG Inc. |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the "Software"), |
* to deal in the Software without restriction, including without limitation |
* the rights to use, copy, modify, merge, publish, distribute, sublicense, |
* and/or sell copies of the Software, and to permit persons to whom the |
* Software is furnished to do so, subject to the following conditions: |
* |
* The above copyright notice and this permission notice shall be included |
* in all copies or substantial portions of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
* DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Chia-I Wu <olv@lunarg.com> |
*/ |
#ifndef FBDEV_SW_WINSYS |
#define FBDEV_SW_WINSYS |
struct sw_winsys; |
enum pipe_format; |
/* for pipe_screen::flush_frontbuffer */ |
struct fbdev_sw_drawable { |
enum pipe_format format; |
unsigned x, y; |
unsigned width, height; |
}; |
struct sw_winsys * |
fbdev_create_sw_winsys(int fd); |
#endif /* FBDEV_SW_WINSYS */ |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/gdi/SConscript |
---|
0,0 → 1,24 |
####################################################################### |
# SConscript for xlib winsys |
Import('*') |
if env['platform'] == 'windows': |
env = env.Clone() |
env.Append(CPPPATH = [ |
'#/src/gallium/include', |
'#/src/gallium/auxiliary', |
'#/src/gallium/drivers', |
]) |
ws_gdi = env.ConvenienceLibrary( |
target = 'ws_gdi', |
source = [ |
'gdi_sw_winsys.c', |
] |
) |
env.Alias('ws_gdi', ws_gdi) |
Export('ws_gdi') |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/gdi/gdi_sw_winsys.c |
---|
0,0 → 1,247 |
/************************************************************************** |
* |
* Copyright 2009 VMware, Inc. |
* All Rights Reserved. |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL |
* THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, |
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR |
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE |
* USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* |
**************************************************************************/ |
/** |
* @file |
* GDI software rasterizer support. |
* |
* @author Jose Fonseca <jfonseca@vmware.com> |
*/ |
#include <windows.h> |
#include "pipe/p_format.h" |
#include "pipe/p_context.h" |
#include "util/u_inlines.h" |
#include "util/u_format.h" |
#include "util/u_math.h" |
#include "util/u_memory.h" |
#include "state_tracker/sw_winsys.h" |
#include "gdi_sw_winsys.h" |
struct gdi_sw_displaytarget |
{ |
enum pipe_format format; |
unsigned width; |
unsigned height; |
unsigned stride; |
unsigned size; |
void *data; |
BITMAPINFO bmi; |
}; |
/** Cast wrapper */ |
static INLINE struct gdi_sw_displaytarget * |
gdi_sw_displaytarget( struct sw_displaytarget *buf ) |
{ |
return (struct gdi_sw_displaytarget *)buf; |
} |
static boolean |
gdi_sw_is_displaytarget_format_supported( struct sw_winsys *ws, |
unsigned tex_usage, |
enum pipe_format format ) |
{ |
switch(format) { |
case PIPE_FORMAT_B8G8R8X8_UNORM: |
case PIPE_FORMAT_B8G8R8A8_UNORM: |
return TRUE; |
/* TODO: Support other formats possible with BMPs, as described in |
* http://msdn.microsoft.com/en-us/library/dd183376(VS.85).aspx */ |
default: |
return FALSE; |
} |
} |
static void * |
gdi_sw_displaytarget_map(struct sw_winsys *ws, |
struct sw_displaytarget *dt, |
unsigned flags ) |
{ |
struct gdi_sw_displaytarget *gdt = gdi_sw_displaytarget(dt); |
return gdt->data; |
} |
static void |
gdi_sw_displaytarget_unmap(struct sw_winsys *ws, |
struct sw_displaytarget *dt ) |
{ |
} |
static void |
gdi_sw_displaytarget_destroy(struct sw_winsys *winsys, |
struct sw_displaytarget *dt) |
{ |
struct gdi_sw_displaytarget *gdt = gdi_sw_displaytarget(dt); |
align_free(gdt->data); |
FREE(gdt); |
} |
static struct sw_displaytarget * |
gdi_sw_displaytarget_create(struct sw_winsys *winsys, |
unsigned tex_usage, |
enum pipe_format format, |
unsigned width, unsigned height, |
unsigned alignment, |
unsigned *stride) |
{ |
struct gdi_sw_displaytarget *gdt; |
unsigned cpp; |
unsigned bpp; |
gdt = CALLOC_STRUCT(gdi_sw_displaytarget); |
if(!gdt) |
goto no_gdt; |
gdt->format = format; |
gdt->width = width; |
gdt->height = height; |
bpp = util_format_get_blocksizebits(format); |
cpp = util_format_get_blocksize(format); |
gdt->stride = align(width * cpp, alignment); |
gdt->size = gdt->stride * height; |
gdt->data = align_malloc(gdt->size, alignment); |
if(!gdt->data) |
goto no_data; |
gdt->bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER); |
gdt->bmi.bmiHeader.biWidth = gdt->stride / cpp; |
gdt->bmi.bmiHeader.biHeight= -(long)height; |
gdt->bmi.bmiHeader.biPlanes = 1; |
gdt->bmi.bmiHeader.biBitCount = bpp; |
gdt->bmi.bmiHeader.biCompression = BI_RGB; |
gdt->bmi.bmiHeader.biSizeImage = 0; |
gdt->bmi.bmiHeader.biXPelsPerMeter = 0; |
gdt->bmi.bmiHeader.biYPelsPerMeter = 0; |
gdt->bmi.bmiHeader.biClrUsed = 0; |
gdt->bmi.bmiHeader.biClrImportant = 0; |
*stride = gdt->stride; |
return (struct sw_displaytarget *)gdt; |
no_data: |
FREE(gdt); |
no_gdt: |
return NULL; |
} |
static struct sw_displaytarget * |
gdi_sw_displaytarget_from_handle(struct sw_winsys *winsys, |
const struct pipe_resource *templet, |
struct winsys_handle *whandle, |
unsigned *stride) |
{ |
assert(0); |
return NULL; |
} |
static boolean |
gdi_sw_displaytarget_get_handle(struct sw_winsys *winsys, |
struct sw_displaytarget *dt, |
struct winsys_handle *whandle) |
{ |
assert(0); |
return FALSE; |
} |
void |
gdi_sw_display( struct sw_winsys *winsys, |
struct sw_displaytarget *dt, |
HDC hDC ) |
{ |
struct gdi_sw_displaytarget *gdt = gdi_sw_displaytarget(dt); |
StretchDIBits(hDC, |
0, 0, gdt->width, gdt->height, |
0, 0, gdt->width, gdt->height, |
gdt->data, &gdt->bmi, 0, SRCCOPY); |
} |
static void |
gdi_sw_displaytarget_display(struct sw_winsys *winsys, |
struct sw_displaytarget *dt, |
void *context_private) |
{ |
/* nasty: |
*/ |
HDC hDC = (HDC)context_private; |
gdi_sw_display(winsys, dt, hDC); |
} |
static void |
gdi_sw_destroy(struct sw_winsys *winsys) |
{ |
FREE(winsys); |
} |
struct sw_winsys * |
gdi_create_sw_winsys(void) |
{ |
static struct sw_winsys *winsys; |
winsys = CALLOC_STRUCT(sw_winsys); |
if(!winsys) |
return NULL; |
winsys->destroy = gdi_sw_destroy; |
winsys->is_displaytarget_format_supported = gdi_sw_is_displaytarget_format_supported; |
winsys->displaytarget_create = gdi_sw_displaytarget_create; |
winsys->displaytarget_from_handle = gdi_sw_displaytarget_from_handle; |
winsys->displaytarget_get_handle = gdi_sw_displaytarget_get_handle; |
winsys->displaytarget_map = gdi_sw_displaytarget_map; |
winsys->displaytarget_unmap = gdi_sw_displaytarget_unmap; |
winsys->displaytarget_display = gdi_sw_displaytarget_display; |
winsys->displaytarget_destroy = gdi_sw_displaytarget_destroy; |
return winsys; |
} |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/gdi/gdi_sw_winsys.h |
---|
0,0 → 1,16 |
#ifndef GDI_SW_WINSYS_H |
#define GDI_SW_WINSYS_H |
#include <windows.h> |
#include "pipe/p_compiler.h" |
#include "state_tracker/sw_winsys.h" |
void gdi_sw_display( struct sw_winsys *winsys, |
struct sw_displaytarget *dt, |
HDC hDC ); |
struct sw_winsys * |
gdi_create_sw_winsys(void); |
#endif |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/hgl/SConscript |
---|
0,0 → 1,25 |
####################################################################### |
# SConscript for haiku winsys |
Import('*') |
if env['platform'] in ('haiku'): |
env = env.Clone() |
env.Append(CPPPATH = [ |
'#/src/gallium/include', |
'#/src/gallium/auxiliary', |
'#/src/gallium/drivers', |
]) |
ws_haiku = env.ConvenienceLibrary( |
target = 'ws_haiku', |
source = [ |
'hgl_sw_winsys.c', |
'bitmap_wrapper.cpp', |
] |
) |
env.Alias('ws_haiku', ws_haiku) |
Export('ws_haiku') |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/hgl/bitmap_wrapper.cpp |
---|
0,0 → 1,134 |
/************************************************************************** |
* |
* Copyright 2009 Artur Wyszynski <harakash@gmail.com> |
* Copyright 2013 Alexander von Gluck IV <kallisti5@unixzen.com> |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL |
* THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, |
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR |
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE |
* USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
**************************************************************************/ |
#include <stdio.h> |
#include <interface/Bitmap.h> |
#include <storage/File.h> |
#include <support/String.h> |
#include <translation/BitmapStream.h> |
#include <translation/TranslatorRoster.h> |
#include "bitmap_wrapper.h" |
extern "C" { |
static int frameNo = 0; |
Bitmap* |
create_bitmap(int32 width, int32 height, color_space colorSpace) |
{ |
BBitmap *bb = new BBitmap(BRect(0, 0, width, height), colorSpace); |
if (bb) |
return (Bitmap*)bb; |
return NULL; |
} |
void |
get_bitmap_size(const Bitmap* bitmap, int32* width, int32* height) |
{ |
BBitmap *bb = (BBitmap*)bitmap; |
if (bb && width && height) { |
uint32 w = bb->Bounds().IntegerWidth() + 1; |
uint32 h = bb->Bounds().IntegerHeight() + 1; |
*width = w; |
*height = h; |
} |
} |
color_space |
get_bitmap_color_space(const Bitmap* bitmap) |
{ |
BBitmap *bb = (BBitmap*)bitmap; |
if (bb) |
return bb->ColorSpace(); |
return B_NO_COLOR_SPACE; |
} |
void |
copy_bitmap_bits(const Bitmap* bitmap, void* data, int32 length) |
{ |
BBitmap *bb = (BBitmap*)bitmap; |
if (bb) { |
color_space cs = bb->ColorSpace(); |
bb->ImportBits(data, length, bb->BytesPerRow(), 0, cs); |
} |
} |
void |
delete_bitmap(Bitmap* bitmap) |
{ |
BBitmap *bb = (BBitmap*)bitmap; |
delete bb; |
} |
int32 |
get_bitmap_bytes_per_row(const Bitmap* bitmap) |
{ |
BBitmap *bb = (BBitmap*)bitmap; |
if (bb) |
return bb->BytesPerRow(); |
return 0; |
} |
int32 |
get_bitmap_bits_length(const Bitmap* bitmap) |
{ |
BBitmap *bb = (BBitmap*)bitmap; |
if (bb) |
return bb->BitsLength(); |
return 0; |
} |
void |
dump_bitmap(const Bitmap* bitmap) |
{ |
BBitmap *bb = (BBitmap*)bitmap; |
if (!bb) |
return; |
BString filename("/boot/home/frame_"); |
filename << (int32)frameNo << ".png"; |
BTranslatorRoster *roster = BTranslatorRoster::Default(); |
BBitmapStream stream(bb); |
BFile dump(filename, B_CREATE_FILE | B_WRITE_ONLY); |
roster->Translate(&stream, NULL, NULL, &dump, 0); |
frameNo++; |
} |
} |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/hgl/bitmap_wrapper.h |
---|
0,0 → 1,59 |
/************************************************************************** |
* |
* Copyright 2009 Artur Wyszynski <harakash@gmail.com> |
* Copyright 2013 Alexander von Gluck IV <kallisti5@unixzen.com> |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL |
* THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, |
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR |
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE |
* USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
**************************************************************************/ |
#ifndef __BBITMAP_WRAPPER_H__ |
#define __BBITMAP_WRAPPER_H__ |
#include <interface/GraphicsDefs.h> |
#include <support/SupportDefs.h> |
typedef void Bitmap; |
#ifdef __cplusplus |
extern "C" { |
#endif |
Bitmap* create_bitmap(int32 width, int32 height, color_space colorSpace); |
void copy_bitmap_bits(const Bitmap* bitmap, void* data, int32 length); |
void get_bitmap_size(const Bitmap* bitmap, int32* width, int32* height); |
color_space get_bitmap_color_space(const Bitmap* bitmap); |
int32 get_bitmap_bytes_per_row(const Bitmap* bitmap); |
int32 get_bitmap_bits_length(const Bitmap* bitmap); |
void delete_bitmap(Bitmap* bitmap); |
void dump_bitmap(const Bitmap* bitmap); |
#ifdef __cplusplus |
} |
#endif |
#endif /* __BBITMAP_WRAPPER_H__ */ |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/hgl/hgl_sw_winsys.c |
---|
0,0 → 1,187 |
/************************************************************************** |
* |
* Copyright 2009 Artur Wyszynski <harakash@gmail.com> |
* Copyright 2013 Alexander von Gluck IV <kallisti5@unixzen.com> |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL |
* THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, |
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR |
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE |
* USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
**************************************************************************/ |
#include "pipe/p_compiler.h" |
#include "pipe/p_format.h" |
#include "util/u_inlines.h" |
#include "util/u_format.h" |
#include "util/u_math.h" |
#include "util/u_memory.h" |
#include "hgl_sw_winsys.h" |
#include "bitmap_wrapper.h" |
// Cast |
static INLINE struct haiku_displaytarget* |
hgl_sw_displaytarget(struct sw_displaytarget* target) |
{ |
return (struct haiku_displaytarget *)target; |
} |
static void |
hgl_winsys_destroy(struct sw_winsys* winsys) |
{ |
FREE(winsys); |
} |
static boolean |
hgl_winsys_is_displaytarget_format_supported(struct sw_winsys* winsys, |
unsigned textureUsage, enum pipe_format format) |
{ |
// TODO STUB |
return true; |
} |
static struct sw_displaytarget* |
hgl_winsys_displaytarget_create(struct sw_winsys* winsys, |
unsigned textureUsage, enum pipe_format format, unsigned width, |
unsigned height, unsigned alignment, unsigned* stride) |
{ |
struct haiku_displaytarget* haikuDisplayTarget |
= CALLOC_STRUCT(haiku_displaytarget); |
assert(haikuDisplayTarget); |
haikuDisplayTarget->format = format; |
haikuDisplayTarget->width = width; |
haikuDisplayTarget->height = height; |
size_t formatStride = util_format_get_stride(format, width); |
unsigned blockSize = util_format_get_nblocksy(format, height); |
haikuDisplayTarget->stride = align(formatStride, alignment); |
haikuDisplayTarget->size = haikuDisplayTarget->stride * blockSize; |
haikuDisplayTarget->data |
= align_malloc(haikuDisplayTarget->size, alignment); |
assert(haikuDisplayTarget->data); |
*stride = haikuDisplayTarget->stride; |
// Cast to ghost sw_displaytarget type |
return (struct sw_displaytarget*)haikuDisplayTarget; |
} |
static void |
hgl_winsys_displaytarget_destroy(struct sw_winsys* winsys, |
struct sw_displaytarget* displayTarget) |
{ |
struct haiku_displaytarget* haikuDisplayTarget |
= hgl_sw_displaytarget(displayTarget); |
if (!haikuDisplayTarget) |
return; |
if (haikuDisplayTarget->data != NULL) |
align_free(haikuDisplayTarget->data); |
FREE(haikuDisplayTarget); |
} |
static struct sw_displaytarget* |
hgl_winsys_displaytarget_from_handle(struct sw_winsys* winsys, |
const struct pipe_resource* templat, struct winsys_handle* whandle, |
unsigned* stride) |
{ |
return NULL; |
} |
static boolean |
hgl_winsys_displaytarget_get_handle(struct sw_winsys* winsys, |
struct sw_displaytarget* displayTarget, struct winsys_handle* whandle) |
{ |
return FALSE; |
} |
static void* |
hgl_winsys_displaytarget_map(struct sw_winsys* winsys, |
struct sw_displaytarget* displayTarget, unsigned flags) |
{ |
struct haiku_displaytarget* haikuDisplayTarget |
= hgl_sw_displaytarget(displayTarget); |
return haikuDisplayTarget->data; |
} |
static void |
hgl_winsys_displaytarget_unmap(struct sw_winsys* winsys, |
struct sw_displaytarget* disptarget) |
{ |
return; |
} |
static void |
hgl_winsys_displaytarget_display(struct sw_winsys* winsys, |
struct sw_displaytarget* displayTarget, void* contextPrivate) |
{ |
assert(contextPrivate); |
Bitmap* bitmap = (Bitmap*)contextPrivate; |
struct haiku_displaytarget* haikuDisplayTarget |
= hgl_sw_displaytarget(displayTarget); |
copy_bitmap_bits(bitmap, haikuDisplayTarget->data, |
haikuDisplayTarget->size); |
return; |
} |
struct sw_winsys* |
hgl_create_sw_winsys() |
{ |
struct sw_winsys* winsys = CALLOC_STRUCT(sw_winsys); |
if (!winsys) |
return NULL; |
// Attach winsys hooks for Haiku |
winsys->destroy = hgl_winsys_destroy; |
winsys->is_displaytarget_format_supported |
= hgl_winsys_is_displaytarget_format_supported; |
winsys->displaytarget_create = hgl_winsys_displaytarget_create; |
winsys->displaytarget_from_handle = hgl_winsys_displaytarget_from_handle; |
winsys->displaytarget_get_handle = hgl_winsys_displaytarget_get_handle; |
winsys->displaytarget_map = hgl_winsys_displaytarget_map; |
winsys->displaytarget_unmap = hgl_winsys_displaytarget_unmap; |
winsys->displaytarget_display = hgl_winsys_displaytarget_display; |
winsys->displaytarget_destroy = hgl_winsys_displaytarget_destroy; |
return winsys; |
} |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/hgl/hgl_sw_winsys.h |
---|
0,0 → 1,52 |
/************************************************************************** |
* |
* Copyright 2009 Artur Wyszynski <harakash@gmail.com> |
* Copyright 2013 Alexander von Gluck IV <kallisti5@unixzen.com> |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL |
* THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, |
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR |
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE |
* USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
**************************************************************************/ |
#ifndef _HGL_SOFTWAREWINSYS_H |
#define _HGL_SOFTWAREWINSYS_H |
#include "pipe/p_defines.h" |
#include "state_tracker/st_api.h" |
#include "state_tracker/sw_winsys.h" |
struct haiku_displaytarget |
{ |
enum pipe_format format; |
unsigned width; |
unsigned height; |
unsigned stride; |
unsigned size; |
void* data; |
}; |
struct sw_winsys* hgl_create_sw_winsys(); |
#endif |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/null/Makefile.am |
---|
0,0 → 1,30 |
# Copyright © 2012 Intel Corporation |
# |
# Permission is hereby granted, free of charge, to any person obtaining a |
# copy of this software and associated documentation files (the "Software"), |
# to deal in the Software without restriction, including without limitation |
# the rights to use, copy, modify, merge, publish, distribute, sublicense, |
# and/or sell copies of the Software, and to permit persons to whom the |
# Software is furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice (including the next |
# paragraph) shall be included in all copies or substantial portions of the |
# Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
# DEALINGS IN THE SOFTWARE. |
include $(top_srcdir)/src/gallium/Automake.inc |
AM_CPPFLAGS = \ |
$(GALLIUM_CFLAGS) |
noinst_LTLIBRARIES = libws_null.la |
libws_null_la_SOURCES = null_sw_winsys.c |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/null/Makefile.in |
---|
0,0 → 1,776 |
# Makefile.in generated by automake 1.14 from Makefile.am. |
# @configure_input@ |
# Copyright (C) 1994-2013 Free Software Foundation, Inc. |
# This Makefile.in is free software; the Free Software Foundation |
# gives unlimited permission to copy and/or distribute it, |
# with or without modifications, as long as this notice is preserved. |
# This program is distributed in the hope that it will be useful, |
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without |
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A |
# PARTICULAR PURPOSE. |
@SET_MAKE@ |
# Copyright © 2012 Intel Corporation |
# |
# Permission is hereby granted, free of charge, to any person obtaining a |
# copy of this software and associated documentation files (the "Software"), |
# to deal in the Software without restriction, including without limitation |
# the rights to use, copy, modify, merge, publish, distribute, sublicense, |
# and/or sell copies of the Software, and to permit persons to whom the |
# Software is furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice (including the next |
# paragraph) shall be included in all copies or substantial portions of the |
# Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
# DEALINGS IN THE SOFTWARE. |
VPATH = @srcdir@ |
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' |
am__make_running_with_option = \ |
case $${target_option-} in \ |
?) ;; \ |
*) echo "am__make_running_with_option: internal error: invalid" \ |
"target option '$${target_option-}' specified" >&2; \ |
exit 1;; \ |
esac; \ |
has_opt=no; \ |
sane_makeflags=$$MAKEFLAGS; \ |
if $(am__is_gnu_make); then \ |
sane_makeflags=$$MFLAGS; \ |
else \ |
case $$MAKEFLAGS in \ |
*\\[\ \ ]*) \ |
bs=\\; \ |
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ |
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ |
esac; \ |
fi; \ |
skip_next=no; \ |
strip_trailopt () \ |
{ \ |
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ |
}; \ |
for flg in $$sane_makeflags; do \ |
test $$skip_next = yes && { skip_next=no; continue; }; \ |
case $$flg in \ |
*=*|--*) continue;; \ |
-*I) strip_trailopt 'I'; skip_next=yes;; \ |
-*I?*) strip_trailopt 'I';; \ |
-*O) strip_trailopt 'O'; skip_next=yes;; \ |
-*O?*) strip_trailopt 'O';; \ |
-*l) strip_trailopt 'l'; skip_next=yes;; \ |
-*l?*) strip_trailopt 'l';; \ |
-[dEDm]) skip_next=yes;; \ |
-[JT]) skip_next=yes;; \ |
esac; \ |
case $$flg in \ |
*$$target_option*) has_opt=yes; break;; \ |
esac; \ |
done; \ |
test $$has_opt = yes |
am__make_dryrun = (target_option=n; $(am__make_running_with_option)) |
am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) |
pkgdatadir = $(datadir)/@PACKAGE@ |
pkgincludedir = $(includedir)/@PACKAGE@ |
pkglibdir = $(libdir)/@PACKAGE@ |
pkglibexecdir = $(libexecdir)/@PACKAGE@ |
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd |
install_sh_DATA = $(install_sh) -c -m 644 |
install_sh_PROGRAM = $(install_sh) -c |
install_sh_SCRIPT = $(install_sh) -c |
INSTALL_HEADER = $(INSTALL_DATA) |
transform = $(program_transform_name) |
NORMAL_INSTALL = : |
PRE_INSTALL = : |
POST_INSTALL = : |
NORMAL_UNINSTALL = : |
PRE_UNINSTALL = : |
POST_UNINSTALL = : |
build_triplet = @build@ |
host_triplet = @host@ |
target_triplet = @target@ |
DIST_COMMON = $(top_srcdir)/src/gallium/Automake.inc \ |
$(srcdir)/Makefile.in $(srcdir)/Makefile.am \ |
$(top_srcdir)/bin/depcomp |
subdir = src/gallium/winsys/sw/null |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_prog_bison.m4 \ |
$(top_srcdir)/m4/ax_prog_cc_for_build.m4 \ |
$(top_srcdir)/m4/ax_prog_cxx_for_build.m4 \ |
$(top_srcdir)/m4/ax_prog_flex.m4 \ |
$(top_srcdir)/m4/ax_pthread.m4 \ |
$(top_srcdir)/m4/ax_python_module.m4 \ |
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ |
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ |
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac |
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
$(ACLOCAL_M4) |
mkinstalldirs = $(install_sh) -d |
CONFIG_CLEAN_FILES = |
CONFIG_CLEAN_VPATH_FILES = |
LTLIBRARIES = $(noinst_LTLIBRARIES) |
libws_null_la_LIBADD = |
am_libws_null_la_OBJECTS = null_sw_winsys.lo |
libws_null_la_OBJECTS = $(am_libws_null_la_OBJECTS) |
AM_V_lt = $(am__v_lt_@AM_V@) |
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) |
am__v_lt_0 = --silent |
am__v_lt_1 = |
AM_V_P = $(am__v_P_@AM_V@) |
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) |
am__v_P_0 = false |
am__v_P_1 = : |
AM_V_GEN = $(am__v_GEN_@AM_V@) |
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) |
am__v_GEN_0 = @echo " GEN " $@; |
am__v_GEN_1 = |
AM_V_at = $(am__v_at_@AM_V@) |
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) |
am__v_at_0 = @ |
am__v_at_1 = |
DEFAULT_INCLUDES = -I.@am__isrc@ |
depcomp = $(SHELL) $(top_srcdir)/bin/depcomp |
am__depfiles_maybe = depfiles |
am__mv = mv -f |
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ |
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) |
LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ |
$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ |
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ |
$(AM_CFLAGS) $(CFLAGS) |
AM_V_CC = $(am__v_CC_@AM_V@) |
am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) |
am__v_CC_0 = @echo " CC " $@; |
am__v_CC_1 = |
CCLD = $(CC) |
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ |
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ |
$(AM_LDFLAGS) $(LDFLAGS) -o $@ |
AM_V_CCLD = $(am__v_CCLD_@AM_V@) |
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) |
am__v_CCLD_0 = @echo " CCLD " $@; |
am__v_CCLD_1 = |
SOURCES = $(libws_null_la_SOURCES) |
DIST_SOURCES = $(libws_null_la_SOURCES) |
am__can_run_installinfo = \ |
case $$AM_UPDATE_INFO_DIR in \ |
n|no|NO) false;; \ |
*) (install-info --version) >/dev/null 2>&1;; \ |
esac |
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) |
# Read a list of newline-separated strings from the standard input, |
# and print each of them once, without duplicates. Input order is |
# *not* preserved. |
am__uniquify_input = $(AWK) '\ |
BEGIN { nonempty = 0; } \ |
{ items[$$0] = 1; nonempty = 1; } \ |
END { if (nonempty) { for (i in items) print i; }; } \ |
' |
# Make sure the list of sources is unique. This is necessary because, |
# e.g., the same source file might be shared among _SOURCES variables |
# for different programs/libraries. |
am__define_uniq_tagged_files = \ |
list='$(am__tagged_files)'; \ |
unique=`for i in $$list; do \ |
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ |
done | $(am__uniquify_input)` |
ETAGS = etags |
CTAGS = ctags |
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) |
ACLOCAL = @ACLOCAL@ |
AMTAR = @AMTAR@ |
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ |
AR = @AR@ |
AUTOCONF = @AUTOCONF@ |
AUTOHEADER = @AUTOHEADER@ |
AUTOMAKE = @AUTOMAKE@ |
AWK = @AWK@ |
BUILD_EXEEXT = @BUILD_EXEEXT@ |
BUILD_OBJEXT = @BUILD_OBJEXT@ |
CC = @CC@ |
CCAS = @CCAS@ |
CCASDEPMODE = @CCASDEPMODE@ |
CCASFLAGS = @CCASFLAGS@ |
CCDEPMODE = @CCDEPMODE@ |
CC_FOR_BUILD = @CC_FOR_BUILD@ |
CFLAGS = @CFLAGS@ |
CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ |
CLANG_RESOURCE_DIR = @CLANG_RESOURCE_DIR@ |
CLOCK_LIB = @CLOCK_LIB@ |
CPP = @CPP@ |
CPPFLAGS = @CPPFLAGS@ |
CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@ |
CPP_FOR_BUILD = @CPP_FOR_BUILD@ |
CXX = @CXX@ |
CXXCPP = @CXXCPP@ |
CXXCPPFLAGS_FOR_BUILD = @CXXCPPFLAGS_FOR_BUILD@ |
CXXCPP_FOR_BUILD = @CXXCPP_FOR_BUILD@ |
CXXDEPMODE = @CXXDEPMODE@ |
CXXFLAGS = @CXXFLAGS@ |
CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@ |
CXX_FOR_BUILD = @CXX_FOR_BUILD@ |
CYGPATH_W = @CYGPATH_W@ |
DEFINES = @DEFINES@ |
DEFINES_FOR_BUILD = @DEFINES_FOR_BUILD@ |
DEFS = @DEFS@ |
DEPDIR = @DEPDIR@ |
DLLTOOL = @DLLTOOL@ |
DLOPEN_LIBS = @DLOPEN_LIBS@ |
DRI2PROTO_CFLAGS = @DRI2PROTO_CFLAGS@ |
DRI2PROTO_LIBS = @DRI2PROTO_LIBS@ |
DRIGL_CFLAGS = @DRIGL_CFLAGS@ |
DRIGL_LIBS = @DRIGL_LIBS@ |
DRI_DRIVER_INSTALL_DIR = @DRI_DRIVER_INSTALL_DIR@ |
DRI_DRIVER_SEARCH_DIR = @DRI_DRIVER_SEARCH_DIR@ |
DRI_LIB_DEPS = @DRI_LIB_DEPS@ |
DRI_PC_REQ_PRIV = @DRI_PC_REQ_PRIV@ |
DSYMUTIL = @DSYMUTIL@ |
DUMPBIN = @DUMPBIN@ |
ECHO_C = @ECHO_C@ |
ECHO_N = @ECHO_N@ |
ECHO_T = @ECHO_T@ |
EGL_CFLAGS = @EGL_CFLAGS@ |
EGL_CLIENT_APIS = @EGL_CLIENT_APIS@ |
EGL_DRIVER_INSTALL_DIR = @EGL_DRIVER_INSTALL_DIR@ |
EGL_LIB_DEPS = @EGL_LIB_DEPS@ |
EGL_LIB_GLOB = @EGL_LIB_GLOB@ |
EGL_LIB_NAME = @EGL_LIB_NAME@ |
EGL_NATIVE_PLATFORM = @EGL_NATIVE_PLATFORM@ |
EGL_PLATFORMS = @EGL_PLATFORMS@ |
EGREP = @EGREP@ |
ELF_LIB = @ELF_LIB@ |
EXEEXT = @EXEEXT@ |
EXPAT_INCLUDES = @EXPAT_INCLUDES@ |
FGREP = @FGREP@ |
FREEDRENO_CFLAGS = @FREEDRENO_CFLAGS@ |
FREEDRENO_LIBS = @FREEDRENO_LIBS@ |
GALLIUM_DRI_LIB_DEPS = @GALLIUM_DRI_LIB_DEPS@ |
GALLIUM_PIPE_LOADER_DEFINES = @GALLIUM_PIPE_LOADER_DEFINES@ |
GALLIUM_PIPE_LOADER_LIBS = @GALLIUM_PIPE_LOADER_LIBS@ |
GALLIUM_PIPE_LOADER_XCB_CFLAGS = @GALLIUM_PIPE_LOADER_XCB_CFLAGS@ |
GALLIUM_PIPE_LOADER_XCB_LIBS = @GALLIUM_PIPE_LOADER_XCB_LIBS@ |
GBM_PC_LIB_PRIV = @GBM_PC_LIB_PRIV@ |
GBM_PC_REQ_PRIV = @GBM_PC_REQ_PRIV@ |
GLAPI_LIB_GLOB = @GLAPI_LIB_GLOB@ |
GLAPI_LIB_NAME = @GLAPI_LIB_NAME@ |
GLESv1_CM_LIB_DEPS = @GLESv1_CM_LIB_DEPS@ |
GLESv1_CM_LIB_GLOB = @GLESv1_CM_LIB_GLOB@ |
GLESv1_CM_LIB_NAME = @GLESv1_CM_LIB_NAME@ |
GLESv1_CM_PC_LIB_PRIV = @GLESv1_CM_PC_LIB_PRIV@ |
GLESv2_LIB_DEPS = @GLESv2_LIB_DEPS@ |
GLESv2_LIB_GLOB = @GLESv2_LIB_GLOB@ |
GLESv2_LIB_NAME = @GLESv2_LIB_NAME@ |
GLESv2_PC_LIB_PRIV = @GLESv2_PC_LIB_PRIV@ |
GLPROTO_CFLAGS = @GLPROTO_CFLAGS@ |
GLPROTO_LIBS = @GLPROTO_LIBS@ |
GLX_TLS = @GLX_TLS@ |
GL_LIB = @GL_LIB@ |
GL_LIB_DEPS = @GL_LIB_DEPS@ |
GL_LIB_GLOB = @GL_LIB_GLOB@ |
GL_LIB_NAME = @GL_LIB_NAME@ |
GL_PC_CFLAGS = @GL_PC_CFLAGS@ |
GL_PC_LIB_PRIV = @GL_PC_LIB_PRIV@ |
GL_PC_REQ_PRIV = @GL_PC_REQ_PRIV@ |
GREP = @GREP@ |
HAVE_XF86VIDMODE = @HAVE_XF86VIDMODE@ |
INDENT = @INDENT@ |
INDENT_FLAGS = @INDENT_FLAGS@ |
INSTALL = @INSTALL@ |
INSTALL_DATA = @INSTALL_DATA@ |
INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ |
INTEL_CFLAGS = @INTEL_CFLAGS@ |
INTEL_LIBS = @INTEL_LIBS@ |
LD = @LD@ |
LDFLAGS = @LDFLAGS@ |
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ |
LEX = @LEX@ |
LEXLIB = @LEXLIB@ |
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ |
LIBCLC_INCLUDEDIR = @LIBCLC_INCLUDEDIR@ |
LIBCLC_LIBEXECDIR = @LIBCLC_LIBEXECDIR@ |
LIBDRM_CFLAGS = @LIBDRM_CFLAGS@ |
LIBDRM_LIBS = @LIBDRM_LIBS@ |
LIBDRM_XORG_CFLAGS = @LIBDRM_XORG_CFLAGS@ |
LIBDRM_XORG_LIBS = @LIBDRM_XORG_LIBS@ |
LIBKMS_XORG_CFLAGS = @LIBKMS_XORG_CFLAGS@ |
LIBKMS_XORG_LIBS = @LIBKMS_XORG_LIBS@ |
LIBOBJS = @LIBOBJS@ |
LIBS = @LIBS@ |
LIBTOOL = @LIBTOOL@ |
LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ |
LIBUDEV_LIBS = @LIBUDEV_LIBS@ |
LIB_DIR = @LIB_DIR@ |
LIPO = @LIPO@ |
LLVM_BINDIR = @LLVM_BINDIR@ |
LLVM_CFLAGS = @LLVM_CFLAGS@ |
LLVM_CONFIG = @LLVM_CONFIG@ |
LLVM_CPPFLAGS = @LLVM_CPPFLAGS@ |
LLVM_CXXFLAGS = @LLVM_CXXFLAGS@ |
LLVM_INCLUDEDIR = @LLVM_INCLUDEDIR@ |
LLVM_LDFLAGS = @LLVM_LDFLAGS@ |
LLVM_LIBDIR = @LLVM_LIBDIR@ |
LLVM_LIBS = @LLVM_LIBS@ |
LLVM_VERSION = @LLVM_VERSION@ |
LN_S = @LN_S@ |
LTLIBOBJS = @LTLIBOBJS@ |
MAKE = @MAKE@ |
MAKEINFO = @MAKEINFO@ |
MANIFEST_TOOL = @MANIFEST_TOOL@ |
MESA_LLVM = @MESA_LLVM@ |
MKDIR_P = @MKDIR_P@ |
NM = @NM@ |
NMEDIT = @NMEDIT@ |
NOUVEAU_CFLAGS = @NOUVEAU_CFLAGS@ |
NOUVEAU_LIBS = @NOUVEAU_LIBS@ |
OBJDUMP = @OBJDUMP@ |
OBJEXT = @OBJEXT@ |
OPENCL_LIB_INSTALL_DIR = @OPENCL_LIB_INSTALL_DIR@ |
OSMESA_LIB = @OSMESA_LIB@ |
OSMESA_LIB_DEPS = @OSMESA_LIB_DEPS@ |
OSMESA_LIB_NAME = @OSMESA_LIB_NAME@ |
OSMESA_MESA_DEPS = @OSMESA_MESA_DEPS@ |
OSMESA_PC_LIB_PRIV = @OSMESA_PC_LIB_PRIV@ |
OSMESA_PC_REQ = @OSMESA_PC_REQ@ |
OSMESA_VERSION = @OSMESA_VERSION@ |
OTOOL = @OTOOL@ |
OTOOL64 = @OTOOL64@ |
PACKAGE = @PACKAGE@ |
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ |
PACKAGE_NAME = @PACKAGE_NAME@ |
PACKAGE_STRING = @PACKAGE_STRING@ |
PACKAGE_TARNAME = @PACKAGE_TARNAME@ |
PACKAGE_URL = @PACKAGE_URL@ |
PACKAGE_VERSION = @PACKAGE_VERSION@ |
PATH_SEPARATOR = @PATH_SEPARATOR@ |
PERL = @PERL@ |
PKG_CONFIG = @PKG_CONFIG@ |
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ |
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ |
POSIX_SHELL = @POSIX_SHELL@ |
PTHREAD_CC = @PTHREAD_CC@ |
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ |
PTHREAD_LIBS = @PTHREAD_LIBS@ |
PYTHON2 = @PYTHON2@ |
RADEON_CFLAGS = @RADEON_CFLAGS@ |
RADEON_LIBS = @RADEON_LIBS@ |
RANLIB = @RANLIB@ |
SED = @SED@ |
SELINUX_LIBS = @SELINUX_LIBS@ |
SET_MAKE = @SET_MAKE@ |
SHELL = @SHELL@ |
STRIP = @STRIP@ |
VDPAU_CFLAGS = @VDPAU_CFLAGS@ |
VDPAU_LIBS = @VDPAU_LIBS@ |
VDPAU_LIB_INSTALL_DIR = @VDPAU_LIB_INSTALL_DIR@ |
VDPAU_MAJOR = @VDPAU_MAJOR@ |
VDPAU_MINOR = @VDPAU_MINOR@ |
VERSION = @VERSION@ |
VG_LIB_DEPS = @VG_LIB_DEPS@ |
VG_LIB_GLOB = @VG_LIB_GLOB@ |
VG_LIB_NAME = @VG_LIB_NAME@ |
VG_PC_LIB_PRIV = @VG_PC_LIB_PRIV@ |
VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@ |
VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@ |
WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ |
WAYLAND_LIBS = @WAYLAND_LIBS@ |
WAYLAND_SCANNER = @WAYLAND_SCANNER@ |
X11_INCLUDES = @X11_INCLUDES@ |
XA_MAJOR = @XA_MAJOR@ |
XA_MINOR = @XA_MINOR@ |
XA_TINY = @XA_TINY@ |
XA_VERSION = @XA_VERSION@ |
XCB_DRI2_CFLAGS = @XCB_DRI2_CFLAGS@ |
XCB_DRI2_LIBS = @XCB_DRI2_LIBS@ |
XEXT_CFLAGS = @XEXT_CFLAGS@ |
XEXT_LIBS = @XEXT_LIBS@ |
XF86VIDMODE_CFLAGS = @XF86VIDMODE_CFLAGS@ |
XF86VIDMODE_LIBS = @XF86VIDMODE_LIBS@ |
XLIBGL_CFLAGS = @XLIBGL_CFLAGS@ |
XLIBGL_LIBS = @XLIBGL_LIBS@ |
XORG_CFLAGS = @XORG_CFLAGS@ |
XORG_DRIVER_INSTALL_DIR = @XORG_DRIVER_INSTALL_DIR@ |
XORG_LIBS = @XORG_LIBS@ |
XVMC_CFLAGS = @XVMC_CFLAGS@ |
XVMC_LIBS = @XVMC_LIBS@ |
XVMC_LIB_INSTALL_DIR = @XVMC_LIB_INSTALL_DIR@ |
XVMC_MAJOR = @XVMC_MAJOR@ |
XVMC_MINOR = @XVMC_MINOR@ |
YACC = @YACC@ |
YFLAGS = @YFLAGS@ |
abs_builddir = @abs_builddir@ |
abs_srcdir = @abs_srcdir@ |
abs_top_builddir = @abs_top_builddir@ |
abs_top_srcdir = @abs_top_srcdir@ |
ac_ct_AR = @ac_ct_AR@ |
ac_ct_CC = @ac_ct_CC@ |
ac_ct_CC_FOR_BUILD = @ac_ct_CC_FOR_BUILD@ |
ac_ct_CXX = @ac_ct_CXX@ |
ac_ct_CXX_FOR_BUILD = @ac_ct_CXX_FOR_BUILD@ |
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ |
am__include = @am__include@ |
am__leading_dot = @am__leading_dot@ |
am__quote = @am__quote@ |
am__tar = @am__tar@ |
am__untar = @am__untar@ |
ax_pthread_config = @ax_pthread_config@ |
bindir = @bindir@ |
build = @build@ |
build_alias = @build_alias@ |
build_cpu = @build_cpu@ |
build_os = @build_os@ |
build_vendor = @build_vendor@ |
builddir = @builddir@ |
datadir = @datadir@ |
datarootdir = @datarootdir@ |
docdir = @docdir@ |
dvidir = @dvidir@ |
exec_prefix = @exec_prefix@ |
host = @host@ |
host_alias = @host_alias@ |
host_cpu = @host_cpu@ |
host_os = @host_os@ |
host_vendor = @host_vendor@ |
htmldir = @htmldir@ |
includedir = @includedir@ |
infodir = @infodir@ |
install_sh = @install_sh@ |
libdir = @libdir@ |
libexecdir = @libexecdir@ |
localedir = @localedir@ |
localstatedir = @localstatedir@ |
mandir = @mandir@ |
mkdir_p = @mkdir_p@ |
oldincludedir = @oldincludedir@ |
pdfdir = @pdfdir@ |
prefix = @prefix@ |
program_transform_name = @program_transform_name@ |
psdir = @psdir@ |
sbindir = @sbindir@ |
sharedstatedir = @sharedstatedir@ |
srcdir = @srcdir@ |
sysconfdir = @sysconfdir@ |
target = @target@ |
target_alias = @target_alias@ |
target_cpu = @target_cpu@ |
target_os = @target_os@ |
target_vendor = @target_vendor@ |
top_build_prefix = @top_build_prefix@ |
top_builddir = @top_builddir@ |
top_srcdir = @top_srcdir@ |
GALLIUM_CFLAGS = \ |
-I$(top_srcdir)/include \ |
-I$(top_srcdir)/src/gallium/include \ |
-I$(top_srcdir)/src/gallium/auxiliary \ |
$(DEFINES) |
AM_CPPFLAGS = \ |
$(GALLIUM_CFLAGS) |
noinst_LTLIBRARIES = libws_null.la |
libws_null_la_SOURCES = null_sw_winsys.c |
all: all-am |
.SUFFIXES: |
.SUFFIXES: .c .lo .o .obj |
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/src/gallium/Automake.inc $(am__configure_deps) |
@for dep in $?; do \ |
case '$(am__configure_deps)' in \ |
*$$dep*) \ |
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ |
&& { if test -f $@; then exit 0; else break; fi; }; \ |
exit 1;; \ |
esac; \ |
done; \ |
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/gallium/winsys/sw/null/Makefile'; \ |
$(am__cd) $(top_srcdir) && \ |
$(AUTOMAKE) --foreign src/gallium/winsys/sw/null/Makefile |
.PRECIOUS: Makefile |
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
@case '$?' in \ |
*config.status*) \ |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ |
*) \ |
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ |
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ |
esac; |
$(top_srcdir)/src/gallium/Automake.inc: |
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(top_srcdir)/configure: $(am__configure_deps) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(ACLOCAL_M4): $(am__aclocal_m4_deps) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(am__aclocal_m4_deps): |
clean-noinstLTLIBRARIES: |
-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) |
@list='$(noinst_LTLIBRARIES)'; \ |
locs=`for p in $$list; do echo $$p; done | \ |
sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ |
sort -u`; \ |
test -z "$$locs" || { \ |
echo rm -f $${locs}; \ |
rm -f $${locs}; \ |
} |
libws_null.la: $(libws_null_la_OBJECTS) $(libws_null_la_DEPENDENCIES) $(EXTRA_libws_null_la_DEPENDENCIES) |
$(AM_V_CCLD)$(LINK) $(libws_null_la_OBJECTS) $(libws_null_la_LIBADD) $(LIBS) |
mostlyclean-compile: |
-rm -f *.$(OBJEXT) |
distclean-compile: |
-rm -f *.tab.c |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/null_sw_winsys.Plo@am__quote@ |
.c.o: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< |
.c.obj: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` |
.c.lo: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< |
mostlyclean-libtool: |
-rm -f *.lo |
clean-libtool: |
-rm -rf .libs _libs |
ID: $(am__tagged_files) |
$(am__define_uniq_tagged_files); mkid -fID $$unique |
tags: tags-am |
TAGS: tags |
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
set x; \ |
here=`pwd`; \ |
$(am__define_uniq_tagged_files); \ |
shift; \ |
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ |
test -n "$$unique" || unique=$$empty_fix; \ |
if test $$# -gt 0; then \ |
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
"$$@" $$unique; \ |
else \ |
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
$$unique; \ |
fi; \ |
fi |
ctags: ctags-am |
CTAGS: ctags |
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
$(am__define_uniq_tagged_files); \ |
test -z "$(CTAGS_ARGS)$$unique" \ |
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ |
$$unique |
GTAGS: |
here=`$(am__cd) $(top_builddir) && pwd` \ |
&& $(am__cd) $(top_srcdir) \ |
&& gtags -i $(GTAGS_ARGS) "$$here" |
cscopelist: cscopelist-am |
cscopelist-am: $(am__tagged_files) |
list='$(am__tagged_files)'; \ |
case "$(srcdir)" in \ |
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ |
*) sdir=$(subdir)/$(srcdir) ;; \ |
esac; \ |
for i in $$list; do \ |
if test -f "$$i"; then \ |
echo "$(subdir)/$$i"; \ |
else \ |
echo "$$sdir/$$i"; \ |
fi; \ |
done >> $(top_builddir)/cscope.files |
distclean-tags: |
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |
distdir: $(DISTFILES) |
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
list='$(DISTFILES)'; \ |
dist_files=`for file in $$list; do echo $$file; done | \ |
sed -e "s|^$$srcdirstrip/||;t" \ |
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ |
case $$dist_files in \ |
*/*) $(MKDIR_P) `echo "$$dist_files" | \ |
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ |
sort -u` ;; \ |
esac; \ |
for file in $$dist_files; do \ |
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ |
if test -d $$d/$$file; then \ |
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ |
if test -d "$(distdir)/$$file"; then \ |
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |
fi; \ |
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ |
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ |
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |
fi; \ |
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ |
else \ |
test -f "$(distdir)/$$file" \ |
|| cp -p $$d/$$file "$(distdir)/$$file" \ |
|| exit 1; \ |
fi; \ |
done |
check-am: all-am |
check: check-am |
all-am: Makefile $(LTLIBRARIES) |
installdirs: |
install: install-am |
install-exec: install-exec-am |
install-data: install-data-am |
uninstall: uninstall-am |
install-am: all-am |
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am |
installcheck: installcheck-am |
install-strip: |
if test -z '$(STRIP)'; then \ |
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |
install; \ |
else \ |
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ |
fi |
mostlyclean-generic: |
clean-generic: |
distclean-generic: |
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) |
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) |
maintainer-clean-generic: |
@echo "This command is intended for maintainers to use" |
@echo "it deletes files that may require special tools to rebuild." |
clean: clean-am |
clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ |
mostlyclean-am |
distclean: distclean-am |
-rm -rf ./$(DEPDIR) |
-rm -f Makefile |
distclean-am: clean-am distclean-compile distclean-generic \ |
distclean-tags |
dvi: dvi-am |
dvi-am: |
html: html-am |
html-am: |
info: info-am |
info-am: |
install-data-am: |
install-dvi: install-dvi-am |
install-dvi-am: |
install-exec-am: |
install-html: install-html-am |
install-html-am: |
install-info: install-info-am |
install-info-am: |
install-man: |
install-pdf: install-pdf-am |
install-pdf-am: |
install-ps: install-ps-am |
install-ps-am: |
installcheck-am: |
maintainer-clean: maintainer-clean-am |
-rm -rf ./$(DEPDIR) |
-rm -f Makefile |
maintainer-clean-am: distclean-am maintainer-clean-generic |
mostlyclean: mostlyclean-am |
mostlyclean-am: mostlyclean-compile mostlyclean-generic \ |
mostlyclean-libtool |
pdf: pdf-am |
pdf-am: |
ps: ps-am |
ps-am: |
uninstall-am: |
.MAKE: install-am install-strip |
.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ |
clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ |
ctags-am distclean distclean-compile distclean-generic \ |
distclean-libtool distclean-tags distdir dvi dvi-am html \ |
html-am info info-am install install-am install-data \ |
install-data-am install-dvi install-dvi-am install-exec \ |
install-exec-am install-html install-html-am install-info \ |
install-info-am install-man install-pdf install-pdf-am \ |
install-ps install-ps-am install-strip installcheck \ |
installcheck-am installdirs maintainer-clean \ |
maintainer-clean-generic mostlyclean mostlyclean-compile \ |
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ |
tags tags-am uninstall uninstall-am |
# Tell versions [3.59,3.63) of GNU make to not export all variables. |
# Otherwise a system limit (for SysV at least) may be exceeded. |
.NOEXPORT: |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/null/SConscript |
---|
0,0 → 1,22 |
####################################################################### |
# SConscript for xlib winsys |
Import('*') |
env = env.Clone() |
env.Append(CPPPATH = [ |
'#/src/gallium/include', |
'#/src/gallium/auxiliary', |
'#/src/gallium/drivers', |
]) |
ws_null = env.ConvenienceLibrary( |
target = 'ws_null', |
source = [ |
'null_sw_winsys.c', |
] |
) |
env.Alias('ws_null', ws_null) |
Export('ws_null') |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/null/null_sw_winsys.c |
---|
0,0 → 1,150 |
/************************************************************************** |
* |
* Copyright 2010 VMware, Inc. |
* All Rights Reserved. |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL |
* THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, |
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR |
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE |
* USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
**************************************************************************/ |
/** |
* @file |
* Null software rasterizer winsys. |
* |
* There is no present support. Framebuffer data needs to be obtained via |
* transfers. |
* |
* @author Jose Fonseca |
*/ |
#include <stdio.h> |
#include "pipe/p_format.h" |
#include "util/u_memory.h" |
#include "state_tracker/sw_winsys.h" |
#include "null_sw_winsys.h" |
static boolean |
null_sw_is_displaytarget_format_supported(struct sw_winsys *ws, |
unsigned tex_usage, |
enum pipe_format format ) |
{ |
return FALSE; |
} |
static void * |
null_sw_displaytarget_map(struct sw_winsys *ws, |
struct sw_displaytarget *dt, |
unsigned flags ) |
{ |
assert(0); |
return NULL; |
} |
static void |
null_sw_displaytarget_unmap(struct sw_winsys *ws, |
struct sw_displaytarget *dt ) |
{ |
assert(0); |
} |
static void |
null_sw_displaytarget_destroy(struct sw_winsys *winsys, |
struct sw_displaytarget *dt) |
{ |
assert(0); |
} |
static struct sw_displaytarget * |
null_sw_displaytarget_create(struct sw_winsys *winsys, |
unsigned tex_usage, |
enum pipe_format format, |
unsigned width, unsigned height, |
unsigned alignment, |
unsigned *stride) |
{ |
fprintf(stderr, "null_sw_displaytarget_create() returning NULL\n"); |
return NULL; |
} |
static struct sw_displaytarget * |
null_sw_displaytarget_from_handle(struct sw_winsys *winsys, |
const struct pipe_resource *templat, |
struct winsys_handle *whandle, |
unsigned *stride) |
{ |
return NULL; |
} |
static boolean |
null_sw_displaytarget_get_handle(struct sw_winsys *winsys, |
struct sw_displaytarget *dt, |
struct winsys_handle *whandle) |
{ |
assert(0); |
return FALSE; |
} |
static void |
null_sw_displaytarget_display(struct sw_winsys *winsys, |
struct sw_displaytarget *dt, |
void *context_private) |
{ |
assert(0); |
} |
static void |
null_sw_destroy(struct sw_winsys *winsys) |
{ |
FREE(winsys); |
} |
struct sw_winsys * |
null_sw_create(void) |
{ |
static struct sw_winsys *winsys; |
winsys = CALLOC_STRUCT(sw_winsys); |
if (!winsys) |
return NULL; |
winsys->destroy = null_sw_destroy; |
winsys->is_displaytarget_format_supported = null_sw_is_displaytarget_format_supported; |
winsys->displaytarget_create = null_sw_displaytarget_create; |
winsys->displaytarget_from_handle = null_sw_displaytarget_from_handle; |
winsys->displaytarget_get_handle = null_sw_displaytarget_get_handle; |
winsys->displaytarget_map = null_sw_displaytarget_map; |
winsys->displaytarget_unmap = null_sw_displaytarget_unmap; |
winsys->displaytarget_display = null_sw_displaytarget_display; |
winsys->displaytarget_destroy = null_sw_displaytarget_destroy; |
return winsys; |
} |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/null/null_sw_winsys.h |
---|
0,0 → 1,40 |
/************************************************************************** |
* |
* Copyright 2010 VMware, Inc. |
* All Rights Reserved. |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL |
* THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, |
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR |
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE |
* USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
**************************************************************************/ |
#ifndef NULL_SW_WINSYS_H_ |
#define NULL_SW_WINSYS_H_ |
struct sw_winsys; |
struct sw_winsys * |
null_sw_create(void); |
#endif /* NULL_SW_WINSYS_H_ */ |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/wayland/Makefile.am |
---|
0,0 → 1,31 |
# Copyright © 2012 Intel Corporation |
# |
# Permission is hereby granted, free of charge, to any person obtaining a |
# copy of this software and associated documentation files (the "Software"), |
# to deal in the Software without restriction, including without limitation |
# the rights to use, copy, modify, merge, publish, distribute, sublicense, |
# and/or sell copies of the Software, and to permit persons to whom the |
# Software is furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice (including the next |
# paragraph) shall be included in all copies or substantial portions of the |
# Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
# DEALINGS IN THE SOFTWARE. |
include $(top_srcdir)/src/gallium/Automake.inc |
AM_CPPFLAGS = \ |
$(GALLIUM_CFLAGS) \ |
$(WAYLAND_CFLAGS) |
noinst_LTLIBRARIES = libws_wayland.la |
libws_wayland_la_SOURCES = wayland_sw_winsys.c |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/wayland/Makefile.in |
---|
0,0 → 1,777 |
# Makefile.in generated by automake 1.14 from Makefile.am. |
# @configure_input@ |
# Copyright (C) 1994-2013 Free Software Foundation, Inc. |
# This Makefile.in is free software; the Free Software Foundation |
# gives unlimited permission to copy and/or distribute it, |
# with or without modifications, as long as this notice is preserved. |
# This program is distributed in the hope that it will be useful, |
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without |
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A |
# PARTICULAR PURPOSE. |
@SET_MAKE@ |
# Copyright © 2012 Intel Corporation |
# |
# Permission is hereby granted, free of charge, to any person obtaining a |
# copy of this software and associated documentation files (the "Software"), |
# to deal in the Software without restriction, including without limitation |
# the rights to use, copy, modify, merge, publish, distribute, sublicense, |
# and/or sell copies of the Software, and to permit persons to whom the |
# Software is furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice (including the next |
# paragraph) shall be included in all copies or substantial portions of the |
# Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
# DEALINGS IN THE SOFTWARE. |
VPATH = @srcdir@ |
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' |
am__make_running_with_option = \ |
case $${target_option-} in \ |
?) ;; \ |
*) echo "am__make_running_with_option: internal error: invalid" \ |
"target option '$${target_option-}' specified" >&2; \ |
exit 1;; \ |
esac; \ |
has_opt=no; \ |
sane_makeflags=$$MAKEFLAGS; \ |
if $(am__is_gnu_make); then \ |
sane_makeflags=$$MFLAGS; \ |
else \ |
case $$MAKEFLAGS in \ |
*\\[\ \ ]*) \ |
bs=\\; \ |
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ |
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ |
esac; \ |
fi; \ |
skip_next=no; \ |
strip_trailopt () \ |
{ \ |
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ |
}; \ |
for flg in $$sane_makeflags; do \ |
test $$skip_next = yes && { skip_next=no; continue; }; \ |
case $$flg in \ |
*=*|--*) continue;; \ |
-*I) strip_trailopt 'I'; skip_next=yes;; \ |
-*I?*) strip_trailopt 'I';; \ |
-*O) strip_trailopt 'O'; skip_next=yes;; \ |
-*O?*) strip_trailopt 'O';; \ |
-*l) strip_trailopt 'l'; skip_next=yes;; \ |
-*l?*) strip_trailopt 'l';; \ |
-[dEDm]) skip_next=yes;; \ |
-[JT]) skip_next=yes;; \ |
esac; \ |
case $$flg in \ |
*$$target_option*) has_opt=yes; break;; \ |
esac; \ |
done; \ |
test $$has_opt = yes |
am__make_dryrun = (target_option=n; $(am__make_running_with_option)) |
am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) |
pkgdatadir = $(datadir)/@PACKAGE@ |
pkgincludedir = $(includedir)/@PACKAGE@ |
pkglibdir = $(libdir)/@PACKAGE@ |
pkglibexecdir = $(libexecdir)/@PACKAGE@ |
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd |
install_sh_DATA = $(install_sh) -c -m 644 |
install_sh_PROGRAM = $(install_sh) -c |
install_sh_SCRIPT = $(install_sh) -c |
INSTALL_HEADER = $(INSTALL_DATA) |
transform = $(program_transform_name) |
NORMAL_INSTALL = : |
PRE_INSTALL = : |
POST_INSTALL = : |
NORMAL_UNINSTALL = : |
PRE_UNINSTALL = : |
POST_UNINSTALL = : |
build_triplet = @build@ |
host_triplet = @host@ |
target_triplet = @target@ |
DIST_COMMON = $(top_srcdir)/src/gallium/Automake.inc \ |
$(srcdir)/Makefile.in $(srcdir)/Makefile.am \ |
$(top_srcdir)/bin/depcomp |
subdir = src/gallium/winsys/sw/wayland |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_prog_bison.m4 \ |
$(top_srcdir)/m4/ax_prog_cc_for_build.m4 \ |
$(top_srcdir)/m4/ax_prog_cxx_for_build.m4 \ |
$(top_srcdir)/m4/ax_prog_flex.m4 \ |
$(top_srcdir)/m4/ax_pthread.m4 \ |
$(top_srcdir)/m4/ax_python_module.m4 \ |
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ |
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ |
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac |
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
$(ACLOCAL_M4) |
mkinstalldirs = $(install_sh) -d |
CONFIG_CLEAN_FILES = |
CONFIG_CLEAN_VPATH_FILES = |
LTLIBRARIES = $(noinst_LTLIBRARIES) |
libws_wayland_la_LIBADD = |
am_libws_wayland_la_OBJECTS = wayland_sw_winsys.lo |
libws_wayland_la_OBJECTS = $(am_libws_wayland_la_OBJECTS) |
AM_V_lt = $(am__v_lt_@AM_V@) |
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) |
am__v_lt_0 = --silent |
am__v_lt_1 = |
AM_V_P = $(am__v_P_@AM_V@) |
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) |
am__v_P_0 = false |
am__v_P_1 = : |
AM_V_GEN = $(am__v_GEN_@AM_V@) |
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) |
am__v_GEN_0 = @echo " GEN " $@; |
am__v_GEN_1 = |
AM_V_at = $(am__v_at_@AM_V@) |
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) |
am__v_at_0 = @ |
am__v_at_1 = |
DEFAULT_INCLUDES = -I.@am__isrc@ |
depcomp = $(SHELL) $(top_srcdir)/bin/depcomp |
am__depfiles_maybe = depfiles |
am__mv = mv -f |
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ |
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) |
LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ |
$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ |
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ |
$(AM_CFLAGS) $(CFLAGS) |
AM_V_CC = $(am__v_CC_@AM_V@) |
am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) |
am__v_CC_0 = @echo " CC " $@; |
am__v_CC_1 = |
CCLD = $(CC) |
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ |
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ |
$(AM_LDFLAGS) $(LDFLAGS) -o $@ |
AM_V_CCLD = $(am__v_CCLD_@AM_V@) |
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) |
am__v_CCLD_0 = @echo " CCLD " $@; |
am__v_CCLD_1 = |
SOURCES = $(libws_wayland_la_SOURCES) |
DIST_SOURCES = $(libws_wayland_la_SOURCES) |
am__can_run_installinfo = \ |
case $$AM_UPDATE_INFO_DIR in \ |
n|no|NO) false;; \ |
*) (install-info --version) >/dev/null 2>&1;; \ |
esac |
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) |
# Read a list of newline-separated strings from the standard input, |
# and print each of them once, without duplicates. Input order is |
# *not* preserved. |
am__uniquify_input = $(AWK) '\ |
BEGIN { nonempty = 0; } \ |
{ items[$$0] = 1; nonempty = 1; } \ |
END { if (nonempty) { for (i in items) print i; }; } \ |
' |
# Make sure the list of sources is unique. This is necessary because, |
# e.g., the same source file might be shared among _SOURCES variables |
# for different programs/libraries. |
am__define_uniq_tagged_files = \ |
list='$(am__tagged_files)'; \ |
unique=`for i in $$list; do \ |
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ |
done | $(am__uniquify_input)` |
ETAGS = etags |
CTAGS = ctags |
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) |
ACLOCAL = @ACLOCAL@ |
AMTAR = @AMTAR@ |
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ |
AR = @AR@ |
AUTOCONF = @AUTOCONF@ |
AUTOHEADER = @AUTOHEADER@ |
AUTOMAKE = @AUTOMAKE@ |
AWK = @AWK@ |
BUILD_EXEEXT = @BUILD_EXEEXT@ |
BUILD_OBJEXT = @BUILD_OBJEXT@ |
CC = @CC@ |
CCAS = @CCAS@ |
CCASDEPMODE = @CCASDEPMODE@ |
CCASFLAGS = @CCASFLAGS@ |
CCDEPMODE = @CCDEPMODE@ |
CC_FOR_BUILD = @CC_FOR_BUILD@ |
CFLAGS = @CFLAGS@ |
CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ |
CLANG_RESOURCE_DIR = @CLANG_RESOURCE_DIR@ |
CLOCK_LIB = @CLOCK_LIB@ |
CPP = @CPP@ |
CPPFLAGS = @CPPFLAGS@ |
CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@ |
CPP_FOR_BUILD = @CPP_FOR_BUILD@ |
CXX = @CXX@ |
CXXCPP = @CXXCPP@ |
CXXCPPFLAGS_FOR_BUILD = @CXXCPPFLAGS_FOR_BUILD@ |
CXXCPP_FOR_BUILD = @CXXCPP_FOR_BUILD@ |
CXXDEPMODE = @CXXDEPMODE@ |
CXXFLAGS = @CXXFLAGS@ |
CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@ |
CXX_FOR_BUILD = @CXX_FOR_BUILD@ |
CYGPATH_W = @CYGPATH_W@ |
DEFINES = @DEFINES@ |
DEFINES_FOR_BUILD = @DEFINES_FOR_BUILD@ |
DEFS = @DEFS@ |
DEPDIR = @DEPDIR@ |
DLLTOOL = @DLLTOOL@ |
DLOPEN_LIBS = @DLOPEN_LIBS@ |
DRI2PROTO_CFLAGS = @DRI2PROTO_CFLAGS@ |
DRI2PROTO_LIBS = @DRI2PROTO_LIBS@ |
DRIGL_CFLAGS = @DRIGL_CFLAGS@ |
DRIGL_LIBS = @DRIGL_LIBS@ |
DRI_DRIVER_INSTALL_DIR = @DRI_DRIVER_INSTALL_DIR@ |
DRI_DRIVER_SEARCH_DIR = @DRI_DRIVER_SEARCH_DIR@ |
DRI_LIB_DEPS = @DRI_LIB_DEPS@ |
DRI_PC_REQ_PRIV = @DRI_PC_REQ_PRIV@ |
DSYMUTIL = @DSYMUTIL@ |
DUMPBIN = @DUMPBIN@ |
ECHO_C = @ECHO_C@ |
ECHO_N = @ECHO_N@ |
ECHO_T = @ECHO_T@ |
EGL_CFLAGS = @EGL_CFLAGS@ |
EGL_CLIENT_APIS = @EGL_CLIENT_APIS@ |
EGL_DRIVER_INSTALL_DIR = @EGL_DRIVER_INSTALL_DIR@ |
EGL_LIB_DEPS = @EGL_LIB_DEPS@ |
EGL_LIB_GLOB = @EGL_LIB_GLOB@ |
EGL_LIB_NAME = @EGL_LIB_NAME@ |
EGL_NATIVE_PLATFORM = @EGL_NATIVE_PLATFORM@ |
EGL_PLATFORMS = @EGL_PLATFORMS@ |
EGREP = @EGREP@ |
ELF_LIB = @ELF_LIB@ |
EXEEXT = @EXEEXT@ |
EXPAT_INCLUDES = @EXPAT_INCLUDES@ |
FGREP = @FGREP@ |
FREEDRENO_CFLAGS = @FREEDRENO_CFLAGS@ |
FREEDRENO_LIBS = @FREEDRENO_LIBS@ |
GALLIUM_DRI_LIB_DEPS = @GALLIUM_DRI_LIB_DEPS@ |
GALLIUM_PIPE_LOADER_DEFINES = @GALLIUM_PIPE_LOADER_DEFINES@ |
GALLIUM_PIPE_LOADER_LIBS = @GALLIUM_PIPE_LOADER_LIBS@ |
GALLIUM_PIPE_LOADER_XCB_CFLAGS = @GALLIUM_PIPE_LOADER_XCB_CFLAGS@ |
GALLIUM_PIPE_LOADER_XCB_LIBS = @GALLIUM_PIPE_LOADER_XCB_LIBS@ |
GBM_PC_LIB_PRIV = @GBM_PC_LIB_PRIV@ |
GBM_PC_REQ_PRIV = @GBM_PC_REQ_PRIV@ |
GLAPI_LIB_GLOB = @GLAPI_LIB_GLOB@ |
GLAPI_LIB_NAME = @GLAPI_LIB_NAME@ |
GLESv1_CM_LIB_DEPS = @GLESv1_CM_LIB_DEPS@ |
GLESv1_CM_LIB_GLOB = @GLESv1_CM_LIB_GLOB@ |
GLESv1_CM_LIB_NAME = @GLESv1_CM_LIB_NAME@ |
GLESv1_CM_PC_LIB_PRIV = @GLESv1_CM_PC_LIB_PRIV@ |
GLESv2_LIB_DEPS = @GLESv2_LIB_DEPS@ |
GLESv2_LIB_GLOB = @GLESv2_LIB_GLOB@ |
GLESv2_LIB_NAME = @GLESv2_LIB_NAME@ |
GLESv2_PC_LIB_PRIV = @GLESv2_PC_LIB_PRIV@ |
GLPROTO_CFLAGS = @GLPROTO_CFLAGS@ |
GLPROTO_LIBS = @GLPROTO_LIBS@ |
GLX_TLS = @GLX_TLS@ |
GL_LIB = @GL_LIB@ |
GL_LIB_DEPS = @GL_LIB_DEPS@ |
GL_LIB_GLOB = @GL_LIB_GLOB@ |
GL_LIB_NAME = @GL_LIB_NAME@ |
GL_PC_CFLAGS = @GL_PC_CFLAGS@ |
GL_PC_LIB_PRIV = @GL_PC_LIB_PRIV@ |
GL_PC_REQ_PRIV = @GL_PC_REQ_PRIV@ |
GREP = @GREP@ |
HAVE_XF86VIDMODE = @HAVE_XF86VIDMODE@ |
INDENT = @INDENT@ |
INDENT_FLAGS = @INDENT_FLAGS@ |
INSTALL = @INSTALL@ |
INSTALL_DATA = @INSTALL_DATA@ |
INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ |
INTEL_CFLAGS = @INTEL_CFLAGS@ |
INTEL_LIBS = @INTEL_LIBS@ |
LD = @LD@ |
LDFLAGS = @LDFLAGS@ |
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ |
LEX = @LEX@ |
LEXLIB = @LEXLIB@ |
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ |
LIBCLC_INCLUDEDIR = @LIBCLC_INCLUDEDIR@ |
LIBCLC_LIBEXECDIR = @LIBCLC_LIBEXECDIR@ |
LIBDRM_CFLAGS = @LIBDRM_CFLAGS@ |
LIBDRM_LIBS = @LIBDRM_LIBS@ |
LIBDRM_XORG_CFLAGS = @LIBDRM_XORG_CFLAGS@ |
LIBDRM_XORG_LIBS = @LIBDRM_XORG_LIBS@ |
LIBKMS_XORG_CFLAGS = @LIBKMS_XORG_CFLAGS@ |
LIBKMS_XORG_LIBS = @LIBKMS_XORG_LIBS@ |
LIBOBJS = @LIBOBJS@ |
LIBS = @LIBS@ |
LIBTOOL = @LIBTOOL@ |
LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ |
LIBUDEV_LIBS = @LIBUDEV_LIBS@ |
LIB_DIR = @LIB_DIR@ |
LIPO = @LIPO@ |
LLVM_BINDIR = @LLVM_BINDIR@ |
LLVM_CFLAGS = @LLVM_CFLAGS@ |
LLVM_CONFIG = @LLVM_CONFIG@ |
LLVM_CPPFLAGS = @LLVM_CPPFLAGS@ |
LLVM_CXXFLAGS = @LLVM_CXXFLAGS@ |
LLVM_INCLUDEDIR = @LLVM_INCLUDEDIR@ |
LLVM_LDFLAGS = @LLVM_LDFLAGS@ |
LLVM_LIBDIR = @LLVM_LIBDIR@ |
LLVM_LIBS = @LLVM_LIBS@ |
LLVM_VERSION = @LLVM_VERSION@ |
LN_S = @LN_S@ |
LTLIBOBJS = @LTLIBOBJS@ |
MAKE = @MAKE@ |
MAKEINFO = @MAKEINFO@ |
MANIFEST_TOOL = @MANIFEST_TOOL@ |
MESA_LLVM = @MESA_LLVM@ |
MKDIR_P = @MKDIR_P@ |
NM = @NM@ |
NMEDIT = @NMEDIT@ |
NOUVEAU_CFLAGS = @NOUVEAU_CFLAGS@ |
NOUVEAU_LIBS = @NOUVEAU_LIBS@ |
OBJDUMP = @OBJDUMP@ |
OBJEXT = @OBJEXT@ |
OPENCL_LIB_INSTALL_DIR = @OPENCL_LIB_INSTALL_DIR@ |
OSMESA_LIB = @OSMESA_LIB@ |
OSMESA_LIB_DEPS = @OSMESA_LIB_DEPS@ |
OSMESA_LIB_NAME = @OSMESA_LIB_NAME@ |
OSMESA_MESA_DEPS = @OSMESA_MESA_DEPS@ |
OSMESA_PC_LIB_PRIV = @OSMESA_PC_LIB_PRIV@ |
OSMESA_PC_REQ = @OSMESA_PC_REQ@ |
OSMESA_VERSION = @OSMESA_VERSION@ |
OTOOL = @OTOOL@ |
OTOOL64 = @OTOOL64@ |
PACKAGE = @PACKAGE@ |
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ |
PACKAGE_NAME = @PACKAGE_NAME@ |
PACKAGE_STRING = @PACKAGE_STRING@ |
PACKAGE_TARNAME = @PACKAGE_TARNAME@ |
PACKAGE_URL = @PACKAGE_URL@ |
PACKAGE_VERSION = @PACKAGE_VERSION@ |
PATH_SEPARATOR = @PATH_SEPARATOR@ |
PERL = @PERL@ |
PKG_CONFIG = @PKG_CONFIG@ |
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ |
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ |
POSIX_SHELL = @POSIX_SHELL@ |
PTHREAD_CC = @PTHREAD_CC@ |
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ |
PTHREAD_LIBS = @PTHREAD_LIBS@ |
PYTHON2 = @PYTHON2@ |
RADEON_CFLAGS = @RADEON_CFLAGS@ |
RADEON_LIBS = @RADEON_LIBS@ |
RANLIB = @RANLIB@ |
SED = @SED@ |
SELINUX_LIBS = @SELINUX_LIBS@ |
SET_MAKE = @SET_MAKE@ |
SHELL = @SHELL@ |
STRIP = @STRIP@ |
VDPAU_CFLAGS = @VDPAU_CFLAGS@ |
VDPAU_LIBS = @VDPAU_LIBS@ |
VDPAU_LIB_INSTALL_DIR = @VDPAU_LIB_INSTALL_DIR@ |
VDPAU_MAJOR = @VDPAU_MAJOR@ |
VDPAU_MINOR = @VDPAU_MINOR@ |
VERSION = @VERSION@ |
VG_LIB_DEPS = @VG_LIB_DEPS@ |
VG_LIB_GLOB = @VG_LIB_GLOB@ |
VG_LIB_NAME = @VG_LIB_NAME@ |
VG_PC_LIB_PRIV = @VG_PC_LIB_PRIV@ |
VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@ |
VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@ |
WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ |
WAYLAND_LIBS = @WAYLAND_LIBS@ |
WAYLAND_SCANNER = @WAYLAND_SCANNER@ |
X11_INCLUDES = @X11_INCLUDES@ |
XA_MAJOR = @XA_MAJOR@ |
XA_MINOR = @XA_MINOR@ |
XA_TINY = @XA_TINY@ |
XA_VERSION = @XA_VERSION@ |
XCB_DRI2_CFLAGS = @XCB_DRI2_CFLAGS@ |
XCB_DRI2_LIBS = @XCB_DRI2_LIBS@ |
XEXT_CFLAGS = @XEXT_CFLAGS@ |
XEXT_LIBS = @XEXT_LIBS@ |
XF86VIDMODE_CFLAGS = @XF86VIDMODE_CFLAGS@ |
XF86VIDMODE_LIBS = @XF86VIDMODE_LIBS@ |
XLIBGL_CFLAGS = @XLIBGL_CFLAGS@ |
XLIBGL_LIBS = @XLIBGL_LIBS@ |
XORG_CFLAGS = @XORG_CFLAGS@ |
XORG_DRIVER_INSTALL_DIR = @XORG_DRIVER_INSTALL_DIR@ |
XORG_LIBS = @XORG_LIBS@ |
XVMC_CFLAGS = @XVMC_CFLAGS@ |
XVMC_LIBS = @XVMC_LIBS@ |
XVMC_LIB_INSTALL_DIR = @XVMC_LIB_INSTALL_DIR@ |
XVMC_MAJOR = @XVMC_MAJOR@ |
XVMC_MINOR = @XVMC_MINOR@ |
YACC = @YACC@ |
YFLAGS = @YFLAGS@ |
abs_builddir = @abs_builddir@ |
abs_srcdir = @abs_srcdir@ |
abs_top_builddir = @abs_top_builddir@ |
abs_top_srcdir = @abs_top_srcdir@ |
ac_ct_AR = @ac_ct_AR@ |
ac_ct_CC = @ac_ct_CC@ |
ac_ct_CC_FOR_BUILD = @ac_ct_CC_FOR_BUILD@ |
ac_ct_CXX = @ac_ct_CXX@ |
ac_ct_CXX_FOR_BUILD = @ac_ct_CXX_FOR_BUILD@ |
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ |
am__include = @am__include@ |
am__leading_dot = @am__leading_dot@ |
am__quote = @am__quote@ |
am__tar = @am__tar@ |
am__untar = @am__untar@ |
ax_pthread_config = @ax_pthread_config@ |
bindir = @bindir@ |
build = @build@ |
build_alias = @build_alias@ |
build_cpu = @build_cpu@ |
build_os = @build_os@ |
build_vendor = @build_vendor@ |
builddir = @builddir@ |
datadir = @datadir@ |
datarootdir = @datarootdir@ |
docdir = @docdir@ |
dvidir = @dvidir@ |
exec_prefix = @exec_prefix@ |
host = @host@ |
host_alias = @host_alias@ |
host_cpu = @host_cpu@ |
host_os = @host_os@ |
host_vendor = @host_vendor@ |
htmldir = @htmldir@ |
includedir = @includedir@ |
infodir = @infodir@ |
install_sh = @install_sh@ |
libdir = @libdir@ |
libexecdir = @libexecdir@ |
localedir = @localedir@ |
localstatedir = @localstatedir@ |
mandir = @mandir@ |
mkdir_p = @mkdir_p@ |
oldincludedir = @oldincludedir@ |
pdfdir = @pdfdir@ |
prefix = @prefix@ |
program_transform_name = @program_transform_name@ |
psdir = @psdir@ |
sbindir = @sbindir@ |
sharedstatedir = @sharedstatedir@ |
srcdir = @srcdir@ |
sysconfdir = @sysconfdir@ |
target = @target@ |
target_alias = @target_alias@ |
target_cpu = @target_cpu@ |
target_os = @target_os@ |
target_vendor = @target_vendor@ |
top_build_prefix = @top_build_prefix@ |
top_builddir = @top_builddir@ |
top_srcdir = @top_srcdir@ |
GALLIUM_CFLAGS = \ |
-I$(top_srcdir)/include \ |
-I$(top_srcdir)/src/gallium/include \ |
-I$(top_srcdir)/src/gallium/auxiliary \ |
$(DEFINES) |
AM_CPPFLAGS = \ |
$(GALLIUM_CFLAGS) \ |
$(WAYLAND_CFLAGS) |
noinst_LTLIBRARIES = libws_wayland.la |
libws_wayland_la_SOURCES = wayland_sw_winsys.c |
all: all-am |
.SUFFIXES: |
.SUFFIXES: .c .lo .o .obj |
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/src/gallium/Automake.inc $(am__configure_deps) |
@for dep in $?; do \ |
case '$(am__configure_deps)' in \ |
*$$dep*) \ |
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ |
&& { if test -f $@; then exit 0; else break; fi; }; \ |
exit 1;; \ |
esac; \ |
done; \ |
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/gallium/winsys/sw/wayland/Makefile'; \ |
$(am__cd) $(top_srcdir) && \ |
$(AUTOMAKE) --foreign src/gallium/winsys/sw/wayland/Makefile |
.PRECIOUS: Makefile |
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
@case '$?' in \ |
*config.status*) \ |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ |
*) \ |
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ |
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ |
esac; |
$(top_srcdir)/src/gallium/Automake.inc: |
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(top_srcdir)/configure: $(am__configure_deps) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(ACLOCAL_M4): $(am__aclocal_m4_deps) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(am__aclocal_m4_deps): |
clean-noinstLTLIBRARIES: |
-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) |
@list='$(noinst_LTLIBRARIES)'; \ |
locs=`for p in $$list; do echo $$p; done | \ |
sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ |
sort -u`; \ |
test -z "$$locs" || { \ |
echo rm -f $${locs}; \ |
rm -f $${locs}; \ |
} |
libws_wayland.la: $(libws_wayland_la_OBJECTS) $(libws_wayland_la_DEPENDENCIES) $(EXTRA_libws_wayland_la_DEPENDENCIES) |
$(AM_V_CCLD)$(LINK) $(libws_wayland_la_OBJECTS) $(libws_wayland_la_LIBADD) $(LIBS) |
mostlyclean-compile: |
-rm -f *.$(OBJEXT) |
distclean-compile: |
-rm -f *.tab.c |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wayland_sw_winsys.Plo@am__quote@ |
.c.o: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< |
.c.obj: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` |
.c.lo: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< |
mostlyclean-libtool: |
-rm -f *.lo |
clean-libtool: |
-rm -rf .libs _libs |
ID: $(am__tagged_files) |
$(am__define_uniq_tagged_files); mkid -fID $$unique |
tags: tags-am |
TAGS: tags |
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
set x; \ |
here=`pwd`; \ |
$(am__define_uniq_tagged_files); \ |
shift; \ |
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ |
test -n "$$unique" || unique=$$empty_fix; \ |
if test $$# -gt 0; then \ |
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
"$$@" $$unique; \ |
else \ |
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
$$unique; \ |
fi; \ |
fi |
ctags: ctags-am |
CTAGS: ctags |
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
$(am__define_uniq_tagged_files); \ |
test -z "$(CTAGS_ARGS)$$unique" \ |
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ |
$$unique |
GTAGS: |
here=`$(am__cd) $(top_builddir) && pwd` \ |
&& $(am__cd) $(top_srcdir) \ |
&& gtags -i $(GTAGS_ARGS) "$$here" |
cscopelist: cscopelist-am |
cscopelist-am: $(am__tagged_files) |
list='$(am__tagged_files)'; \ |
case "$(srcdir)" in \ |
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ |
*) sdir=$(subdir)/$(srcdir) ;; \ |
esac; \ |
for i in $$list; do \ |
if test -f "$$i"; then \ |
echo "$(subdir)/$$i"; \ |
else \ |
echo "$$sdir/$$i"; \ |
fi; \ |
done >> $(top_builddir)/cscope.files |
distclean-tags: |
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |
distdir: $(DISTFILES) |
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
list='$(DISTFILES)'; \ |
dist_files=`for file in $$list; do echo $$file; done | \ |
sed -e "s|^$$srcdirstrip/||;t" \ |
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ |
case $$dist_files in \ |
*/*) $(MKDIR_P) `echo "$$dist_files" | \ |
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ |
sort -u` ;; \ |
esac; \ |
for file in $$dist_files; do \ |
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ |
if test -d $$d/$$file; then \ |
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ |
if test -d "$(distdir)/$$file"; then \ |
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |
fi; \ |
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ |
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ |
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |
fi; \ |
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ |
else \ |
test -f "$(distdir)/$$file" \ |
|| cp -p $$d/$$file "$(distdir)/$$file" \ |
|| exit 1; \ |
fi; \ |
done |
check-am: all-am |
check: check-am |
all-am: Makefile $(LTLIBRARIES) |
installdirs: |
install: install-am |
install-exec: install-exec-am |
install-data: install-data-am |
uninstall: uninstall-am |
install-am: all-am |
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am |
installcheck: installcheck-am |
install-strip: |
if test -z '$(STRIP)'; then \ |
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |
install; \ |
else \ |
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ |
fi |
mostlyclean-generic: |
clean-generic: |
distclean-generic: |
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) |
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) |
maintainer-clean-generic: |
@echo "This command is intended for maintainers to use" |
@echo "it deletes files that may require special tools to rebuild." |
clean: clean-am |
clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ |
mostlyclean-am |
distclean: distclean-am |
-rm -rf ./$(DEPDIR) |
-rm -f Makefile |
distclean-am: clean-am distclean-compile distclean-generic \ |
distclean-tags |
dvi: dvi-am |
dvi-am: |
html: html-am |
html-am: |
info: info-am |
info-am: |
install-data-am: |
install-dvi: install-dvi-am |
install-dvi-am: |
install-exec-am: |
install-html: install-html-am |
install-html-am: |
install-info: install-info-am |
install-info-am: |
install-man: |
install-pdf: install-pdf-am |
install-pdf-am: |
install-ps: install-ps-am |
install-ps-am: |
installcheck-am: |
maintainer-clean: maintainer-clean-am |
-rm -rf ./$(DEPDIR) |
-rm -f Makefile |
maintainer-clean-am: distclean-am maintainer-clean-generic |
mostlyclean: mostlyclean-am |
mostlyclean-am: mostlyclean-compile mostlyclean-generic \ |
mostlyclean-libtool |
pdf: pdf-am |
pdf-am: |
ps: ps-am |
ps-am: |
uninstall-am: |
.MAKE: install-am install-strip |
.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ |
clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ |
ctags-am distclean distclean-compile distclean-generic \ |
distclean-libtool distclean-tags distdir dvi dvi-am html \ |
html-am info info-am install install-am install-data \ |
install-data-am install-dvi install-dvi-am install-exec \ |
install-exec-am install-html install-html-am install-info \ |
install-info-am install-man install-pdf install-pdf-am \ |
install-ps install-ps-am install-strip installcheck \ |
installcheck-am installdirs maintainer-clean \ |
maintainer-clean-generic mostlyclean mostlyclean-compile \ |
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ |
tags tags-am uninstall uninstall-am |
# Tell versions [3.59,3.63) of GNU make to not export all variables. |
# Otherwise a system limit (for SysV at least) may be exceeded. |
.NOEXPORT: |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/wayland/wayland_sw_winsys.c |
---|
0,0 → 1,285 |
/* |
* Mesa 3-D graphics library |
* |
* Copyright (C) 2011 Benjamin Franzke <benjaminfranzke@googlemail.com> |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the "Software"), |
* to deal in the Software without restriction, including without limitation |
* the rights to use, copy, modify, merge, publish, distribute, sublicense, |
* and/or sell copies of the Software, and to permit persons to whom the |
* Software is furnished to do so, subject to the following conditions: |
* |
* The above copyright notice and this permission notice shall be included |
* in all copies or substantial portions of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
* DEALINGS IN THE SOFTWARE. |
*/ |
#include <stdlib.h> |
#include <sys/types.h> |
#include <sys/mman.h> |
#include <unistd.h> |
#include "pipe/p_compiler.h" |
#include "pipe/p_defines.h" |
#include "pipe/p_state.h" |
#include "util/u_format.h" |
#include "util/u_math.h" |
#include "util/u_memory.h" |
#include "state_tracker/sw_winsys.h" |
#include <wayland-client.h> |
#include "wayland_sw_winsys.h" |
struct wayland_sw_displaytarget |
{ |
int fd; |
unsigned size; |
unsigned width; |
unsigned height; |
unsigned stride; |
enum pipe_format format; |
void *map; |
unsigned map_count; |
}; |
struct wayland_sw_winsys |
{ |
struct sw_winsys base; |
struct wl_display *display; |
}; |
static INLINE struct wayland_sw_displaytarget * |
wayland_sw_displaytarget(struct sw_displaytarget *dt) |
{ |
return (struct wayland_sw_displaytarget *) dt; |
} |
static INLINE struct wayland_sw_winsys * |
wayland_sw_winsys(struct sw_winsys *ws) |
{ |
return (struct wayland_sw_winsys *) ws; |
} |
static void |
wayland_displaytarget_display(struct sw_winsys *ws, |
struct sw_displaytarget *dt, |
void *context_private) |
{ |
} |
static void |
wayland_displaytarget_unmap(struct sw_winsys *ws, |
struct sw_displaytarget *dt) |
{ |
struct wayland_sw_displaytarget *wldt = wayland_sw_displaytarget(dt); |
wldt->map_count--; |
if (wldt->map_count > 0) |
return; |
munmap(wldt->map, wldt->size); |
wldt->map = NULL; |
} |
static void * |
wayland_displaytarget_map(struct sw_winsys *ws, |
struct sw_displaytarget *dt, |
unsigned flags) |
{ |
struct wayland_sw_displaytarget *wldt = wayland_sw_displaytarget(dt); |
uint mmap_flags = 0; |
if (wldt->map) { |
wldt->map_count++; |
return wldt->map; |
} |
if (flags & PIPE_TRANSFER_READ) |
mmap_flags |= PROT_READ; |
if (flags & PIPE_TRANSFER_WRITE) |
mmap_flags |= PROT_WRITE; |
wldt->map = mmap(NULL, wldt->size, mmap_flags, |
MAP_SHARED, wldt->fd, 0); |
if (wldt->map == MAP_FAILED) |
return NULL; |
wldt->map_count = 1; |
return wldt->map; |
} |
static void |
wayland_displaytarget_destroy(struct sw_winsys *ws, |
struct sw_displaytarget *dt) |
{ |
struct wayland_sw_displaytarget *wldt = wayland_sw_displaytarget(dt); |
if (wldt->map) |
wayland_displaytarget_unmap(ws, dt); |
FREE(wldt); |
} |
static boolean |
wayland_is_displaytarget_format_supported(struct sw_winsys *ws, |
unsigned tex_usage, |
enum pipe_format format) |
{ |
switch (format) { |
case PIPE_FORMAT_B8G8R8X8_UNORM: |
case PIPE_FORMAT_B8G8R8A8_UNORM: |
return TRUE; |
default: |
return FALSE; |
} |
} |
static struct sw_displaytarget * |
wayland_displaytarget_create(struct sw_winsys *ws, |
unsigned tex_usage, |
enum pipe_format format, |
unsigned width, unsigned height, |
unsigned alignment, |
unsigned *stride) |
{ |
struct wayland_sw_displaytarget *wldt; |
unsigned nblocksy, format_stride; |
char filename[] = "/tmp/wayland-shm-XXXXXX"; |
if (!wayland_is_displaytarget_format_supported(ws, tex_usage, format)) |
return NULL; |
wldt = CALLOC_STRUCT(wayland_sw_displaytarget); |
if (!wldt) |
return NULL; |
wldt->map = NULL; |
wldt->format = format; |
wldt->width = width; |
wldt->height = height; |
format_stride = util_format_get_stride(format, width); |
wldt->stride = align(format_stride, alignment); |
nblocksy = util_format_get_nblocksy(format, height); |
wldt->size = wldt->stride * nblocksy; |
wldt->fd = mkstemp(filename); |
if (wldt->fd < 0) { |
FREE(wldt); |
return NULL; |
} |
if (ftruncate(wldt->fd, wldt->size) < 0) { |
unlink(filename); |
close(wldt->fd); |
FREE(wldt); |
return NULL; |
} |
unlink(filename); |
*stride = wldt->stride; |
return (struct sw_displaytarget *) wldt; |
} |
static struct sw_displaytarget * |
wayland_displaytarget_from_handle(struct sw_winsys *ws, |
const struct pipe_resource *templet, |
struct winsys_handle *whandle, |
unsigned *stride) |
{ |
struct wayland_sw_displaytarget *wldt; |
unsigned nblocksy; |
if (!wayland_is_displaytarget_format_supported(ws, 0, templet->format)) |
return NULL; |
wldt = CALLOC_STRUCT(wayland_sw_displaytarget); |
if (!wldt) |
return NULL; |
wldt->fd = whandle->fd; |
wldt->stride = whandle->stride; |
wldt->width = templet->width0; |
wldt->height = templet->height0; |
wldt->format = templet->format; |
nblocksy = util_format_get_nblocksy(wldt->format, wldt->height); |
wldt->size = wldt->stride * nblocksy; |
wldt->map = NULL; |
*stride = wldt->stride; |
return (struct sw_displaytarget *) wldt; |
} |
static boolean |
wayland_displaytarget_get_handle(struct sw_winsys *ws, |
struct sw_displaytarget *dt, |
struct winsys_handle *whandle) |
{ |
struct wayland_sw_displaytarget *wldt = wayland_sw_displaytarget(dt); |
whandle->fd = wldt->fd; |
whandle->stride = wldt->stride; |
whandle->size = wldt->size; |
return TRUE; |
} |
static void |
wayland_destroy(struct sw_winsys *ws) |
{ |
struct wayland_sw_winsys *wayland = wayland_sw_winsys(ws); |
FREE(wayland); |
} |
struct sw_winsys * |
wayland_create_sw_winsys(struct wl_display *display) |
{ |
struct wayland_sw_winsys *wlws; |
wlws = CALLOC_STRUCT(wayland_sw_winsys); |
if (!wlws) |
return NULL; |
wlws->display = display; |
wlws->base.destroy = wayland_destroy; |
wlws->base.is_displaytarget_format_supported = |
wayland_is_displaytarget_format_supported; |
wlws->base.displaytarget_create = wayland_displaytarget_create; |
wlws->base.displaytarget_from_handle = wayland_displaytarget_from_handle; |
wlws->base.displaytarget_get_handle = wayland_displaytarget_get_handle; |
wlws->base.displaytarget_destroy = wayland_displaytarget_destroy; |
wlws->base.displaytarget_map = wayland_displaytarget_map; |
wlws->base.displaytarget_unmap = wayland_displaytarget_unmap; |
wlws->base.displaytarget_display = wayland_displaytarget_display; |
return &wlws->base; |
} |
/* vim: set sw=3 ts=8 sts=3 expandtab: */ |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/wayland/wayland_sw_winsys.h |
---|
0,0 → 1,42 |
/* |
* Mesa 3-D graphics library |
* |
* Copyright (C) 2011 Benjamin Franzke <benjaminfranzke@googlemail.com> |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the "Software"), |
* to deal in the Software without restriction, including without limitation |
* the rights to use, copy, modify, merge, publish, distribute, sublicense, |
* and/or sell copies of the Software, and to permit persons to whom the |
* Software is furnished to do so, subject to the following conditions: |
* |
* The above copyright notice and this permission notice shall be included |
* in all copies or substantial portions of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
* DEALINGS IN THE SOFTWARE. |
*/ |
#ifndef WAYLAND_SW_WINSYS |
#define WAYLAND_SW_WINSYS |
struct sw_winsys; |
struct wl_display; |
struct winsys_handle { |
int fd; |
unsigned stride; |
unsigned size; |
}; |
struct sw_winsys * |
wayland_create_sw_winsys(struct wl_display *display); |
#endif /* WAYLAND_SW_WINSYS */ |
/* vim: set sw=3 ts=8 sts=3 expandtab: */ |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/wrapper/Makefile.am |
---|
0,0 → 1,30 |
# Copyright © 2012 Intel Corporation |
# |
# Permission is hereby granted, free of charge, to any person obtaining a |
# copy of this software and associated documentation files (the "Software"), |
# to deal in the Software without restriction, including without limitation |
# the rights to use, copy, modify, merge, publish, distribute, sublicense, |
# and/or sell copies of the Software, and to permit persons to whom the |
# Software is furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice (including the next |
# paragraph) shall be included in all copies or substantial portions of the |
# Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
# DEALINGS IN THE SOFTWARE. |
include $(top_srcdir)/src/gallium/Automake.inc |
AM_CPPFLAGS = \ |
$(GALLIUM_CFLAGS) |
noinst_LTLIBRARIES = libwsw.la |
libwsw_la_SOURCES = wrapper_sw_winsys.c |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/wrapper/Makefile.in |
---|
0,0 → 1,776 |
# Makefile.in generated by automake 1.14 from Makefile.am. |
# @configure_input@ |
# Copyright (C) 1994-2013 Free Software Foundation, Inc. |
# This Makefile.in is free software; the Free Software Foundation |
# gives unlimited permission to copy and/or distribute it, |
# with or without modifications, as long as this notice is preserved. |
# This program is distributed in the hope that it will be useful, |
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without |
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A |
# PARTICULAR PURPOSE. |
@SET_MAKE@ |
# Copyright © 2012 Intel Corporation |
# |
# Permission is hereby granted, free of charge, to any person obtaining a |
# copy of this software and associated documentation files (the "Software"), |
# to deal in the Software without restriction, including without limitation |
# the rights to use, copy, modify, merge, publish, distribute, sublicense, |
# and/or sell copies of the Software, and to permit persons to whom the |
# Software is furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice (including the next |
# paragraph) shall be included in all copies or substantial portions of the |
# Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
# DEALINGS IN THE SOFTWARE. |
VPATH = @srcdir@ |
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' |
am__make_running_with_option = \ |
case $${target_option-} in \ |
?) ;; \ |
*) echo "am__make_running_with_option: internal error: invalid" \ |
"target option '$${target_option-}' specified" >&2; \ |
exit 1;; \ |
esac; \ |
has_opt=no; \ |
sane_makeflags=$$MAKEFLAGS; \ |
if $(am__is_gnu_make); then \ |
sane_makeflags=$$MFLAGS; \ |
else \ |
case $$MAKEFLAGS in \ |
*\\[\ \ ]*) \ |
bs=\\; \ |
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ |
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ |
esac; \ |
fi; \ |
skip_next=no; \ |
strip_trailopt () \ |
{ \ |
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ |
}; \ |
for flg in $$sane_makeflags; do \ |
test $$skip_next = yes && { skip_next=no; continue; }; \ |
case $$flg in \ |
*=*|--*) continue;; \ |
-*I) strip_trailopt 'I'; skip_next=yes;; \ |
-*I?*) strip_trailopt 'I';; \ |
-*O) strip_trailopt 'O'; skip_next=yes;; \ |
-*O?*) strip_trailopt 'O';; \ |
-*l) strip_trailopt 'l'; skip_next=yes;; \ |
-*l?*) strip_trailopt 'l';; \ |
-[dEDm]) skip_next=yes;; \ |
-[JT]) skip_next=yes;; \ |
esac; \ |
case $$flg in \ |
*$$target_option*) has_opt=yes; break;; \ |
esac; \ |
done; \ |
test $$has_opt = yes |
am__make_dryrun = (target_option=n; $(am__make_running_with_option)) |
am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) |
pkgdatadir = $(datadir)/@PACKAGE@ |
pkgincludedir = $(includedir)/@PACKAGE@ |
pkglibdir = $(libdir)/@PACKAGE@ |
pkglibexecdir = $(libexecdir)/@PACKAGE@ |
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd |
install_sh_DATA = $(install_sh) -c -m 644 |
install_sh_PROGRAM = $(install_sh) -c |
install_sh_SCRIPT = $(install_sh) -c |
INSTALL_HEADER = $(INSTALL_DATA) |
transform = $(program_transform_name) |
NORMAL_INSTALL = : |
PRE_INSTALL = : |
POST_INSTALL = : |
NORMAL_UNINSTALL = : |
PRE_UNINSTALL = : |
POST_UNINSTALL = : |
build_triplet = @build@ |
host_triplet = @host@ |
target_triplet = @target@ |
DIST_COMMON = $(top_srcdir)/src/gallium/Automake.inc \ |
$(srcdir)/Makefile.in $(srcdir)/Makefile.am \ |
$(top_srcdir)/bin/depcomp |
subdir = src/gallium/winsys/sw/wrapper |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_prog_bison.m4 \ |
$(top_srcdir)/m4/ax_prog_cc_for_build.m4 \ |
$(top_srcdir)/m4/ax_prog_cxx_for_build.m4 \ |
$(top_srcdir)/m4/ax_prog_flex.m4 \ |
$(top_srcdir)/m4/ax_pthread.m4 \ |
$(top_srcdir)/m4/ax_python_module.m4 \ |
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ |
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ |
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac |
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
$(ACLOCAL_M4) |
mkinstalldirs = $(install_sh) -d |
CONFIG_CLEAN_FILES = |
CONFIG_CLEAN_VPATH_FILES = |
LTLIBRARIES = $(noinst_LTLIBRARIES) |
libwsw_la_LIBADD = |
am_libwsw_la_OBJECTS = wrapper_sw_winsys.lo |
libwsw_la_OBJECTS = $(am_libwsw_la_OBJECTS) |
AM_V_lt = $(am__v_lt_@AM_V@) |
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) |
am__v_lt_0 = --silent |
am__v_lt_1 = |
AM_V_P = $(am__v_P_@AM_V@) |
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) |
am__v_P_0 = false |
am__v_P_1 = : |
AM_V_GEN = $(am__v_GEN_@AM_V@) |
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) |
am__v_GEN_0 = @echo " GEN " $@; |
am__v_GEN_1 = |
AM_V_at = $(am__v_at_@AM_V@) |
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) |
am__v_at_0 = @ |
am__v_at_1 = |
DEFAULT_INCLUDES = -I.@am__isrc@ |
depcomp = $(SHELL) $(top_srcdir)/bin/depcomp |
am__depfiles_maybe = depfiles |
am__mv = mv -f |
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ |
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) |
LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ |
$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ |
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ |
$(AM_CFLAGS) $(CFLAGS) |
AM_V_CC = $(am__v_CC_@AM_V@) |
am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) |
am__v_CC_0 = @echo " CC " $@; |
am__v_CC_1 = |
CCLD = $(CC) |
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ |
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ |
$(AM_LDFLAGS) $(LDFLAGS) -o $@ |
AM_V_CCLD = $(am__v_CCLD_@AM_V@) |
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) |
am__v_CCLD_0 = @echo " CCLD " $@; |
am__v_CCLD_1 = |
SOURCES = $(libwsw_la_SOURCES) |
DIST_SOURCES = $(libwsw_la_SOURCES) |
am__can_run_installinfo = \ |
case $$AM_UPDATE_INFO_DIR in \ |
n|no|NO) false;; \ |
*) (install-info --version) >/dev/null 2>&1;; \ |
esac |
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) |
# Read a list of newline-separated strings from the standard input, |
# and print each of them once, without duplicates. Input order is |
# *not* preserved. |
am__uniquify_input = $(AWK) '\ |
BEGIN { nonempty = 0; } \ |
{ items[$$0] = 1; nonempty = 1; } \ |
END { if (nonempty) { for (i in items) print i; }; } \ |
' |
# Make sure the list of sources is unique. This is necessary because, |
# e.g., the same source file might be shared among _SOURCES variables |
# for different programs/libraries. |
am__define_uniq_tagged_files = \ |
list='$(am__tagged_files)'; \ |
unique=`for i in $$list; do \ |
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ |
done | $(am__uniquify_input)` |
ETAGS = etags |
CTAGS = ctags |
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) |
ACLOCAL = @ACLOCAL@ |
AMTAR = @AMTAR@ |
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ |
AR = @AR@ |
AUTOCONF = @AUTOCONF@ |
AUTOHEADER = @AUTOHEADER@ |
AUTOMAKE = @AUTOMAKE@ |
AWK = @AWK@ |
BUILD_EXEEXT = @BUILD_EXEEXT@ |
BUILD_OBJEXT = @BUILD_OBJEXT@ |
CC = @CC@ |
CCAS = @CCAS@ |
CCASDEPMODE = @CCASDEPMODE@ |
CCASFLAGS = @CCASFLAGS@ |
CCDEPMODE = @CCDEPMODE@ |
CC_FOR_BUILD = @CC_FOR_BUILD@ |
CFLAGS = @CFLAGS@ |
CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ |
CLANG_RESOURCE_DIR = @CLANG_RESOURCE_DIR@ |
CLOCK_LIB = @CLOCK_LIB@ |
CPP = @CPP@ |
CPPFLAGS = @CPPFLAGS@ |
CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@ |
CPP_FOR_BUILD = @CPP_FOR_BUILD@ |
CXX = @CXX@ |
CXXCPP = @CXXCPP@ |
CXXCPPFLAGS_FOR_BUILD = @CXXCPPFLAGS_FOR_BUILD@ |
CXXCPP_FOR_BUILD = @CXXCPP_FOR_BUILD@ |
CXXDEPMODE = @CXXDEPMODE@ |
CXXFLAGS = @CXXFLAGS@ |
CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@ |
CXX_FOR_BUILD = @CXX_FOR_BUILD@ |
CYGPATH_W = @CYGPATH_W@ |
DEFINES = @DEFINES@ |
DEFINES_FOR_BUILD = @DEFINES_FOR_BUILD@ |
DEFS = @DEFS@ |
DEPDIR = @DEPDIR@ |
DLLTOOL = @DLLTOOL@ |
DLOPEN_LIBS = @DLOPEN_LIBS@ |
DRI2PROTO_CFLAGS = @DRI2PROTO_CFLAGS@ |
DRI2PROTO_LIBS = @DRI2PROTO_LIBS@ |
DRIGL_CFLAGS = @DRIGL_CFLAGS@ |
DRIGL_LIBS = @DRIGL_LIBS@ |
DRI_DRIVER_INSTALL_DIR = @DRI_DRIVER_INSTALL_DIR@ |
DRI_DRIVER_SEARCH_DIR = @DRI_DRIVER_SEARCH_DIR@ |
DRI_LIB_DEPS = @DRI_LIB_DEPS@ |
DRI_PC_REQ_PRIV = @DRI_PC_REQ_PRIV@ |
DSYMUTIL = @DSYMUTIL@ |
DUMPBIN = @DUMPBIN@ |
ECHO_C = @ECHO_C@ |
ECHO_N = @ECHO_N@ |
ECHO_T = @ECHO_T@ |
EGL_CFLAGS = @EGL_CFLAGS@ |
EGL_CLIENT_APIS = @EGL_CLIENT_APIS@ |
EGL_DRIVER_INSTALL_DIR = @EGL_DRIVER_INSTALL_DIR@ |
EGL_LIB_DEPS = @EGL_LIB_DEPS@ |
EGL_LIB_GLOB = @EGL_LIB_GLOB@ |
EGL_LIB_NAME = @EGL_LIB_NAME@ |
EGL_NATIVE_PLATFORM = @EGL_NATIVE_PLATFORM@ |
EGL_PLATFORMS = @EGL_PLATFORMS@ |
EGREP = @EGREP@ |
ELF_LIB = @ELF_LIB@ |
EXEEXT = @EXEEXT@ |
EXPAT_INCLUDES = @EXPAT_INCLUDES@ |
FGREP = @FGREP@ |
FREEDRENO_CFLAGS = @FREEDRENO_CFLAGS@ |
FREEDRENO_LIBS = @FREEDRENO_LIBS@ |
GALLIUM_DRI_LIB_DEPS = @GALLIUM_DRI_LIB_DEPS@ |
GALLIUM_PIPE_LOADER_DEFINES = @GALLIUM_PIPE_LOADER_DEFINES@ |
GALLIUM_PIPE_LOADER_LIBS = @GALLIUM_PIPE_LOADER_LIBS@ |
GALLIUM_PIPE_LOADER_XCB_CFLAGS = @GALLIUM_PIPE_LOADER_XCB_CFLAGS@ |
GALLIUM_PIPE_LOADER_XCB_LIBS = @GALLIUM_PIPE_LOADER_XCB_LIBS@ |
GBM_PC_LIB_PRIV = @GBM_PC_LIB_PRIV@ |
GBM_PC_REQ_PRIV = @GBM_PC_REQ_PRIV@ |
GLAPI_LIB_GLOB = @GLAPI_LIB_GLOB@ |
GLAPI_LIB_NAME = @GLAPI_LIB_NAME@ |
GLESv1_CM_LIB_DEPS = @GLESv1_CM_LIB_DEPS@ |
GLESv1_CM_LIB_GLOB = @GLESv1_CM_LIB_GLOB@ |
GLESv1_CM_LIB_NAME = @GLESv1_CM_LIB_NAME@ |
GLESv1_CM_PC_LIB_PRIV = @GLESv1_CM_PC_LIB_PRIV@ |
GLESv2_LIB_DEPS = @GLESv2_LIB_DEPS@ |
GLESv2_LIB_GLOB = @GLESv2_LIB_GLOB@ |
GLESv2_LIB_NAME = @GLESv2_LIB_NAME@ |
GLESv2_PC_LIB_PRIV = @GLESv2_PC_LIB_PRIV@ |
GLPROTO_CFLAGS = @GLPROTO_CFLAGS@ |
GLPROTO_LIBS = @GLPROTO_LIBS@ |
GLX_TLS = @GLX_TLS@ |
GL_LIB = @GL_LIB@ |
GL_LIB_DEPS = @GL_LIB_DEPS@ |
GL_LIB_GLOB = @GL_LIB_GLOB@ |
GL_LIB_NAME = @GL_LIB_NAME@ |
GL_PC_CFLAGS = @GL_PC_CFLAGS@ |
GL_PC_LIB_PRIV = @GL_PC_LIB_PRIV@ |
GL_PC_REQ_PRIV = @GL_PC_REQ_PRIV@ |
GREP = @GREP@ |
HAVE_XF86VIDMODE = @HAVE_XF86VIDMODE@ |
INDENT = @INDENT@ |
INDENT_FLAGS = @INDENT_FLAGS@ |
INSTALL = @INSTALL@ |
INSTALL_DATA = @INSTALL_DATA@ |
INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ |
INTEL_CFLAGS = @INTEL_CFLAGS@ |
INTEL_LIBS = @INTEL_LIBS@ |
LD = @LD@ |
LDFLAGS = @LDFLAGS@ |
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ |
LEX = @LEX@ |
LEXLIB = @LEXLIB@ |
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ |
LIBCLC_INCLUDEDIR = @LIBCLC_INCLUDEDIR@ |
LIBCLC_LIBEXECDIR = @LIBCLC_LIBEXECDIR@ |
LIBDRM_CFLAGS = @LIBDRM_CFLAGS@ |
LIBDRM_LIBS = @LIBDRM_LIBS@ |
LIBDRM_XORG_CFLAGS = @LIBDRM_XORG_CFLAGS@ |
LIBDRM_XORG_LIBS = @LIBDRM_XORG_LIBS@ |
LIBKMS_XORG_CFLAGS = @LIBKMS_XORG_CFLAGS@ |
LIBKMS_XORG_LIBS = @LIBKMS_XORG_LIBS@ |
LIBOBJS = @LIBOBJS@ |
LIBS = @LIBS@ |
LIBTOOL = @LIBTOOL@ |
LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ |
LIBUDEV_LIBS = @LIBUDEV_LIBS@ |
LIB_DIR = @LIB_DIR@ |
LIPO = @LIPO@ |
LLVM_BINDIR = @LLVM_BINDIR@ |
LLVM_CFLAGS = @LLVM_CFLAGS@ |
LLVM_CONFIG = @LLVM_CONFIG@ |
LLVM_CPPFLAGS = @LLVM_CPPFLAGS@ |
LLVM_CXXFLAGS = @LLVM_CXXFLAGS@ |
LLVM_INCLUDEDIR = @LLVM_INCLUDEDIR@ |
LLVM_LDFLAGS = @LLVM_LDFLAGS@ |
LLVM_LIBDIR = @LLVM_LIBDIR@ |
LLVM_LIBS = @LLVM_LIBS@ |
LLVM_VERSION = @LLVM_VERSION@ |
LN_S = @LN_S@ |
LTLIBOBJS = @LTLIBOBJS@ |
MAKE = @MAKE@ |
MAKEINFO = @MAKEINFO@ |
MANIFEST_TOOL = @MANIFEST_TOOL@ |
MESA_LLVM = @MESA_LLVM@ |
MKDIR_P = @MKDIR_P@ |
NM = @NM@ |
NMEDIT = @NMEDIT@ |
NOUVEAU_CFLAGS = @NOUVEAU_CFLAGS@ |
NOUVEAU_LIBS = @NOUVEAU_LIBS@ |
OBJDUMP = @OBJDUMP@ |
OBJEXT = @OBJEXT@ |
OPENCL_LIB_INSTALL_DIR = @OPENCL_LIB_INSTALL_DIR@ |
OSMESA_LIB = @OSMESA_LIB@ |
OSMESA_LIB_DEPS = @OSMESA_LIB_DEPS@ |
OSMESA_LIB_NAME = @OSMESA_LIB_NAME@ |
OSMESA_MESA_DEPS = @OSMESA_MESA_DEPS@ |
OSMESA_PC_LIB_PRIV = @OSMESA_PC_LIB_PRIV@ |
OSMESA_PC_REQ = @OSMESA_PC_REQ@ |
OSMESA_VERSION = @OSMESA_VERSION@ |
OTOOL = @OTOOL@ |
OTOOL64 = @OTOOL64@ |
PACKAGE = @PACKAGE@ |
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ |
PACKAGE_NAME = @PACKAGE_NAME@ |
PACKAGE_STRING = @PACKAGE_STRING@ |
PACKAGE_TARNAME = @PACKAGE_TARNAME@ |
PACKAGE_URL = @PACKAGE_URL@ |
PACKAGE_VERSION = @PACKAGE_VERSION@ |
PATH_SEPARATOR = @PATH_SEPARATOR@ |
PERL = @PERL@ |
PKG_CONFIG = @PKG_CONFIG@ |
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ |
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ |
POSIX_SHELL = @POSIX_SHELL@ |
PTHREAD_CC = @PTHREAD_CC@ |
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ |
PTHREAD_LIBS = @PTHREAD_LIBS@ |
PYTHON2 = @PYTHON2@ |
RADEON_CFLAGS = @RADEON_CFLAGS@ |
RADEON_LIBS = @RADEON_LIBS@ |
RANLIB = @RANLIB@ |
SED = @SED@ |
SELINUX_LIBS = @SELINUX_LIBS@ |
SET_MAKE = @SET_MAKE@ |
SHELL = @SHELL@ |
STRIP = @STRIP@ |
VDPAU_CFLAGS = @VDPAU_CFLAGS@ |
VDPAU_LIBS = @VDPAU_LIBS@ |
VDPAU_LIB_INSTALL_DIR = @VDPAU_LIB_INSTALL_DIR@ |
VDPAU_MAJOR = @VDPAU_MAJOR@ |
VDPAU_MINOR = @VDPAU_MINOR@ |
VERSION = @VERSION@ |
VG_LIB_DEPS = @VG_LIB_DEPS@ |
VG_LIB_GLOB = @VG_LIB_GLOB@ |
VG_LIB_NAME = @VG_LIB_NAME@ |
VG_PC_LIB_PRIV = @VG_PC_LIB_PRIV@ |
VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@ |
VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@ |
WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ |
WAYLAND_LIBS = @WAYLAND_LIBS@ |
WAYLAND_SCANNER = @WAYLAND_SCANNER@ |
X11_INCLUDES = @X11_INCLUDES@ |
XA_MAJOR = @XA_MAJOR@ |
XA_MINOR = @XA_MINOR@ |
XA_TINY = @XA_TINY@ |
XA_VERSION = @XA_VERSION@ |
XCB_DRI2_CFLAGS = @XCB_DRI2_CFLAGS@ |
XCB_DRI2_LIBS = @XCB_DRI2_LIBS@ |
XEXT_CFLAGS = @XEXT_CFLAGS@ |
XEXT_LIBS = @XEXT_LIBS@ |
XF86VIDMODE_CFLAGS = @XF86VIDMODE_CFLAGS@ |
XF86VIDMODE_LIBS = @XF86VIDMODE_LIBS@ |
XLIBGL_CFLAGS = @XLIBGL_CFLAGS@ |
XLIBGL_LIBS = @XLIBGL_LIBS@ |
XORG_CFLAGS = @XORG_CFLAGS@ |
XORG_DRIVER_INSTALL_DIR = @XORG_DRIVER_INSTALL_DIR@ |
XORG_LIBS = @XORG_LIBS@ |
XVMC_CFLAGS = @XVMC_CFLAGS@ |
XVMC_LIBS = @XVMC_LIBS@ |
XVMC_LIB_INSTALL_DIR = @XVMC_LIB_INSTALL_DIR@ |
XVMC_MAJOR = @XVMC_MAJOR@ |
XVMC_MINOR = @XVMC_MINOR@ |
YACC = @YACC@ |
YFLAGS = @YFLAGS@ |
abs_builddir = @abs_builddir@ |
abs_srcdir = @abs_srcdir@ |
abs_top_builddir = @abs_top_builddir@ |
abs_top_srcdir = @abs_top_srcdir@ |
ac_ct_AR = @ac_ct_AR@ |
ac_ct_CC = @ac_ct_CC@ |
ac_ct_CC_FOR_BUILD = @ac_ct_CC_FOR_BUILD@ |
ac_ct_CXX = @ac_ct_CXX@ |
ac_ct_CXX_FOR_BUILD = @ac_ct_CXX_FOR_BUILD@ |
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ |
am__include = @am__include@ |
am__leading_dot = @am__leading_dot@ |
am__quote = @am__quote@ |
am__tar = @am__tar@ |
am__untar = @am__untar@ |
ax_pthread_config = @ax_pthread_config@ |
bindir = @bindir@ |
build = @build@ |
build_alias = @build_alias@ |
build_cpu = @build_cpu@ |
build_os = @build_os@ |
build_vendor = @build_vendor@ |
builddir = @builddir@ |
datadir = @datadir@ |
datarootdir = @datarootdir@ |
docdir = @docdir@ |
dvidir = @dvidir@ |
exec_prefix = @exec_prefix@ |
host = @host@ |
host_alias = @host_alias@ |
host_cpu = @host_cpu@ |
host_os = @host_os@ |
host_vendor = @host_vendor@ |
htmldir = @htmldir@ |
includedir = @includedir@ |
infodir = @infodir@ |
install_sh = @install_sh@ |
libdir = @libdir@ |
libexecdir = @libexecdir@ |
localedir = @localedir@ |
localstatedir = @localstatedir@ |
mandir = @mandir@ |
mkdir_p = @mkdir_p@ |
oldincludedir = @oldincludedir@ |
pdfdir = @pdfdir@ |
prefix = @prefix@ |
program_transform_name = @program_transform_name@ |
psdir = @psdir@ |
sbindir = @sbindir@ |
sharedstatedir = @sharedstatedir@ |
srcdir = @srcdir@ |
sysconfdir = @sysconfdir@ |
target = @target@ |
target_alias = @target_alias@ |
target_cpu = @target_cpu@ |
target_os = @target_os@ |
target_vendor = @target_vendor@ |
top_build_prefix = @top_build_prefix@ |
top_builddir = @top_builddir@ |
top_srcdir = @top_srcdir@ |
GALLIUM_CFLAGS = \ |
-I$(top_srcdir)/include \ |
-I$(top_srcdir)/src/gallium/include \ |
-I$(top_srcdir)/src/gallium/auxiliary \ |
$(DEFINES) |
AM_CPPFLAGS = \ |
$(GALLIUM_CFLAGS) |
noinst_LTLIBRARIES = libwsw.la |
libwsw_la_SOURCES = wrapper_sw_winsys.c |
all: all-am |
.SUFFIXES: |
.SUFFIXES: .c .lo .o .obj |
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/src/gallium/Automake.inc $(am__configure_deps) |
@for dep in $?; do \ |
case '$(am__configure_deps)' in \ |
*$$dep*) \ |
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ |
&& { if test -f $@; then exit 0; else break; fi; }; \ |
exit 1;; \ |
esac; \ |
done; \ |
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/gallium/winsys/sw/wrapper/Makefile'; \ |
$(am__cd) $(top_srcdir) && \ |
$(AUTOMAKE) --foreign src/gallium/winsys/sw/wrapper/Makefile |
.PRECIOUS: Makefile |
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
@case '$?' in \ |
*config.status*) \ |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ |
*) \ |
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ |
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ |
esac; |
$(top_srcdir)/src/gallium/Automake.inc: |
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(top_srcdir)/configure: $(am__configure_deps) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(ACLOCAL_M4): $(am__aclocal_m4_deps) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(am__aclocal_m4_deps): |
clean-noinstLTLIBRARIES: |
-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) |
@list='$(noinst_LTLIBRARIES)'; \ |
locs=`for p in $$list; do echo $$p; done | \ |
sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ |
sort -u`; \ |
test -z "$$locs" || { \ |
echo rm -f $${locs}; \ |
rm -f $${locs}; \ |
} |
libwsw.la: $(libwsw_la_OBJECTS) $(libwsw_la_DEPENDENCIES) $(EXTRA_libwsw_la_DEPENDENCIES) |
$(AM_V_CCLD)$(LINK) $(libwsw_la_OBJECTS) $(libwsw_la_LIBADD) $(LIBS) |
mostlyclean-compile: |
-rm -f *.$(OBJEXT) |
distclean-compile: |
-rm -f *.tab.c |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wrapper_sw_winsys.Plo@am__quote@ |
.c.o: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< |
.c.obj: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` |
.c.lo: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< |
mostlyclean-libtool: |
-rm -f *.lo |
clean-libtool: |
-rm -rf .libs _libs |
ID: $(am__tagged_files) |
$(am__define_uniq_tagged_files); mkid -fID $$unique |
tags: tags-am |
TAGS: tags |
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
set x; \ |
here=`pwd`; \ |
$(am__define_uniq_tagged_files); \ |
shift; \ |
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ |
test -n "$$unique" || unique=$$empty_fix; \ |
if test $$# -gt 0; then \ |
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
"$$@" $$unique; \ |
else \ |
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
$$unique; \ |
fi; \ |
fi |
ctags: ctags-am |
CTAGS: ctags |
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
$(am__define_uniq_tagged_files); \ |
test -z "$(CTAGS_ARGS)$$unique" \ |
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ |
$$unique |
GTAGS: |
here=`$(am__cd) $(top_builddir) && pwd` \ |
&& $(am__cd) $(top_srcdir) \ |
&& gtags -i $(GTAGS_ARGS) "$$here" |
cscopelist: cscopelist-am |
cscopelist-am: $(am__tagged_files) |
list='$(am__tagged_files)'; \ |
case "$(srcdir)" in \ |
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ |
*) sdir=$(subdir)/$(srcdir) ;; \ |
esac; \ |
for i in $$list; do \ |
if test -f "$$i"; then \ |
echo "$(subdir)/$$i"; \ |
else \ |
echo "$$sdir/$$i"; \ |
fi; \ |
done >> $(top_builddir)/cscope.files |
distclean-tags: |
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |
distdir: $(DISTFILES) |
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
list='$(DISTFILES)'; \ |
dist_files=`for file in $$list; do echo $$file; done | \ |
sed -e "s|^$$srcdirstrip/||;t" \ |
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ |
case $$dist_files in \ |
*/*) $(MKDIR_P) `echo "$$dist_files" | \ |
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ |
sort -u` ;; \ |
esac; \ |
for file in $$dist_files; do \ |
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ |
if test -d $$d/$$file; then \ |
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ |
if test -d "$(distdir)/$$file"; then \ |
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |
fi; \ |
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ |
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ |
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |
fi; \ |
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ |
else \ |
test -f "$(distdir)/$$file" \ |
|| cp -p $$d/$$file "$(distdir)/$$file" \ |
|| exit 1; \ |
fi; \ |
done |
check-am: all-am |
check: check-am |
all-am: Makefile $(LTLIBRARIES) |
installdirs: |
install: install-am |
install-exec: install-exec-am |
install-data: install-data-am |
uninstall: uninstall-am |
install-am: all-am |
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am |
installcheck: installcheck-am |
install-strip: |
if test -z '$(STRIP)'; then \ |
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |
install; \ |
else \ |
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ |
fi |
mostlyclean-generic: |
clean-generic: |
distclean-generic: |
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) |
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) |
maintainer-clean-generic: |
@echo "This command is intended for maintainers to use" |
@echo "it deletes files that may require special tools to rebuild." |
clean: clean-am |
clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ |
mostlyclean-am |
distclean: distclean-am |
-rm -rf ./$(DEPDIR) |
-rm -f Makefile |
distclean-am: clean-am distclean-compile distclean-generic \ |
distclean-tags |
dvi: dvi-am |
dvi-am: |
html: html-am |
html-am: |
info: info-am |
info-am: |
install-data-am: |
install-dvi: install-dvi-am |
install-dvi-am: |
install-exec-am: |
install-html: install-html-am |
install-html-am: |
install-info: install-info-am |
install-info-am: |
install-man: |
install-pdf: install-pdf-am |
install-pdf-am: |
install-ps: install-ps-am |
install-ps-am: |
installcheck-am: |
maintainer-clean: maintainer-clean-am |
-rm -rf ./$(DEPDIR) |
-rm -f Makefile |
maintainer-clean-am: distclean-am maintainer-clean-generic |
mostlyclean: mostlyclean-am |
mostlyclean-am: mostlyclean-compile mostlyclean-generic \ |
mostlyclean-libtool |
pdf: pdf-am |
pdf-am: |
ps: ps-am |
ps-am: |
uninstall-am: |
.MAKE: install-am install-strip |
.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ |
clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ |
ctags-am distclean distclean-compile distclean-generic \ |
distclean-libtool distclean-tags distdir dvi dvi-am html \ |
html-am info info-am install install-am install-data \ |
install-data-am install-dvi install-dvi-am install-exec \ |
install-exec-am install-html install-html-am install-info \ |
install-info-am install-man install-pdf install-pdf-am \ |
install-ps install-ps-am install-strip installcheck \ |
installcheck-am installdirs maintainer-clean \ |
maintainer-clean-generic mostlyclean mostlyclean-compile \ |
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ |
tags tags-am uninstall uninstall-am |
# Tell versions [3.59,3.63) of GNU make to not export all variables. |
# Otherwise a system limit (for SysV at least) may be exceeded. |
.NOEXPORT: |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/wrapper/SConscript |
---|
0,0 → 1,21 |
####################################################################### |
# SConscript for xlib winsys |
Import('*') |
env = env.Clone() |
env.Append(CPPPATH = [ |
'#/src/gallium/include', |
'#/src/gallium/auxiliary', |
'#/src/gallium/drivers', |
]) |
ws_wrapper = env.ConvenienceLibrary( |
target = 'ws_wrapper', |
source = [ |
'wrapper_sw_winsys.c', |
] |
) |
Export('ws_wrapper') |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/wrapper/wrapper_sw_winsys.c |
---|
0,0 → 1,316 |
/********************************************************** |
* Copyright 2010 VMware, Inc. All rights reserved. |
* |
* Permission is hereby granted, free of charge, to any person |
* obtaining a copy of this software and associated documentation |
* files (the "Software"), to deal in the Software without |
* restriction, including without limitation the rights to use, copy, |
* modify, merge, publish, distribute, sublicense, and/or sell copies |
* of the Software, and to permit persons to whom the Software is |
* furnished to do so, subject to the following conditions: |
* |
* The above copyright notice and this permission notice shall be |
* included in all copies or substantial portions of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS |
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
* SOFTWARE. |
* |
**********************************************************/ |
#include "wrapper_sw_winsys.h" |
#include "pipe/p_format.h" |
#include "pipe/p_state.h" |
#include "state_tracker/sw_winsys.h" |
#include "util/u_memory.h" |
#include "util/u_inlines.h" |
/* |
* This code wraps a pipe_screen and exposes a sw_winsys interface for use |
* with software resterizers. This code is used by the DRM based winsys to |
* allow access to the drm driver. |
* |
* We must borrow the whole stack because only the pipe screen knows how |
* to decode the content of a buffer. Or how to create a buffer that |
* can still be used by drivers using real hardware (as the case is |
* with software st/xorg but hw st/dri). |
* |
* We also need a pipe context for the transfers. |
*/ |
struct wrapper_sw_winsys |
{ |
struct sw_winsys base; |
struct pipe_screen *screen; |
struct pipe_context *pipe; |
enum pipe_texture_target target; |
}; |
struct wrapper_sw_displaytarget |
{ |
struct wrapper_sw_winsys *winsys; |
struct pipe_resource *tex; |
struct pipe_transfer *transfer; |
unsigned map_count; |
unsigned stride; /**< because we get stride at create */ |
void *ptr; |
}; |
static INLINE struct wrapper_sw_winsys * |
wrapper_sw_winsys(struct sw_winsys *ws) |
{ |
return (struct wrapper_sw_winsys *)ws; |
} |
static INLINE struct wrapper_sw_displaytarget * |
wrapper_sw_displaytarget(struct sw_displaytarget *dt) |
{ |
return (struct wrapper_sw_displaytarget *)dt; |
} |
/* |
* Functions |
*/ |
static boolean |
wsw_dt_get_stride(struct wrapper_sw_displaytarget *wdt, unsigned *stride) |
{ |
struct pipe_context *pipe = wdt->winsys->pipe; |
struct pipe_resource *tex = wdt->tex; |
struct pipe_transfer *tr; |
void *map; |
map = pipe_transfer_map(pipe, tex, 0, 0, |
PIPE_TRANSFER_READ_WRITE, |
0, 0, wdt->tex->width0, wdt->tex->height0, &tr); |
if (!map) |
return FALSE; |
*stride = tr->stride; |
wdt->stride = tr->stride; |
pipe->transfer_unmap(pipe, tr); |
return TRUE; |
} |
static struct sw_displaytarget * |
wsw_dt_wrap_texture(struct wrapper_sw_winsys *wsw, |
struct pipe_resource *tex, unsigned *stride) |
{ |
struct wrapper_sw_displaytarget *wdt = CALLOC_STRUCT(wrapper_sw_displaytarget); |
if (!wdt) |
goto err_unref; |
wdt->tex = tex; |
wdt->winsys = wsw; |
if (!wsw_dt_get_stride(wdt, stride)) |
goto err_free; |
return (struct sw_displaytarget *)wdt; |
err_free: |
FREE(wdt); |
err_unref: |
pipe_resource_reference(&tex, NULL); |
return NULL; |
} |
static struct sw_displaytarget * |
wsw_dt_create(struct sw_winsys *ws, |
unsigned bind, |
enum pipe_format format, |
unsigned width, unsigned height, |
unsigned alignment, |
unsigned *stride) |
{ |
struct wrapper_sw_winsys *wsw = wrapper_sw_winsys(ws); |
struct pipe_resource templ; |
struct pipe_resource *tex; |
/* |
* XXX Why don't we just get the template. |
*/ |
memset(&templ, 0, sizeof(templ)); |
templ.target = wsw->target; |
templ.width0 = width; |
templ.height0 = height; |
templ.depth0 = 1; |
templ.array_size = 1; |
templ.format = format; |
templ.bind = bind; |
/* XXX alignment: we can't do anything about this */ |
tex = wsw->screen->resource_create(wsw->screen, &templ); |
if (!tex) |
return NULL; |
return wsw_dt_wrap_texture(wsw, tex, stride); |
} |
static struct sw_displaytarget * |
wsw_dt_from_handle(struct sw_winsys *ws, |
const struct pipe_resource *templ, |
struct winsys_handle *whandle, |
unsigned *stride) |
{ |
struct wrapper_sw_winsys *wsw = wrapper_sw_winsys(ws); |
struct pipe_resource *tex; |
tex = wsw->screen->resource_from_handle(wsw->screen, templ, whandle); |
if (!tex) |
return NULL; |
return wsw_dt_wrap_texture(wsw, tex, stride); |
} |
static boolean |
wsw_dt_get_handle(struct sw_winsys *ws, |
struct sw_displaytarget *dt, |
struct winsys_handle *whandle) |
{ |
struct wrapper_sw_winsys *wsw = wrapper_sw_winsys(ws); |
struct wrapper_sw_displaytarget *wdt = wrapper_sw_displaytarget(dt); |
struct pipe_resource *tex = wdt->tex; |
return wsw->screen->resource_get_handle(wsw->screen, tex, whandle); |
} |
static void * |
wsw_dt_map(struct sw_winsys *ws, |
struct sw_displaytarget *dt, |
unsigned flags) |
{ |
struct wrapper_sw_displaytarget *wdt = wrapper_sw_displaytarget(dt); |
struct pipe_context *pipe = wdt->winsys->pipe; |
struct pipe_resource *tex = wdt->tex; |
struct pipe_transfer *tr; |
void *ptr; |
if (!wdt->map_count) { |
assert(!wdt->transfer); |
ptr = pipe_transfer_map(pipe, tex, 0, 0, |
PIPE_TRANSFER_READ_WRITE, |
0, 0, wdt->tex->width0, wdt->tex->height0, &tr); |
if (!ptr) |
goto err; |
wdt->transfer = tr; |
wdt->ptr = ptr; |
/* XXX Handle this case */ |
assert(tr->stride == wdt->stride); |
} |
wdt->map_count++; |
return wdt->ptr; |
err: |
pipe->transfer_unmap(pipe, tr); |
return NULL; |
} |
static void |
wsw_dt_unmap(struct sw_winsys *ws, |
struct sw_displaytarget *dt) |
{ |
struct wrapper_sw_displaytarget *wdt = wrapper_sw_displaytarget(dt); |
struct pipe_context *pipe = wdt->winsys->pipe; |
assert(wdt->transfer); |
wdt->map_count--; |
if (wdt->map_count) |
return; |
pipe->transfer_unmap(pipe, wdt->transfer); |
pipe->flush(pipe, NULL, 0); |
wdt->transfer = NULL; |
} |
static void |
wsw_dt_destroy(struct sw_winsys *ws, |
struct sw_displaytarget *dt) |
{ |
struct wrapper_sw_displaytarget *wdt = wrapper_sw_displaytarget(dt); |
pipe_resource_reference(&wdt->tex, NULL); |
FREE(wdt); |
} |
static void |
wsw_destroy(struct sw_winsys *ws) |
{ |
struct wrapper_sw_winsys *wsw = wrapper_sw_winsys(ws); |
wsw->pipe->destroy(wsw->pipe); |
wsw->screen->destroy(wsw->screen); |
FREE(wsw); |
} |
struct sw_winsys * |
wrapper_sw_winsys_wrap_pipe_screen(struct pipe_screen *screen) |
{ |
struct wrapper_sw_winsys *wsw = CALLOC_STRUCT(wrapper_sw_winsys); |
if (!wsw) |
goto err; |
wsw->base.displaytarget_create = wsw_dt_create; |
wsw->base.displaytarget_from_handle = wsw_dt_from_handle; |
wsw->base.displaytarget_get_handle = wsw_dt_get_handle; |
wsw->base.displaytarget_map = wsw_dt_map; |
wsw->base.displaytarget_unmap = wsw_dt_unmap; |
wsw->base.displaytarget_destroy = wsw_dt_destroy; |
wsw->base.destroy = wsw_destroy; |
wsw->screen = screen; |
wsw->pipe = screen->context_create(screen, NULL); |
if (!wsw->pipe) |
goto err_free; |
if(screen->get_param(screen, PIPE_CAP_NPOT_TEXTURES)) |
wsw->target = PIPE_TEXTURE_2D; |
else |
wsw->target = PIPE_TEXTURE_RECT; |
return &wsw->base; |
err_free: |
FREE(wsw); |
err: |
return NULL; |
} |
struct pipe_screen * |
wrapper_sw_winsys_dewrap_pipe_screen(struct sw_winsys *ws) |
{ |
struct wrapper_sw_winsys *wsw = wrapper_sw_winsys(ws); |
struct pipe_screen *screen = wsw->screen; |
wsw->pipe->destroy(wsw->pipe); |
/* don't destroy the screen its needed later on */ |
FREE(wsw); |
return screen; |
} |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/wrapper/wrapper_sw_winsys.h |
---|
0,0 → 1,44 |
/********************************************************** |
* Copyright 2010 VMware, Inc. All rights reserved. |
* |
* Permission is hereby granted, free of charge, to any person |
* obtaining a copy of this software and associated documentation |
* files (the "Software"), to deal in the Software without |
* restriction, including without limitation the rights to use, copy, |
* modify, merge, publish, distribute, sublicense, and/or sell copies |
* of the Software, and to permit persons to whom the Software is |
* furnished to do so, subject to the following conditions: |
* |
* The above copyright notice and this permission notice shall be |
* included in all copies or substantial portions of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS |
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
* SOFTWARE. |
* |
**********************************************************/ |
#ifndef WRAPPER_SW_WINSYS |
#define WRAPPER_SW_WINSYS |
struct sw_winsys; |
struct pipe_screen; |
/* |
* Wrap a pipe screen. |
*/ |
struct sw_winsys *wrapper_sw_winsys_wrap_pipe_screen(struct pipe_screen *screen); |
/* |
* Destroy the sw_winsys and return the wrapped pipe_screen. |
* Not destroying it as sw_winsys::destroy does. |
*/ |
struct pipe_screen *wrapper_sw_winsys_dewrap_pipe_screen(struct sw_winsys *sw_winsys); |
#endif |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/xlib/Makefile.am |
---|
0,0 → 1,31 |
# Copyright © 2012 Intel Corporation |
# |
# Permission is hereby granted, free of charge, to any person obtaining a |
# copy of this software and associated documentation files (the "Software"), |
# to deal in the Software without restriction, including without limitation |
# the rights to use, copy, modify, merge, publish, distribute, sublicense, |
# and/or sell copies of the Software, and to permit persons to whom the |
# Software is furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice (including the next |
# paragraph) shall be included in all copies or substantial portions of the |
# Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
# DEALINGS IN THE SOFTWARE. |
include $(top_srcdir)/src/gallium/Automake.inc |
AM_CPPFLAGS = \ |
$(GALLIUM_CFLAGS) \ |
$(X11_CFLAGS) |
noinst_LTLIBRARIES = libws_xlib.la |
libws_xlib_la_SOURCES = xlib_sw_winsys.c |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/xlib/Makefile.in |
---|
0,0 → 1,777 |
# Makefile.in generated by automake 1.14 from Makefile.am. |
# @configure_input@ |
# Copyright (C) 1994-2013 Free Software Foundation, Inc. |
# This Makefile.in is free software; the Free Software Foundation |
# gives unlimited permission to copy and/or distribute it, |
# with or without modifications, as long as this notice is preserved. |
# This program is distributed in the hope that it will be useful, |
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without |
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A |
# PARTICULAR PURPOSE. |
@SET_MAKE@ |
# Copyright © 2012 Intel Corporation |
# |
# Permission is hereby granted, free of charge, to any person obtaining a |
# copy of this software and associated documentation files (the "Software"), |
# to deal in the Software without restriction, including without limitation |
# the rights to use, copy, modify, merge, publish, distribute, sublicense, |
# and/or sell copies of the Software, and to permit persons to whom the |
# Software is furnished to do so, subject to the following conditions: |
# |
# The above copyright notice and this permission notice (including the next |
# paragraph) shall be included in all copies or substantial portions of the |
# Software. |
# |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
# DEALINGS IN THE SOFTWARE. |
VPATH = @srcdir@ |
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' |
am__make_running_with_option = \ |
case $${target_option-} in \ |
?) ;; \ |
*) echo "am__make_running_with_option: internal error: invalid" \ |
"target option '$${target_option-}' specified" >&2; \ |
exit 1;; \ |
esac; \ |
has_opt=no; \ |
sane_makeflags=$$MAKEFLAGS; \ |
if $(am__is_gnu_make); then \ |
sane_makeflags=$$MFLAGS; \ |
else \ |
case $$MAKEFLAGS in \ |
*\\[\ \ ]*) \ |
bs=\\; \ |
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ |
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ |
esac; \ |
fi; \ |
skip_next=no; \ |
strip_trailopt () \ |
{ \ |
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ |
}; \ |
for flg in $$sane_makeflags; do \ |
test $$skip_next = yes && { skip_next=no; continue; }; \ |
case $$flg in \ |
*=*|--*) continue;; \ |
-*I) strip_trailopt 'I'; skip_next=yes;; \ |
-*I?*) strip_trailopt 'I';; \ |
-*O) strip_trailopt 'O'; skip_next=yes;; \ |
-*O?*) strip_trailopt 'O';; \ |
-*l) strip_trailopt 'l'; skip_next=yes;; \ |
-*l?*) strip_trailopt 'l';; \ |
-[dEDm]) skip_next=yes;; \ |
-[JT]) skip_next=yes;; \ |
esac; \ |
case $$flg in \ |
*$$target_option*) has_opt=yes; break;; \ |
esac; \ |
done; \ |
test $$has_opt = yes |
am__make_dryrun = (target_option=n; $(am__make_running_with_option)) |
am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) |
pkgdatadir = $(datadir)/@PACKAGE@ |
pkgincludedir = $(includedir)/@PACKAGE@ |
pkglibdir = $(libdir)/@PACKAGE@ |
pkglibexecdir = $(libexecdir)/@PACKAGE@ |
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd |
install_sh_DATA = $(install_sh) -c -m 644 |
install_sh_PROGRAM = $(install_sh) -c |
install_sh_SCRIPT = $(install_sh) -c |
INSTALL_HEADER = $(INSTALL_DATA) |
transform = $(program_transform_name) |
NORMAL_INSTALL = : |
PRE_INSTALL = : |
POST_INSTALL = : |
NORMAL_UNINSTALL = : |
PRE_UNINSTALL = : |
POST_UNINSTALL = : |
build_triplet = @build@ |
host_triplet = @host@ |
target_triplet = @target@ |
DIST_COMMON = $(top_srcdir)/src/gallium/Automake.inc \ |
$(srcdir)/Makefile.in $(srcdir)/Makefile.am \ |
$(top_srcdir)/bin/depcomp |
subdir = src/gallium/winsys/sw/xlib |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_prog_bison.m4 \ |
$(top_srcdir)/m4/ax_prog_cc_for_build.m4 \ |
$(top_srcdir)/m4/ax_prog_cxx_for_build.m4 \ |
$(top_srcdir)/m4/ax_prog_flex.m4 \ |
$(top_srcdir)/m4/ax_pthread.m4 \ |
$(top_srcdir)/m4/ax_python_module.m4 \ |
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ |
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ |
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac |
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
$(ACLOCAL_M4) |
mkinstalldirs = $(install_sh) -d |
CONFIG_CLEAN_FILES = |
CONFIG_CLEAN_VPATH_FILES = |
LTLIBRARIES = $(noinst_LTLIBRARIES) |
libws_xlib_la_LIBADD = |
am_libws_xlib_la_OBJECTS = xlib_sw_winsys.lo |
libws_xlib_la_OBJECTS = $(am_libws_xlib_la_OBJECTS) |
AM_V_lt = $(am__v_lt_@AM_V@) |
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) |
am__v_lt_0 = --silent |
am__v_lt_1 = |
AM_V_P = $(am__v_P_@AM_V@) |
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) |
am__v_P_0 = false |
am__v_P_1 = : |
AM_V_GEN = $(am__v_GEN_@AM_V@) |
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) |
am__v_GEN_0 = @echo " GEN " $@; |
am__v_GEN_1 = |
AM_V_at = $(am__v_at_@AM_V@) |
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) |
am__v_at_0 = @ |
am__v_at_1 = |
DEFAULT_INCLUDES = -I.@am__isrc@ |
depcomp = $(SHELL) $(top_srcdir)/bin/depcomp |
am__depfiles_maybe = depfiles |
am__mv = mv -f |
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ |
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) |
LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ |
$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ |
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ |
$(AM_CFLAGS) $(CFLAGS) |
AM_V_CC = $(am__v_CC_@AM_V@) |
am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) |
am__v_CC_0 = @echo " CC " $@; |
am__v_CC_1 = |
CCLD = $(CC) |
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ |
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ |
$(AM_LDFLAGS) $(LDFLAGS) -o $@ |
AM_V_CCLD = $(am__v_CCLD_@AM_V@) |
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) |
am__v_CCLD_0 = @echo " CCLD " $@; |
am__v_CCLD_1 = |
SOURCES = $(libws_xlib_la_SOURCES) |
DIST_SOURCES = $(libws_xlib_la_SOURCES) |
am__can_run_installinfo = \ |
case $$AM_UPDATE_INFO_DIR in \ |
n|no|NO) false;; \ |
*) (install-info --version) >/dev/null 2>&1;; \ |
esac |
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) |
# Read a list of newline-separated strings from the standard input, |
# and print each of them once, without duplicates. Input order is |
# *not* preserved. |
am__uniquify_input = $(AWK) '\ |
BEGIN { nonempty = 0; } \ |
{ items[$$0] = 1; nonempty = 1; } \ |
END { if (nonempty) { for (i in items) print i; }; } \ |
' |
# Make sure the list of sources is unique. This is necessary because, |
# e.g., the same source file might be shared among _SOURCES variables |
# for different programs/libraries. |
am__define_uniq_tagged_files = \ |
list='$(am__tagged_files)'; \ |
unique=`for i in $$list; do \ |
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ |
done | $(am__uniquify_input)` |
ETAGS = etags |
CTAGS = ctags |
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) |
ACLOCAL = @ACLOCAL@ |
AMTAR = @AMTAR@ |
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ |
AR = @AR@ |
AUTOCONF = @AUTOCONF@ |
AUTOHEADER = @AUTOHEADER@ |
AUTOMAKE = @AUTOMAKE@ |
AWK = @AWK@ |
BUILD_EXEEXT = @BUILD_EXEEXT@ |
BUILD_OBJEXT = @BUILD_OBJEXT@ |
CC = @CC@ |
CCAS = @CCAS@ |
CCASDEPMODE = @CCASDEPMODE@ |
CCASFLAGS = @CCASFLAGS@ |
CCDEPMODE = @CCDEPMODE@ |
CC_FOR_BUILD = @CC_FOR_BUILD@ |
CFLAGS = @CFLAGS@ |
CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ |
CLANG_RESOURCE_DIR = @CLANG_RESOURCE_DIR@ |
CLOCK_LIB = @CLOCK_LIB@ |
CPP = @CPP@ |
CPPFLAGS = @CPPFLAGS@ |
CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@ |
CPP_FOR_BUILD = @CPP_FOR_BUILD@ |
CXX = @CXX@ |
CXXCPP = @CXXCPP@ |
CXXCPPFLAGS_FOR_BUILD = @CXXCPPFLAGS_FOR_BUILD@ |
CXXCPP_FOR_BUILD = @CXXCPP_FOR_BUILD@ |
CXXDEPMODE = @CXXDEPMODE@ |
CXXFLAGS = @CXXFLAGS@ |
CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@ |
CXX_FOR_BUILD = @CXX_FOR_BUILD@ |
CYGPATH_W = @CYGPATH_W@ |
DEFINES = @DEFINES@ |
DEFINES_FOR_BUILD = @DEFINES_FOR_BUILD@ |
DEFS = @DEFS@ |
DEPDIR = @DEPDIR@ |
DLLTOOL = @DLLTOOL@ |
DLOPEN_LIBS = @DLOPEN_LIBS@ |
DRI2PROTO_CFLAGS = @DRI2PROTO_CFLAGS@ |
DRI2PROTO_LIBS = @DRI2PROTO_LIBS@ |
DRIGL_CFLAGS = @DRIGL_CFLAGS@ |
DRIGL_LIBS = @DRIGL_LIBS@ |
DRI_DRIVER_INSTALL_DIR = @DRI_DRIVER_INSTALL_DIR@ |
DRI_DRIVER_SEARCH_DIR = @DRI_DRIVER_SEARCH_DIR@ |
DRI_LIB_DEPS = @DRI_LIB_DEPS@ |
DRI_PC_REQ_PRIV = @DRI_PC_REQ_PRIV@ |
DSYMUTIL = @DSYMUTIL@ |
DUMPBIN = @DUMPBIN@ |
ECHO_C = @ECHO_C@ |
ECHO_N = @ECHO_N@ |
ECHO_T = @ECHO_T@ |
EGL_CFLAGS = @EGL_CFLAGS@ |
EGL_CLIENT_APIS = @EGL_CLIENT_APIS@ |
EGL_DRIVER_INSTALL_DIR = @EGL_DRIVER_INSTALL_DIR@ |
EGL_LIB_DEPS = @EGL_LIB_DEPS@ |
EGL_LIB_GLOB = @EGL_LIB_GLOB@ |
EGL_LIB_NAME = @EGL_LIB_NAME@ |
EGL_NATIVE_PLATFORM = @EGL_NATIVE_PLATFORM@ |
EGL_PLATFORMS = @EGL_PLATFORMS@ |
EGREP = @EGREP@ |
ELF_LIB = @ELF_LIB@ |
EXEEXT = @EXEEXT@ |
EXPAT_INCLUDES = @EXPAT_INCLUDES@ |
FGREP = @FGREP@ |
FREEDRENO_CFLAGS = @FREEDRENO_CFLAGS@ |
FREEDRENO_LIBS = @FREEDRENO_LIBS@ |
GALLIUM_DRI_LIB_DEPS = @GALLIUM_DRI_LIB_DEPS@ |
GALLIUM_PIPE_LOADER_DEFINES = @GALLIUM_PIPE_LOADER_DEFINES@ |
GALLIUM_PIPE_LOADER_LIBS = @GALLIUM_PIPE_LOADER_LIBS@ |
GALLIUM_PIPE_LOADER_XCB_CFLAGS = @GALLIUM_PIPE_LOADER_XCB_CFLAGS@ |
GALLIUM_PIPE_LOADER_XCB_LIBS = @GALLIUM_PIPE_LOADER_XCB_LIBS@ |
GBM_PC_LIB_PRIV = @GBM_PC_LIB_PRIV@ |
GBM_PC_REQ_PRIV = @GBM_PC_REQ_PRIV@ |
GLAPI_LIB_GLOB = @GLAPI_LIB_GLOB@ |
GLAPI_LIB_NAME = @GLAPI_LIB_NAME@ |
GLESv1_CM_LIB_DEPS = @GLESv1_CM_LIB_DEPS@ |
GLESv1_CM_LIB_GLOB = @GLESv1_CM_LIB_GLOB@ |
GLESv1_CM_LIB_NAME = @GLESv1_CM_LIB_NAME@ |
GLESv1_CM_PC_LIB_PRIV = @GLESv1_CM_PC_LIB_PRIV@ |
GLESv2_LIB_DEPS = @GLESv2_LIB_DEPS@ |
GLESv2_LIB_GLOB = @GLESv2_LIB_GLOB@ |
GLESv2_LIB_NAME = @GLESv2_LIB_NAME@ |
GLESv2_PC_LIB_PRIV = @GLESv2_PC_LIB_PRIV@ |
GLPROTO_CFLAGS = @GLPROTO_CFLAGS@ |
GLPROTO_LIBS = @GLPROTO_LIBS@ |
GLX_TLS = @GLX_TLS@ |
GL_LIB = @GL_LIB@ |
GL_LIB_DEPS = @GL_LIB_DEPS@ |
GL_LIB_GLOB = @GL_LIB_GLOB@ |
GL_LIB_NAME = @GL_LIB_NAME@ |
GL_PC_CFLAGS = @GL_PC_CFLAGS@ |
GL_PC_LIB_PRIV = @GL_PC_LIB_PRIV@ |
GL_PC_REQ_PRIV = @GL_PC_REQ_PRIV@ |
GREP = @GREP@ |
HAVE_XF86VIDMODE = @HAVE_XF86VIDMODE@ |
INDENT = @INDENT@ |
INDENT_FLAGS = @INDENT_FLAGS@ |
INSTALL = @INSTALL@ |
INSTALL_DATA = @INSTALL_DATA@ |
INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ |
INTEL_CFLAGS = @INTEL_CFLAGS@ |
INTEL_LIBS = @INTEL_LIBS@ |
LD = @LD@ |
LDFLAGS = @LDFLAGS@ |
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ |
LEX = @LEX@ |
LEXLIB = @LEXLIB@ |
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ |
LIBCLC_INCLUDEDIR = @LIBCLC_INCLUDEDIR@ |
LIBCLC_LIBEXECDIR = @LIBCLC_LIBEXECDIR@ |
LIBDRM_CFLAGS = @LIBDRM_CFLAGS@ |
LIBDRM_LIBS = @LIBDRM_LIBS@ |
LIBDRM_XORG_CFLAGS = @LIBDRM_XORG_CFLAGS@ |
LIBDRM_XORG_LIBS = @LIBDRM_XORG_LIBS@ |
LIBKMS_XORG_CFLAGS = @LIBKMS_XORG_CFLAGS@ |
LIBKMS_XORG_LIBS = @LIBKMS_XORG_LIBS@ |
LIBOBJS = @LIBOBJS@ |
LIBS = @LIBS@ |
LIBTOOL = @LIBTOOL@ |
LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ |
LIBUDEV_LIBS = @LIBUDEV_LIBS@ |
LIB_DIR = @LIB_DIR@ |
LIPO = @LIPO@ |
LLVM_BINDIR = @LLVM_BINDIR@ |
LLVM_CFLAGS = @LLVM_CFLAGS@ |
LLVM_CONFIG = @LLVM_CONFIG@ |
LLVM_CPPFLAGS = @LLVM_CPPFLAGS@ |
LLVM_CXXFLAGS = @LLVM_CXXFLAGS@ |
LLVM_INCLUDEDIR = @LLVM_INCLUDEDIR@ |
LLVM_LDFLAGS = @LLVM_LDFLAGS@ |
LLVM_LIBDIR = @LLVM_LIBDIR@ |
LLVM_LIBS = @LLVM_LIBS@ |
LLVM_VERSION = @LLVM_VERSION@ |
LN_S = @LN_S@ |
LTLIBOBJS = @LTLIBOBJS@ |
MAKE = @MAKE@ |
MAKEINFO = @MAKEINFO@ |
MANIFEST_TOOL = @MANIFEST_TOOL@ |
MESA_LLVM = @MESA_LLVM@ |
MKDIR_P = @MKDIR_P@ |
NM = @NM@ |
NMEDIT = @NMEDIT@ |
NOUVEAU_CFLAGS = @NOUVEAU_CFLAGS@ |
NOUVEAU_LIBS = @NOUVEAU_LIBS@ |
OBJDUMP = @OBJDUMP@ |
OBJEXT = @OBJEXT@ |
OPENCL_LIB_INSTALL_DIR = @OPENCL_LIB_INSTALL_DIR@ |
OSMESA_LIB = @OSMESA_LIB@ |
OSMESA_LIB_DEPS = @OSMESA_LIB_DEPS@ |
OSMESA_LIB_NAME = @OSMESA_LIB_NAME@ |
OSMESA_MESA_DEPS = @OSMESA_MESA_DEPS@ |
OSMESA_PC_LIB_PRIV = @OSMESA_PC_LIB_PRIV@ |
OSMESA_PC_REQ = @OSMESA_PC_REQ@ |
OSMESA_VERSION = @OSMESA_VERSION@ |
OTOOL = @OTOOL@ |
OTOOL64 = @OTOOL64@ |
PACKAGE = @PACKAGE@ |
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ |
PACKAGE_NAME = @PACKAGE_NAME@ |
PACKAGE_STRING = @PACKAGE_STRING@ |
PACKAGE_TARNAME = @PACKAGE_TARNAME@ |
PACKAGE_URL = @PACKAGE_URL@ |
PACKAGE_VERSION = @PACKAGE_VERSION@ |
PATH_SEPARATOR = @PATH_SEPARATOR@ |
PERL = @PERL@ |
PKG_CONFIG = @PKG_CONFIG@ |
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ |
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ |
POSIX_SHELL = @POSIX_SHELL@ |
PTHREAD_CC = @PTHREAD_CC@ |
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ |
PTHREAD_LIBS = @PTHREAD_LIBS@ |
PYTHON2 = @PYTHON2@ |
RADEON_CFLAGS = @RADEON_CFLAGS@ |
RADEON_LIBS = @RADEON_LIBS@ |
RANLIB = @RANLIB@ |
SED = @SED@ |
SELINUX_LIBS = @SELINUX_LIBS@ |
SET_MAKE = @SET_MAKE@ |
SHELL = @SHELL@ |
STRIP = @STRIP@ |
VDPAU_CFLAGS = @VDPAU_CFLAGS@ |
VDPAU_LIBS = @VDPAU_LIBS@ |
VDPAU_LIB_INSTALL_DIR = @VDPAU_LIB_INSTALL_DIR@ |
VDPAU_MAJOR = @VDPAU_MAJOR@ |
VDPAU_MINOR = @VDPAU_MINOR@ |
VERSION = @VERSION@ |
VG_LIB_DEPS = @VG_LIB_DEPS@ |
VG_LIB_GLOB = @VG_LIB_GLOB@ |
VG_LIB_NAME = @VG_LIB_NAME@ |
VG_PC_LIB_PRIV = @VG_PC_LIB_PRIV@ |
VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@ |
VISIBILITY_CXXFLAGS = @VISIBILITY_CXXFLAGS@ |
WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ |
WAYLAND_LIBS = @WAYLAND_LIBS@ |
WAYLAND_SCANNER = @WAYLAND_SCANNER@ |
X11_INCLUDES = @X11_INCLUDES@ |
XA_MAJOR = @XA_MAJOR@ |
XA_MINOR = @XA_MINOR@ |
XA_TINY = @XA_TINY@ |
XA_VERSION = @XA_VERSION@ |
XCB_DRI2_CFLAGS = @XCB_DRI2_CFLAGS@ |
XCB_DRI2_LIBS = @XCB_DRI2_LIBS@ |
XEXT_CFLAGS = @XEXT_CFLAGS@ |
XEXT_LIBS = @XEXT_LIBS@ |
XF86VIDMODE_CFLAGS = @XF86VIDMODE_CFLAGS@ |
XF86VIDMODE_LIBS = @XF86VIDMODE_LIBS@ |
XLIBGL_CFLAGS = @XLIBGL_CFLAGS@ |
XLIBGL_LIBS = @XLIBGL_LIBS@ |
XORG_CFLAGS = @XORG_CFLAGS@ |
XORG_DRIVER_INSTALL_DIR = @XORG_DRIVER_INSTALL_DIR@ |
XORG_LIBS = @XORG_LIBS@ |
XVMC_CFLAGS = @XVMC_CFLAGS@ |
XVMC_LIBS = @XVMC_LIBS@ |
XVMC_LIB_INSTALL_DIR = @XVMC_LIB_INSTALL_DIR@ |
XVMC_MAJOR = @XVMC_MAJOR@ |
XVMC_MINOR = @XVMC_MINOR@ |
YACC = @YACC@ |
YFLAGS = @YFLAGS@ |
abs_builddir = @abs_builddir@ |
abs_srcdir = @abs_srcdir@ |
abs_top_builddir = @abs_top_builddir@ |
abs_top_srcdir = @abs_top_srcdir@ |
ac_ct_AR = @ac_ct_AR@ |
ac_ct_CC = @ac_ct_CC@ |
ac_ct_CC_FOR_BUILD = @ac_ct_CC_FOR_BUILD@ |
ac_ct_CXX = @ac_ct_CXX@ |
ac_ct_CXX_FOR_BUILD = @ac_ct_CXX_FOR_BUILD@ |
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ |
am__include = @am__include@ |
am__leading_dot = @am__leading_dot@ |
am__quote = @am__quote@ |
am__tar = @am__tar@ |
am__untar = @am__untar@ |
ax_pthread_config = @ax_pthread_config@ |
bindir = @bindir@ |
build = @build@ |
build_alias = @build_alias@ |
build_cpu = @build_cpu@ |
build_os = @build_os@ |
build_vendor = @build_vendor@ |
builddir = @builddir@ |
datadir = @datadir@ |
datarootdir = @datarootdir@ |
docdir = @docdir@ |
dvidir = @dvidir@ |
exec_prefix = @exec_prefix@ |
host = @host@ |
host_alias = @host_alias@ |
host_cpu = @host_cpu@ |
host_os = @host_os@ |
host_vendor = @host_vendor@ |
htmldir = @htmldir@ |
includedir = @includedir@ |
infodir = @infodir@ |
install_sh = @install_sh@ |
libdir = @libdir@ |
libexecdir = @libexecdir@ |
localedir = @localedir@ |
localstatedir = @localstatedir@ |
mandir = @mandir@ |
mkdir_p = @mkdir_p@ |
oldincludedir = @oldincludedir@ |
pdfdir = @pdfdir@ |
prefix = @prefix@ |
program_transform_name = @program_transform_name@ |
psdir = @psdir@ |
sbindir = @sbindir@ |
sharedstatedir = @sharedstatedir@ |
srcdir = @srcdir@ |
sysconfdir = @sysconfdir@ |
target = @target@ |
target_alias = @target_alias@ |
target_cpu = @target_cpu@ |
target_os = @target_os@ |
target_vendor = @target_vendor@ |
top_build_prefix = @top_build_prefix@ |
top_builddir = @top_builddir@ |
top_srcdir = @top_srcdir@ |
GALLIUM_CFLAGS = \ |
-I$(top_srcdir)/include \ |
-I$(top_srcdir)/src/gallium/include \ |
-I$(top_srcdir)/src/gallium/auxiliary \ |
$(DEFINES) |
AM_CPPFLAGS = \ |
$(GALLIUM_CFLAGS) \ |
$(X11_CFLAGS) |
noinst_LTLIBRARIES = libws_xlib.la |
libws_xlib_la_SOURCES = xlib_sw_winsys.c |
all: all-am |
.SUFFIXES: |
.SUFFIXES: .c .lo .o .obj |
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/src/gallium/Automake.inc $(am__configure_deps) |
@for dep in $?; do \ |
case '$(am__configure_deps)' in \ |
*$$dep*) \ |
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ |
&& { if test -f $@; then exit 0; else break; fi; }; \ |
exit 1;; \ |
esac; \ |
done; \ |
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/gallium/winsys/sw/xlib/Makefile'; \ |
$(am__cd) $(top_srcdir) && \ |
$(AUTOMAKE) --foreign src/gallium/winsys/sw/xlib/Makefile |
.PRECIOUS: Makefile |
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
@case '$?' in \ |
*config.status*) \ |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ |
*) \ |
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ |
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ |
esac; |
$(top_srcdir)/src/gallium/Automake.inc: |
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(top_srcdir)/configure: $(am__configure_deps) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(ACLOCAL_M4): $(am__aclocal_m4_deps) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(am__aclocal_m4_deps): |
clean-noinstLTLIBRARIES: |
-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) |
@list='$(noinst_LTLIBRARIES)'; \ |
locs=`for p in $$list; do echo $$p; done | \ |
sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ |
sort -u`; \ |
test -z "$$locs" || { \ |
echo rm -f $${locs}; \ |
rm -f $${locs}; \ |
} |
libws_xlib.la: $(libws_xlib_la_OBJECTS) $(libws_xlib_la_DEPENDENCIES) $(EXTRA_libws_xlib_la_DEPENDENCIES) |
$(AM_V_CCLD)$(LINK) $(libws_xlib_la_OBJECTS) $(libws_xlib_la_LIBADD) $(LIBS) |
mostlyclean-compile: |
-rm -f *.$(OBJEXT) |
distclean-compile: |
-rm -f *.tab.c |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xlib_sw_winsys.Plo@am__quote@ |
.c.o: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< |
.c.obj: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` |
.c.lo: |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< |
mostlyclean-libtool: |
-rm -f *.lo |
clean-libtool: |
-rm -rf .libs _libs |
ID: $(am__tagged_files) |
$(am__define_uniq_tagged_files); mkid -fID $$unique |
tags: tags-am |
TAGS: tags |
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
set x; \ |
here=`pwd`; \ |
$(am__define_uniq_tagged_files); \ |
shift; \ |
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ |
test -n "$$unique" || unique=$$empty_fix; \ |
if test $$# -gt 0; then \ |
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
"$$@" $$unique; \ |
else \ |
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
$$unique; \ |
fi; \ |
fi |
ctags: ctags-am |
CTAGS: ctags |
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) |
$(am__define_uniq_tagged_files); \ |
test -z "$(CTAGS_ARGS)$$unique" \ |
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ |
$$unique |
GTAGS: |
here=`$(am__cd) $(top_builddir) && pwd` \ |
&& $(am__cd) $(top_srcdir) \ |
&& gtags -i $(GTAGS_ARGS) "$$here" |
cscopelist: cscopelist-am |
cscopelist-am: $(am__tagged_files) |
list='$(am__tagged_files)'; \ |
case "$(srcdir)" in \ |
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ |
*) sdir=$(subdir)/$(srcdir) ;; \ |
esac; \ |
for i in $$list; do \ |
if test -f "$$i"; then \ |
echo "$(subdir)/$$i"; \ |
else \ |
echo "$$sdir/$$i"; \ |
fi; \ |
done >> $(top_builddir)/cscope.files |
distclean-tags: |
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |
distdir: $(DISTFILES) |
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
list='$(DISTFILES)'; \ |
dist_files=`for file in $$list; do echo $$file; done | \ |
sed -e "s|^$$srcdirstrip/||;t" \ |
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ |
case $$dist_files in \ |
*/*) $(MKDIR_P) `echo "$$dist_files" | \ |
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ |
sort -u` ;; \ |
esac; \ |
for file in $$dist_files; do \ |
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ |
if test -d $$d/$$file; then \ |
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ |
if test -d "$(distdir)/$$file"; then \ |
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |
fi; \ |
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ |
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ |
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ |
fi; \ |
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ |
else \ |
test -f "$(distdir)/$$file" \ |
|| cp -p $$d/$$file "$(distdir)/$$file" \ |
|| exit 1; \ |
fi; \ |
done |
check-am: all-am |
check: check-am |
all-am: Makefile $(LTLIBRARIES) |
installdirs: |
install: install-am |
install-exec: install-exec-am |
install-data: install-data-am |
uninstall: uninstall-am |
install-am: all-am |
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am |
installcheck: installcheck-am |
install-strip: |
if test -z '$(STRIP)'; then \ |
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |
install; \ |
else \ |
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ |
fi |
mostlyclean-generic: |
clean-generic: |
distclean-generic: |
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) |
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) |
maintainer-clean-generic: |
@echo "This command is intended for maintainers to use" |
@echo "it deletes files that may require special tools to rebuild." |
clean: clean-am |
clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ |
mostlyclean-am |
distclean: distclean-am |
-rm -rf ./$(DEPDIR) |
-rm -f Makefile |
distclean-am: clean-am distclean-compile distclean-generic \ |
distclean-tags |
dvi: dvi-am |
dvi-am: |
html: html-am |
html-am: |
info: info-am |
info-am: |
install-data-am: |
install-dvi: install-dvi-am |
install-dvi-am: |
install-exec-am: |
install-html: install-html-am |
install-html-am: |
install-info: install-info-am |
install-info-am: |
install-man: |
install-pdf: install-pdf-am |
install-pdf-am: |
install-ps: install-ps-am |
install-ps-am: |
installcheck-am: |
maintainer-clean: maintainer-clean-am |
-rm -rf ./$(DEPDIR) |
-rm -f Makefile |
maintainer-clean-am: distclean-am maintainer-clean-generic |
mostlyclean: mostlyclean-am |
mostlyclean-am: mostlyclean-compile mostlyclean-generic \ |
mostlyclean-libtool |
pdf: pdf-am |
pdf-am: |
ps: ps-am |
ps-am: |
uninstall-am: |
.MAKE: install-am install-strip |
.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ |
clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ |
ctags-am distclean distclean-compile distclean-generic \ |
distclean-libtool distclean-tags distdir dvi dvi-am html \ |
html-am info info-am install install-am install-data \ |
install-data-am install-dvi install-dvi-am install-exec \ |
install-exec-am install-html install-html-am install-info \ |
install-info-am install-man install-pdf install-pdf-am \ |
install-ps install-ps-am install-strip installcheck \ |
installcheck-am installdirs maintainer-clean \ |
maintainer-clean-generic mostlyclean mostlyclean-compile \ |
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ |
tags tags-am uninstall uninstall-am |
# Tell versions [3.59,3.63) of GNU make to not export all variables. |
# Otherwise a system limit (for SysV at least) may be exceeded. |
.NOEXPORT: |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/xlib/SConscript |
---|
0,0 → 1,24 |
####################################################################### |
# SConscript for xlib winsys |
Import('*') |
if env['platform'] in ('cygwin', 'darwin', 'freebsd', 'linux', 'sunos'): |
env = env.Clone() |
env.Append(CPPPATH = [ |
'#/src/gallium/include', |
'#/src/gallium/auxiliary', |
'#/src/gallium/drivers', |
]) |
ws_xlib = env.ConvenienceLibrary( |
target = 'ws_xlib', |
source = [ |
'xlib_sw_winsys.c', |
] |
) |
env.Alias('ws_xlib', ws_xlib) |
Export('ws_xlib') |
/contrib/sdk/sources/Mesa/src/gallium/winsys/sw/xlib/xlib_sw_winsys.c |
---|
0,0 → 1,485 |
/************************************************************************** |
* |
* Copyright 2007 Tungsten Graphics, Inc., Bismarck, ND., USA |
* All Rights Reserved. |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL |
* THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, |
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR |
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE |
* USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* |
**************************************************************************/ |
/* |
* Authors: |
* Keith Whitwell |
* Brian Paul |
*/ |
#include "pipe/p_format.h" |
#include "pipe/p_context.h" |
#include "util/u_inlines.h" |
#include "util/u_format.h" |
#include "util/u_math.h" |
#include "util/u_memory.h" |
#include "state_tracker/xlib_sw_winsys.h" |
#include <X11/Xlib.h> |
#include <X11/Xlibint.h> |
#include <X11/Xutil.h> |
#include <sys/ipc.h> |
#include <sys/shm.h> |
#include <X11/extensions/XShm.h> |
DEBUG_GET_ONCE_BOOL_OPTION(xlib_no_shm, "XLIB_NO_SHM", FALSE) |
/** |
* Display target for Xlib winsys. |
* Low-level OS/window system memory buffer |
*/ |
struct xlib_displaytarget |
{ |
enum pipe_format format; |
unsigned width; |
unsigned height; |
unsigned stride; |
void *data; |
void *mapped; |
Display *display; |
Visual *visual; |
XImage *tempImage; |
GC gc; |
/* This is the last drawable that this display target was presented |
* against. May need to recreate gc, tempImage when this changes?? |
*/ |
Drawable drawable; |
XShmSegmentInfo shminfo; |
Bool shm; /** Using shared memory images? */ |
}; |
/** |
* Subclass of sw_winsys for Xlib winsys |
*/ |
struct xlib_sw_winsys |
{ |
struct sw_winsys base; |
Display *display; |
}; |
/** Cast wrapper */ |
static INLINE struct xlib_displaytarget * |
xlib_displaytarget(struct sw_displaytarget *dt) |
{ |
return (struct xlib_displaytarget *) dt; |
} |
/** |
* X Shared Memory Image extension code |
*/ |
static volatile int XErrorFlag = 0; |
/** |
* Catches potential Xlib errors. |
*/ |
static int |
handle_xerror(Display *dpy, XErrorEvent *event) |
{ |
(void) dpy; |
(void) event; |
XErrorFlag = 1; |
return 0; |
} |
static char * |
alloc_shm(struct xlib_displaytarget *buf, unsigned size) |
{ |
XShmSegmentInfo *const shminfo = & buf->shminfo; |
shminfo->shmid = -1; |
shminfo->shmaddr = (char *) -1; |
shminfo->shmid = shmget(IPC_PRIVATE, size, IPC_CREAT|0777); |
if (shminfo->shmid < 0) { |
return NULL; |
} |
shminfo->shmaddr = (char *) shmat(shminfo->shmid, 0, 0); |
if (shminfo->shmaddr == (char *) -1) { |
shmctl(shminfo->shmid, IPC_RMID, 0); |
return NULL; |
} |
shminfo->readOnly = False; |
return shminfo->shmaddr; |
} |
/** |
* Allocate a shared memory XImage back buffer for the given display target. |
*/ |
static void |
alloc_shm_ximage(struct xlib_displaytarget *xlib_dt, |
struct xlib_drawable *xmb, |
unsigned width, unsigned height) |
{ |
/* |
* We have to do a _lot_ of error checking here to be sure we can |
* really use the XSHM extension. It seems different servers trigger |
* errors at different points if the extension won't work. Therefore |
* we have to be very careful... |
*/ |
int (*old_handler)(Display *, XErrorEvent *); |
xlib_dt->tempImage = XShmCreateImage(xlib_dt->display, |
xmb->visual, |
xmb->depth, |
ZPixmap, |
NULL, |
&xlib_dt->shminfo, |
width, height); |
if (xlib_dt->tempImage == NULL) { |
shmctl(xlib_dt->shminfo.shmid, IPC_RMID, 0); |
xlib_dt->shm = False; |
return; |
} |
XErrorFlag = 0; |
old_handler = XSetErrorHandler(handle_xerror); |
/* This may trigger the X protocol error we're ready to catch: */ |
XShmAttach(xlib_dt->display, &xlib_dt->shminfo); |
XSync(xlib_dt->display, False); |
/* Mark the segment to be destroyed, so that it is automatically destroyed |
* when this process dies. Needs to be after XShmAttach() for *BSD. |
*/ |
shmctl(xlib_dt->shminfo.shmid, IPC_RMID, 0); |
if (XErrorFlag) { |
/* we are on a remote display, this error is normal, don't print it */ |
XFlush(xlib_dt->display); |
XErrorFlag = 0; |
XDestroyImage(xlib_dt->tempImage); |
xlib_dt->tempImage = NULL; |
xlib_dt->shm = False; |
(void) XSetErrorHandler(old_handler); |
return; |
} |
xlib_dt->shm = True; |
} |
static void |
alloc_ximage(struct xlib_displaytarget *xlib_dt, |
struct xlib_drawable *xmb, |
unsigned width, unsigned height) |
{ |
/* try allocating a shared memory image first */ |
if (xlib_dt->shm) { |
alloc_shm_ximage(xlib_dt, xmb, width, height); |
if (xlib_dt->tempImage) |
return; /* success */ |
} |
/* try regular (non-shared memory) image */ |
xlib_dt->tempImage = XCreateImage(xlib_dt->display, |
xmb->visual, |
xmb->depth, |
ZPixmap, 0, |
NULL, width, height, |
8, 0); |
} |
static boolean |
xlib_is_displaytarget_format_supported(struct sw_winsys *ws, |
unsigned tex_usage, |
enum pipe_format format) |
{ |
/* TODO: check visuals or other sensible thing here */ |
return TRUE; |
} |
static void * |
xlib_displaytarget_map(struct sw_winsys *ws, |
struct sw_displaytarget *dt, |
unsigned flags) |
{ |
struct xlib_displaytarget *xlib_dt = xlib_displaytarget(dt); |
xlib_dt->mapped = xlib_dt->data; |
return xlib_dt->mapped; |
} |
static void |
xlib_displaytarget_unmap(struct sw_winsys *ws, |
struct sw_displaytarget *dt) |
{ |
struct xlib_displaytarget *xlib_dt = xlib_displaytarget(dt); |
xlib_dt->mapped = NULL; |
} |
static void |
xlib_displaytarget_destroy(struct sw_winsys *ws, |
struct sw_displaytarget *dt) |
{ |
struct xlib_displaytarget *xlib_dt = xlib_displaytarget(dt); |
if (xlib_dt->data) { |
if (xlib_dt->shminfo.shmid >= 0) { |
shmdt(xlib_dt->shminfo.shmaddr); |
shmctl(xlib_dt->shminfo.shmid, IPC_RMID, 0); |
xlib_dt->shminfo.shmid = -1; |
xlib_dt->shminfo.shmaddr = (char *) -1; |
xlib_dt->data = NULL; |
if (xlib_dt->tempImage) |
xlib_dt->tempImage->data = NULL; |
} |
else { |
FREE(xlib_dt->data); |
if (xlib_dt->tempImage && xlib_dt->tempImage->data == xlib_dt->data) { |
xlib_dt->tempImage->data = NULL; |
} |
xlib_dt->data = NULL; |
} |
} |
if (xlib_dt->tempImage) { |
XDestroyImage(xlib_dt->tempImage); |
xlib_dt->tempImage = NULL; |
} |
if (xlib_dt->gc) |
XFreeGC(xlib_dt->display, xlib_dt->gc); |
FREE(xlib_dt); |
} |
/** |
* Display/copy the image in the surface into the X window specified |
* by the display target. |
*/ |
static void |
xlib_sw_display(struct xlib_drawable *xlib_drawable, |
struct sw_displaytarget *dt) |
{ |
static boolean no_swap = 0; |
static boolean firsttime = 1; |
struct xlib_displaytarget *xlib_dt = xlib_displaytarget(dt); |
Display *display = xlib_dt->display; |
XImage *ximage; |
if (firsttime) { |
no_swap = getenv("SP_NO_RAST") != NULL; |
firsttime = 0; |
} |
if (no_swap) |
return; |
if (xlib_dt->drawable != xlib_drawable->drawable) { |
if (xlib_dt->gc) { |
XFreeGC(display, xlib_dt->gc); |
xlib_dt->gc = NULL; |
} |
if (xlib_dt->tempImage) { |
XDestroyImage(xlib_dt->tempImage); |
xlib_dt->tempImage = NULL; |
} |
xlib_dt->drawable = xlib_drawable->drawable; |
} |
if (xlib_dt->tempImage == NULL) { |
assert(util_format_get_blockwidth(xlib_dt->format) == 1); |
assert(util_format_get_blockheight(xlib_dt->format) == 1); |
alloc_ximage(xlib_dt, xlib_drawable, |
xlib_dt->stride / util_format_get_blocksize(xlib_dt->format), |
xlib_dt->height); |
if (!xlib_dt->tempImage) |
return; |
} |
if (xlib_dt->gc == NULL) { |
xlib_dt->gc = XCreateGC(display, xlib_drawable->drawable, 0, NULL); |
XSetFunction(display, xlib_dt->gc, GXcopy); |
} |
if (xlib_dt->shm) { |
ximage = xlib_dt->tempImage; |
ximage->data = xlib_dt->data; |
/* _debug_printf("XSHM\n"); */ |
XShmPutImage(xlib_dt->display, xlib_drawable->drawable, xlib_dt->gc, |
ximage, 0, 0, 0, 0, xlib_dt->width, xlib_dt->height, False); |
} |
else { |
/* display image in Window */ |
ximage = xlib_dt->tempImage; |
ximage->data = xlib_dt->data; |
/* check that the XImage has been previously initialized */ |
assert(ximage->format); |
assert(ximage->bitmap_unit); |
/* update XImage's fields */ |
ximage->width = xlib_dt->width; |
ximage->height = xlib_dt->height; |
ximage->bytes_per_line = xlib_dt->stride; |
/* _debug_printf("XPUT\n"); */ |
XPutImage(xlib_dt->display, xlib_drawable->drawable, xlib_dt->gc, |
ximage, 0, 0, 0, 0, xlib_dt->width, xlib_dt->height); |
} |
XFlush(xlib_dt->display); |
} |
/** |
* Display/copy the image in the surface into the X window specified |
* by the display target. |
*/ |
static void |
xlib_displaytarget_display(struct sw_winsys *ws, |
struct sw_displaytarget *dt, |
void *context_private) |
{ |
struct xlib_drawable *xlib_drawable = (struct xlib_drawable *)context_private; |
xlib_sw_display(xlib_drawable, dt); |
} |
static struct sw_displaytarget * |
xlib_displaytarget_create(struct sw_winsys *winsys, |
unsigned tex_usage, |
enum pipe_format format, |
unsigned width, unsigned height, |
unsigned alignment, |
unsigned *stride) |
{ |
struct xlib_displaytarget *xlib_dt; |
unsigned nblocksy, size; |
xlib_dt = CALLOC_STRUCT(xlib_displaytarget); |
if (!xlib_dt) |
goto no_xlib_dt; |
xlib_dt->display = ((struct xlib_sw_winsys *)winsys)->display; |
xlib_dt->format = format; |
xlib_dt->width = width; |
xlib_dt->height = height; |
nblocksy = util_format_get_nblocksy(format, height); |
xlib_dt->stride = align(util_format_get_stride(format, width), alignment); |
size = xlib_dt->stride * nblocksy; |
if (!debug_get_option_xlib_no_shm()) { |
xlib_dt->data = alloc_shm(xlib_dt, size); |
if (xlib_dt->data) { |
xlib_dt->shm = True; |
} |
} |
if (!xlib_dt->data) { |
xlib_dt->data = align_malloc(size, alignment); |
if (!xlib_dt->data) |
goto no_data; |
} |
*stride = xlib_dt->stride; |
return (struct sw_displaytarget *)xlib_dt; |
no_data: |
FREE(xlib_dt); |
no_xlib_dt: |
return NULL; |
} |
static struct sw_displaytarget * |
xlib_displaytarget_from_handle(struct sw_winsys *winsys, |
const struct pipe_resource *templet, |
struct winsys_handle *whandle, |
unsigned *stride) |
{ |
assert(0); |
return NULL; |
} |
static boolean |
xlib_displaytarget_get_handle(struct sw_winsys *winsys, |
struct sw_displaytarget *dt, |
struct winsys_handle *whandle) |
{ |
assert(0); |
return FALSE; |
} |
static void |
xlib_destroy(struct sw_winsys *ws) |
{ |
FREE(ws); |
} |
struct sw_winsys * |
xlib_create_sw_winsys(Display *display) |
{ |
struct xlib_sw_winsys *ws; |
ws = CALLOC_STRUCT(xlib_sw_winsys); |
if (!ws) |
return NULL; |
ws->display = display; |
ws->base.destroy = xlib_destroy; |
ws->base.is_displaytarget_format_supported = xlib_is_displaytarget_format_supported; |
ws->base.displaytarget_create = xlib_displaytarget_create; |
ws->base.displaytarget_from_handle = xlib_displaytarget_from_handle; |
ws->base.displaytarget_get_handle = xlib_displaytarget_get_handle; |
ws->base.displaytarget_map = xlib_displaytarget_map; |
ws->base.displaytarget_unmap = xlib_displaytarget_unmap; |
ws->base.displaytarget_destroy = xlib_displaytarget_destroy; |
ws->base.displaytarget_display = xlib_displaytarget_display; |
return &ws->base; |
} |