Compare commits
154 Commits
mesa-10.3.
...
mesa-10.2
Author | SHA1 | Date | |
---|---|---|---|
|
f836ef63fd | ||
|
99b9a0973a | ||
|
d36d53b564 | ||
|
283cd12933 | ||
|
aa8ea648f4 | ||
|
e901f40764 | ||
|
d5e47ee66b | ||
|
932a5dadda | ||
|
203bc289a0 | ||
|
11b3011805 | ||
|
c62bc58cce | ||
|
304e80e356 | ||
|
f4aca6868a | ||
|
5ab9a9c0cc | ||
|
ae16f443c2 | ||
|
b8241bb3f2 | ||
|
224c193237 | ||
|
494f916125 | ||
|
767bc05309 | ||
|
3aaae6056e | ||
|
8b71741222 | ||
|
15ec4ef0da | ||
|
9fde5670e2 | ||
|
76e112380a | ||
|
8ac81e5b66 | ||
|
6d23a0b2a6 | ||
|
8f984928cc | ||
|
7ab2363c11 | ||
|
55b9effa4a | ||
|
5347fc5295 | ||
|
e8e48889e6 | ||
|
af3d4eddc1 | ||
|
75ae4fff35 | ||
|
c984e5bd2e | ||
|
ca6b38b80a | ||
|
b814afeb6c | ||
|
17c7ead727 | ||
|
2a29dbdc6e | ||
|
03e93f6079 | ||
|
bc4b9467af | ||
|
7efdc55f5f | ||
|
9ea859931e | ||
|
4e5296208d | ||
|
1ced952686 | ||
|
afe723ce5f | ||
|
8b74c2bdbd | ||
|
4afbd9b0e2 | ||
|
697316fe06 | ||
|
bfaee5277a | ||
|
9a8f12ae03 | ||
|
a31062fcb3 | ||
|
a1fff38c96 | ||
|
1db3ebd8a5 | ||
|
7cf3a674ea | ||
|
d2521a44af | ||
|
00f2dcb791 | ||
|
ed1ffa0197 | ||
|
5d056f51ab | ||
|
6be7789e11 | ||
|
d6a4c3c29c | ||
|
9028b94670 | ||
|
085d6bd5e7 | ||
|
fd0ea5be9d | ||
|
27d4836f35 | ||
|
e306ba9a9b | ||
|
81fb9ef112 | ||
|
32549f3f17 | ||
|
9576e17804 | ||
|
cc65bc4d15 | ||
|
25e641213f | ||
|
e084f71548 | ||
|
cdd328639f | ||
|
6440561737 | ||
|
fb4461b7dc | ||
|
fec2b45d02 | ||
|
d0c813c40a | ||
|
a05c073d79 | ||
|
031ee21961 | ||
|
b7604eff4c | ||
|
80da86c650 | ||
|
3c0ca023dd | ||
|
516db26e1e | ||
|
d5d9984c2b | ||
|
6db6f05fae | ||
|
c338759051 | ||
|
47a6830e22 | ||
|
3ffc507c94 | ||
|
c94e339adc | ||
|
a5951d09a5 | ||
|
3475ca1f00 | ||
|
3733cc3e8f | ||
|
ac49f97f12 | ||
|
d0aa394741 | ||
|
4baf6f12a5 | ||
|
21792665c7 | ||
|
872ea423ac | ||
|
ad8ad99eff | ||
|
62f1509070 | ||
|
eb2ef1641c | ||
|
947b60d19e | ||
|
cb37016f89 | ||
|
43ea5f9347 | ||
|
b5e717a618 | ||
|
f5848ec2e4 | ||
|
79a34441d5 | ||
|
1041fb86c0 | ||
|
b1aa25907a | ||
|
5d6e822d03 | ||
|
26d5b22039 | ||
|
3171da3402 | ||
|
875fd92d16 | ||
|
fb5c68d312 | ||
|
0e7b0f2a0a | ||
|
5f495b85a0 | ||
|
253834cbf6 | ||
|
f5c083dbc3 | ||
|
2b4a871e05 | ||
|
27da0bbeb4 | ||
|
91e2808c41 | ||
|
6cad93daab | ||
|
71f78bb87e | ||
|
ab43a98fcf | ||
|
af228e999c | ||
|
725a27e04d | ||
|
b0609b715b | ||
|
ca549a0f19 | ||
|
407bff9db0 | ||
|
0e14b19492 | ||
|
a233f4c303 | ||
|
7a81788c67 | ||
|
13bb2bc84b | ||
|
98b66e8d96 | ||
|
0b3126bddd | ||
|
f2682b3b9f | ||
|
d259928a56 | ||
|
ec6bd21162 | ||
|
53a0f9d0ba | ||
|
0f0f1106b6 | ||
|
2b34277bbd | ||
|
e29daf82cc | ||
|
03673bcf6c | ||
|
af47859aed | ||
|
e120f1a958 | ||
|
cc92276cb8 | ||
|
fac042fa05 | ||
|
d26b59ec27 | ||
|
c2c15a9a37 | ||
|
e6c98309c6 | ||
|
ffc0cc027a | ||
|
658d0410d0 | ||
|
a1dd1e62fa | ||
|
c7a3c2d29d | ||
|
0a5034517a | ||
|
e8f6150320 |
@@ -24,7 +24,7 @@
|
||||
# BOARD_GPU_DRIVERS should be defined. The valid values are
|
||||
#
|
||||
# classic drivers: i915 i965
|
||||
# gallium drivers: swrast freedreno i915g ilo nouveau r300g r600g radeonsi vmwgfx
|
||||
# gallium drivers: swrast i915g ilo nouveau r300g r600g radeonsi vmwgfx
|
||||
#
|
||||
# The main target is libGLES_mesa. For each classic driver enabled, a DRI
|
||||
# module will also be built. DRI modules will be loaded by libGLES_mesa.
|
||||
@@ -38,10 +38,11 @@ MESA_ANDROID_VERSION := $(MESA_ANDROID_MAJOR_VERSION).$(MESA_ANDROID_MINOR_VERSI
|
||||
MESA_COMMON_MK := $(MESA_TOP)/Android.common.mk
|
||||
MESA_PYTHON2 := python
|
||||
|
||||
DRM_TOP := external/drm
|
||||
DRM_GRALLOC_TOP := hardware/drm_gralloc
|
||||
|
||||
classic_drivers := i915 i965
|
||||
gallium_drivers := swrast freedreno i915g ilo nouveau r300g r600g radeonsi vmwgfx
|
||||
gallium_drivers := swrast i915g ilo nouveau r300g r600g radeonsi vmwgfx
|
||||
|
||||
MESA_GPU_DRIVERS := $(strip $(BOARD_GPU_DRIVERS))
|
||||
|
||||
@@ -81,7 +82,6 @@ SUBDIRS := \
|
||||
src/mapi \
|
||||
src/glsl \
|
||||
src/mesa \
|
||||
src/util \
|
||||
src/egl/main
|
||||
|
||||
ifeq ($(strip $(MESA_BUILD_CLASSIC)),true)
|
||||
|
@@ -1,7 +0,0 @@
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libmesa_*_intermediates)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/i9*5_dri_intermediates)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libglapi_intermediates)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libGLES_mesa_intermediates)
|
||||
$(call add-clean-step, rm -rf $(OUT_DIR)/host/$(HOST_OS)-$(HOST_ARCH)/obj/EXECUTABLES/mesa_*_intermediates)
|
||||
$(call add-clean-step, rm -rf $(OUT_DIR)/host/$(HOST_OS)-$(HOST_ARCH)/obj/EXECUTABLES/glsl_compiler_intermediates)
|
||||
$(call add-clean-step, rm -rf $(OUT_DIR)/host/$(HOST_OS)-$(HOST_ARCH)/obj/STATIC_LIBRARIES/libmesa_glsl_utils_intermediates)
|
11
Makefile.am
11
Makefile.am
@@ -64,13 +64,14 @@ IGNORE_FILES = \
|
||||
|
||||
parsers: configure
|
||||
$(MAKE) -C src/glsl glsl_parser.cpp glsl_parser.h glsl_lexer.cpp glcpp/glcpp-lex.c glcpp/glcpp-parse.c glcpp/glcpp-parse.h
|
||||
$(MAKE) -C src/mesa program/lex.yy.c program/program_parse.tab.c program/program_parse.tab.h
|
||||
|
||||
# Everything for new a Mesa release:
|
||||
ARCHIVES = $(PACKAGE_NAME).tar.gz \
|
||||
$(PACKAGE_NAME).tar.bz2 \
|
||||
$(PACKAGE_NAME).zip
|
||||
|
||||
tarballs: checksums
|
||||
tarballs: md5
|
||||
rm -f ../$(PACKAGE_DIR) $(PACKAGE_NAME).tar
|
||||
|
||||
manifest.txt: .git
|
||||
@@ -97,9 +98,9 @@ $(PACKAGE_NAME).zip: parsers ../$(PACKAGE_DIR) manifest.txt
|
||||
zip -q -@ $(PACKAGE_NAME).zip < $(PACKAGE_DIR)/manifest.txt ; \
|
||||
mv $(PACKAGE_NAME).zip $(PACKAGE_DIR)
|
||||
|
||||
checksums: $(ARCHIVES)
|
||||
@-sha256sum $(PACKAGE_NAME).tar.gz
|
||||
@-sha256sum $(PACKAGE_NAME).tar.bz2
|
||||
@-sha256sum $(PACKAGE_NAME).zip
|
||||
md5: $(ARCHIVES)
|
||||
@-md5sum $(PACKAGE_NAME).tar.gz
|
||||
@-md5sum $(PACKAGE_NAME).tar.bz2
|
||||
@-md5sum $(PACKAGE_NAME).zip
|
||||
|
||||
.PHONY: tarballs md5
|
||||
|
3
bin/.cherry-ignore
Normal file
3
bin/.cherry-ignore
Normal file
@@ -0,0 +1,3 @@
|
||||
# The first is the change, and the second is the revert of that change.
|
||||
e6967270c75a5b669152127bb7a746d55f4407a6 i965: Fix depth (array slices) computation for 1D_ARRAY render targets.
|
||||
155f98d49fdc2f46c760f8214327b3804ee60079 Revert "i965: Fix depth (array slices) computation for 1D_ARRAY render targets."
|
@@ -14,7 +14,7 @@ git log --reverse --grep="cherry picked from commit" origin/master..HEAD |\
|
||||
sed -e 's/^[[:space:]]*(cherry picked from commit[[:space:]]*//' -e 's/)//' > already_picked
|
||||
|
||||
# Grep for commits that were marked as a candidate for the stable tree.
|
||||
git log --reverse --pretty=%H -i --grep='^\([[:space:]]*NOTE: .*[Cc]andidate\|CC:.*10\.3.*mesa-stable\)' HEAD..origin/master |\
|
||||
git log --reverse --pretty=%H -i --grep='^\([[:space:]]*NOTE: .*[Cc]andidate\|CC:.*mesa-stable\)' HEAD..origin/master |\
|
||||
while read sha
|
||||
do
|
||||
# Check to see whether the patch is on the ignore list.
|
||||
|
498
configure.ac
498
configure.ac
@@ -28,11 +28,11 @@ AC_SUBST([OSMESA_VERSION])
|
||||
|
||||
dnl Versions for external dependencies
|
||||
LIBDRM_REQUIRED=2.4.38
|
||||
LIBDRM_RADEON_REQUIRED=2.4.56
|
||||
LIBDRM_RADEON_REQUIRED=2.4.54
|
||||
LIBDRM_INTEL_REQUIRED=2.4.52
|
||||
LIBDRM_NVVIEUX_REQUIRED=2.4.33
|
||||
LIBDRM_NOUVEAU_REQUIRED="2.4.33 libdrm >= 2.4.41"
|
||||
LIBDRM_FREEDRENO_REQUIRED=2.4.57
|
||||
LIBDRM_FREEDRENO_REQUIRED=2.4.51
|
||||
DRI2PROTO_REQUIRED=2.6
|
||||
DRI3PROTO_REQUIRED=1.0
|
||||
PRESENTPROTO_REQUIRED=1.0
|
||||
@@ -149,7 +149,7 @@ _SAVE_LDFLAGS="$LDFLAGS"
|
||||
_SAVE_CPPFLAGS="$CPPFLAGS"
|
||||
|
||||
dnl Compiler macros
|
||||
DEFINES="-DUSE_EXTERNAL_DXTN_LIB=1"
|
||||
DEFINES=""
|
||||
AC_SUBST([DEFINES])
|
||||
case "$host_os" in
|
||||
linux*|*-gnu*|gnu*)
|
||||
@@ -159,13 +159,20 @@ solaris*)
|
||||
DEFINES="$DEFINES -DHAVE_PTHREAD -DSVR4"
|
||||
;;
|
||||
cygwin*)
|
||||
DEFINES="$DEFINES -D_XOPEN_SOURCE=700 -DHAVE_PTHREAD"
|
||||
DEFINES="$DEFINES -DHAVE_PTHREAD"
|
||||
;;
|
||||
esac
|
||||
|
||||
dnl Add flags for gcc and g++
|
||||
if test "x$GCC" = xyes; then
|
||||
CFLAGS="$CFLAGS -Wall -std=c99"
|
||||
case "$host_os" in
|
||||
cygwin*)
|
||||
CFLAGS="$CFLAGS -Wall -std=gnu99"
|
||||
;;
|
||||
*)
|
||||
CFLAGS="$CFLAGS -Wall -std=c99"
|
||||
;;
|
||||
esac
|
||||
|
||||
# Enable -Werror=implicit-function-declaration and
|
||||
# -Werror=missing-prototypes, if available, or otherwise, just
|
||||
@@ -237,21 +244,42 @@ AC_SUBST([VISIBILITY_CXXFLAGS])
|
||||
dnl
|
||||
dnl Optional flags, check for compiler support
|
||||
dnl
|
||||
save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="-msse4.1 $CFLAGS"
|
||||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
|
||||
#include <smmintrin.h>
|
||||
int main () {
|
||||
__m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c;
|
||||
c = _mm_max_epu32(a, b);
|
||||
return 0;
|
||||
}]])], SSE41_SUPPORTED=1)
|
||||
CFLAGS="$save_CFLAGS"
|
||||
if test "x$SSE41_SUPPORTED" = x1; then
|
||||
DEFINES="$DEFINES -DUSE_SSE41"
|
||||
fi
|
||||
AX_CHECK_COMPILE_FLAG([-msse4.1], [SSE41_SUPPORTED=1], [SSE41_SUPPORTED=0])
|
||||
AM_CONDITIONAL([SSE41_SUPPORTED], [test x$SSE41_SUPPORTED = x1])
|
||||
|
||||
dnl
|
||||
dnl Hacks to enable 32 or 64 bit build
|
||||
dnl
|
||||
AC_ARG_ENABLE([32-bit],
|
||||
[AS_HELP_STRING([--enable-32-bit],
|
||||
[build 32-bit libraries @<:@default=auto@:>@])],
|
||||
[enable_32bit="$enableval"],
|
||||
[enable_32bit=auto]
|
||||
)
|
||||
if test "x$enable_32bit" = xyes; then
|
||||
if test "x$GCC" = xyes; then
|
||||
CFLAGS="$CFLAGS -m32"
|
||||
CCASFLAGS="$CCASFLAGS -m32"
|
||||
fi
|
||||
if test "x$GXX" = xyes; then
|
||||
CXXFLAGS="$CXXFLAGS -m32"
|
||||
fi
|
||||
fi
|
||||
AC_ARG_ENABLE([64-bit],
|
||||
[AS_HELP_STRING([--enable-64-bit],
|
||||
[build 64-bit libraries @<:@default=auto@:>@])],
|
||||
[enable_64bit="$enableval"],
|
||||
[enable_64bit=auto]
|
||||
)
|
||||
if test "x$enable_64bit" = xyes; then
|
||||
if test "x$GCC" = xyes; then
|
||||
CFLAGS="$CFLAGS -m64"
|
||||
fi
|
||||
if test "x$GXX" = xyes; then
|
||||
CXXFLAGS="$CXXFLAGS -m64"
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl Can't have static and shared libraries, default to static if user
|
||||
dnl explicitly requested. If both disabled, set to static since shared
|
||||
dnl was explicitly requested.
|
||||
@@ -280,39 +308,13 @@ AC_ARG_ENABLE([debug],
|
||||
if test "x$enable_debug" = xyes; then
|
||||
DEFINES="$DEFINES -DDEBUG"
|
||||
if test "x$GCC" = xyes; then
|
||||
if ! echo "$CFLAGS" | grep -q -e '-g'; then
|
||||
CFLAGS="$CFLAGS -g"
|
||||
fi
|
||||
if ! echo "$CFLAGS" | grep -q -e '-O'; then
|
||||
CFLAGS="$CFLAGS -O0"
|
||||
fi
|
||||
CFLAGS="$CFLAGS -g -O0"
|
||||
fi
|
||||
if test "x$GXX" = xyes; then
|
||||
if ! echo "$CXXFLAGS" | grep -q -e '-g'; then
|
||||
CXXFLAGS="$CXXFLAGS -g"
|
||||
fi
|
||||
if ! echo "$CXXFLAGS" | grep -q -e '-O'; then
|
||||
CXXFLAGS="$CXXFLAGS -O0"
|
||||
fi
|
||||
CXXFLAGS="$CXXFLAGS -g -O0"
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl Check if linker supports -Bsymbolic
|
||||
dnl
|
||||
save_LDFLAGS=$LDFLAGS
|
||||
LDFLAGS="$LDFLAGS -Wl,-Bsymbolic"
|
||||
AC_MSG_CHECKING([if ld supports -Bsymbolic])
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_SOURCE([int main() { return 0;}])],
|
||||
[AC_MSG_RESULT([yes])
|
||||
BSYMBOLIC="-Wl,-Bsymbolic";],
|
||||
[AC_MSG_RESULT([no])
|
||||
BSYMBOLIC="";])
|
||||
LDFLAGS=$save_LDFLAGS
|
||||
|
||||
AC_SUBST([BSYMBOLIC])
|
||||
|
||||
dnl
|
||||
dnl Check if linker supports garbage collection
|
||||
dnl
|
||||
@@ -334,7 +336,7 @@ dnl OpenBSD does not have DT_NEEDED entries for libc by design
|
||||
dnl so when these flags are passed to ld via libtool the checks will fail
|
||||
dnl
|
||||
case "$host_os" in
|
||||
openbsd* | darwin* )
|
||||
openbsd*)
|
||||
LD_NO_UNDEFINED="" ;;
|
||||
*)
|
||||
LD_NO_UNDEFINED="-Wl,--no-undefined" ;;
|
||||
@@ -342,46 +344,6 @@ esac
|
||||
|
||||
AC_SUBST([LD_NO_UNDEFINED])
|
||||
|
||||
dnl
|
||||
dnl Check if linker supports version scripts
|
||||
dnl
|
||||
AC_MSG_CHECKING([if the linker supports version-scripts])
|
||||
save_LDFLAGS=$LDFLAGS
|
||||
LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map"
|
||||
cat > conftest.map <<EOF
|
||||
VERSION_1 {
|
||||
global:
|
||||
main;
|
||||
|
||||
local:
|
||||
*;
|
||||
};
|
||||
EOF
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_SOURCE([int main() { return 0;}])],
|
||||
[have_ld_version_script=yes;AC_MSG_RESULT(yes)],
|
||||
[have_ld_version_script=no; AC_MSG_RESULT(no)])
|
||||
LDFLAGS=$save_LDFLAGS
|
||||
AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes")
|
||||
|
||||
dnl
|
||||
dnl Check if linker supports dynamic list files
|
||||
dnl
|
||||
AC_MSG_CHECKING([if the linker supports --dynamic-list])
|
||||
save_LDFLAGS=$LDFLAGS
|
||||
LDFLAGS="$LDFLAGS -Wl,--dynamic-list=conftest.dyn"
|
||||
cat > conftest.dyn <<EOF
|
||||
{
|
||||
radeon_drm_winsys_create;
|
||||
};
|
||||
EOF
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_SOURCE([int main() { return 0;}])],
|
||||
[have_ld_dynamic_list=yes;AC_MSG_RESULT(yes)],
|
||||
[have_ld_dynamic_list=no; AC_MSG_RESULT(no)])
|
||||
LDFLAGS=$save_LDFLAGS
|
||||
AM_CONDITIONAL(HAVE_LD_DYNAMIC_LIST, test "$have_ld_dynamic_list" = "yes")
|
||||
|
||||
dnl
|
||||
dnl compatibility symlinks
|
||||
dnl
|
||||
@@ -481,7 +443,10 @@ if test "x$enable_asm" = xyes; then
|
||||
case "$host_cpu" in
|
||||
i?86)
|
||||
case "$host_os" in
|
||||
linux* | *freebsd* | dragonfly* | *netbsd* | openbsd* | gnu*)
|
||||
linux* | *freebsd* | dragonfly* | *netbsd* | openbsd*)
|
||||
test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
|
||||
;;
|
||||
gnu*)
|
||||
asm_arch=x86
|
||||
;;
|
||||
esac
|
||||
@@ -489,7 +454,7 @@ if test "x$enable_asm" = xyes; then
|
||||
x86_64|amd64)
|
||||
case "$host_os" in
|
||||
linux* | *freebsd* | dragonfly* | *netbsd* | openbsd*)
|
||||
asm_arch=x86_64
|
||||
test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
@@ -529,10 +494,10 @@ AC_CHECK_FUNC([dlopen], [DEFINES="$DEFINES -DHAVE_DLOPEN"],
|
||||
AC_SUBST([DLOPEN_LIBS])
|
||||
|
||||
dnl Check if that library also has dladdr
|
||||
save_LIBS="$LIBS"
|
||||
LIBS="$LIBS $DLOPEN_LIBS"
|
||||
save_LDFLAGS="$LDFLAGS"
|
||||
LDFLAGS="$LDFLAGS $DLOPEN_LIBS"
|
||||
AC_CHECK_FUNCS([dladdr])
|
||||
LIBS="$save_LIBS"
|
||||
LDFLAGS="$save_LDFLAGS"
|
||||
|
||||
case "$host_os" in
|
||||
darwin*|mingw*)
|
||||
@@ -540,7 +505,7 @@ darwin*|mingw*)
|
||||
*)
|
||||
AC_CHECK_FUNCS([clock_gettime], [CLOCK_LIB=],
|
||||
[AC_CHECK_LIB([rt], [clock_gettime], [CLOCK_LIB=-lrt],
|
||||
[AC_MSG_ERROR([Could not find clock_gettime])])])
|
||||
[AC_MSG_ERROR([Couldn't find clock_gettime])])])
|
||||
AC_SUBST([CLOCK_LIB])
|
||||
;;
|
||||
esac
|
||||
@@ -549,13 +514,7 @@ dnl See if posix_memalign is available
|
||||
AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
|
||||
|
||||
dnl Check for pthreads
|
||||
case "$host_os" in
|
||||
mingw*)
|
||||
;;
|
||||
*)
|
||||
AX_PTHREAD
|
||||
;;
|
||||
esac
|
||||
AX_PTHREAD
|
||||
dnl AX_PTHREADS leaves PTHREAD_LIBS empty for gcc and sets PTHREAD_CFLAGS
|
||||
dnl to -pthread, which causes problems if we need -lpthread to appear in
|
||||
dnl pkgconfig files.
|
||||
@@ -718,7 +677,7 @@ GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast"
|
||||
AC_ARG_WITH([gallium-drivers],
|
||||
[AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
|
||||
[comma delimited Gallium drivers list, e.g.
|
||||
"i915,ilo,nouveau,r300,r600,radeonsi,freedreno,svga,swrast,vc4"
|
||||
"i915,ilo,nouveau,r300,r600,radeonsi,freedreno,svga,swrast"
|
||||
@<:@default=r300,r600,svga,swrast@:>@])],
|
||||
[with_gallium_drivers="$withval"],
|
||||
[with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
|
||||
@@ -789,22 +748,8 @@ fi
|
||||
|
||||
AM_CONDITIONAL(HAVE_DRI_GLX, test "x$enable_glx" = xyes -a \
|
||||
"x$enable_dri" = xyes)
|
||||
|
||||
# Select which platform-dependent DRI code gets built
|
||||
case "$host_os" in
|
||||
darwin*)
|
||||
dri_platform='apple' ;;
|
||||
gnu*|mingw*|cygwin*)
|
||||
dri_platform='none' ;;
|
||||
*)
|
||||
dri_platform='drm' ;;
|
||||
esac
|
||||
|
||||
AM_CONDITIONAL(HAVE_DRICOMMON, test "x$enable_dri" = xyes )
|
||||
AM_CONDITIONAL(HAVE_DRISW, test "x$enable_dri" = xyes )
|
||||
AM_CONDITIONAL(HAVE_DRI2, test "x$enable_dri" = xyes && test "x$dri_platform" = xdrm )
|
||||
AM_CONDITIONAL(HAVE_DRI3, test "x$enable_dri3" = xyes && test "x$dri_platform" = xdrm )
|
||||
AM_CONDITIONAL(HAVE_APPLEDRI, test "x$enable_dri" = xyes && test "x$dri_platform" = xapple )
|
||||
AM_CONDITIONAL(HAVE_DRI, test "x$enable_dri" = xyes)
|
||||
AM_CONDITIONAL(HAVE_DRI3, test "x$enable_dri3" = xyes)
|
||||
|
||||
AC_ARG_ENABLE([shared-glapi],
|
||||
[AS_HELP_STRING([--enable-shared-glapi],
|
||||
@@ -829,11 +774,6 @@ fi
|
||||
|
||||
AM_CONDITIONAL(HAVE_SHARED_GLAPI, test "x$enable_shared_glapi" = xyes)
|
||||
|
||||
# Build the pipe-drivers as separate libraries/modules.
|
||||
# Do not touch this unless you know what you are doing.
|
||||
# XXX: Expose via configure option ?
|
||||
enable_shared_pipe_drivers=no
|
||||
|
||||
dnl
|
||||
dnl Driver specific build directories
|
||||
dnl
|
||||
@@ -854,7 +794,6 @@ esac
|
||||
if test "x$enable_dri" = xyes; then
|
||||
GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri"
|
||||
GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
|
||||
enable_gallium_loader="$enable_shared_pipe_drivers"
|
||||
fi
|
||||
|
||||
if test "x$enable_gallium_osmesa" = xyes; then
|
||||
@@ -879,21 +818,14 @@ fi
|
||||
|
||||
case "$host_os" in
|
||||
linux*)
|
||||
need_pci_id=yes ;;
|
||||
need_libudev=yes ;;
|
||||
*)
|
||||
need_pci_id=no ;;
|
||||
need_libudev=no ;;
|
||||
esac
|
||||
|
||||
PKG_CHECK_MODULES([LIBUDEV], [libudev >= $LIBUDEV_REQUIRED],
|
||||
have_libudev=yes, have_libudev=no)
|
||||
|
||||
AC_ARG_ENABLE([sysfs],
|
||||
[AS_HELP_STRING([--enable-sysfs],
|
||||
[enable /sys PCI identification @<:@default=disabled@:>@])],
|
||||
[have_sysfs="$enableval"],
|
||||
[have_sysfs=no]
|
||||
)
|
||||
|
||||
if test "x$enable_dri" = xyes; then
|
||||
if test "$enable_static" = yes; then
|
||||
AC_MSG_ERROR([Cannot use static libraries for DRI drivers])
|
||||
@@ -905,12 +837,26 @@ if test "x$enable_dri" = xyes; then
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl Direct rendering or just indirect rendering
|
||||
case "$host_os" in
|
||||
gnu*)
|
||||
dnl Disable by default on GNU/Hurd
|
||||
driglx_direct_default="no"
|
||||
;;
|
||||
cygwin*)
|
||||
dnl Disable by default on cygwin
|
||||
driglx_direct_default="no"
|
||||
;;
|
||||
*)
|
||||
driglx_direct_default="yes"
|
||||
;;
|
||||
esac
|
||||
AC_ARG_ENABLE([driglx-direct],
|
||||
[AS_HELP_STRING([--disable-driglx-direct],
|
||||
[disable direct rendering in GLX and EGL for DRI \
|
||||
@<:@default=auto@:>@])],
|
||||
[driglx_direct="$enableval"],
|
||||
[driglx_direct="yes"])
|
||||
[driglx_direct="$driglx_direct_default"])
|
||||
|
||||
dnl
|
||||
dnl libGL configuration per driver
|
||||
@@ -928,35 +874,23 @@ xyesyes)
|
||||
xyesno)
|
||||
# DRI-based GLX
|
||||
PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
|
||||
if test x"$driglx_direct" = xyes; then
|
||||
if test "x$have_libdrm" != xyes; then
|
||||
AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
|
||||
fi
|
||||
PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
|
||||
GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED"
|
||||
if test x"$enable_dri3" = xyes; then
|
||||
PKG_CHECK_MODULES([DRI3PROTO], [dri3proto >= $DRI3PROTO_REQUIRED])
|
||||
PKG_CHECK_MODULES([PRESENTPROTO], [presentproto >= $PRESENTPROTO_REQUIRED])
|
||||
fi
|
||||
fi
|
||||
|
||||
# find the DRI deps for libGL
|
||||
dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx >= $XCBGLX_REQUIRED"
|
||||
dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx >= $XCBGLX_REQUIRED xcb-dri2 >= $XCBDRI2_REQUIRED"
|
||||
|
||||
if test x"$driglx_direct" = xyes; then
|
||||
if test x"$dri_platform" = xdrm ; then
|
||||
DEFINES="$DEFINES -DGLX_USE_DRM"
|
||||
if test "x$have_libdrm" != xyes; then
|
||||
AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
|
||||
fi
|
||||
|
||||
PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
|
||||
GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED"
|
||||
if test x"$enable_dri3" = xyes; then
|
||||
PKG_CHECK_MODULES([DRI3PROTO], [dri3proto >= $DRI3PROTO_REQUIRED])
|
||||
PKG_CHECK_MODULES([PRESENTPROTO], [presentproto >= $PRESENTPROTO_REQUIRED])
|
||||
fi
|
||||
|
||||
if test x"$enable_dri" = xyes; then
|
||||
dri_modules="$dri_modules xcb-dri2 >= $XCBDRI2_REQUIRED"
|
||||
fi
|
||||
|
||||
if test x"$enable_dri3" = xyes; then
|
||||
dri_modules="$dri_modules xcb-dri3 xcb-present xcb-sync xshmfence >= $XSHMFENCE_REQUIRED"
|
||||
fi
|
||||
fi
|
||||
if test x"$dri_platform" = xapple ; then
|
||||
DEFINES="$DEFINES -DGLX_USE_APPLEGL"
|
||||
fi
|
||||
if test x"$enable_dri3" = xyes; then
|
||||
dri_modules="$dri_modules xcb-dri3 xcb-present xcb-sync xshmfence >= $XSHMFENCE_REQUIRED"
|
||||
fi
|
||||
|
||||
# add xf86vidmode if available
|
||||
@@ -976,15 +910,8 @@ xyesno)
|
||||
;;
|
||||
esac
|
||||
|
||||
have_pci_id=no
|
||||
if test "$have_libudev" = yes; then
|
||||
DEFINES="$DEFINES -DHAVE_LIBUDEV"
|
||||
have_pci_id=yes
|
||||
fi
|
||||
|
||||
if test "$have_sysfs" = yes; then
|
||||
DEFINES="$DEFINES -DHAVE_SYSFS"
|
||||
have_pci_id=yes
|
||||
fi
|
||||
|
||||
# This is outside the case (above) so that it is invoked even for non-GLX
|
||||
@@ -1080,13 +1007,14 @@ if test "x$enable_dri" = xyes; then
|
||||
# Platform specific settings and drivers to build
|
||||
case "$host_os" in
|
||||
linux*)
|
||||
DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1"
|
||||
DEFINES="$DEFINES -DHAVE_ALIAS"
|
||||
if test "x$enable_dri3" = xyes; then
|
||||
DEFINES="$DEFINES -DHAVE_DRI3"
|
||||
fi
|
||||
|
||||
if test "x$have_pci_id" != xyes; then
|
||||
AC_MSG_ERROR([libudev-dev or sysfs required for building DRI])
|
||||
if test "x$have_libudev" != xyes; then
|
||||
AC_MSG_ERROR([libudev-dev required for building DRI])
|
||||
fi
|
||||
|
||||
case "$host_cpu" in
|
||||
@@ -1099,19 +1027,18 @@ if test "x$enable_dri" = xyes; then
|
||||
esac
|
||||
;;
|
||||
*freebsd* | dragonfly* | *netbsd* | openbsd*)
|
||||
DEFINES="$DEFINES -DHAVE_PTHREAD"
|
||||
DEFINES="$DEFINES -DHAVE_PTHREAD -DUSE_EXTERNAL_DXTN_LIB=1"
|
||||
DEFINES="$DEFINES -DHAVE_ALIAS"
|
||||
;;
|
||||
gnu*)
|
||||
DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1"
|
||||
DEFINES="$DEFINES -DHAVE_ALIAS"
|
||||
;;
|
||||
cygwin*)
|
||||
if test "x$with_dri_drivers" = "xyes"; then
|
||||
with_dri_drivers="swrast"
|
||||
fi
|
||||
solaris*)
|
||||
DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1"
|
||||
;;
|
||||
darwin*)
|
||||
DEFINES="$DEFINES -DGLX_ALIAS_UNSUPPORTED"
|
||||
cygwin*)
|
||||
DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1"
|
||||
if test "x$with_dri_drivers" = "xyes"; then
|
||||
with_dri_drivers="swrast"
|
||||
fi
|
||||
@@ -1133,7 +1060,6 @@ if test "x$enable_dri" = xyes; then
|
||||
EXPAT_LIBS=-lexpat
|
||||
fi
|
||||
|
||||
DRICOMMON_NEED_LIBDRM=no
|
||||
# If we are building any DRI driver other than swrast.
|
||||
if test -n "$with_dri_drivers"; then
|
||||
if test "x$with_dri_drivers" != xswrast; then
|
||||
@@ -1142,14 +1068,8 @@ if test "x$enable_dri" = xyes; then
|
||||
AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
|
||||
fi
|
||||
DRICOMMON_NEED_LIBDRM=yes
|
||||
fi
|
||||
fi
|
||||
|
||||
# If we're building any gallium DRI driver other than swrast
|
||||
if test -n "$with_gallium_drivers" -a "x$DRICOMMON_NEED_LIBDRM" = xno; then
|
||||
if test "x$with_gallium_drivers" != xswrast; then
|
||||
# ... build a libdrm aware dricommon
|
||||
DRICOMMON_NEED_LIBDRM=yes
|
||||
else
|
||||
DRICOMMON_NEED_LIBDRM=no
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -1263,8 +1183,8 @@ if test "x$enable_gbm" = xauto; then
|
||||
esac
|
||||
fi
|
||||
if test "x$enable_gbm" = xyes; then
|
||||
if test "x$need_pci_id$have_pci_id" = xyesno; then
|
||||
AC_MSG_ERROR([gbm requires udev >= $LIBUDEV_REQUIRED or sysfs])
|
||||
if test "x$need_libudev$have_libudev" = xyesno; then
|
||||
AC_MSG_ERROR([gbm requires udev >= $LIBUDEV_REQUIRED])
|
||||
fi
|
||||
|
||||
if test "x$enable_dri" = xyes; then
|
||||
@@ -1282,7 +1202,7 @@ if test "x$enable_gbm" = xyes; then
|
||||
fi
|
||||
fi
|
||||
AM_CONDITIONAL(HAVE_GBM, test "x$enable_gbm" = xyes)
|
||||
if test "x$need_pci_id$have_libudev" = xyesyes; then
|
||||
if test "x$need_libudev" = xyes; then
|
||||
GBM_PC_REQ_PRIV="libudev >= $LIBUDEV_REQUIRED"
|
||||
else
|
||||
GBM_PC_REQ_PRIV=""
|
||||
@@ -1327,8 +1247,6 @@ if test "x$enable_gallium_egl" = xyes; then
|
||||
|
||||
GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
|
||||
GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
|
||||
# XXX: Uncomment once converted to use static/shared pipe-drivers
|
||||
# enable_gallium_loader=$enable_shared_pipe_drivers
|
||||
fi
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_EGL, test "x$enable_gallium_egl" = xyes)
|
||||
|
||||
@@ -1350,14 +1268,14 @@ if test "x$enable_gallium_gbm" = xyes; then
|
||||
if test "x$enable_gbm" = xno; then
|
||||
AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
|
||||
fi
|
||||
|
||||
if test "x$enable_gallium_egl" != xyes; then
|
||||
AC_MSG_ERROR([gbm_gallium is only used by egl_gallium])
|
||||
# gbm_gallium abuses DRI_LIB_DEPS to link. Make sure it is set.
|
||||
if test "x$enable_dri" = xno; then
|
||||
AC_MSG_ERROR([gbm_gallium requires --enable-dri to build])
|
||||
fi
|
||||
|
||||
GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
|
||||
GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
|
||||
enable_gallium_loader=$enable_shared_pipe_drivers
|
||||
enable_gallium_loader=yes
|
||||
fi
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_GBM, test "x$enable_gallium_gbm" = xyes)
|
||||
|
||||
@@ -1368,13 +1286,14 @@ if test "x$enable_xa" = xyes; then
|
||||
if test "x$with_gallium_drivers" = xswrast; then
|
||||
AC_MSG_ERROR([
|
||||
Building xa requires at least one non swrast gallium driver.
|
||||
If you are looking to use libxatracker.so with the VMware driver,
|
||||
If you are looking to use libxatracker.so with vmware's virtual gpu,
|
||||
make sure to include svga in the gallium drivers list, apart from
|
||||
enabling XA.
|
||||
Example: ./configure --enable-xa --with-gallium-drivers=svga...])
|
||||
fi
|
||||
GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
|
||||
enable_gallium_loader=$enable_shared_pipe_drivers
|
||||
enable_gallium_loader=yes
|
||||
enable_gallium_drm_loader=yes
|
||||
fi
|
||||
AM_CONDITIONAL(HAVE_ST_XA, test "x$enable_xa" = xyes)
|
||||
|
||||
@@ -1405,7 +1324,7 @@ AM_CONDITIONAL(HAVE_OPENVG, test "x$enable_openvg" = xyes)
|
||||
dnl
|
||||
dnl Gallium G3DVL configuration
|
||||
dnl
|
||||
if test -n "$with_gallium_drivers" -a "x$with_gallium_drivers" != xswrast; then
|
||||
if test -n "$with_gallium_drivers" && ! echo "$with_gallium_drivers" | grep -q 'swrast'; then
|
||||
if test "x$enable_xvmc" = xauto; then
|
||||
PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
|
||||
fi
|
||||
@@ -1422,7 +1341,6 @@ fi
|
||||
if test "x$enable_xvmc" = xyes; then
|
||||
PKG_CHECK_MODULES([XVMC], [xvmc >= $XVMC_REQUIRED x11-xcb xcb-dri2 >= $XCBDRI2_REQUIRED])
|
||||
GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xvmc"
|
||||
enable_gallium_loader=$enable_shared_pipe_drivers
|
||||
fi
|
||||
AM_CONDITIONAL(HAVE_ST_XVMC, test "x$enable_xvmc" = xyes)
|
||||
|
||||
@@ -1430,14 +1348,12 @@ if test "x$enable_vdpau" = xyes; then
|
||||
PKG_CHECK_MODULES([VDPAU], [vdpau >= $VDPAU_REQUIRED x11-xcb xcb-dri2 >= $XCBDRI2_REQUIRED],
|
||||
[VDPAU_LIBS="`$PKG_CONFIG --libs x11-xcb xcb-dri2`"])
|
||||
GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
|
||||
enable_gallium_loader=$enable_shared_pipe_drivers
|
||||
fi
|
||||
AM_CONDITIONAL(HAVE_ST_VDPAU, test "x$enable_vdpau" = xyes)
|
||||
|
||||
if test "x$enable_omx" = xyes; then
|
||||
PKG_CHECK_MODULES([OMX], [libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED x11-xcb xcb-dri2 >= $XCBDRI2_REQUIRED])
|
||||
GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS omx"
|
||||
enable_gallium_loader=$enable_shared_pipe_drivers
|
||||
fi
|
||||
AM_CONDITIONAL(HAVE_ST_OMX, test "x$enable_omx" = xyes)
|
||||
|
||||
@@ -1489,7 +1405,6 @@ if test "x$enable_opencl" = xyes; then
|
||||
|
||||
GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS clover"
|
||||
GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS opencl"
|
||||
# XXX: Use $enable_shared_pipe_drivers once converted to use static/shared pipe-drivers
|
||||
enable_gallium_loader=yes
|
||||
|
||||
if test "x$enable_opencl_icd" = xyes; then
|
||||
@@ -1577,9 +1492,9 @@ for plat in $egl_platforms; do
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$plat$need_pci_id$have_pci_id" in
|
||||
case "$plat$need_libudev$have_libudev" in
|
||||
waylandyesno|drmyesno)
|
||||
AC_MSG_ERROR([cannot build $plat platform without udev >= $LIBUDEV_REQUIRED or sysfs]) ;;
|
||||
AC_MSG_ERROR([cannot build $plat platform without udev >= $LIBUDEV_REQUIRED]) ;;
|
||||
esac
|
||||
done
|
||||
|
||||
@@ -1616,7 +1531,7 @@ fi
|
||||
|
||||
AC_ARG_WITH([egl-driver-dir],
|
||||
[AS_HELP_STRING([--with-egl-driver-dir=DIR],
|
||||
[directory for EGL drivers @<:@default=${libdir}/egl@:>@])],
|
||||
[directory for EGL drivers [[default=${libdir}/egl]]])],
|
||||
[EGL_DRIVER_INSTALL_DIR="$withval"],
|
||||
[EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
|
||||
AC_SUBST([EGL_DRIVER_INSTALL_DIR])
|
||||
@@ -1664,7 +1579,6 @@ strip_unwanted_llvm_flags() {
|
||||
# Use \> (marks the end of the word)
|
||||
echo `$1` | sed \
|
||||
-e 's/-DNDEBUG\>//g' \
|
||||
-e 's/-D_GNU_SOURCE\>//g' \
|
||||
-e 's/-pedantic\>//g' \
|
||||
-e 's/-Wcovered-switch-default\>//g' \
|
||||
-e 's/-O.\>//g' \
|
||||
@@ -1678,8 +1592,7 @@ strip_unwanted_llvm_flags() {
|
||||
-e 's/-fno-exceptions\>//g' \
|
||||
-e 's/-fomit-frame-pointer\>//g' \
|
||||
-e 's/-fvisibility-inlines-hidden\>//g' \
|
||||
-e 's/-fPIC\>//g' \
|
||||
-e 's/-fstack-protector-strong\>//g'
|
||||
-e 's/-fPIC\>//g'
|
||||
}
|
||||
|
||||
|
||||
@@ -1713,10 +1626,11 @@ if test "x$enable_gallium_llvm" = xyes; then
|
||||
AC_COMPUTE_INT([LLVM_VERSION_MINOR], [LLVM_VERSION_MINOR],
|
||||
[#include "${LLVM_INCLUDEDIR}/llvm/Config/llvm-config.h"])
|
||||
|
||||
LLVM_VERSION_PATCH=`echo $LLVM_VERSION | cut -d. -f3 | egrep -o '^[[0-9]]+'`
|
||||
if test -z "$LLVM_VERSION_PATCH"; then
|
||||
LLVM_VERSION_PATCH=0
|
||||
fi
|
||||
dnl In LLVM 3.4.1 patch level was defined in config.h and not
|
||||
dnl llvm-config.h
|
||||
AC_COMPUTE_INT([LLVM_VERSION_PATCH], [LLVM_VERSION_PATCH],
|
||||
[#include "${LLVM_INCLUDEDIR}/llvm/Config/config.h"],
|
||||
LLVM_VERSION_PATCH=0) dnl Default if LLVM_VERSION_PATCH not found
|
||||
|
||||
if test -n "${LLVM_VERSION_MAJOR}"; then
|
||||
LLVM_VERSION_INT="${LLVM_VERSION_MAJOR}0${LLVM_VERSION_MINOR}"
|
||||
@@ -1724,12 +1638,6 @@ if test "x$enable_gallium_llvm" = xyes; then
|
||||
LLVM_VERSION_INT=`echo $LLVM_VERSION | sed -e 's/\([[0-9]]\)\.\([[0-9]]\)/\10\2/g'`
|
||||
fi
|
||||
|
||||
LLVM_REQUIRED_VERSION_MAJOR="3"
|
||||
LLVM_REQUIRED_VERSION_MINOR="1"
|
||||
if test "$LLVM_VERSION_INT" -lt "${LLVM_REQUIRED_VERSION_MAJOR}0${LLVM_REQUIRED_VERSION_MINOR}"; then
|
||||
AC_MSG_ERROR([LLVM $LLVM_REQUIRED_VERSION_MAJOR.$LLVM_REQUIRED_VERSION_MINOR or newer is required])
|
||||
fi
|
||||
|
||||
LLVM_COMPONENTS="engine bitwriter"
|
||||
if $LLVM_CONFIG --components | grep -qw 'mcjit'; then
|
||||
LLVM_COMPONENTS="${LLVM_COMPONENTS} mcjit"
|
||||
@@ -1745,13 +1653,6 @@ if test "x$enable_gallium_llvm" = xyes; then
|
||||
if $LLVM_CONFIG --components | grep -qw 'option'; then
|
||||
LLVM_COMPONENTS="${LLVM_COMPONENTS} option"
|
||||
fi
|
||||
# Current OpenCL/Clover and LLVM 3.5 require ObjCARCOpts and ProfileData
|
||||
if $LLVM_CONFIG --components | grep -qw 'objcarcopts'; then
|
||||
LLVM_COMPONENTS="${LLVM_COMPONENTS} objcarcopts"
|
||||
fi
|
||||
if $LLVM_CONFIG --components | grep -qw 'profiledata'; then
|
||||
LLVM_COMPONENTS="${LLVM_COMPONENTS} profiledata"
|
||||
fi
|
||||
fi
|
||||
DEFINES="${DEFINES} -DHAVE_LLVM=0x0$LLVM_VERSION_INT -DLLVM_VERSION_PATCH=$LLVM_VERSION_PATCH"
|
||||
MESA_LLVM=1
|
||||
@@ -1772,10 +1673,6 @@ if test "x$enable_gallium_llvm" = xyes; then
|
||||
else
|
||||
MESA_LLVM=0
|
||||
LLVM_VERSION_INT=0
|
||||
|
||||
if test "x$enable_opencl" = xyes; then
|
||||
AC_MSG_ERROR([cannot enable OpenCL without LLVM])
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl Directory for XVMC libs
|
||||
@@ -1790,7 +1687,6 @@ dnl
|
||||
dnl Gallium Tests
|
||||
dnl
|
||||
if test "x$enable_gallium_tests" = xyes; then
|
||||
# XXX: Use $enable_shared_pipe_drivers once converted to use static/shared pipe-drivers
|
||||
enable_gallium_loader=yes
|
||||
fi
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_TESTS, test "x$enable_gallium_tests" = xyes)
|
||||
@@ -1857,7 +1753,6 @@ gallium_check_st() {
|
||||
|
||||
gallium_require_llvm() {
|
||||
if test "x$MESA_LLVM" = x0; then
|
||||
case "$host" in *gnux32) return;; esac
|
||||
case "$host_cpu" in
|
||||
i*86|x86_64|amd64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
|
||||
esac
|
||||
@@ -1866,8 +1761,8 @@ gallium_require_llvm() {
|
||||
|
||||
gallium_require_drm_loader() {
|
||||
if test "x$enable_gallium_loader" = xyes; then
|
||||
if test "x$need_pci_id$have_pci_id" = xyesno; then
|
||||
AC_MSG_ERROR([Gallium drm loader requires libudev >= $LIBUDEV_REQUIRED or sysfs])
|
||||
if test "x$need_libudev$have_libudev" = xyesno; then
|
||||
AC_MSG_ERROR([Gallium drm loader requires libudev >= $LIBUDEV_REQUIRED])
|
||||
fi
|
||||
if test "x$have_libdrm" != xyes; then
|
||||
AC_MSG_ERROR([Gallium drm loader requires libdrm >= $LIBDRM_REQUIRED])
|
||||
@@ -1876,28 +1771,14 @@ gallium_require_drm_loader() {
|
||||
fi
|
||||
}
|
||||
|
||||
require_egl_drm() {
|
||||
case "$with_egl_platforms" in
|
||||
*drm*)
|
||||
;;
|
||||
*)
|
||||
AC_MSG_ERROR([--with-egl-platforms=drm is required to build the $1 driver.])
|
||||
;;
|
||||
esac
|
||||
if test "x$enable_gbm" != xyes; then
|
||||
AC_MSG_ERROR([--enable-gbm is required to build the $1 driver.])
|
||||
fi
|
||||
}
|
||||
|
||||
radeon_llvm_check() {
|
||||
if test "x$enable_gallium_llvm" != "xyes"; then
|
||||
AC_MSG_ERROR([--enable-gallium-llvm is required when building $1])
|
||||
fi
|
||||
LLVM_REQUIRED_VERSION_MAJOR="3"
|
||||
LLVM_REQUIRED_VERSION_MINOR="4"
|
||||
LLVM_REQUIRED_VERSION_PATCH="2"
|
||||
if test "${LLVM_VERSION_INT}${LLVM_VERSION_PATCH}" -lt "${LLVM_REQUIRED_VERSION_MAJOR}0${LLVM_REQUIRED_VERSION_MINOR}${LLVM_REQUIRED_VERSION_PATCH}"; then
|
||||
AC_MSG_ERROR([LLVM $LLVM_REQUIRED_VERSION_MAJOR.$LLVM_REQUIRED_VERSION_MINOR.$LLVM_REQUIRED_VERSION_PATCH or newer is required for $1])
|
||||
LLVM_REQUIRED_VERSION_MINOR="3"
|
||||
if test "$LLVM_VERSION_INT" -lt "${LLVM_REQUIRED_VERSION_MAJOR}0${LLVM_REQUIRED_VERSION_MINOR}"; then
|
||||
AC_MSG_ERROR([LLVM $LLVM_REQUIRED_VERSION_MAJOR.$LLVM_REQUIRED_VERSION_MINOR or newer is required for $1])
|
||||
fi
|
||||
if test true && $LLVM_CONFIG --targets-built | grep -qvw 'R600' ; then
|
||||
AC_MSG_ERROR([LLVM R600 Target not enabled. You can enable it when building the LLVM
|
||||
@@ -1924,26 +1805,29 @@ if test -n "$with_gallium_drivers"; then
|
||||
case "x$driver" in
|
||||
xsvga)
|
||||
HAVE_GALLIUM_SVGA=yes
|
||||
if test "x$have_libdrm" != xyes; then
|
||||
AC_MSG_ERROR([Building svga requires libdrm >= $LIBDRM_REQUIRED])
|
||||
fi
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
|
||||
gallium_require_drm_loader
|
||||
gallium_check_st "svga/drm" "dri/vmwgfx" "xa/vmwgfx"
|
||||
gallium_check_st "svga/drm" "dri-vmwgfx" ""
|
||||
;;
|
||||
xi915)
|
||||
HAVE_GALLIUM_I915=yes
|
||||
PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
|
||||
gallium_require_drm_loader
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915"
|
||||
gallium_check_st "i915/drm" "dri/i915" "xa/i915"
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
|
||||
if test "x$MESA_LLVM" = x1; then
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
|
||||
fi
|
||||
GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
|
||||
gallium_check_st "i915/drm" "dri-i915"
|
||||
DRICOMMON_NEED_LIBDRM=yes
|
||||
;;
|
||||
xilo)
|
||||
HAVE_GALLIUM_ILO=yes
|
||||
PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
|
||||
gallium_require_drm_loader
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS ilo"
|
||||
gallium_check_st "intel/drm" "dri/ilo" "xa/ilo"
|
||||
gallium_check_st "intel/drm" "dri-ilo"
|
||||
DRICOMMON_NEED_LIBDRM=yes
|
||||
;;
|
||||
xr300)
|
||||
HAVE_GALLIUM_R300=yes
|
||||
@@ -1951,7 +1835,8 @@ if test -n "$with_gallium_drivers"; then
|
||||
gallium_require_drm_loader
|
||||
gallium_require_llvm "Gallium R300"
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
|
||||
gallium_check_st "radeon/drm" "dri/r300"
|
||||
gallium_check_st "radeon/drm" "r300/dri" "" "" ""
|
||||
DRICOMMON_NEED_LIBDRM=yes
|
||||
;;
|
||||
xr600)
|
||||
HAVE_GALLIUM_R600=yes
|
||||
@@ -1968,7 +1853,8 @@ if test -n "$with_gallium_drivers"; then
|
||||
if test "x$enable_opencl" = xyes; then
|
||||
LLVM_COMPONENTS="${LLVM_COMPONENTS} bitreader asmparser"
|
||||
fi
|
||||
gallium_check_st "radeon/drm" "dri/r600" "" "xvmc/r600" "vdpau/r600" "omx/r600"
|
||||
gallium_check_st "radeon/drm" "r600/dri" "" "r600/xvmc" "r600/vdpau" "r600/omx"
|
||||
DRICOMMON_NEED_LIBDRM=yes
|
||||
;;
|
||||
xradeonsi)
|
||||
HAVE_GALLIUM_RADEONSI=yes
|
||||
@@ -1976,22 +1862,24 @@ if test -n "$with_gallium_drivers"; then
|
||||
gallium_require_drm_loader
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS radeonsi"
|
||||
radeon_llvm_check "radeonsi"
|
||||
require_egl_drm "radeonsi"
|
||||
gallium_check_st "radeon/drm" "dri/radeonsi" "" "" "vdpau/radeonsi" "omx/radeonsi"
|
||||
gallium_check_st "radeon/drm" "radeonsi/dri" "" "" "radeonsi/vdpau" "radeonsi/omx"
|
||||
DRICOMMON_NEED_LIBDRM=yes
|
||||
;;
|
||||
xnouveau)
|
||||
HAVE_GALLIUM_NOUVEAU=yes
|
||||
PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
|
||||
gallium_require_drm_loader
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau"
|
||||
gallium_check_st "nouveau/drm" "dri/nouveau" "xa/nouveau" "xvmc/nouveau" "vdpau/nouveau" "omx/nouveau"
|
||||
gallium_check_st "nouveau/drm" "dri-nouveau" "" "xvmc-nouveau" "vdpau-nouveau" "omx-nouveau"
|
||||
DRICOMMON_NEED_LIBDRM=yes
|
||||
;;
|
||||
xfreedreno)
|
||||
HAVE_GALLIUM_FREEDRENO=yes
|
||||
PKG_CHECK_MODULES([FREEDRENO], [libdrm_freedreno >= $LIBDRM_FREEDRENO_REQUIRED])
|
||||
gallium_require_drm_loader
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS freedreno"
|
||||
gallium_check_st "freedreno/drm" "dri/freedreno" "xa/freedreno" "" ""
|
||||
gallium_check_st "freedreno/drm" "dri-freedreno" "" "" ""
|
||||
DRICOMMON_NEED_LIBDRM=yes
|
||||
;;
|
||||
xswrast)
|
||||
HAVE_GALLIUM_SOFTPIPE=yes
|
||||
@@ -2002,24 +1890,8 @@ if test -n "$with_gallium_drivers"; then
|
||||
fi
|
||||
|
||||
if test "x$enable_dri" = xyes; then
|
||||
GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri/swrast"
|
||||
GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
|
||||
fi
|
||||
|
||||
if test "x$have_libdrm" = xyes; then
|
||||
GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri/kms-swrast"
|
||||
fi
|
||||
;;
|
||||
xvc4)
|
||||
HAVE_GALLIUM_VC4=yes
|
||||
gallium_require_drm_loader
|
||||
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS vc4"
|
||||
gallium_check_st "vc4/drm" "dri-vc4" "" "" ""
|
||||
|
||||
case "$host_cpu" in
|
||||
i?86 | x86_64 | amd64)
|
||||
USE_VC4_SIMULATOR=yes
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
AC_MSG_ERROR([Unknown Gallium driver: $driver])
|
||||
@@ -2066,12 +1938,7 @@ if test "x$MESA_LLVM" != x0; then
|
||||
dnl already added all of these objects to LLVM_LIBS.
|
||||
fi
|
||||
else
|
||||
AC_MSG_WARN([Building mesa with statically linked LLVM may cause compilation issues])
|
||||
dnl We need to link to llvm system libs when using static libs
|
||||
dnl However, only llvm 3.5+ provides --system-libs
|
||||
if test $LLVM_VERSION_MAJOR -eq 3 -a $LLVM_VERSION_MINOR -ge 5; then
|
||||
LLVM_LIBS="$LLVM_LIBS `$LLVM_CONFIG --system-libs`"
|
||||
fi
|
||||
AC_MSG_WARN([Building mesa with staticly linked LLVM may cause compilation issues])
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -2081,21 +1948,18 @@ AM_CONDITIONAL(HAVE_GALLIUM_ILO, test "x$HAVE_GALLIUM_ILO" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_R300, test "x$HAVE_GALLIUM_R300" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_R600, test "x$HAVE_GALLIUM_R600" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_RADEONSI, test "x$HAVE_GALLIUM_RADEONSI" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_RADEON_COMMON, test "x$HAVE_GALLIUM_R600" = xyes -o \
|
||||
"x$HAVE_GALLIUM_RADEONSI" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_NOUVEAU, test "x$HAVE_GALLIUM_NOUVEAU" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_FREEDRENO, test "x$HAVE_GALLIUM_FREEDRENO" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_SOFTPIPE, test "x$HAVE_GALLIUM_SOFTPIPE" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_LLVMPIPE, test "x$HAVE_GALLIUM_LLVMPIPE" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_VC4, test "x$HAVE_GALLIUM_VC4" = xyes)
|
||||
|
||||
AM_CONDITIONAL(NEED_GALLIUM_SOFTPIPE_DRIVER, test "x$HAVE_GALLIUM_SVGA" = xyes -o \
|
||||
"x$HAVE_GALLIUM_I915" = xyes -o \
|
||||
"x$HAVE_GALLIUM_SOFTPIPE" = xyes)
|
||||
AM_CONDITIONAL(NEED_GALLIUM_LLVMPIPE_DRIVER, test "x$HAVE_GALLIUM_SOFTPIPE" = xyes \
|
||||
AM_CONDITIONAL(NEED_GALLIUM_LLVMPIPE_DRIVER, test "x$HAVE_GALLIUM_I915" = xyes -o \
|
||||
"x$HAVE_GALLIUM_SOFTPIPE" = xyes \
|
||||
&& test "x$MESA_LLVM" = x1)
|
||||
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_STATIC_TARGETS, test "x$enable_shared_pipe_drivers" = xno)
|
||||
|
||||
# NOTE: anything using xcb or other client side libs ends up in separate
|
||||
# _CLIENT variables. The pipe loader is built in two variants,
|
||||
# one that is standalone and does not link any x client libs (for
|
||||
@@ -2151,10 +2015,6 @@ AM_CONDITIONAL(HAVE_LOADER_GALLIUM, test x$enable_gallium_loader = xyes)
|
||||
AM_CONDITIONAL(HAVE_DRM_LOADER_GALLIUM, test x$enable_gallium_drm_loader = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_COMPUTE, test x$enable_opencl = xyes)
|
||||
AM_CONDITIONAL(HAVE_MESA_LLVM, test x$MESA_LLVM = x1)
|
||||
AM_CONDITIONAL(USE_VC4_SIMULATOR, test x$USE_VC4_SIMULATOR = xyes)
|
||||
if test "x$USE_VC4_SIMULATOR" = xyes -a "x$HAVE_GALLIUM_ILO" = xyes; then
|
||||
AC_MSG_ERROR([VC4 simulator on x86 replaces i965 driver build, so ilo must be disabled.])
|
||||
fi
|
||||
|
||||
AC_SUBST([ELF_LIB])
|
||||
|
||||
@@ -2208,9 +2068,9 @@ AC_CONFIG_FILES([Makefile
|
||||
src/egl/wayland/wayland-drm/Makefile
|
||||
src/egl/wayland/wayland-egl/Makefile
|
||||
src/egl/wayland/wayland-egl/wayland-egl.pc
|
||||
src/gallium/Makefile
|
||||
src/gallium/auxiliary/Makefile
|
||||
src/gallium/auxiliary/pipe-loader/Makefile
|
||||
src/gallium/drivers/Makefile
|
||||
src/gallium/drivers/freedreno/Makefile
|
||||
src/gallium/drivers/galahad/Makefile
|
||||
src/gallium/drivers/i915/Makefile
|
||||
@@ -2227,9 +2087,11 @@ AC_CONFIG_FILES([Makefile
|
||||
src/gallium/drivers/softpipe/Makefile
|
||||
src/gallium/drivers/svga/Makefile
|
||||
src/gallium/drivers/trace/Makefile
|
||||
src/gallium/drivers/vc4/Makefile
|
||||
src/gallium/state_trackers/Makefile
|
||||
src/gallium/state_trackers/clover/Makefile
|
||||
src/gallium/state_trackers/dri/Makefile
|
||||
src/gallium/state_trackers/dri/drm/Makefile
|
||||
src/gallium/state_trackers/dri/sw/Makefile
|
||||
src/gallium/state_trackers/egl/Makefile
|
||||
src/gallium/state_trackers/gbm/Makefile
|
||||
src/gallium/state_trackers/glx/xlib/Makefile
|
||||
@@ -2239,47 +2101,66 @@ AC_CONFIG_FILES([Makefile
|
||||
src/gallium/state_trackers/vega/Makefile
|
||||
src/gallium/state_trackers/xa/Makefile
|
||||
src/gallium/state_trackers/xvmc/Makefile
|
||||
src/gallium/targets/dri/Makefile
|
||||
src/gallium/targets/Makefile
|
||||
src/gallium/targets/dri-freedreno/Makefile
|
||||
src/gallium/targets/dri-i915/Makefile
|
||||
src/gallium/targets/dri-ilo/Makefile
|
||||
src/gallium/targets/dri-nouveau/Makefile
|
||||
src/gallium/targets/dri-swrast/Makefile
|
||||
src/gallium/targets/dri-vmwgfx/Makefile
|
||||
src/gallium/targets/egl-static/Makefile
|
||||
src/gallium/targets/gbm/Makefile
|
||||
src/gallium/targets/libgl-xlib/Makefile
|
||||
src/gallium/targets/omx/Makefile
|
||||
src/gallium/targets/opencl/Makefile
|
||||
src/gallium/targets/xa/Makefile
|
||||
src/gallium/targets/xa/xatracker.pc
|
||||
src/gallium/targets/omx-nouveau/Makefile
|
||||
src/gallium/targets/osmesa/Makefile
|
||||
src/gallium/targets/osmesa/osmesa.pc
|
||||
src/gallium/targets/pipe-loader/Makefile
|
||||
src/gallium/targets/vdpau/Makefile
|
||||
src/gallium/targets/xa/Makefile
|
||||
src/gallium/targets/xa/xatracker.pc
|
||||
src/gallium/targets/xvmc/Makefile
|
||||
src/gallium/targets/radeonsi/dri/Makefile
|
||||
src/gallium/targets/radeonsi/omx/Makefile
|
||||
src/gallium/targets/radeonsi/vdpau/Makefile
|
||||
src/gallium/targets/r300/dri/Makefile
|
||||
src/gallium/targets/r600/dri/Makefile
|
||||
src/gallium/targets/r600/omx/Makefile
|
||||
src/gallium/targets/r600/vdpau/Makefile
|
||||
src/gallium/targets/r600/xvmc/Makefile
|
||||
src/gallium/targets/libgl-xlib/Makefile
|
||||
src/gallium/targets/vdpau-nouveau/Makefile
|
||||
src/gallium/targets/xvmc-nouveau/Makefile
|
||||
src/gallium/tests/trivial/Makefile
|
||||
src/gallium/tests/unit/Makefile
|
||||
src/gallium/winsys/Makefile
|
||||
src/gallium/winsys/freedreno/drm/Makefile
|
||||
src/gallium/winsys/i915/drm/Makefile
|
||||
src/gallium/winsys/i915/sw/Makefile
|
||||
src/gallium/winsys/intel/drm/Makefile
|
||||
src/gallium/winsys/nouveau/drm/Makefile
|
||||
src/gallium/winsys/radeon/drm/Makefile
|
||||
src/gallium/winsys/svga/drm/Makefile
|
||||
src/gallium/winsys/sw/dri/Makefile
|
||||
src/gallium/winsys/sw/fbdev/Makefile
|
||||
src/gallium/winsys/sw/kms-dri/Makefile
|
||||
src/gallium/winsys/sw/null/Makefile
|
||||
src/gallium/winsys/sw/wayland/Makefile
|
||||
src/gallium/winsys/sw/wrapper/Makefile
|
||||
src/gallium/winsys/sw/xlib/Makefile
|
||||
src/gallium/winsys/vc4/drm/Makefile
|
||||
src/gbm/Makefile
|
||||
src/gbm/main/gbm.pc
|
||||
src/glsl/Makefile
|
||||
src/glx/Makefile
|
||||
src/glx/apple/Makefile
|
||||
src/glx/tests/Makefile
|
||||
src/gtest/Makefile
|
||||
src/loader/Makefile
|
||||
src/mapi/Makefile
|
||||
src/mapi/es1api/Makefile
|
||||
src/mapi/es1api/glesv1_cm.pc
|
||||
src/mapi/es2api/Makefile
|
||||
src/mapi/es2api/glesv2.pc
|
||||
src/mapi/glapi/Makefile
|
||||
src/mapi/glapi/gen/Makefile
|
||||
src/mapi/glapi/tests/Makefile
|
||||
src/mapi/shared-glapi/Makefile
|
||||
src/mapi/shared-glapi/tests/Makefile
|
||||
src/mapi/vgapi/Makefile
|
||||
src/mapi/vgapi/vg.pc
|
||||
src/mesa/Makefile
|
||||
@@ -2298,8 +2179,7 @@ AC_CONFIG_FILES([Makefile
|
||||
src/mesa/drivers/osmesa/osmesa.pc
|
||||
src/mesa/drivers/x11/Makefile
|
||||
src/mesa/main/tests/Makefile
|
||||
src/util/Makefile
|
||||
src/util/tests/hash_table/Makefile])
|
||||
src/mesa/main/tests/hash_table/Makefile])
|
||||
|
||||
dnl Sort the dirs alphabetically
|
||||
GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
|
||||
@@ -2337,9 +2217,7 @@ xnono)
|
||||
;;
|
||||
esac
|
||||
|
||||
echo ""
|
||||
if test "x$enable_dri" != xno; then
|
||||
echo " DRI platform: $dri_platform"
|
||||
if test -z "$DRI_DIRS"; then
|
||||
echo " DRI drivers: no"
|
||||
else
|
||||
|
129
docs/GL3.txt
129
docs/GL3.txt
@@ -18,8 +18,9 @@ are exposed in the 3.0 context as extensions.
|
||||
Feature Status
|
||||
----------------------------------------------------- ------------------------
|
||||
|
||||
GL 3.0, GLSL 1.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi
|
||||
GL 3.0 --- all DONE: i965, nv50, nvc0, r600, radeonsi
|
||||
|
||||
GLSL 1.30 DONE ()
|
||||
glBindFragDataLocation, glGetFragDataLocation DONE
|
||||
Conditional rendering (GL_NV_conditional_render) DONE (r300, swrast)
|
||||
Map buffer subranges (GL_ARB_map_buffer_range) DONE (r300, swrast)
|
||||
@@ -48,8 +49,9 @@ GL 3.0, GLSL 1.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi
|
||||
Multisample anti-aliasing DONE (r300)
|
||||
|
||||
|
||||
GL 3.1, GLSL 1.40 --- all DONE: i965, nv50, nvc0, r600, radeonsi
|
||||
GL 3.1 --- all DONE: i965, nv50, nvc0, r600, radeonsi
|
||||
|
||||
GLSL 1.40 DONE ()
|
||||
Forward compatible context support/deprecations DONE ()
|
||||
Instanced drawing (GL_ARB_draw_instanced) DONE (swrast)
|
||||
Buffer copying (GL_ARB_copy_buffer) DONE (r300, swrast)
|
||||
@@ -61,9 +63,10 @@ GL 3.1, GLSL 1.40 --- all DONE: i965, nv50, nvc0, r600, radeonsi
|
||||
Signed normalized textures (GL_EXT_texture_snorm) DONE (r300)
|
||||
|
||||
|
||||
GL 3.2, GLSL 1.50 --- all DONE: i965, nv50, nvc0, r600, radeonsi
|
||||
GL 3.2 --- all DONE: i965, nv50, nvc0, r600, radeonsi
|
||||
|
||||
Core/compatibility profiles DONE
|
||||
GLSL 1.50 DONE ()
|
||||
Geometry shaders DONE ()
|
||||
BGRA vertex order (GL_ARB_vertex_array_bgra) DONE (r300, swrast)
|
||||
Base vertex offset(GL_ARB_draw_elements_base_vertex) DONE (r300, swrast)
|
||||
@@ -76,8 +79,9 @@ GL 3.2, GLSL 1.50 --- all DONE: i965, nv50, nvc0, r600, radeonsi
|
||||
GLX_ARB_create_context_profile DONE
|
||||
|
||||
|
||||
GL 3.3, GLSL 3.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi
|
||||
GL 3.3 --- all DONE: i965, nv50, nvc0, r600, radeonsi
|
||||
|
||||
GLSL 3.30 DONE ()
|
||||
GL_ARB_blend_func_extended DONE (softpipe)
|
||||
GL_ARB_explicit_attrib_location DONE (all drivers that support GLSL)
|
||||
GL_ARB_occlusion_query2 DONE (r300, swrast)
|
||||
@@ -90,49 +94,52 @@ GL 3.3, GLSL 3.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi
|
||||
GL_ARB_vertex_type_2_10_10_10_rev DONE ()
|
||||
|
||||
|
||||
GL 4.0, GLSL 4.00:
|
||||
GL 4.0:
|
||||
|
||||
GLSL 4.0 not started
|
||||
GL_ARB_texture_query_lod DONE (i965, nv50, nvc0)
|
||||
GL_ARB_draw_buffers_blend DONE (i965, nv50, nvc0, r600, radeonsi, softpipe)
|
||||
GL_ARB_draw_indirect DONE (i965, nvc0, radeonsi, softpipe, llvmpipe)
|
||||
GL_ARB_gpu_shader5 DONE (i965, nvc0)
|
||||
- 'precise' qualifier DONE
|
||||
- Dynamically uniform sampler array indices DONE ()
|
||||
- Dynamically uniform UBO array indices DONE ()
|
||||
- Implicit signed -> unsigned conversions DONE
|
||||
- Fused multiply-add DONE ()
|
||||
- Packing/bitfield/conversion functions DONE (r600)
|
||||
- Enhanced textureGather DONE (r600, radeonsi)
|
||||
- Geometry shader instancing DONE ()
|
||||
- Geometry shader multiple streams DONE ()
|
||||
- Enhanced per-sample shading DONE (r600)
|
||||
- Interpolation functions DONE ()
|
||||
- New overload resolution rules DONE
|
||||
GL_ARB_gpu_shader_fp64 started (Dave)
|
||||
GL_ARB_sample_shading DONE (i965, nv50, nvc0, radeonsi)
|
||||
GL_ARB_draw_indirect DONE (i965)
|
||||
GL_ARB_gpu_shader5 started
|
||||
- 'precise' qualifier not started
|
||||
- Dynamically uniform sampler array indices not started
|
||||
- Dynamically uniform UBO array indices not started
|
||||
- Implicit signed -> unsigned conversions not started
|
||||
- Fused multiply-add DONE
|
||||
- Packing/bitfield/conversion functions DONE
|
||||
- Enhanced textureGather DONE
|
||||
- Geometry shader instancing DONE
|
||||
- Geometry shader multiple streams not started
|
||||
- Enhanced per-sample shading DONE
|
||||
- Interpolation functions started
|
||||
- New overload resolution rules not started
|
||||
GL_ARB_gpu_shader_fp64 not started
|
||||
GL_ARB_sample_shading DONE (i965, nv50, nvc0)
|
||||
GL_ARB_shader_subroutine not started
|
||||
GL_ARB_tessellation_shader started (Fabian)
|
||||
GL_ARB_tessellation_shader not started
|
||||
GL_ARB_texture_buffer_object_rgb32 DONE (i965, nvc0, r600, radeonsi, softpipe)
|
||||
GL_ARB_texture_cube_map_array DONE (i965, nv50, nvc0, r600, radeonsi, softpipe)
|
||||
GL_ARB_texture_gather DONE (i965, nv50, nvc0, r600, radeonsi)
|
||||
GL_ARB_texture_query_lod DONE (i965, nv50, nvc0, r600, radeonsi)
|
||||
GL_ARB_texture_cube_map_array DONE (i965, nv50, nvc0, r600, softpipe)
|
||||
GL_ARB_texture_gather DONE (i965, nv50, nvc0)
|
||||
GL_ARB_transform_feedback2 DONE (i965, nv50, nvc0, r600, radeonsi)
|
||||
GL_ARB_transform_feedback3 DONE (i965, nv50, nvc0, r600, radeonsi)
|
||||
|
||||
|
||||
GL 4.1, GLSL 4.10:
|
||||
GL 4.1:
|
||||
|
||||
GLSL 4.1 not started
|
||||
GL_ARB_ES2_compatibility DONE (i965, nv50, nvc0, r300, r600, radeonsi)
|
||||
GL_ARB_get_program_binary DONE (0 binary formats)
|
||||
GL_ARB_separate_shader_objects DONE (all drivers)
|
||||
GL_ARB_shader_precision started (Micah)
|
||||
GL_ARB_vertex_attrib_64bit started (Dave)
|
||||
GL_ARB_viewport_array DONE (i965, nv50, nvc0, r600)
|
||||
GL_ARB_shader_precision not started
|
||||
GL_ARB_vertex_attrib_64bit not started
|
||||
GL_ARB_viewport_array DONE (i965, nv50, r600)
|
||||
|
||||
|
||||
GL 4.2, GLSL 4.20:
|
||||
GL 4.2:
|
||||
|
||||
GL_ARB_texture_compression_bptc DONE (i965, nvc0, r600, radeonsi)
|
||||
GL_ARB_compressed_texture_pixel_storage DONE (all drivers)
|
||||
GLSL 4.2 not started
|
||||
GL_ARB_texture_compression_bptc not started
|
||||
GL_ARB_compressed_texture_pixel_storage not started
|
||||
GL_ARB_shader_atomic_counters DONE (i965)
|
||||
GL_ARB_texture_storage DONE (all drivers)
|
||||
GL_ARB_transform_feedback_instanced DONE (i965, nv50, nvc0, r600, radeonsi)
|
||||
@@ -144,37 +151,39 @@ GL 4.2, GLSL 4.20:
|
||||
GL_ARB_map_buffer_alignment DONE (all drivers)
|
||||
|
||||
|
||||
GL 4.3, GLSL 4.30:
|
||||
GL 4.3:
|
||||
|
||||
GL_ARB_arrays_of_arrays started (Timothy)
|
||||
GL_ARB_ES3_compatibility DONE (all drivers that support GLSL 3.30)
|
||||
GLSL 4.3 not started
|
||||
GL_ARB_arrays_of_arrays started
|
||||
GL_ARB_ES3_compatibility DONE (i965)
|
||||
GL_ARB_clear_buffer_object DONE (all drivers)
|
||||
GL_ARB_compute_shader started (currently stalled)
|
||||
GL_ARB_copy_image DONE (i965)
|
||||
GL_ARB_compute_shader started (Paul Berry)
|
||||
GL_ARB_copy_image not started
|
||||
GL_KHR_debug DONE (all drivers)
|
||||
GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
|
||||
GL_ARB_fragment_layer_viewport DONE (nv50, nvc0, r600)
|
||||
GL_ARB_explicit_uniform_location not started
|
||||
GL_ARB_fragment_layer_viewport not started
|
||||
GL_ARB_framebuffer_no_attachments not started
|
||||
GL_ARB_internalformat_query2 not started
|
||||
GL_ARB_invalidate_subdata DONE (all drivers)
|
||||
GL_ARB_multi_draw_indirect DONE (i965, nvc0, radeonsi, softpipe, llvmpipe)
|
||||
GL_ARB_multi_draw_indirect DONE (i965)
|
||||
GL_ARB_program_interface_query not started
|
||||
GL_ARB_robust_buffer_access_behavior not started
|
||||
GL_ARB_shader_image_size not started
|
||||
GL_ARB_shader_storage_buffer_object not started
|
||||
GL_ARB_stencil_texturing DONE (i965/gen8+, nv50, nvc0, r600, radeonsi)
|
||||
GL_ARB_stencil_texturing DONE (i965/gen8+)
|
||||
GL_ARB_texture_buffer_range DONE (nv50, nvc0, i965, r600, radeonsi)
|
||||
GL_ARB_texture_query_levels DONE (all drivers that support GLSL 1.30)
|
||||
GL_ARB_texture_query_levels DONE (i965)
|
||||
GL_ARB_texture_storage_multisample DONE (all drivers that support GL_ARB_texture_multisample)
|
||||
GL_ARB_texture_view DONE (i965)
|
||||
GL_ARB_vertex_attrib_binding DONE (all drivers)
|
||||
|
||||
|
||||
GL 4.4, GLSL 4.40:
|
||||
GL 4.4:
|
||||
|
||||
GLSL 4.4 not started
|
||||
GL_MAX_VERTEX_ATTRIB_STRIDE not started
|
||||
GL_ARB_buffer_storage DONE (i965, nv30, nv50, nvc0, r300, r600, radeonsi)
|
||||
GL_ARB_clear_texture DONE (i965)
|
||||
GL_ARB_clear_texture not started
|
||||
GL_ARB_enhanced_layouts not started
|
||||
GL_ARB_multi_bind DONE (all drivers)
|
||||
GL_ARB_query_buffer_object not started
|
||||
@@ -182,38 +191,6 @@ GL 4.4, GLSL 4.40:
|
||||
GL_ARB_texture_stencil8 not started
|
||||
GL_ARB_vertex_type_10f_11f_11f_rev DONE (i965, nv50, nvc0, r600, radeonsi)
|
||||
|
||||
GL 4.5, GLSL 4.50:
|
||||
|
||||
GL_ARB_ES3_1_compatibility not started
|
||||
GL_ARB_clip_control not started
|
||||
GL_ARB_conditional_render_inverted DONE (i965, nvc0, softpipe, llvmpipe)
|
||||
GL_ARB_cull_distance not started
|
||||
GL_ARB_derivative_control DONE (i965, nv50, nvc0, r600)
|
||||
GL_ARB_direct_state_access not started
|
||||
GL_ARB_get_texture_sub_image started (Brian Paul)
|
||||
GL_ARB_shader_texture_image_samples not started
|
||||
GL_ARB_texture_barrier DONE (nv50, nvc0, r300, r600, radeonsi)
|
||||
GL_KHR_context_flush_control not started
|
||||
GL_KHR_robust_buffer_access_behavior not started
|
||||
GL_KHR_robustness 90% done (the ARB variant)
|
||||
|
||||
These are the extensions cherry-picked to make GLES 3.1
|
||||
GLES3.1, GLSL ES 3.1
|
||||
GL_ARB_arrays_of_arrays started (Timothy)
|
||||
GL_ARB_compute_shader started (currently stalled)
|
||||
GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
|
||||
GL_ARB_framebuffer_no_attachments not started
|
||||
GL_ARB_program_interface_query not started
|
||||
GL_ARB_shader_atomic_counters DONE (i965)
|
||||
GL_ARB_shader_image_load_store in progress (curro)
|
||||
GL_ARB_shader_storage_buffer_object not started
|
||||
GL_ARB_separate_shader_objects DONE (all drivers)
|
||||
GL_ARB_stencil_texturing DONE (i965/gen8+, nv50, nvc0, r600, radeonsi)
|
||||
GL_ARB_vertex_attrib_binding DONE (all drivers)
|
||||
GS5 Enhanced textureGather DONE (i965, nvc0, r600, radeonsi)
|
||||
GS5 Packing/bitfield/conversion functions DONE (i965, nvc0, r600)
|
||||
GL_EXT_shader_integer_mix DONE (all drivers that support GLSL)
|
||||
|
||||
|
||||
More info about these features and the work involved can be found at
|
||||
http://dri.freedesktop.org/wiki/MissingFunctionality
|
||||
|
@@ -97,22 +97,20 @@ shared libraries in a single pass.</p>
|
||||
<dt><code>CC, CFLAGS, CXX, CXXFLAGS</code></dt>
|
||||
<dd><p>These environment variables
|
||||
control the C and C++ compilers used during the build. By default,
|
||||
<code>gcc</code> and <code>g++</code> are used and the debug/optimisation
|
||||
level is left unchanged.</p>
|
||||
<code>gcc</code> and <code>g++</code> are used with the options
|
||||
<code>"-g -O2"</code>.</p>
|
||||
</dd>
|
||||
|
||||
<dt><code>LDFLAGS</code></dt>
|
||||
<dd><p>An environment variable specifying flags to
|
||||
pass when linking programs. These should be empty and
|
||||
<code>PKG_CONFIG_PATH</code> is recommended to be used instead. If needed
|
||||
it can be used to direct the linker to use libraries in nonstandard
|
||||
directories. For example, <code>LDFLAGS="-L/usr/X11R6/lib"</code>.</p>
|
||||
pass when linking programs. These are normally empty, but can be used
|
||||
to direct the linker to use libraries in nonstandard directories. For
|
||||
example, <code>LDFLAGS="-L/usr/X11R6/lib"</code>.</p>
|
||||
</dd>
|
||||
|
||||
<dt><code>PKG_CONFIG_PATH</code></dt>
|
||||
<dd><p>The
|
||||
<code>pkg-config</code> utility is a hard requirement for cofiguring and
|
||||
building mesa. It is used to search for external libraries
|
||||
<dd><p>When available, the
|
||||
<code>pkg-config</code> utility is used to search for external libraries
|
||||
on the system. This environment variable is used to control the search
|
||||
path for <code>pkg-config</code>. For instance, setting
|
||||
<code>PKG_CONFIG_PATH=/usr/X11R6/lib/pkgconfig</code> will search for
|
||||
@@ -137,32 +135,14 @@ one of these architectures is detected. This option ensures that
|
||||
assembly will not be used.</p>
|
||||
</dd>
|
||||
|
||||
<dt><code>--build=</code></dt>
|
||||
<dt><code>--host=</code></dt>
|
||||
<dd><p>By default, the build will compile code for the architecture that
|
||||
it's running on. In order to build cross-compile Mesa on a x86-64 machine
|
||||
that is to run on a i686, one would need to set the options to:</p>
|
||||
|
||||
<p><code>--build=x86_64-pc-linux-gnu --host=i686-pc-linux-gnu</code></p>
|
||||
|
||||
Note that these can vary from distribution to distribution. For more
|
||||
information check with the
|
||||
<a href="https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/Specifying-Target-Triplets.html">
|
||||
autoconf manual</a>.
|
||||
Note that you will need to correctly set <code>PKG_CONFIG_PATH</code> as well.
|
||||
|
||||
|
||||
<p>In some cases a single compiler is capable of handling both architectures
|
||||
(multilib) in that case one would need to set the <code>CC,CXX</code> variables
|
||||
appending the correct machine options. Seek your compiler documentation for
|
||||
further information -
|
||||
<a href="https://gcc.gnu.org/onlinedocs/gcc/Submodel-Options.html"> gcc
|
||||
machine dependent options</a></p>
|
||||
|
||||
<p>In addition to specifying correct <code>PKG_CONFIG_PATH</code> for the target
|
||||
architecture, the following should be sufficient to configure multilib Mesa</p>
|
||||
|
||||
<code>./configure CC="gcc -m32" CXX="g++ -m32" --build=x86_64-pc-linux-gnu --host=i686-pc-linux-gnu ...</code>
|
||||
<dt><code>--enable-32-bit</code></dt>
|
||||
<dt><code>--enable-64-bit</code></dt>
|
||||
<dd><p>By default, the build will compile code as directed by the environment
|
||||
variables
|
||||
<code>CC</code>, <code>CFLAGS</code>, etc. If the compiler is
|
||||
<code>gcc</code>, these options offer a helper to add the compiler flags
|
||||
to force 32- or 64-bit code generation as used on the x86 and x86_64
|
||||
architectures. Note that these options are mutually exclusive.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
@@ -214,9 +194,7 @@ kernel DRM modules are not available.
|
||||
<dt><code>--enable-glx-tls</code> <dd><p>
|
||||
Enable Thread Local Storage (TLS) in
|
||||
GLX.
|
||||
<dt><code>--with-expat=DIR</code>
|
||||
<dd><p><strong>DEPRECATED</strong>, use <code>PKG_CONFIG_PATH</code> instead.</p>
|
||||
<p>The DRI-enabled libGL uses expat to
|
||||
<dt><code>--with-expat=DIR</code> <dd> The DRI-enabled libGL uses expat to
|
||||
parse the DRI configuration files in <code>/etc/drirc</code> and
|
||||
<code>~/.drirc</code>. This option allows a specific expat installation
|
||||
to be used. For example, <code>--with-expat=/usr/local</code> will
|
||||
|
@@ -16,96 +16,6 @@
|
||||
|
||||
<h1>News</h1>
|
||||
|
||||
<h2>September 19, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.3.html">Mesa 10.3</a> is released. This is a new
|
||||
development release. See the release notes for more information about
|
||||
the release.
|
||||
</p>
|
||||
<p>
|
||||
Also, <a href="relnotes/10.2.8.html">Mesa 10.2.8</a> is released.
|
||||
This is a bug fix release from the 10.2 branch.
|
||||
</p>
|
||||
|
||||
<h2>August 19, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.2.6.html">Mesa 10.2.6</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>August 2, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.2.5.html">Mesa 10.2.5</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>July 18, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.2.4.html">Mesa 10.2.4</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>July 7, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.2.3.html">Mesa 10.2.3</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>July 5, 2014</h2>
|
||||
|
||||
<p>
|
||||
Mesa demos 8.2.0 is released.
|
||||
See the <a href="http://lists.freedesktop.org/archives/mesa-announce/2014-July/000100.html">announcement</a> for more information about the release.
|
||||
You can download it from <a href="ftp://ftp.freedesktop.org/pub/mesa/demos/8.2.0/">ftp.freedesktop.org/pub/mesa/demos/8.2.0/</a>.
|
||||
</p>
|
||||
|
||||
<h2>June 24, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.1.6.html">Mesa 10.1.6</a>
|
||||
and <a href="relnotes/10.2.2.html">Mesa 10.2.2</a> are released.
|
||||
|
||||
These are bug-fix releases from the 10.1 and 10.2 branches, respectively.
|
||||
</p>
|
||||
|
||||
<h2>June 6, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.2.1.html">Mesa 10.2.1</a> is released. This release
|
||||
only fixes a build error in the radeonsi driver that was introduced between
|
||||
10.2-rc5 and the 10.2 final release.
|
||||
</p>
|
||||
|
||||
<h2>June 6, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.2.html">Mesa 10.2</a> is released. This is a new
|
||||
development release. See the release notes for more information about
|
||||
the release.
|
||||
</p>
|
||||
<p>
|
||||
Also, <a href="relnotes/10.1.5.html">Mesa 10.1.5</a> is released.
|
||||
This is a bug fix release from the 10.1 branch.
|
||||
</p>
|
||||
|
||||
<h2>May 20, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.1.4.html">Mesa 10.1.4</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>May 9, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.1.3.html">Mesa 10.1.3</a> is released.
|
||||
This is a bug-fix release, and is being released sooner than
|
||||
originally scheduled to fix a performance regression (vmware
|
||||
swapbuffers falling back to software) introduced to the
|
||||
10.1.2 release.
|
||||
</p>
|
||||
|
||||
<h2>May 5, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.1.2.html">Mesa 10.1.2</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>April 18, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.1.1.html">Mesa 10.1.1</a> is released.
|
||||
|
@@ -34,25 +34,16 @@
|
||||
|
||||
<h2>1.1 General</h2>
|
||||
<ul>
|
||||
<li><a href="http://www.python.org/">Python</a> - Python is required.
|
||||
Version 2.6.4 or later should work.
|
||||
</li>
|
||||
<br>
|
||||
<li><a href="http://www.scons.org/">SCons</a> is required for building on
|
||||
Windows and optional for Linux (it's an alternative to autoconf/automake.)
|
||||
</li>
|
||||
<br>
|
||||
<li>lex / yacc - for building the GLSL compiler.
|
||||
<br>
|
||||
<br>
|
||||
On Linux systems, flex and bison are used.
|
||||
Versions 2.5.35 and 2.4.1, respectively, (or later) should work.
|
||||
<br>
|
||||
<br>
|
||||
On Windows with MinGW, install flex and bison with:
|
||||
<pre>mingw-get install msys-flex msys-bison</pre>
|
||||
For MSVC on Windows, you can find flex/bison programs on the
|
||||
<a href="ftp://ftp.freedesktop.org/pub/mesa/windows-utils/">Mesa ftp site</a>.
|
||||
</li>
|
||||
<li>python - Python is needed for building the Gallium components.
|
||||
Version 2.6.4 or later should work.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
@@ -43,7 +43,11 @@ It's the fastest software rasterizer for Mesa.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>LLVM: version 3.4 recommended; 3.1 or later required.</p>
|
||||
<p>LLVM: version 2.9 recommended; 2.6 or later required.</p>
|
||||
<p><b>NOTE</b>: LLVM 2.8 and earlier will not work on systems that support the
|
||||
Intel AVX extensions (e.g. Sandybridge). LLVM's code generator will
|
||||
fail when trying to emit AVX instructions. This was fixed in LLVM 2.9.
|
||||
</p>
|
||||
<p>
|
||||
For Linux, on a recent Debian based distribution do:
|
||||
</p>
|
||||
@@ -97,15 +101,13 @@ but the rest of these instructions assume that scons is used.
|
||||
For Windows the procedure is similar except the target:
|
||||
|
||||
<pre>
|
||||
scons platform=windows build=debug libgl-gdi
|
||||
scons build=debug libgl-gdi
|
||||
</pre>
|
||||
|
||||
|
||||
<h1>Using</h1>
|
||||
|
||||
<h2>Linux</h2>
|
||||
|
||||
<p>On Linux, building will create a drop-in alternative for libGL.so into</p>
|
||||
On Linux, building will create a drop-in alternative for libGL.so into
|
||||
|
||||
<pre>
|
||||
build/foo/gallium/targets/libgl-xlib/libGL.so
|
||||
@@ -115,45 +117,15 @@ or
|
||||
lib/gallium/libGL.so
|
||||
</pre>
|
||||
|
||||
<p>To use it set the LD_LIBRARY_PATH environment variable accordingly.</p>
|
||||
To use it set the LD_LIBRARY_PATH environment variable accordingly.
|
||||
|
||||
<p>For performance evaluation pass build=release to scons, and use the corresponding
|
||||
lib directory without the "-debug" suffix.</p>
|
||||
For performance evaluation pass debug=no to scons, and use the corresponding
|
||||
lib directory without the "-debug" suffix.
|
||||
|
||||
|
||||
<h2>Windows</h2>
|
||||
|
||||
<p>
|
||||
On Windows, building will create
|
||||
<code>build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll</code>
|
||||
which is a drop-in alternative for system's <code>opengl32.dll</code>. To use
|
||||
it put it in the same directory as your application. It can also be used by
|
||||
On Windows, building will create a drop-in alternative for opengl32.dll. To use
|
||||
it put it in the same directory as the application. It can also be used by
|
||||
replacing the native ICD driver, but it's quite an advanced usage, so if you
|
||||
need to ask, don't even try it.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
There is however an easy way to replace the OpenGL software renderer that comes
|
||||
with Microsoft Windows 7 (or later) with llvmpipe (that is, on systems without
|
||||
any OpenGL drivers):
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><p>copy build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll to C:\Windows\SysWOW64\mesadrv.dll</p></li>
|
||||
<li><p>load this registry settings:</p>
|
||||
<pre>REGEDIT4
|
||||
|
||||
; http://technet.microsoft.com/en-us/library/cc749368.aspx
|
||||
; http://www.msfn.org/board/topic/143241-portable-windows-7-build-from-winpe-30/page-5#entry942596
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\MSOGL]
|
||||
"DLL"="mesadrv.dll"
|
||||
"DriverVersion"=dword:00000001
|
||||
"Flags"=dword:00000001
|
||||
"Version"=dword:00000002
|
||||
</pre>
|
||||
</li>
|
||||
<li>Ditto for 64 bits drivers if you need them.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h1>Profiling</h1>
|
||||
|
@@ -21,20 +21,6 @@ The release notes summarize what's new or changed in each Mesa release.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="relnotes/10.3.html">10.3 release notes</a>
|
||||
<li><a href="relnotes/10.2.8.html">10.2.8 release notes</a>
|
||||
<li><a href="relnotes/10.2.6.html">10.2.6 release notes</a>
|
||||
<li><a href="relnotes/10.2.5.html">10.2.5 release notes</a>
|
||||
<li><a href="relnotes/10.2.4.html">10.2.4 release notes</a>
|
||||
<li><a href="relnotes/10.2.3.html">10.2.3 release notes</a>
|
||||
<li><a href="relnotes/10.2.2.html">10.2.2 release notes</a>
|
||||
<li><a href="relnotes/10.2.1.html">10.2.1 release notes</a>
|
||||
<li><a href="relnotes/10.2.html">10.2 release notes</a>
|
||||
<li><a href="relnotes/10.1.6.html">10.1.6 release notes</a>
|
||||
<li><a href="relnotes/10.1.5.html">10.1.5 release notes</a>
|
||||
<li><a href="relnotes/10.1.4.html">10.1.4 release notes</a>
|
||||
<li><a href="relnotes/10.1.3.html">10.1.3 release notes</a>
|
||||
<li><a href="relnotes/10.1.2.html">10.1.2 release notes</a>
|
||||
<li><a href="relnotes/10.1.1.html">10.1.1 release notes</a>
|
||||
<li><a href="relnotes/10.1.html">10.1 release notes</a>
|
||||
<li><a href="relnotes/10.0.5.html">10.0.5 release notes</a>
|
||||
|
@@ -1,179 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 10.1.2 Release Notes / (May 5, 2014)</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.1.2 is a bug fix release which fixes bugs found since the 10.1.1 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.1.2 implements the OpenGL 3.3 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
|
||||
3.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>MD5 checksums</h2>
|
||||
<pre>
|
||||
37d79f94b1f41852a89d1fc3900bea76 MesaLib-10.1.2.tar.gz
|
||||
28b60d15ac9f364da1e0155911eaf44e MesaLib-10.1.2.tar.bz2
|
||||
05300039085a65fc53c5472c4bb5747a MesaLib-10.1.2.zip
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=27499">Bug 27499</a> - [855GM i915] GL_LINE_STIPPLE displays incorrect colors</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=75723">Bug 75723</a> - (regression since Linux 3.14?) brw_get_graphics_reset_status: Assertion `brw->hw_ctx != ((void *)0)' failed</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=76894">Bug 76894</a> - Piglit/spec/EXT_framebuffer_object/fbo-bind-renderbuffer failed</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77702">Bug 77702</a> - [i965 Bisected]Piglit spec/NV_conditional_render_blitframebuffer fails</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Ander Conselvan de Oliveira (2):</p>
|
||||
<ul>
|
||||
<li>gbm/dri: Fix out-of-memory error path in dri_device_create()</li>
|
||||
<li>egl: Protect use of gbm_dri with ifdef HAVE_DRM_PLATFORM</li>
|
||||
</ul>
|
||||
|
||||
<p>Anuj Phogat (27):</p>
|
||||
<ul>
|
||||
<li>mesa: Fix glGetVertexAttribi(GL_VERTEX_ATTRIB_ARRAY_SIZE)</li>
|
||||
<li>swrast: Add glBlitFramebuffer to commands affected by conditional rendering</li>
|
||||
<li>mesa: Fix error condition for multisample proxy texture targets</li>
|
||||
<li>i965: Put an assertion to check valid varying_to_slot[varying]</li>
|
||||
<li>i965: Fix component mask and varying_to_slot mapping for gl_Layer</li>
|
||||
<li>i965: Fix component mask and varying_to_slot mapping for gl_ViewportIndex</li>
|
||||
<li>mesa: Add helper function _mesa_is_format_integer()</li>
|
||||
<li>mesa: Add error condition for integer formats in glGetTexImage()</li>
|
||||
<li>mesa: Add an error condition in glGetFramebufferAttachmentParameteriv()</li>
|
||||
<li>mesa: Fix error code generation in glReadPixels()</li>
|
||||
<li>glsl: Allow overlapping locations for vertex input attributes</li>
|
||||
<li>mesa: Fix querying location of nth element of an array variable</li>
|
||||
<li>mesa: Use location VERT_ATTRIB_GENERIC0 for vertex attribute 0</li>
|
||||
<li>glsl: Compile error if fs defines conflicting qualifiers for gl_FragCoord</li>
|
||||
<li>glsl: Compile error if fs uses gl_FragCoord before first redeclaration</li>
|
||||
<li>mesa: Add entry for extension ARB_texture_stencil8</li>
|
||||
<li>mesa: Add error condition for format=STENCIL_INDEX in glGetTexImage()</li>
|
||||
<li>i965: Fix crash in do_blit_readpixels()</li>
|
||||
<li>mesa: Add missing types in _mesa_texstore_xx_xx() functions</li>
|
||||
<li>mesa: Allow srcFormat=GL_DEPTH_STENCIL in _mesa_texstore_xx_xx() functions</li>
|
||||
<li>mesa: Add new helper function _mesa_unpack_depth_stencil_row()</li>
|
||||
<li>mesa: Add support to unpack depth-stencil texture in to FLOAT_32_UNSIGNED_INT_24_8_REV</li>
|
||||
<li>mesa: Allow FLOAT_32_UNSIGNED_INT_24_8_REV in get_tex_depth_stencil()</li>
|
||||
<li>i965: Add glBlitFramebuffer to commands affected by conditional rendering</li>
|
||||
<li>glsl: Use switch to allow adding more shader types</li>
|
||||
<li>glsl: Link error if fs defines conflicting qualifiers for gl_FragCoord</li>
|
||||
<li>glsl: Apply the link error conditions to GL_ARB_fragment_coord_conventions</li>
|
||||
</ul>
|
||||
|
||||
<p>Benjamin Bellec (1):</p>
|
||||
<ul>
|
||||
<li>mesa: fix GetStringi error message with correct function name</li>
|
||||
</ul>
|
||||
|
||||
<p>Brian Paul (1):</p>
|
||||
<ul>
|
||||
<li>swrast: allocate swrast_texture_image::ImageSlices array if needed</li>
|
||||
</ul>
|
||||
|
||||
<p>Carl Worth (4):</p>
|
||||
<ul>
|
||||
<li>docs: Add the MD5 sums for the 10.1.1 release tar files.</li>
|
||||
<li>cherry-ignore: Ignore a patch causing a regression</li>
|
||||
<li>cherry-ignore: Drop an ignored patch now that piglit has been updated.</li>
|
||||
<li>Update VERSION to 10.1.2</li>
|
||||
</ul>
|
||||
|
||||
<p>Chris Forbes (1):</p>
|
||||
<ul>
|
||||
<li>glsl: Only allow `invariant` on shader in/out between stages.</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (1):</p>
|
||||
<ul>
|
||||
<li>i965: Fix render-to-texture in non-FinishRenderTexture cases.</li>
|
||||
</ul>
|
||||
|
||||
<p>Ian Romanick (1):</p>
|
||||
<ul>
|
||||
<li>dri3: Enable GLX_MESA_query_renderer on DRI3 too</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (2):</p>
|
||||
<ul>
|
||||
<li>i965: Don't enable reset notification support on Gen4-5.</li>
|
||||
<li>i965: Actually emit PIPELINE_SELECT and 3DSTATE_VF_STATISTICS.</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (10):</p>
|
||||
<ul>
|
||||
<li>r300g: don't crash when getting NULL colorbuffers</li>
|
||||
<li>st/mesa: remove trailing NULL colorbuffers</li>
|
||||
<li>r600g: fix edge flags and layered rendering on R600-R700</li>
|
||||
<li>r600g: disable async DMA on R700</li>
|
||||
<li>r600g: fix MSAA resolve on R6xx when the destination is 1D-tiled</li>
|
||||
<li>r600g: fix flushing on RV670, RS780, RS880 again</li>
|
||||
<li>r600g: fix buffer copying on R600-R700</li>
|
||||
<li>r600g: fix for broken CULL_FRONT behavior on R6xx</li>
|
||||
<li>r600g: fix for an MSAA hang on RV770</li>
|
||||
<li>r600g: fix hang on RV740 by using DX_RASTERIZATION_KILL instead of SX_MISC</li>
|
||||
</ul>
|
||||
|
||||
<p>Michel Dänzer (2):</p>
|
||||
<ul>
|
||||
<li>r600g: Disable LLVM by default at runtime for graphics</li>
|
||||
<li>st/mesa: Fix NULL pointer dereference for incomplete framebuffers</li>
|
||||
</ul>
|
||||
|
||||
<p>Neil Roberts (1):</p>
|
||||
<ul>
|
||||
<li>wayland: Fix the logic in disabling the prime capability</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Iglesias Gonsalvez (1):</p>
|
||||
<ul>
|
||||
<li>mesa: fix check for dummy renderbuffer in _mesa_FramebufferRenderbufferEXT()</li>
|
||||
</ul>
|
||||
|
||||
<p>Thomas Hellstrom (1):</p>
|
||||
<ul>
|
||||
<li>st/xa: Cache render target surface</li>
|
||||
</ul>
|
||||
|
||||
<p>nick (1):</p>
|
||||
<ul>
|
||||
<li>swrast: Fix vertex color in _swsetup_Translate()</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,90 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 10.1.3 Release Notes / (May 9, 2014)</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.1.3 is a bug fix release which fixes bugs found since the 10.1.2 release.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Note: Mesa 10.1.3 is being released sooner than originally scheduled to make
|
||||
available a fix for a performance rgression that was inadvertently introduced
|
||||
to Mesa 10.1.2. The performance regression is reported to make vmware
|
||||
swapbuffers fall back to software.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Mesa 10.1.3 implements the OpenGL 3.3 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
|
||||
3.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>MD5 checksums</h2>
|
||||
<pre>
|
||||
665fe1656aaa2c37b32042068aff92cb MesaLib-10.1.3.tar.gz
|
||||
ba6dbe2b9cab0b4de840c996b9b6a3ad MesaLib-10.1.3.tar.bz2
|
||||
4e6f26330a63d3c47e62ac4bdead39e8 MesaLib-10.1.3.zip
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77245">Bug 77245</a> - Bogus GL_ARB_explicit_attrib_location layout identifier warnings</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Carl Worth (3):</p>
|
||||
<ul>
|
||||
<li>docs: Add MD5 sums for Mesa 10.1.2</li>
|
||||
<li>get-pick-list.sh: Require explicit "10.1" for nominating stable patches</li>
|
||||
<li>VERSION: Update to 10.1.3</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (2):</p>
|
||||
<ul>
|
||||
<li>mesa: Fix MaxNumLayers for 1D array textures.</li>
|
||||
<li>i965: Fix depth (array slices) computation for 1D_ARRAY render targets.</li>
|
||||
</ul>
|
||||
|
||||
<p>Tapani Pälli (1):</p>
|
||||
<ul>
|
||||
<li>glsl: fix bogus layout qualifier warnings</li>
|
||||
</ul>
|
||||
|
||||
<p>Thomas Hellstrom (1):</p>
|
||||
<ul>
|
||||
<li>st/xa: Fix performance regression introduced by commit "Cache render target surface"</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,100 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 10.1.4 Release Notes / (May 20, 2014)</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.1.4 is a bug fix release which fixes bugs found since the 10.1.3 release.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Mesa 10.1.4 implements the OpenGL 3.3 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
|
||||
3.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>MD5 checksums</h2>
|
||||
<pre>
|
||||
e934365d77f384bfaec844999440bef8 MesaLib-10.1.4.tar.gz
|
||||
6fddee101f49b7409cd29994c34ddee7 MesaLib-10.1.4.tar.bz2
|
||||
ba5f48e7d5e373922c804c2651fec6c1 MesaLib-10.1.4.zip
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78225">Bug 78225</a> - Compile error due to undefined reference to `gbm_dri_backend', fix attached</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78537">Bug 78537</a> - no anisotropic filtering in a native Half-Life 2</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Brian Paul (1):</p>
|
||||
<ul>
|
||||
<li>mesa: fix double-freeing of dispatch tables inside glBegin/End.</li>
|
||||
</ul>
|
||||
|
||||
<p>Carl Worth (3):</p>
|
||||
<ul>
|
||||
<li>docs: Add MD5 sums for 10.1.3</li>
|
||||
<li>cherry-ignore: Roland and Michel agreed to drop these patches.</li>
|
||||
<li>VERSION: Update to 10.1.4</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (1):</p>
|
||||
<ul>
|
||||
<li>configure: error out if building GBM without dri</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (1):</p>
|
||||
<ul>
|
||||
<li>i965/vs: Use samplers for UBOs in the VS like we do for non-UBO pulls.</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (3):</p>
|
||||
<ul>
|
||||
<li>nv50/ir: make sure to reverse cond codes on all the OP_SET variants</li>
|
||||
<li>nv50: fix setting of texture ms info to be per-stage</li>
|
||||
<li>nv50/ir: fix integer mul lowering for u32 x u32 -> high u32</li>
|
||||
</ul>
|
||||
|
||||
<p>Michel Dänzer (1):</p>
|
||||
<ul>
|
||||
<li>radeonsi: Fix anisotropic filtering state setup</li>
|
||||
</ul>
|
||||
|
||||
<p>Tom Stellard (2):</p>
|
||||
<ul>
|
||||
<li>configure.ac: Add LLVM_VERSION_PATCH to DEFINES</li>
|
||||
<li>radeonsi: Enable geometry shaders with LLVM 3.4.1</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,105 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 10.1.5 Release Notes / (June 6, 2014)</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.1.5 is a bug fix release which fixes bugs found since the 10.1.4 release.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Mesa 10.1.5 implements the OpenGL 3.3 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
|
||||
3.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
b0aceaa75bc9a9b2d9215a113e2ad488b5cf85c99005a7624f8cf7c37c5d0eaa MesaLib-10.1.5.tar.gz
|
||||
bc6c5ec7836f254a49d055a29d9aa34c97c54c038f47ad3a00fa57a5fef15bbc MesaLib-10.1.5.tar.bz2
|
||||
78b7255cab0af7918945452a84de7989096ebcdd27e99b31c56c0589274cbc77 MesaLib-10.1.5.zip
|
||||
</pre>
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79115">Bug 79115</a> - </li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79421">Bug 79421</a> - </li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Brian Paul (1):</p>
|
||||
<ul>
|
||||
<li>glsl: fix use-after free bug/crash in ast_declarator_list::hir()</li>
|
||||
</ul>
|
||||
|
||||
<p>Carl Worth (5):</p>
|
||||
<ul>
|
||||
<li>docs: Add md5sums for 10.1.4 release</li>
|
||||
<li>Merge remote-tracking branch 'origin/10.1' into 10.1</li>
|
||||
<li>cherry-ignore: Ignore two commits.</li>
|
||||
<li>Ignore a patch that is not needed for the 10.1 branch.</li>
|
||||
<li>Update version to 10.1.5</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (1):</p>
|
||||
<ul>
|
||||
<li>glx: do not leak dri3Display</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (2):</p>
|
||||
<ul>
|
||||
<li>nv50/ir: fix s32 x s32 -> high s32 multiply logic</li>
|
||||
<li>nv50/ir: fix constant folding for OP_MUL subop HIGH</li>
|
||||
</ul>
|
||||
|
||||
<p>James Legg (1):</p>
|
||||
<ul>
|
||||
<li>mesa: Fix unbinding GL_DEPTH_STENCIL_ATTACHMENT</li>
|
||||
</ul>
|
||||
|
||||
<p>Jeremy Huddleston Sequoia (2):</p>
|
||||
<ul>
|
||||
<li>glapi: Avoid heap corruption in _glapi_table</li>
|
||||
<li>darwin: Fix test for kCGLPFAOpenGLProfile support at runtime</li>
|
||||
</ul>
|
||||
|
||||
<p>Pavel Popov (2):</p>
|
||||
<ul>
|
||||
<li>i965: Properly return *RESET* status in glGetGraphicsResetStatusARB</li>
|
||||
<li>i965: Fix Line Stipple enable bit in 3DSTATE_SF for Haswell.</li>
|
||||
</ul>
|
||||
|
||||
<p>Roland Scheidegger (1):</p>
|
||||
<ul>
|
||||
<li>llvmpipe: fix crash when not all attachments are populated in a fb</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,138 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 10.1.6 Release Notes / (June 24, 2014)</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.1.6 is a bug fix release which fixes bugs found since the 10.1.5 release.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Mesa 10.1.6 implements the OpenGL 3.3 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
|
||||
3.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
cde60e06b340d7598802fe4a4484b3fb8befd714f9ab9caabe1f27d3149e8815 MesaLib-10.1.6.tar.bz2
|
||||
e4e726d7805a442f7ed07d12f71335e6126796ec85328a5989eb5348a8042d00 MesaLib-10.1.6.tar.gz
|
||||
bf7e3f721a7ad0c2057a034834b6fea688e64f26a66cf8d1caa2827e405e72dd MesaLib-10.1.6.zip
|
||||
</pre>
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=54372">Bug 54372</a> - GLX_INTEL_swap_event crashes driver when swapping window buffers</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74005">Bug 74005</a> - [i965 Bisected]Piglit/glx_glx-make-glxdrawable-current fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78581">Bug 78581</a> - </li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79729">Bug 79729</a> - [i965] glClear on a multisample texture doesn't work</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Adrian Negreanu (7):</p>
|
||||
<ul>
|
||||
<li>add megadriver_stub_FILES</li>
|
||||
<li>android: adapt to the megadriver mechanism</li>
|
||||
<li>android: add libloader to libGLES_mesa and libmesa_egl_dri2</li>
|
||||
<li>android: add src/gallium/auxiliary as include path for libmesa_dricore</li>
|
||||
<li>android, egl: add correct drm include for libmesa_egl_dri2</li>
|
||||
<li>android, mesa_gen_matypes: pull in timespec POSIX definition</li>
|
||||
<li>android, dricore: undefined reference to _mesa_streaming_load_memcpy</li>
|
||||
</ul>
|
||||
|
||||
<p>Beren Minor (1):</p>
|
||||
<ul>
|
||||
<li>egl/main: Fix eglMakeCurrent when releasing context from current thread.</li>
|
||||
</ul>
|
||||
|
||||
<p>Carl Worth (3):</p>
|
||||
<ul>
|
||||
<li>docs: Add SHA256 checksums for the 10.1.5 release</li>
|
||||
<li>cherry-ignore: Add a patch to ignore</li>
|
||||
<li>Update VERSION to 10.1.6</li>
|
||||
</ul>
|
||||
|
||||
<p>Daniel Manjarres (1):</p>
|
||||
<ul>
|
||||
<li>glx: Don't crash on swap event for a Window (non-GLXWindow)</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (1):</p>
|
||||
<ul>
|
||||
<li>configure: error out when building opencl without LLVM</li>
|
||||
</ul>
|
||||
|
||||
<p>Iago Toral Quiroga (1):</p>
|
||||
<ul>
|
||||
<li>mesa: Copy Geom.UsesEndPrimitive when cloning a geometry program.</li>
|
||||
</ul>
|
||||
|
||||
<p>José Fonseca (3):</p>
|
||||
<ul>
|
||||
<li>mesa/main: Make get_hash.c values constant.</li>
|
||||
<li>mesa: Make glGetIntegerv(GL_*_ARRAY_SIZE) return GL_BGRA.</li>
|
||||
<li>mesa/main: Prevent sefgault on glGetIntegerv(GL_ATOMIC_COUNTER_BUFFER_BINDING).</li>
|
||||
</ul>
|
||||
|
||||
<p>Kristian Høgsberg (1):</p>
|
||||
<ul>
|
||||
<li>mesa: Remove glClear optimization based on drawable size</li>
|
||||
</ul>
|
||||
|
||||
<p>Michel Dänzer (1):</p>
|
||||
<ul>
|
||||
<li>configure: Only check for OpenCL without LLVM when the latter is certain</li>
|
||||
</ul>
|
||||
|
||||
<p>Neil Roberts (1):</p>
|
||||
<ul>
|
||||
<li>i965: Set the fast clear color value for texture surfaces</li>
|
||||
</ul>
|
||||
|
||||
<p>Roland Scheidegger (1):</p>
|
||||
<ul>
|
||||
<li>draw: (trivial) fix clamping of viewport index</li>
|
||||
</ul>
|
||||
|
||||
<p>Tobias Klausmann (1):</p>
|
||||
<ul>
|
||||
<li>nv50/ir: clear subop when folding constant expressions</li>
|
||||
</ul>
|
||||
|
||||
<p>Tom Stellard (2):</p>
|
||||
<ul>
|
||||
<li>clover: Prevent Clang from printing number of errors and warnings to stderr.</li>
|
||||
<li>clover: Don't use llvm's global context</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,61 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 10.2.1 Release Notes / June 6, 2014</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.2.1 is a bug fix release which fixes bugs found since the 10.2 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.2.1 implements the OpenGL 3.3 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
|
||||
3.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>MD5 checksums</h2>
|
||||
<pre>
|
||||
96f892dae2d0bb14ac9c2113f586c909 MesaLib-10.2.1.tar.gz
|
||||
093f9b5d077e5f6061dcd7b01b7aa51a MesaLib-10.2.1.tar.bz2
|
||||
6ab76c1608e5deed1eb8b54c62d7a48a MesaLib-10.2.1.zip
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>
|
||||
Mesa 10.2 had a build problem in the radeonsi driver due to an error resolving
|
||||
conflicts in a patch cherry-pick from master. The build error is fixed.
|
||||
</p>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Ian Romanick (3):</p>
|
||||
<ul>
|
||||
<li>docs: Add MD5 checksum, etc. for 10.1 release</li>
|
||||
<li>radeonsi: Fix build error introduced in 5ab9a9c</li>
|
||||
<li>Bump version to 10.2.1</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,181 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 10.2.2 Release Notes / June 24, 2014</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.2.2 is a bug fix release which fixes bugs found since the 10.2.1 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.2.2 implements the OpenGL 3.3 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
|
||||
3.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
38c4a40364000f89cddaa1694f6f3cfb444981d1110238ce603093585477399c MesaLib-10.2.2.tar.bz2
|
||||
2af2ec8b4db624c352e961eefbcce6c8d1f86d44c5542f6f378c50e1b958d453 MesaLib-10.2.2.tar.gz
|
||||
d4c0372da59367a344d62ebcdf5cf61039c9cae6925f40f2dab8f8d95cf22da9 MesaLib-10.2.2.zip
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=54372">Bug 54372</a> - GLX_INTEL_swap_event crashes driver when swapping window buffers</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=66452">Bug 66452</a> - JUNIPER UVD accelerated playback of WMV3 streams does not work</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74005">Bug 74005</a> - [i965 Bisected]Piglit/glx_glx-make-glxdrawable-current fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77865">Bug 77865</a> - [BDW] Many Ogles3conform framebuffer_blit cases fail</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78581">Bug 78581</a> - OpenCL: clBuildProgram prints error messages directly rather than storing them</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79029">Bug 79029</a> - INTEL_DEBUG=shader_time is full of lies</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79729">Bug 79729</a> - [i965] glClear on a multisample texture doesn't work</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79907">Bug 79907</a> - Mesa 10.2.1 --enable-vdpau default=auto broken</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80115">Bug 80115</a> - MESA_META_DRAW_BUFFERS induced GL_INVALID_VALUE errors</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Adrian Negreanu (8):</p>
|
||||
<ul>
|
||||
<li>add megadriver_stub_FILES</li>
|
||||
<li>android: adapt to the megadriver mechanism</li>
|
||||
<li>android: add libloader to libGLES_mesa and libmesa_egl_dri2</li>
|
||||
<li>android: add src/gallium/auxiliary as include path for libmesa_dricore</li>
|
||||
<li>android, egl: add correct drm include for libmesa_egl_dri2</li>
|
||||
<li>android, egl: typo dri2_fallback_pixmap_surface -> dri2_fallback_create_pixmap_surface</li>
|
||||
<li>android, mesa_gen_matypes: pull in timespec POSIX definition</li>
|
||||
<li>android, dricore: undefined reference to _mesa_streaming_load_memcpy</li>
|
||||
</ul>
|
||||
|
||||
<p>Carl Worth (1):</p>
|
||||
<ul>
|
||||
<li>Update VERSION to 10.2.2</li>
|
||||
</ul>
|
||||
|
||||
<p>Daniel Manjarres (1):</p>
|
||||
<ul>
|
||||
<li>glx: Don't crash on swap event for a Window (non-GLXWindow)</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (3):</p>
|
||||
<ul>
|
||||
<li>targets/xa: limit the amount of exported symbols</li>
|
||||
<li>configure: error out when building opencl without LLVM</li>
|
||||
<li>configure: correctly autodetect xvmc/vdpau/omx</li>
|
||||
</ul>
|
||||
|
||||
<p>Grigori Goronzy (1):</p>
|
||||
<ul>
|
||||
<li>radeon/uvd: disable VC-1 simple/main on UVD 2.x</li>
|
||||
</ul>
|
||||
|
||||
<p>Iago Toral Quiroga (1):</p>
|
||||
<ul>
|
||||
<li>mesa: Copy Geom.UsesEndPrimitive when cloning a geometry program.</li>
|
||||
</ul>
|
||||
|
||||
<p>Ian Romanick (3):</p>
|
||||
<ul>
|
||||
<li>docs: Add initial 10.2.1 release notes</li>
|
||||
<li>docs: Add MD5 checksum, etc. for 10.2.1 release</li>
|
||||
<li>meta: Respect the driver's maximum number of draw buffers</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (7):</p>
|
||||
<ul>
|
||||
<li>gk110/ir: emit saturate flag on fadd when needed</li>
|
||||
<li>gk110/ir: fix emitting constbuf file index</li>
|
||||
<li>gk110/ir: fix bfind emission</li>
|
||||
<li>nv50: make sure to mark first scissor dirty after blit</li>
|
||||
<li>nv30: plug some memory leaks on screen destroy and shader compile</li>
|
||||
<li>nv30: avoid dangling references to deleted contexts</li>
|
||||
<li>nv30: hack to avoid errors on unexpected color/zeta combinations</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (1):</p>
|
||||
<ul>
|
||||
<li>meta_blit: properly compute texture width for the CopyTexSubImage fallback</li>
|
||||
</ul>
|
||||
|
||||
<p>José Fonseca (1):</p>
|
||||
<ul>
|
||||
<li>mesa/main: Prevent sefgault on glGetIntegerv(GL_ATOMIC_COUNTER_BUFFER_BINDING).</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (9):</p>
|
||||
<ul>
|
||||
<li>i965: Don't use the head sentinel as an fs_inst in Gen4 workaround code.</li>
|
||||
<li>i965: Invalidate live intervals when inserting Gen4 SEND workarounds.</li>
|
||||
<li>i965/vec4: Fix dead code elimination for VGRFs of size > 1.</li>
|
||||
<li>i965: Add missing MOCS setup for 3DSTATE_INDEX_BUFFER on Broadwell.</li>
|
||||
<li>i965: Drop Broadwell perf_debugs about missing MOCS that aren't missing.</li>
|
||||
<li>i965: Add missing newlines to a few perf_debug messages.</li>
|
||||
<li>i965/vec4: Use the sampler for pull constant loads on Broadwell.</li>
|
||||
<li>i965: Use 8x4 aligned rectangles for HiZ operations on Broadwell.</li>
|
||||
<li>i965: Save meta stencil blit programs in the context.</li>
|
||||
</ul>
|
||||
|
||||
<p>Kristian Høgsberg (1):</p>
|
||||
<ul>
|
||||
<li>mesa: Remove glClear optimization based on drawable size</li>
|
||||
</ul>
|
||||
|
||||
<p>Michel Dänzer (1):</p>
|
||||
<ul>
|
||||
<li>configure: Only check for OpenCL without LLVM when the latter is certain</li>
|
||||
</ul>
|
||||
|
||||
<p>Neil Roberts (1):</p>
|
||||
<ul>
|
||||
<li>i965: Set the fast clear color value for texture surfaces</li>
|
||||
</ul>
|
||||
|
||||
<p>Tom Stellard (2):</p>
|
||||
<ul>
|
||||
<li>clover: Prevent Clang from printing number of errors and warnings to stderr.</li>
|
||||
<li>clover: Don't use llvm's global context</li>
|
||||
</ul>
|
||||
|
||||
<p>Ville Syrjälä (1):</p>
|
||||
<ul>
|
||||
<li>i915: Fix gen2 texblend setup</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,130 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 10.2.3 Release Notes / July 7, 2014</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.2.3 is a bug fix release which fixes bugs found since the 10.2.2 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.2.3 implements the OpenGL 3.3 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
|
||||
3.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
e482a96170c98b17d6aba0d6e4dda4b9a2e61c39587bb64ac38cadfa4aba4aeb MesaLib-10.2.3.tar.bz2
|
||||
96cffacaa1c52ae659b3b0f91be2eebf5528b748934256751261fb79ea3d6636 MesaLib-10.2.3.tar.gz
|
||||
82cab6ff14c8038ee39842dbdea0d447a78d119efd8d702d1497bc7c246434e9 MesaLib-10.2.3.zip
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=76223">Bug 76223</a> - </li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79823">Bug 79823</a> - </li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80015">Bug 80015</a> - </li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Aaron Watry (1):</p>
|
||||
<ul>
|
||||
<li>radeon/llvm: Allocate space for kernel metadata operands</li>
|
||||
</ul>
|
||||
|
||||
<p>Carl Worth (2):</p>
|
||||
<ul>
|
||||
<li>docs: Add sha256 sums for the 10.2.2 release</li>
|
||||
<li>cherry-ignore: Add a patch that's been rejected</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (4):</p>
|
||||
<ul>
|
||||
<li>nouveau: dup fd before passing it to device</li>
|
||||
<li>nv50: disable dedicated ubo upload method</li>
|
||||
<li>nv50: do an explicit flush on draw when there are persistent buffers</li>
|
||||
<li>nvc0: add a memory barrier when there are persistent UBOs</li>
|
||||
</ul>
|
||||
|
||||
<p>Jasper St. Pierre (1):</p>
|
||||
<ul>
|
||||
<li>glxext: Send the Drawable's ID in the GLX_BufferSwapComplete event</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (3):</p>
|
||||
<ul>
|
||||
<li>i965: Don't emit SURFACE_STATEs for gather workarounds on Broadwell.</li>
|
||||
<li>i965: Include marketing names for Broadwell GPUs.</li>
|
||||
<li>i965/disasm: Fix INTEL_DEBUG=fs on Broadwell for ARB_fp applications.</li>
|
||||
</ul>
|
||||
|
||||
<p>Michel Dänzer (1):</p>
|
||||
<ul>
|
||||
<li>radeon/llvm: Use the llvm.rsq.clamped intrinsic for RSQ</li>
|
||||
</ul>
|
||||
|
||||
<p>Rob Clark (9):</p>
|
||||
<ul>
|
||||
<li>xa: fix segfault</li>
|
||||
<li>freedreno: use OUT_RELOCW when buffer is written</li>
|
||||
<li>freedreno/a3xx: fix depth/stencil GMEM positioning</li>
|
||||
<li>freedreno/a3xx: fix depth/stencil gmem restore</li>
|
||||
<li>freedreno/a3xx: fix blend opcode</li>
|
||||
<li>freedreno: few caps fixes</li>
|
||||
<li>freedreno/a3xx: texture fixes</li>
|
||||
<li>freedreno: fix for null textures</li>
|
||||
<li>freedreno/a3xx: vtx formats</li>
|
||||
</ul>
|
||||
|
||||
<p>Roland Scheidegger (1):</p>
|
||||
<ul>
|
||||
<li>draw: (trivial) fix clamping of viewport index</li>
|
||||
</ul>
|
||||
|
||||
<p>Takashi Iwai (1):</p>
|
||||
<ul>
|
||||
<li>llvmpipe: Fix zero-division in llvmpipe_texture_layout()</li>
|
||||
</ul>
|
||||
|
||||
<p>Thomas Hellstrom (1):</p>
|
||||
<ul>
|
||||
<li>st/xa: Don't close the drm fd on failure v2</li>
|
||||
</ul>
|
||||
|
||||
<p>Tobias Klausmann (1):</p>
|
||||
<ul>
|
||||
<li>nv50/ir: allow gl_ViewportIndex to work on non-provoking vertices</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,127 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 10.2.4 Release Notes / July 18, 2014</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.2.4 is a bug fix release which fixes bugs found since the 10.2.3 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.2.4 implements the OpenGL 3.3 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
|
||||
3.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
06a2341244eb85c283f59f70161e06ded106f835ed9b6be1ef0243bd9344811a MesaLib-10.2.4.tar.bz2
|
||||
33e3c8b4343503e7d7d17416c670438860a2fd99ec93ea3327f73c3abe33b5e4 MesaLib-10.2.4.tar.gz
|
||||
e26791a4a62a61b82e506e6ba031812d09697d1a831e8239af67e5722a8ee538 MesaLib-10.2.4.zip
|
||||
</pre>
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=81157">Bug 81157</a> - [BDW]Piglit some spec_glsl-1.50_execution_built-in-functions* cases fail</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Abdiel Janulgue (3):</p>
|
||||
<ul>
|
||||
<li>i965/fs: Refactor check for potential copy propagated instructions.</li>
|
||||
<li>i965/fs: skip copy-propate for logical instructions with negated src entries</li>
|
||||
<li>i965/vec4: skip copy-propate for logical instructions with negated src entries</li>
|
||||
</ul>
|
||||
|
||||
<p>Brian Paul (3):</p>
|
||||
<ul>
|
||||
<li>mesa: fix geometry shader memory leaks</li>
|
||||
<li>st/mesa: fix geometry shader memory leak</li>
|
||||
<li>gallium/u_blitter: fix some shader memory leaks</li>
|
||||
</ul>
|
||||
|
||||
<p>Carl Worth (2):</p>
|
||||
<ul>
|
||||
<li>docs: Add sha256 checksums for the 10.2.3 release</li>
|
||||
<li>Update VERSION to 10.2.4</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (1):</p>
|
||||
<ul>
|
||||
<li>i965: Generalize the pixel_x/y workaround for all UW types.</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (4):</p>
|
||||
<ul>
|
||||
<li>nv50/ir: retrieve shadow compare from first arg</li>
|
||||
<li>nv50/ir: ignore bias for samplerCubeShadow on nv50</li>
|
||||
<li>nvc0/ir: do quadops on the right texture coordinates for TXD</li>
|
||||
<li>nvc0/ir: use manual TXD when offsets are involved</li>
|
||||
</ul>
|
||||
|
||||
<p>Jordan Justen (1):</p>
|
||||
<ul>
|
||||
<li>i965: Add auxiliary surface field #defines for Broadwell.</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (9):</p>
|
||||
<ul>
|
||||
<li>i965: Don't copy propagate abs into Broadwell logic instructions.</li>
|
||||
<li>i965: Set execution size to 8 for instructions with force_sechalf set.</li>
|
||||
<li>i965/fs: Set force_uncompressed and force_sechalf on samplepos setup.</li>
|
||||
<li>i965/fs: Use WE_all for gl_SampleID header register munging.</li>
|
||||
<li>i965: Add plumbing for Broadwell's auxiliary surface support.</li>
|
||||
<li>i965: Drop SINT workaround for CMS layout on Broadwell.</li>
|
||||
<li>i965: Hook up the MCS buffers in SURFACE_STATE on Broadwell.</li>
|
||||
<li>i965: Add 2x MSAA support to the MCS allocation function.</li>
|
||||
<li>i965: Enable compressed multisample support (CMS) on Broadwell.</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (4):</p>
|
||||
<ul>
|
||||
<li>gallium: fix u_default_transfer_inline_write for textures</li>
|
||||
<li>st/mesa: fix samplerCubeShadow with bias</li>
|
||||
<li>radeonsi: fix samplerCubeShadow with bias</li>
|
||||
<li>radeonsi: add support for TXB2</li>
|
||||
</ul>
|
||||
|
||||
<p>Matt Turner (8):</p>
|
||||
<ul>
|
||||
<li>i965/vec4: Don't return void from a void function.</li>
|
||||
<li>i965/vec4: Don't fix_math_operand() on Gen >= 8.</li>
|
||||
<li>i965/fs: Don't fix_math_operand() on Gen >= 8.</li>
|
||||
<li>i965/fs: Make try_constant_propagate() static.</li>
|
||||
<li>i965/fs: Constant propagate into 2-src math instructions on Gen8.</li>
|
||||
<li>i965/vec4: Constant propagate into 2-src math instructions on Gen8.</li>
|
||||
<li>i965/fs: Don't use brw_imm_* unnecessarily.</li>
|
||||
<li>i965/fs: Set correct number of regs_written for MCS fetches.</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,188 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 10.2.5 Release Notes / August 2, 2014</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.2.5 is a bug fix release which fixes bugs found since the 10.2.4 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.2.5 implements the OpenGL 3.3 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
|
||||
3.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
b4459f0bf7f4a3c8fb78ece3c9d2eac3d0e5bf38cb470f2a72705e744bd0310d MesaLib-10.2.5.tar.bz2
|
||||
7b4dd0cb683f8c7dc48a3e7a315742bed58ddcd7b756c462aca4177bd1acdc79 MesaLib-10.2.5.tar.gz
|
||||
6180565914fb238dd77ccdaff96b6155d9a6e1b3e981ebbf6a6851301b384fed MesaLib-10.2.5.zip
|
||||
</pre>
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80991">Bug 80991</a> - [BDW]Piglit spec_ARB_sample_shading_builtin-gl-sample-mask_2 fails</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Abdiel Janulgue (3):</p>
|
||||
<ul>
|
||||
<li>i965/fs: Refactor check for potential copy propagated instructions.</li>
|
||||
<li>i965/fs: skip copy-propate for logical instructions with negated src entries</li>
|
||||
<li>i965/vec4: skip copy-propate for logical instructions with negated src entries</li>
|
||||
</ul>
|
||||
|
||||
<p>Adel Gadllah (1):</p>
|
||||
<ul>
|
||||
<li>i915: Fix up intelInitScreen2 for DRI3</li>
|
||||
</ul>
|
||||
|
||||
<p>Anuj Phogat (2):</p>
|
||||
<ul>
|
||||
<li>i965: Fix z_offset computation in intel_miptree_unmap_depthstencil()</li>
|
||||
<li>mesa: Don't use memcpy() in _mesa_texstore() for float depth texture data</li>
|
||||
</ul>
|
||||
|
||||
<p>Brian Paul (3):</p>
|
||||
<ul>
|
||||
<li>mesa: fix geometry shader memory leaks</li>
|
||||
<li>st/mesa: fix geometry shader memory leak</li>
|
||||
<li>gallium/u_blitter: fix some shader memory leaks</li>
|
||||
</ul>
|
||||
|
||||
<p>Carl Worth (6):</p>
|
||||
<ul>
|
||||
<li>docs: Add sha256 checksums for the 10.2.3 release</li>
|
||||
<li>Update VERSION to 10.2.4</li>
|
||||
<li>Add release notes for 10.2.4</li>
|
||||
<li>docs: Add SHA256 checksums for the 10.2.4 release</li>
|
||||
<li>cherry-ignore: Ignore a few patches picked in the previous stable release</li>
|
||||
<li>Update version to 10.2.5</li>
|
||||
</ul>
|
||||
|
||||
<p>Christian König (1):</p>
|
||||
<ul>
|
||||
<li>radeonsi: fix order of r600_need_dma_space and r600_context_bo_reloc</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (1):</p>
|
||||
<ul>
|
||||
<li>i965: Generalize the pixel_x/y workaround for all UW types.</li>
|
||||
</ul>
|
||||
|
||||
<p>Ian Romanick (2):</p>
|
||||
<ul>
|
||||
<li>mesa: Don't allow GL_TEXTURE_BORDER queries outside compat profile</li>
|
||||
<li>mesa: Don't allow GL_TEXTURE_{LUMINANCE,INTENSITY}_* queries outside compat profile</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (5):</p>
|
||||
<ul>
|
||||
<li>nv50/ir: retrieve shadow compare from first arg</li>
|
||||
<li>nv50/ir: ignore bias for samplerCubeShadow on nv50</li>
|
||||
<li>nvc0/ir: do quadops on the right texture coordinates for TXD</li>
|
||||
<li>nvc0/ir: use manual TXD when offsets are involved</li>
|
||||
<li>nvc0: make sure that the local memory allocation is aligned to 0x10</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (2):</p>
|
||||
<ul>
|
||||
<li>main/format_pack: Fix a wrong datatype in pack_ubyte_R8G8_UNORM</li>
|
||||
<li>main/get_hash_params: Add GL_SAMPLE_SHADING_ARB</li>
|
||||
</ul>
|
||||
|
||||
<p>Jordan Justen (1):</p>
|
||||
<ul>
|
||||
<li>i965: Add auxiliary surface field #defines for Broadwell.</li>
|
||||
</ul>
|
||||
|
||||
<p>José Fonseca (1):</p>
|
||||
<ul>
|
||||
<li>st/wgl: Clamp wglChoosePixelFormatARB's output nNumFormats to nMaxFormats.</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (13):</p>
|
||||
<ul>
|
||||
<li>i965: Don't copy propagate abs into Broadwell logic instructions.</li>
|
||||
<li>i965: Set execution size to 8 for instructions with force_sechalf set.</li>
|
||||
<li>i965/fs: Set force_uncompressed and force_sechalf on samplepos setup.</li>
|
||||
<li>i965/fs: Use WE_all for gl_SampleID header register munging.</li>
|
||||
<li>i965: Add plumbing for Broadwell's auxiliary surface support.</li>
|
||||
<li>i965: Drop SINT workaround for CMS layout on Broadwell.</li>
|
||||
<li>i965: Hook up the MCS buffers in SURFACE_STATE on Broadwell.</li>
|
||||
<li>i965: Add 2x MSAA support to the MCS allocation function.</li>
|
||||
<li>i965: Enable compressed multisample support (CMS) on Broadwell.</li>
|
||||
<li>i965: Add missing persample_shading field to brw_wm_debug_recompile.</li>
|
||||
<li>i965/fs: Fix gl_SampleID for 2x MSAA and SIMD16 mode.</li>
|
||||
<li>i965/fs: Fix gl_SampleMask handling for SIMD16 on Gen8+.</li>
|
||||
<li>i965/fs: Set LastRT on the final FB write on Broadwell.</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (14):</p>
|
||||
<ul>
|
||||
<li>gallium: fix u_default_transfer_inline_write for textures</li>
|
||||
<li>st/mesa: fix samplerCubeShadow with bias</li>
|
||||
<li>radeonsi: fix samplerCubeShadow with bias</li>
|
||||
<li>radeonsi: add support for TXB2</li>
|
||||
<li>r600g: switch SNORM conversion to DX and GLES behavior</li>
|
||||
<li>radeonsi: fix CMASK and HTILE calculations for Hawaii</li>
|
||||
<li>gallium/util: add a helper for calculating primitive count from vertex count</li>
|
||||
<li>radeonsi: fix a hang with instancing on Hawaii</li>
|
||||
<li>radeonsi: fix a hang with streamout on Hawaii</li>
|
||||
<li>winsys/radeon: fix vram_size overflow with Hawaii</li>
|
||||
<li>radeonsi: fix occlusion queries on Hawaii</li>
|
||||
<li>r600g,radeonsi: switch all occurences of array_size to util_max_layer</li>
|
||||
<li>radeonsi: fix build because of lack of draw_indirect infrastructure in 10.2</li>
|
||||
<li>radeonsi: use DRAW_PREAMBLE on CIK</li>
|
||||
</ul>
|
||||
|
||||
<p>Matt Turner (8):</p>
|
||||
<ul>
|
||||
<li>i965/vec4: Don't return void from a void function.</li>
|
||||
<li>i965/vec4: Don't fix_math_operand() on Gen >= 8.</li>
|
||||
<li>i965/fs: Don't fix_math_operand() on Gen >= 8.</li>
|
||||
<li>i965/fs: Make try_constant_propagate() static.</li>
|
||||
<li>i965/fs: Constant propagate into 2-src math instructions on Gen8.</li>
|
||||
<li>i965/vec4: Constant propagate into 2-src math instructions on Gen8.</li>
|
||||
<li>i965/fs: Don't use brw_imm_* unnecessarily.</li>
|
||||
<li>i965/fs: Set correct number of regs_written for MCS fetches.</li>
|
||||
</ul>
|
||||
|
||||
<p>Thorsten Glaser (1):</p>
|
||||
<ul>
|
||||
<li>nv50: fix build failure on m68k due to invalid struct alignment assumptions</li>
|
||||
</ul>
|
||||
|
||||
<p>Tom Stellard (1):</p>
|
||||
<ul>
|
||||
<li>clover: Call end_query before getting timestamp result v2</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,118 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 10.2.6 Release Notes / August 19, 2014</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.2.6 is a bug fix release which fixes bugs found since the 10.2.5 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.2.6 implements the OpenGL 3.3 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
|
||||
3.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
193314d2adba98e43697d726739ac46b4299aae324fa1821aa226890c28ac806 MesaLib-10.2.6.tar.bz2
|
||||
f7a45a5977b485eb95ac024205c584a0c112fe3951c2313c797579bb16a7a448 MesaLib-10.2.6.tar.gz
|
||||
6d086d6fcda8f317adfaaae40011decf2f2e2dc80819c4a7a77c76f73512e8d8 MesaLib-10.2.6.zip
|
||||
</pre>
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=81450">Bug 81450</a> - [BDW]Piglit spec_glsl-1.30_execution_tex-miplevel-selection_textureGrad_1DArray cases intel_do_flush_locked failed</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Anuj Phogat (15):</p>
|
||||
<ul>
|
||||
<li>mesa: Fix error condition for valid texture targets in glTexStorage* functions</li>
|
||||
<li>mesa: Turn target_can_be_compressed() in to a utility function</li>
|
||||
<li>mesa: Add error condition for using compressed internalformat in glTexStorage3D()</li>
|
||||
<li>mesa: Fix condition for using compressed internalformat in glCompressedTexImage3D()</li>
|
||||
<li>mesa: Add utility function _mesa_is_enum_format_snorm()</li>
|
||||
<li>mesa: Don't allow snorm internal formats in glCopyTexImage*() in GLES3</li>
|
||||
<li>mesa: Add a helper function _mesa_is_enum_format_unsized()</li>
|
||||
<li>mesa: Add a gles3 error condition for sized internalformat in glCopyTexImage*()</li>
|
||||
<li>mesa: Add gles3 error condition for GL_RGBA10_A2 buffer format in glCopyTexImage*()</li>
|
||||
<li>mesa: Add utility function _mesa_is_enum_format_unorm()</li>
|
||||
<li>mesa: Add gles3 condition for normalized internal formats in glCopyTexImage*()</li>
|
||||
<li>mesa: Allow GL_TEXTURE_CUBE_MAP target with compressed internal formats</li>
|
||||
<li>meta: Use _mesa_get_format_bits() to get the GL_RED_BITS</li>
|
||||
<li>egl: Fix OpenGL ES version checks in _eglParseContextAttribList()</li>
|
||||
<li>meta: Fix datatype computation in get_temp_image_type()</li>
|
||||
</ul>
|
||||
|
||||
<p>Brian Paul (1):</p>
|
||||
<ul>
|
||||
<li>mesa: fix assertion in _mesa_drawbuffers()</li>
|
||||
</ul>
|
||||
|
||||
<p>Carl Worth (2):</p>
|
||||
<ul>
|
||||
<li>docs: Add sha256 sums to the 10.2.5 release notes</li>
|
||||
<li>Update VERSION to 10.2.6</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (1):</p>
|
||||
<ul>
|
||||
<li>mesa/st: only convert AND(a, NOT(b)) into MAD when not using native integers</li>
|
||||
</ul>
|
||||
|
||||
<p>Jordan Justen (1):</p>
|
||||
<ul>
|
||||
<li>i965/miptree: Layout 1D Array as 2D Array with height of 1</li>
|
||||
</ul>
|
||||
|
||||
<p>Maarten Lankhorst (1):</p>
|
||||
<ul>
|
||||
<li>configure.ac: Do not require llvm on x32</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (4):</p>
|
||||
<ul>
|
||||
<li>st/mesa: fix blit-based partial TexSubImage for 1D arrays</li>
|
||||
<li>radeon,r200: fix buffer validation after CS flush</li>
|
||||
<li>radeonsi: fix a hang with instancing in Unigine Heaven/Valley on Hawaii</li>
|
||||
<li>radeonsi: fix CMASK and HTILE allocation on Tahiti</li>
|
||||
</ul>
|
||||
|
||||
<p>Pali Rohár (1):</p>
|
||||
<ul>
|
||||
<li>configure: check for dladdr via AC_CHECK_FUNC/AC_CHECK_LIB</li>
|
||||
</ul>
|
||||
|
||||
<p>Roland Scheidegger (1):</p>
|
||||
<ul>
|
||||
<li>gallivm: fix up out-of-bounds level when using conformant out-of-bound behavior</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -14,7 +14,7 @@
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 10.2 Release Notes / June 6, 2014</h1>
|
||||
<h1>Mesa 10.2 Release Notes / TBD</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.2 is a new development release.
|
||||
@@ -33,9 +33,7 @@ because compatibility contexts are not supported.
|
||||
|
||||
<h2>MD5 checksums</h2>
|
||||
<pre>
|
||||
c87bfb6dd5cbcf1fdef42e5ccd972581 MesaLib-10.2.0.tar.gz
|
||||
7aaba90bd7169a94ae2fe83febdec963 MesaLib-10.2.0.tar.bz2
|
||||
58b203aca15dadc25ab4d1126db1052b MesaLib-10.2.0.zip
|
||||
TBD.
|
||||
</pre>
|
||||
|
||||
|
||||
@@ -88,8 +86,6 @@ following options during configure, if you would like support for svga driver
|
||||
Note: The files are installed in $(libdir)/gallium-pipe/ and the interface
|
||||
between them and libxatracker.so is <strong>not</strong> stable.
|
||||
</p>
|
||||
|
||||
<li>The environment variable GALLIUM_MSAA that forced a multisample GLX visual was removed.</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
@@ -1,158 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 10.3.1 Release Notes / October 12, 2014</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.3.1 is a bug fix release which fixes bugs found since the 10.3 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.3.1 implements the OpenGL 3.3 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
|
||||
3.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
155afcbad17be8bb80282c761b957d5cc716c14a1fa16c4f5ee04e76df729c6d MesaLib-10.3.1.tar.gz
|
||||
b081d077d717e5d56f2d59677490856052c41573e50378ff86d6c72456714add MesaLib-10.3.1.tar.bz2
|
||||
07a14febfed06412d519e091a62d24513fee6745f1a6f8a8f1956bfe04b77d15 MesaLib-10.3.1.zip
|
||||
</pre>
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79462">Bug 79462</a> - [NVC0/Codegen] Shader compilation falis in spill logic</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82932">Bug 82932</a> - [SNB+ Bisected]Ogles3conform ES3-CTS.shaders.indexing.vector_subscript.vec3_static_loop_subscript_write_direct_read_vertex fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83506">Bug 83506</a> - [UBO] row_major layout ignored inside structures</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83533">Bug 83533</a> - [UBO] nested structures don't get appropriate padding</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83570">Bug 83570</a> - Glyphy demo throws unhandled Integer division by zero exception</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83741">Bug 83741</a> - [UBO] row_major layout partially ignored for arrays of structures</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=84178">Bug 84178</a> - Big glamor regression in Xorg server 1.6.99.1 GIT: x11perf 1.5 Test: PutImage XY 500x500 Square</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Andreas Pokorny (2):</p>
|
||||
<ul>
|
||||
<li>egl/drm: expose KHR_image_pixmap extension</li>
|
||||
<li>i915: Fix black buffers when importing prime fds</li>
|
||||
</ul>
|
||||
|
||||
<p>Brian Paul (1):</p>
|
||||
<ul>
|
||||
<li>mesa: fix prog_optimize.c assertions triggered by SWZ opcode</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (2):</p>
|
||||
<ul>
|
||||
<li>docs: Add 10.3 sha256 sums, news item and link release notes</li>
|
||||
<li>Update VERSION to 10.3.1</li>
|
||||
</ul>
|
||||
|
||||
<p>Ian Romanick (4):</p>
|
||||
<ul>
|
||||
<li>glsl: Make sure fields after small structs have correct padding</li>
|
||||
<li>glsl: Make sure row-major array-of-structure get correct layout</li>
|
||||
<li>glsl: Round struct size up to at least 16 bytes</li>
|
||||
<li>glsl: Strip arrayness from ir_type_dereference_variable too</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (5):</p>
|
||||
<ul>
|
||||
<li>nv50/ir: avoid deleting pseudo instructions too early</li>
|
||||
<li>gm107/ir: fix manual TXD for array targets</li>
|
||||
<li>gm107/ir: fix texture argument order</li>
|
||||
<li>gm107/ir: add support for indirect const buffer selection</li>
|
||||
<li>gm107/ir: take relative pfetch offset into account</li>
|
||||
</ul>
|
||||
|
||||
<p>Keith Packard (1):</p>
|
||||
<ul>
|
||||
<li>glx/dri3: Provide error diagnostics when DRI3 allocation fails</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (2):</p>
|
||||
<ul>
|
||||
<li>mesa: Use proper structure for glGet*(GL_TEXTURE_COORD_ARRAY*).</li>
|
||||
<li>mesa: Set correct array element in vbo_exec_vtx_init.</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (3):</p>
|
||||
<ul>
|
||||
<li>radeonsi: release GS rings at context destruction</li>
|
||||
<li>radeonsi: properly destroy the GS copy shader and scratch_bo for compute</li>
|
||||
<li>st/dri: remove GALLIUM_MSAA and __GL_FSAA_MODE environment variables</li>
|
||||
</ul>
|
||||
|
||||
<p>Michel Dänzer (1):</p>
|
||||
<ul>
|
||||
<li>st/mesa: Use PIPE_USAGE_STAGING for GL_STATIC/DYNAMIC/STREAM_READ buffers</li>
|
||||
</ul>
|
||||
|
||||
<p>Richard Sandiford (2):</p>
|
||||
<ul>
|
||||
<li>mesa: Fix alpha component in unpack_R8G8B8X8_SRGB.</li>
|
||||
<li>swrast: Fix handling of MESA_FORMAT_L8A8_SRGB for big-endian</li>
|
||||
</ul>
|
||||
|
||||
<p>Roland Scheidegger (1):</p>
|
||||
<ul>
|
||||
<li>gallivm: fix idiv</li>
|
||||
</ul>
|
||||
|
||||
<p>Thomas Hellstrom (1):</p>
|
||||
<ul>
|
||||
<li>st/xa: Fix regression in xa_yuv_planar_blit()</li>
|
||||
</ul>
|
||||
|
||||
<p>Tom Stellard (2):</p>
|
||||
<ul>
|
||||
<li>clover: Add support to mem objects for multiple destructor callbacks v2</li>
|
||||
<li>configure.ac: Compute LLVM_VERSION_PATCH using llvm-config</li>
|
||||
</ul>
|
||||
|
||||
<p>Tomasz Figa (3):</p>
|
||||
<ul>
|
||||
<li>util: Include in Android builds</li>
|
||||
<li>st/mesa: Generate format_info.c in Android builds</li>
|
||||
<li>st/mesa: Fix paths used in Android builds</li>
|
||||
</ul>
|
||||
|
||||
<p>rconde (1):</p>
|
||||
<ul>
|
||||
<li>gallivm,tgsi: fix idiv by zero crash</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,115 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 10.3.2 Release Notes / October 24, 2014</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.3.2 is a bug fix release which fixes bugs found since the 10.3 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.3.2 implements the OpenGL 3.3 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
|
||||
3.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
e65f8e691f06f111c1aeb3a376b13c9cc88cb162bee2709e0e7e6b0e6628ca75 MesaLib-10.3.2.tar.gz
|
||||
e9849bcb9aa9acd98a753d6d46d2e7d7238d3367036e11357a60efd16de8bea3 MesaLib-10.3.2.tar.bz2
|
||||
427dc0d670d38e713ebff2675665ec2fe4ff7d04ce227bd54de946999fc1d234 MesaLib-10.3.2.zip
|
||||
</pre>
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=54372">Bug 54372</a> - GLX_INTEL_swap_event crashes driver when swapping window buffers</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=81680">Bug 81680</a> - [r600g] Firefox crashes with hardware acceleration turned on</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=84140">Bug 84140</a> - mplayer crashes playing some files using vdpau output</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=84662">Bug 84662</a> - Long pauses with Unreal demo Elemental on R9270X since : Always flush the HDP cache before submitting a CS to the GPU</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=85267">Bug 85267</a> - vlc crashes with vdpau (Radeon 3850HD) [r600]</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Brian Paul (3):</p>
|
||||
<ul>
|
||||
<li>mesa: fix spurious wglGetProcAddress / GL_INVALID_OPERATION error</li>
|
||||
<li>st/wgl: add WINAPI qualifiers on wgl function typedefs</li>
|
||||
<li>glsl: fix several use-after-free bugs</li>
|
||||
</ul>
|
||||
|
||||
<p>Daniel Manjarres (1):</p>
|
||||
<ul>
|
||||
<li>glx: Fix glxUseXFont for glxWindow and glxPixmaps</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (1):</p>
|
||||
<ul>
|
||||
<li>mesa: fix GetTexImage for 1D array depth textures</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (2):</p>
|
||||
<ul>
|
||||
<li>docs: Add sha256 sums for the 10.3.1 release</li>
|
||||
<li>Update VERSION to 10.3.2</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (4):</p>
|
||||
<ul>
|
||||
<li>gm107/ir: add dnz emission for fmul</li>
|
||||
<li>gk110/ir: add dnz flag emission for fmul/fmad</li>
|
||||
<li>nouveau: 3d textures are unsupported, limit 3d levels to 1</li>
|
||||
<li>st/gbm: fix order of arguments passed to is_format_supported</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (3):</p>
|
||||
<ul>
|
||||
<li>i965: Add a BRW_MOCS_PTE #define.</li>
|
||||
<li>i965: Use BDW_MOCS_PTE for renderbuffers.</li>
|
||||
<li>i965: Fix register write checks.</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (2):</p>
|
||||
<ul>
|
||||
<li>st/mesa: use pipe_sampler_view_release for releasing sampler views</li>
|
||||
<li>glsl_to_tgsi: fix the value of gl_FrontFacing with native integers</li>
|
||||
</ul>
|
||||
|
||||
<p>Michel Dänzer (4):</p>
|
||||
<ul>
|
||||
<li>radeonsi: Clear sampler view flags when binding a buffer</li>
|
||||
<li>r600g,radeonsi: Always use GTT again for PIPE_USAGE_STREAM buffers</li>
|
||||
<li>winsys/radeon: Use separate caching buffer manager for each set of flags</li>
|
||||
<li>r600g: Drop references to destroyed blend state</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,209 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 10.3.3 Release Notes / November 8, 2014</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.3.3 is a bug fix release which fixes bugs found since the 10.3.2 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.3.3 implements the OpenGL 3.3 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
|
||||
3.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
23a0c36d88cd5d8968ae6454160de2878192fd1d37b5d606adca1f1b7e788b79 MesaLib-10.3.3.tar.gz
|
||||
0e4eee4a2ddf86456eed2fc44da367f95471f74249636710491e85cc256c4753 MesaLib-10.3.3.tar.bz2
|
||||
a83648f17d776b7cf6c813fbb15782d2644b937dc6a7c53d8c0d1b35411f4840 MesaLib-10.3.3.zip
|
||||
</pre>
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70410">Bug 70410</a> - egl-static/Makefile: linking fails with llvm >= 3.4</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82921">Bug 82921</a> - layout(location=0) emits error >= MAX_UNIFORM_LOCATIONS due to integer underflow</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83574">Bug 83574</a> - [llvmpipe] [softpipe] piglit arb_explicit_uniform_location-use-of-unused-loc regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=85454">Bug 85454</a> - Unigine Sanctuary with Wine crashes on Mesa Git</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=85918">Bug 85918</a> - Mesa: MSVC 2010/2012 Compile error</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Anuj Phogat (2):</p>
|
||||
<ul>
|
||||
<li>glsl: Fix crash due to negative array index</li>
|
||||
<li>glsl: Use signed array index in update_max_array_access()</li>
|
||||
</ul>
|
||||
|
||||
<p>Brian Paul (1):</p>
|
||||
<ul>
|
||||
<li>mesa: fix UNCLAMPED_FLOAT_TO_UBYTE() macro for MSVC</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (2):</p>
|
||||
<ul>
|
||||
<li>docs: Add sha256 sums for the 10.3.2 release</li>
|
||||
<li>Update version to 10.3.3</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (27):</p>
|
||||
<ul>
|
||||
<li>freedreno/ir3: fix FSLT/etc handling to return 0/-1 instead of 0/1.0</li>
|
||||
<li>freedreno/ir3: INEG operates on src0, not src1</li>
|
||||
<li>freedreno/ir3: add UARL support</li>
|
||||
<li>freedreno/ir3: negate result of USLT/etc</li>
|
||||
<li>freedreno/ir3: use unsigned comparison for UIF</li>
|
||||
<li>freedreno/ir3: add TXL support</li>
|
||||
<li>freedreno/ir3: fix UCMP handling</li>
|
||||
<li>freedreno/ir3: implement UMUL correctly</li>
|
||||
<li>freedreno: add default .dir-locals.el for emacs settings</li>
|
||||
<li>freedreno/ir3: make texture instruction construction more dynamic</li>
|
||||
<li>freedreno/ir3: fix TXB/TXL to actually pull the bias/lod argument</li>
|
||||
<li>freedreno/ir3: add TXQ support</li>
|
||||
<li>freedreno/ir3: add TXB2 support</li>
|
||||
<li>freedreno: dual-source render targets are not supported</li>
|
||||
<li>freedreno: instanced drawing/compute not yet supported</li>
|
||||
<li>freedreno/ir3: avoid fan-in sources referring to same instruction</li>
|
||||
<li>freedreno/ir3: add IDIV/UDIV support</li>
|
||||
<li>freedreno/ir3: add UMOD support, based on UDIV</li>
|
||||
<li>freedreno/ir3: add MOD support</li>
|
||||
<li>freedreno/ir3: add ISSG support</li>
|
||||
<li>freedreno/ir3: add UMAD support</li>
|
||||
<li>freedreno/ir3: make TXQ return integers, not floats</li>
|
||||
<li>freedreno/ir3: shadow comes before array</li>
|
||||
<li>freedreno/ir3: add texture offset support</li>
|
||||
<li>freedreno/ir3: add TXD support and expose ARB_shader_texture_lod</li>
|
||||
<li>freedreno/ir3: add TXF support</li>
|
||||
<li>freedreno: positions come out as integers, not half-integers</li>
|
||||
</ul>
|
||||
|
||||
<p>Jan Vesely (1):</p>
|
||||
<ul>
|
||||
<li>configure: include llvm systemlibs when using static llvm</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (5):</p>
|
||||
<ul>
|
||||
<li>r600g: fix polygon mode for points and lines and point/line fill modes</li>
|
||||
<li>radeonsi: fix polygon mode for points and lines and point/line fill modes</li>
|
||||
<li>radeonsi: fix incorrect index buffer max size for lowered 8-bit indices</li>
|
||||
<li>Revert "st/mesa: set MaxUnrollIterations = 255"</li>
|
||||
<li>r300g: remove enabled/disabled hyperz and AA compression messages</li>
|
||||
</ul>
|
||||
|
||||
<p>Mauro Rossi (1):</p>
|
||||
<ul>
|
||||
<li>gallium/nouveau: fully build the driver under android</li>
|
||||
</ul>
|
||||
|
||||
<p>Michel Dänzer (1):</p>
|
||||
<ul>
|
||||
<li>radeon/llvm: Dynamically allocate branch/loop stack arrays</li>
|
||||
</ul>
|
||||
|
||||
<p>Rob Clark (62):</p>
|
||||
<ul>
|
||||
<li>freedreno/ir3: detect scheduler fail</li>
|
||||
<li>freedreno/ir3: add TXB</li>
|
||||
<li>freedreno/ir3: add DDX/DDY</li>
|
||||
<li>freedreno/ir3: bit of debug</li>
|
||||
<li>freedreno/ir3: fix error in bail logic</li>
|
||||
<li>freedreno/ir3: fix constlen with relative addressing</li>
|
||||
<li>freedreno/ir3: add no-copy-propagate fallback step</li>
|
||||
<li>freedreno: don't overflow cmdstream buffer so much</li>
|
||||
<li>freedreno/ir3: fix potential segfault in RA</li>
|
||||
<li>freedreno: update generated headers</li>
|
||||
<li>freedreno/a3xx: enable hw primitive-restart</li>
|
||||
<li>freedreno/a3xx: handle rendering to layer != 0</li>
|
||||
<li>freedreno: update generated headers</li>
|
||||
<li>freedreno/a3xx: format fixes</li>
|
||||
<li>util/u_format: add _is_alpha()</li>
|
||||
<li>freedreno/a3xx: alpha render-target shenanigans</li>
|
||||
<li>freedreno/ir3: catch incorrect usage of tmp-dst</li>
|
||||
<li>freedreno/ir3: add missing put_dst</li>
|
||||
<li>freedreno: "fix" problems with excessive flushes</li>
|
||||
<li>freedreno: update generated headers</li>
|
||||
<li>freedreno/a3xx: 3d/array textures</li>
|
||||
<li>freedreno: add DRM_CONF_SHARE_FD</li>
|
||||
<li>freedreno/a3xx: more texture array fixes</li>
|
||||
<li>freedreno/a3xx: initial texture border-color</li>
|
||||
<li>freedreno: fix compiler warning</li>
|
||||
<li>freedreno: don't advertise mirror-clamp support</li>
|
||||
<li>freedreno: update generated headers</li>
|
||||
<li>freedreno: we have more than 0 viewports!</li>
|
||||
<li>freedreno: turn missing caps into compile warnings</li>
|
||||
<li>freedreno/a3xx: add LOD_BIAS</li>
|
||||
<li>freedreno/a3xx: add flat interpolation mode</li>
|
||||
<li>freedreno/a3xx: add 32bit integer vtx formats</li>
|
||||
<li>freedreno/a3xx: fix border color order</li>
|
||||
<li>freedreno: move bind_sampler_states to per-generation</li>
|
||||
<li>freedreno: add texcoord clamp support to lowering</li>
|
||||
<li>freedreno/a3xx: add support to emulate GL_CLAMP</li>
|
||||
<li>freedreno/a3xx: re-emit shaders on variant change</li>
|
||||
<li>freedreno/lowering: fix token calculation for lowering</li>
|
||||
<li>freedreno: destroy transfer pool after blitter</li>
|
||||
<li>freedreno: max-texture-lod-bias should be 15.0f</li>
|
||||
<li>freedreno: update generated headers</li>
|
||||
<li>freedreno/a3xx: handle large shader program sizes</li>
|
||||
<li>freedreno/a3xx: emit all immediates in one shot</li>
|
||||
<li>freedreno/ir3: fix lockups with lame FRAG shaders</li>
|
||||
<li>freedreno/a3xx: handle VS only outputting BCOLOR</li>
|
||||
<li>freedreno: query fixes</li>
|
||||
<li>freedreno/a3xx: refactor vertex state emit</li>
|
||||
<li>freedreno/a3xx: refactor/optimize emit</li>
|
||||
<li>freedreno/ir3: optimize shader key comparision</li>
|
||||
<li>freedreno: inline fd_draw_emit()</li>
|
||||
<li>freedreno: fix layer_stride</li>
|
||||
<li>freedreno: update generated headers</li>
|
||||
<li>freedreno/ir3: large const support</li>
|
||||
<li>freedreno/a3xx: more layer/level fixes</li>
|
||||
<li>freedreno/ir3: comment + better fxn name</li>
|
||||
<li>freedreno/ir3: fix potential gpu lockup with kill</li>
|
||||
<li>freedreno/a3xx: disable early-z when we have kill's</li>
|
||||
<li>freedreno/ir3: add debug flag to disable cp</li>
|
||||
<li>freedreno: clear vs scissor</li>
|
||||
<li>freedreno: mark scissor state dirty when enable bit changes</li>
|
||||
<li>freedreno/a3xx: fix viewport state during clear</li>
|
||||
<li>freedreno/a3xx: fix depth/stencil restore format</li>
|
||||
</ul>
|
||||
|
||||
<p>Tapani Pälli (2):</p>
|
||||
<ul>
|
||||
<li>glsl: fix uniform location count used for glsl types</li>
|
||||
<li>mesa: check that uniform exists in glUniform* functions</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,106 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 10.3.4 Release Notes / November 21, 2014</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.3.4 is a bug fix release which fixes bugs found since the 10.3.3 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.3.4 implements the OpenGL 3.3 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
|
||||
3.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
26482495ef6177f889dbd87c7edcccfedd995598785bbbd7e3e066352574c8e0 MesaLib-10.3.4.tar.gz
|
||||
e6373913142338d10515daf619d659433bfd2989988198930c13b0945a15e98a MesaLib-10.3.4.tar.bz2
|
||||
8c3ebbb6535daf3414305860ebca6ac67dbb6e3d35058c7a6ce18b84b5945b7f MesaLib-10.3.4.zip
|
||||
</pre>
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=76252">Bug 76252</a> - Dynamic loading/unloading of opengl32.dll results in a deadlock</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78770">Bug 78770</a> - [SNB bisected]Webglc conformance/textures/texture-size-limit.html fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83500">Bug 83500</a> - si_dma_copy_tile causes GPU hangs</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=85647">Bug 85647</a> - Random radeonsi crashes with mesa 10.3.x</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
<p>Brian Paul (1):</p>
|
||||
<ul>
|
||||
<li>st/mesa: copy sampler_array_size field when copying instructions</li>
|
||||
</ul>
|
||||
|
||||
<p>Chad Versace (1):</p>
|
||||
<ul>
|
||||
<li>i965: Fix segfault in WebGL Conformance on Ivybridge</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (5):</p>
|
||||
<ul>
|
||||
<li>r600g/cayman: fix integer multiplication output overwrite (v2)</li>
|
||||
<li>r600g/cayman: fix texture gather tests</li>
|
||||
<li>r600g/cayman: handle empty vertex shaders</li>
|
||||
<li>r600g: geom shaders: always load texture src regs from inputs</li>
|
||||
<li>r600g: limit texture offset application to specific types (v2)</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (3):</p>
|
||||
<ul>
|
||||
<li>docs: Add sha256 sums for the 10.3.3 release</li>
|
||||
<li>configure.ac: roll up a program for the sse4.1 check</li>
|
||||
<li>get-pick-list.sh: Require explicit "10.3" for nominating stable patches</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (1):</p>
|
||||
<ul>
|
||||
<li>st/mesa: add a fallback for clear_with_quad when no vs_layer</li>
|
||||
</ul>
|
||||
|
||||
<p>José Fonseca (1):</p>
|
||||
<ul>
|
||||
<li>llvmpipe: Avoid deadlock when unloading opengl32.dll</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (1):</p>
|
||||
<ul>
|
||||
<li>i915g: we also have more than 0 viewports!</li>
|
||||
</ul>
|
||||
|
||||
<p>Michel Dänzer (1):</p>
|
||||
<ul>
|
||||
<li>radeonsi: Disable asynchronous DMA except for PIPE_BUFFER</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,88 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 10.3.5 Release Notes / December 5, 2014</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.3.5 is a bug fix release which fixes bugs found since the 10.3.4 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.3.5 implements the OpenGL 3.3 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
|
||||
3.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
7ea71c3cce89114df3dc050376afa1c6f6bf235d77a68f9703273603d6a90621 MesaLib-10.3.5.tar.gz
|
||||
eb75d2790f1606d59d50a6acaa637b6c75f2155b3e0eca3d5099165c0d9556ae MesaLib-10.3.5.tar.bz2
|
||||
164bc64ba63fb07ff255ff8de6ed3c95ff545dfe8f864c44c33abe94788da910 MesaLib-10.3.5.zip
|
||||
</pre>
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86618">Bug 86618</a> - [NV96] neg modifiers not working in MIN and MAX operations</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
<p>Brian Paul (2):</p>
|
||||
<ul>
|
||||
<li>mesa: fix arithmetic error in _mesa_compute_compressed_pixelstore()</li>
|
||||
<li>mesa: fix height error check for 1D array textures</li>
|
||||
</ul>
|
||||
|
||||
<p>Chris Forbes (2):</p>
|
||||
<ul>
|
||||
<li>i965: Handle nested uniform array indexing</li>
|
||||
<li>mesa: Fix Get(GL_TRANSPOSE_CURRENT_MATRIX_ARB) to transpose</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (2):</p>
|
||||
<ul>
|
||||
<li>docs: Add sha256 sums for the 10.3.5 release</li>
|
||||
<li>Update version to 10.3.5</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (6):</p>
|
||||
<ul>
|
||||
<li>nv50/ir: set neg modifiers on min/max args</li>
|
||||
<li>nv50,nvc0: actually check constbufs for invalidation</li>
|
||||
<li>nv50,nvc0: buffer resources can be bound as other things down the line</li>
|
||||
<li>freedreno/ir3: don't pass consts to madsh.m16 in MOD logic</li>
|
||||
<li>freedreno/a3xx: only enable blend clamp for non-float formats</li>
|
||||
<li>freedreno/ir3: fix UMAD</li>
|
||||
</ul>
|
||||
|
||||
<p>Rob Clark (1):</p>
|
||||
<ul>
|
||||
<li>configure.ac: bump libdrm_freedreno requirement</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,122 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 10.3.6 Release Notes / December 29, 2014</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.3.6 is a bug fix release which fixes bugs found since the 10.3.5 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.3.6 implements the OpenGL 3.3 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
|
||||
3.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
TBD
|
||||
</pre>
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=60879">Bug 60879</a> - [radeonsi] X11 can't start with acceleration enabled</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82585">Bug 82585</a> - geometry shader with optional out variable segfaults</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82991">Bug 82991</a> - Inverted bumpmap in webgl applications</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=84777">Bug 84777</a> - [BSW]Piglit spec_glsl-1.50_execution_geometry-basic fails</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Andres Gomez (1):</p>
|
||||
<ul>
|
||||
<li>i965/brw_reg: struct constructor now needs explicit negate and abs values.</li>
|
||||
</ul>
|
||||
|
||||
<p>Ben Widawsky (1):</p>
|
||||
<ul>
|
||||
<li>i965/gs: Avoid DW * DW mul</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (1):</p>
|
||||
<ul>
|
||||
<li>r600g: only init GS_VERT_ITEMSIZE on r600</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (3):</p>
|
||||
<ul>
|
||||
<li>docs: Add sha256 sums for the 10.3.5 release</li>
|
||||
<li>Revert "glx/dri3: Request non-vsynced Present for swapinterval zero. (v3)"</li>
|
||||
<li>Update version to 10.3.6</li>
|
||||
</ul>
|
||||
|
||||
<p>Ian Romanick (2):</p>
|
||||
<ul>
|
||||
<li>linker: Wrap access of producer_var with a NULL check</li>
|
||||
<li>linker: Assign varying locations geometry shader inputs for SSO</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (3):</p>
|
||||
<ul>
|
||||
<li>util/primconvert: pass index bias through</li>
|
||||
<li>util/primconvert: support instanced rendering</li>
|
||||
<li>util/primconvert: take ib offset into account</li>
|
||||
</ul>
|
||||
|
||||
<p>José Fonseca (1):</p>
|
||||
<ul>
|
||||
<li>util/primconvert: Avoid point arithmetic; apply offset on all cases.</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (1):</p>
|
||||
<ul>
|
||||
<li>docs/relnotes: document the removal of GALLIUM_MSAA</li>
|
||||
</ul>
|
||||
|
||||
<p>Mario Kleiner (4):</p>
|
||||
<ul>
|
||||
<li>glx/dri3: Fix glXWaitForSbcOML() to handle targetSBC==0 correctly. (v2)</li>
|
||||
<li>glx/dri3: Track separate (ust, msc) for PresentPixmap vs. PresentNotifyMsc (v2)</li>
|
||||
<li>glx/dri3: Request non-vsynced Present for swapinterval zero. (v3)</li>
|
||||
<li>glx/dri3: Don't fail on glXSwapBuffersMscOML(dpy, window, 0, 0, 0) (v2)</li>
|
||||
</ul>
|
||||
|
||||
<p>Maxence Le Doré (1):</p>
|
||||
<ul>
|
||||
<li>glsl: Add gl_MaxViewports to available builtin constants</li>
|
||||
</ul>
|
||||
|
||||
<p>Tom Stellard (1):</p>
|
||||
<ul>
|
||||
<li>radeonsi: Program RASTER_CONFIG for harvested GPUs v5</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,335 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 10.3 Release Notes / September 19, 2014</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.3 is a new development release.
|
||||
People who are concerned with stability and reliability should stick
|
||||
with a previous release or wait for Mesa 10.3.1.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.3 implements the OpenGL 3.3 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
|
||||
3.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
9a1bf52040fc3dda81e83a35f944f1c3f532847dbe9fdf57161265cf71ea1bae MesaLib-10.3.0.tar.gz
|
||||
0283bfe710fa449ed82e465cfa09612a269e19abb7e0382082608062ce7960b5 MesaLib-10.3.0.tar.bz2
|
||||
221420763c2c3a244836a736e735612c4a6a0377b4e5223fca1e612f49906789 MesaLib-10.3.0.zip
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
|
||||
<p>
|
||||
Note: some of the new features are only available with certain drivers.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>GL_ARB_ES3_compatibility on nv50, nvc0, r600, radeonsi, softpipe, llvmpipe</li>
|
||||
<li>GL_ARB_clear_texture on i965</li>
|
||||
<li>GL_ARB_compressed_texture_pixel_storage on all drivers</li>
|
||||
<li>GL_ARB_conditional_render_inverted on i965, nvc0, softpipe, llvmpipe</li>
|
||||
<li>GL_ARB_derivative_control on i965, nv50, nvc0, r600</li>
|
||||
<li>GL_ARB_draw_indirect on nvc0, radeonsi</li>
|
||||
<li>GL_ARB_explicit_uniform_location (all drivers that support GLSL)</li>
|
||||
<li>GL_ARB_fragment_layer_viewport on nv50, nvc0, llvmpipe, r600</li>
|
||||
<li>GL_ARB_gpu_shader5 on i965/gen7, nvc0</li>
|
||||
<li>GL_ARB_multi_draw_indirect on nvc0, radeonsi</li>
|
||||
<li>GL_ARB_sample_shading on radeonsi</li>
|
||||
<li>GL_ARB_seamless_cubemap_per_texture on i965, llvmpipe, nvc0, r600, radeonsi, softpipe</li>
|
||||
<li>GL_ARB_stencil_texturing on nv50, nvc0, r600, and radeonsi</li>
|
||||
<li>GL_ARB_texture_barrier on nv50, nvc0, r300, r600, radeonsi</li>
|
||||
<li>GL_ARB_texture_compression_bptc on i965/gen7+, nvc0, r600/evergreen+, radeonsi</li>
|
||||
<li>GL_ARB_texture_cube_map_array on radeonsi</li>
|
||||
<li>GL_ARB_texture_gather on r600, radeonsi</li>
|
||||
<li>GL_ARB_texture_query_levels on nv50, nvc0, llvmpipe, r600, radeonsi, softpipe</li>
|
||||
<li>GL_ARB_texture_query_lod on r600, radeonsi</li>
|
||||
<li>GL_ARB_viewport_array on nvc0</li>
|
||||
<li>GL_AMD_vertex_shader_viewport_index on i965/gen7+, r600</li>
|
||||
<li>GL_OES_compressed_ETC1_RGB8_texture on nv30, nv50, nvc0, r300, r600, radeonsi, softpipe, llvmpipe</li>
|
||||
<li>GLX_MESA_query_renderer on nv30, nv50, nvc0, r300, r600, radeonsi, softpipe, llvmpipe</li>
|
||||
<li>A new software rasterizer driver (kms_swrast_dri.so) that works with
|
||||
DRM drivers that don't have a full-fledged GEM (such as qxl or simpledrm)</li>
|
||||
<li>Distribute the Khronos GL/glcorearb.h header file.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=50754">Bug 50754</a> - Building 32 bit mesa on 64 bit OS fails since change for automake</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=53617">Bug 53617</a> - [llvmpipe] piglit fbo-depthtex regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=54372">Bug 54372</a> - GLX_INTEL_swap_event crashes driver when swapping window buffers</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=56127">Bug 56127</a> - [ILK bisected]unigine-sanctruary performance reduced by 98%</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=66184">Bug 66184</a> - src/mesa/state_tracker/st_glsl_to_tgsi.cpp:3216:simplify_cmp: Assertion `inst->dst.index < 4096' failed.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=66452">Bug 66452</a> - JUNIPER UVD accelerated playback of WMV3 streams does not work</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=68365">Bug 68365</a> - [SNB Bisected]Piglit spec_ARB_framebuffer_object_fbo-blit-stretch fail</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70441">Bug 70441</a> - [Gen4-5 clip] Piglit spec_OpenGL_1.1_polygon-offset hits (execsize >= width) assertion</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=73846">Bug 73846</a> - [llvmpipe] lp_test_format fails with llvm-3.5svn >= r199602</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74005">Bug 74005</a> - [i965 Bisected]Piglit/glx_glx-make-glxdrawable-current fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74863">Bug 74863</a> - [r600g] HyperZ broken on RV770 and CYPRESS (Left 4 Dead 2 trees corruption) bisected!</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=75010">Bug 75010</a> - clang: error: unknown argument: '-fstack-protector-strong'</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=75478">Bug 75478</a> - [BDW]Some Piglit and Ogles2conform cases cause GPU hang</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=75664">Bug 75664</a> - Unigine Valley & Heaven "error: syntax error, unexpected EXTENSION, expecting $end" IVB HD4000</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=75878">Bug 75878</a> - [BDW] GPU hang running Raytracer WebGL demo</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=76188">Bug 76188</a> - EGL_EXT_image_dma_buf_import fd ownership is incorrect</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=76223">Bug 76223</a> - [radeonsi] luxmark segfault</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=76939">Bug 76939</a> - [BDW] GPU hang when running “Metro:Last Light “ /“Crusader Kings II”</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77245">Bug 77245</a> - Bogus GL_ARB_explicit_attrib_location layout identifier warnings</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77493">Bug 77493</a> - lp_test_arit fails with llvm >= llvm-3.5svn r206094</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77703">Bug 77703</a> - [ILK Bisected]Piglit glean_texCombine4 fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77704">Bug 77704</a> - [IVB/HSW Bisected]Ogles3conform GL3Tests_shadow_shadow_execution_frag.test fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77705">Bug 77705</a> - [SNB/IVB/HSW/BYT/BDW Bisected]Ogles3conform GL3Tests/packed_pixels/packed_pixels_pixelstore.test segfault</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77707">Bug 77707</a> - [ILK Bisected]Ogles2conform GL_sin_sin_float_frag_xvary.test fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77740">Bug 77740</a> - i965: Relax accumulator dependency scheduling on Gen < 6</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77852">Bug 77852</a> - [BDW]Piglit spec_ARB_framebuffer_object_fbo-drawbuffers-none_glBlitFramebuffer fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77856">Bug 77856</a> - [BDW]Piglit spec_OpenGL_3.0_clearbuffer-mixed-format fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77865">Bug 77865</a> - [BDW] Many Ogles3conform framebuffer_blit cases fail</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78225">Bug 78225</a> - Compile error due to undefined reference to `gbm_dri_backend', fix attached</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78258">Bug 78258</a> - make check link_varyings.gl_ClipDistance failure</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78403">Bug 78403</a> - query_renderer_implementation_unittest.cpp:144:4: error: expected primary-expression before ‘.’ token</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78468">Bug 78468</a> - Compiling of shader gets stuck in infinite loop</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78537">Bug 78537</a> - no anisotropic filtering in a native Half-Life 2</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78546">Bug 78546</a> - [swrast] piglit copyteximage-border regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78581">Bug 78581</a> - OpenCL: clBuildProgram prints error messages directly rather than storing them</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78648">Bug 78648</a> - Texture artifacts in Kerbal Space Program</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78665">Bug 78665</a> - macros in builtin_functions.cpp make invalid assumptions about M_PI definitions</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78679">Bug 78679</a> - Gen4-5 code lost: runtime_check_aads_emit</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78691">Bug 78691</a> - [G45 - Tesseract] Mesa 10.1.2 implementation error: Unsupported opcode 169872468 in FS</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78692">Bug 78692</a> - Football Manager 2014, gameplay rendered black & white</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78716">Bug 78716</a> - Fix Mesa bugs for running Unreal Engine 4.1 Cave effects demo compiled for Linux</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78803">Bug 78803</a> - gallivm/lp_bld_debug.cpp:42:28: fatal error: llvm/IR/Module.h: No such file or directory</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78842">Bug 78842</a> - [swrast] piglit fcc-read-after-clear copy rb regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78843">Bug 78843</a> - [swrast] piglit copyteximage 1D regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78872">Bug 78872</a> - [ILK Bisected]Piglit spec_ARB_depth_buffer_float_fbo-depthstencil-GL_DEPTH32F_STENCIL8-blit Aborted</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78875">Bug 78875</a> - [ILK Bisected]Webglc conformance/uniforms/uniform-default-values.html fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78888">Bug 78888</a> - test_eu_compact.c:54:3: error: implicit declaration of function ‘brw_disasm’ [-Werror=implicit-function-declaration]</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79029">Bug 79029</a> - INTEL_DEBUG=shader_time is full of lies</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79095">Bug 79095</a> - x86/common_x86.c:348:14: error: use of undeclared identifier 'bit_SSE4_1'</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79115">Bug 79115</a> - glFramebufferRenderbuffer(GL_DRAW_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, GL_RENDERBUFFER, 0) doesn't unbind stencil buffer</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79263">Bug 79263</a> - Linking error in egl_gallium.la when compiling 32 bit on multiarch</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79294">Bug 79294</a> - Xlib-based build broken on non x86/x86-64 architectures</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79373">Bug 79373</a> - Non-const initializers for matrix and vector constructors</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79382">Bug 79382</a> - build error: multiple definition of `loader_get_pci_id_for_fd'</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79421">Bug 79421</a> - [llvmpipe] SIGSEGV src/gallium/drivers/llvmpipe/lp_rast_priv.h:218</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79440">Bug 79440</a> - prog_hash_table.c:146: undefined reference to `_mesa_error_no_memory'</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79469">Bug 79469</a> - Commit e3cc0d90e14e62a0a787b6c07a6df0f5c84039be breaks unigine heaven</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79534">Bug 79534</a> - gen<7 renders garbage</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79616">Bug 79616</a> - L4D2 crash on startup</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79724">Bug 79724</a> - switch statement type check</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79729">Bug 79729</a> - [i965] glClear on a multisample texture doesn't work</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79809">Bug 79809</a> - radeonsi: mouse cursor corruption using weston on AMD Kaveri</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79823">Bug 79823</a> - [NV30/gallium] Mozilla apps freeze on startup with nouveau-dri-10.2.1 libs on dual-screen</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79885">Bug 79885</a> - commit b52a530 (gallium/egl: st_profiles are build time decision, treat them as such) broke egl</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79903">Bug 79903</a> - [HSW Bisected]Some Piglit and Ogles2conform cases fail</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79907">Bug 79907</a> - Mesa 10.2.1 --enable-vdpau default=auto broken</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79948">Bug 79948</a> - [i965] Incorrect pixels when using discard and uniform loads</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80015">Bug 80015</a> - Transparency glitches in native Civilization 5 (Civ5) port</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80115">Bug 80115</a> - MESA_META_DRAW_BUFFERS induced GL_INVALID_VALUE errors</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80211">Bug 80211</a> - [ILK/SNB Bisected]Piglit shaders_glsl-fs-copy-propagation-texcoords-1 fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80247">Bug 80247</a> - Khronos conformance test ES3-CTS.gtf.GL3Tests.transform_feedback.transform_feedback_vertex_id fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80254">Bug 80254</a> - pipe_loader_sw.c:90: undefined reference to `dri_create_sw_winsys'</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80541">Bug 80541</a> - [softpipe] piglit levelclamp regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80561">Bug 80561</a> - Incorrect implementation of some VDPAU APIs.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80614">Bug 80614</a> - [regression] Error in `omxregister-bellagio': munmap_chunk(): invalid pointer: 0x00007f5f76626dab</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80778">Bug 80778</a> - [bisected regression] piglit spec/glsl-1.50/compiler/incorrect-in-layout-qualifier-repeated-prim.geom</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80827">Bug 80827</a> - [radeonsi,R9 270X] Corruptions in window menus in KDE</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80880">Bug 80880</a> - Unreal Engine 4 demos fail GLSL compiler assertion</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80991">Bug 80991</a> - [BDW]Piglit spec_ARB_sample_shading_builtin-gl-sample-mask_2 fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=81020">Bug 81020</a> - [radeonsi][regresssion] Wireframe of background rendered through objects in Half-Life 2: Episode 2 with MSAA enabled</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=81150">Bug 81150</a> - [SNB]Piglit spec_arb_shading_language_packing_execution_built-in-functions_fs-packSnorm4x8 fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=81157">Bug 81157</a> - [BDW]Piglit some spec_glsl-1.50_execution_built-in-functions* cases fail</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=81450">Bug 81450</a> - [BDW]Piglit spec_glsl-1.30_execution_tex-miplevel-selection_textureGrad_1DArray cases intel_do_flush_locked failed</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=81828">Bug 81828</a> - [BDW Bisected]Ogles3conform GL3Tests_packed_pixels_packed_pixels_pbo.test fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=81834">Bug 81834</a> - TGSI constant buffer overrun causes assertion failure</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=81857">Bug 81857</a> - [SNB+]Piglit spec_glsl-1.30_execution_switch_fs-default_last sporadically fail</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=81967">Bug 81967</a> - [regression] Selections in Blender renders wrong</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82139">Bug 82139</a> - [r600g, bisected] multiple ubo piglit regressions</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82159">Bug 82159</a> - No rule to make target `../../../../src/mesa/libmesa.la', needed by `collision'.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82255">Bug 82255</a> - [VP2] Chroma planes are vertically stretched during VDPAU playback</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82268">Bug 82268</a> - Add support for the OpenRISC architecture (or1k)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82428">Bug 82428</a> - [radeonsi,R9 270X] System lockup when using mplayer/mpv with VDPAU</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82472">Bug 82472</a> - piglit 16385-consecutive-chars regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82483">Bug 82483</a> - format_srgb.h:145: undefined reference to `util_format_srgb_to_linear_8unorm_table'</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82517">Bug 82517</a> - [RADEONSI,VDPAU] SIGSEGV in map_msg_fb_buf called from ruvd_destroy, when closing a Tab with accelerated video player</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82534">Bug 82534</a> - src\egl\main\eglapi.h : fatal error LNK1107: invalid or corrupt file: cannot read at 0x2E02</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82536">Bug 82536</a> - u_current.h:72: undefined reference to `__imp__glapi_Dispatch'</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82538">Bug 82538</a> - Super Maryo Chronicles fails with st/mesa assertion failure</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82539">Bug 82539</a> - vmw_screen_dri.lo In file included from vmw_screen_dri.c:41: vmwgfx_drm.h:32:17: error: drm.h: No such file or directory</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82546">Bug 82546</a> - [regression] libOSMesa build failure</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82574">Bug 82574</a> - GLSL: opt_vectorize goes wrong on texture lookups</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82628">Bug 82628</a> - bisected: GALLIUM_HUD hangs radeon 7970M (PRIME)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82671">Bug 82671</a> - [r600g-evergreen][compute]Empty kernel execution causes crash</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82709">Bug 82709</a> - OpenCL not working on radeon hainan</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82796">Bug 82796</a> - [IVB/BYT-M/HSW/BDW Bisected]Synmark2_v6.0_OglTerrainFlyInst/OglTerrainPanInst cannot run as image validation failed</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82804">Bug 82804</a> - unreal engine 4 rendering errors</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82814">Bug 82814</a> - glDrawBuffers(0, NULL) segfaults in _mesa_drawbuffers</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82828">Bug 82828</a> - Regression: Crash in 3Dmark2001</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82846">Bug 82846</a> - [BDW Bisected] Gpu hang when running Lightsmark v2008/Warsow v1.0/Xonotic v0.7/unigine-demos</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82881">Bug 82881</a> - test_vec4_register_coalesce regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82882">Bug 82882</a> - [swrast] piglit glsl-fs-uniform-bool-1 regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82929">Bug 82929</a> - [BDW Bisected]glxgears causes X hang</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82932">Bug 82932</a> - [SNB+ Bisected]Ogles3conform ES3-CTS.shaders.indexing.vector_subscript.vec3_static_loop_subscript_write_direct_read_vertex fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83046">Bug 83046</a> - [BDW bisected]] Warsow v1.0/Xonotic v0.7/Gputest v0.5_triangle_fullscreen/synmark2_v6/GLBenchmark v2.5.0/GLBenchmark v2.7.0/Ungine-demos performance reduced 30%~60%</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83079">Bug 83079</a> - [NVC0] Dota 2 (Linux native and Wine) crash with Nouveau Drivers</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83081">Bug 83081</a> - [BDW Bisected]Piglit spec_ARB_sample_shading_builtin-gl-sample-mask_2 is core dumped</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83127">Bug 83127</a> - [ILK Bisected]Piglit glean_texCombine fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83355">Bug 83355</a> - FTBFS: src/mesa/program/program_lexer.l:122:64: error: unknown type name 'YYSTYPE'</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83432">Bug 83432</a> - r600_query.c:269:r600_emit_query_end: Assertion `ctx->num_pipelinestat_queries > 0' failed [Gallium HUD]</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83468">Bug 83468</a> - [UBO] Using bool from UBO as if-statement condition asserts</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<ul>
|
||||
<li>Removed support for the GL_ATI_envmap_bumpmap extension</li>
|
||||
<li>The hacky --enable-32/64-bit is no longer available in configure. To build
|
||||
32/64 bit mesa refer to the default method recommended by your distribution</li>
|
||||
</li>The environment variable GALLIUM_MSAA that forced a multisample GLX visual was removed.</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -646,7 +646,6 @@ EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeNV (void);
|
||||
#endif /* EGL_NV_system_time */
|
||||
|
||||
#include <EGL/eglmesaext.h>
|
||||
#include <EGL/eglextchromium.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@@ -1,60 +0,0 @@
|
||||
// Copyright (c) 2013 The Chromium Authors. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from
|
||||
// this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
// This file contains Chromium-specific EGL extensions declarations.
|
||||
|
||||
#ifndef GPU_EGL_EGLEXTCHROMIUM_H_
|
||||
#define GPU_EGL_EGLEXTCHROMIUM_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <EGL/eglplatform.h>
|
||||
|
||||
/* EGLSyncControlCHROMIUM requires 64-bit uint support */
|
||||
#if KHRONOS_SUPPORT_INT64
|
||||
#ifndef EGL_CHROMIUM_sync_control
|
||||
#define EGL_CHROMIUM_sync_control 1
|
||||
typedef khronos_uint64_t EGLuint64CHROMIUM;
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncValuesCHROMIUM(
|
||||
EGLDisplay dpy, EGLSurface surface, EGLuint64CHROMIUM *ust,
|
||||
EGLuint64CHROMIUM *msc, EGLuint64CHROMIUM *sbc);
|
||||
#endif /* EGL_EGLEXT_PROTOTYPES */
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCVALUESCHROMIUMPROC)
|
||||
(EGLDisplay dpy, EGLSurface surface, EGLuint64CHROMIUM *ust,
|
||||
EGLuint64CHROMIUM *msc, EGLuint64CHROMIUM *sbc);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // GPU_EGL_EGLEXTCHROMIUM_H_
|
@@ -106,7 +106,6 @@
|
||||
#define glBindTextureEXT MANGLE(BindTextureEXT)
|
||||
#define glBindTexture MANGLE(BindTexture)
|
||||
#define glBindTextures MANGLE(BindTextures)
|
||||
#define glBindTextureUnit MANGLE(BindTextureUnit)
|
||||
#define glBindTextureUnitParameterEXT MANGLE(BindTextureUnitParameterEXT)
|
||||
#define glBindTransformFeedback MANGLE(BindTransformFeedback)
|
||||
#define glBindTransformFeedbackNV MANGLE(BindTransformFeedbackNV)
|
||||
@@ -130,7 +129,6 @@
|
||||
#define glBinormalPointerEXT MANGLE(BinormalPointerEXT)
|
||||
#define glBitmap MANGLE(Bitmap)
|
||||
#define glBitmapxOES MANGLE(BitmapxOES)
|
||||
#define glBlendBarrierKHR MANGLE(BlendBarrierKHR)
|
||||
#define glBlendBarrierNV MANGLE(BlendBarrierNV)
|
||||
#define glBlendColorEXT MANGLE(BlendColorEXT)
|
||||
#define glBlendColor MANGLE(BlendColor)
|
||||
@@ -159,11 +157,9 @@
|
||||
#define glBlendParameteriNV MANGLE(BlendParameteriNV)
|
||||
#define glBlitFramebufferEXT MANGLE(BlitFramebufferEXT)
|
||||
#define glBlitFramebuffer MANGLE(BlitFramebuffer)
|
||||
#define glBlitNamedFramebuffer MANGLE(BlitNamedFramebuffer)
|
||||
#define glBufferAddressRangeNV MANGLE(BufferAddressRangeNV)
|
||||
#define glBufferDataARB MANGLE(BufferDataARB)
|
||||
#define glBufferData MANGLE(BufferData)
|
||||
#define glBufferPageCommitmentARB MANGLE(BufferPageCommitmentARB)
|
||||
#define glBufferParameteriAPPLE MANGLE(BufferParameteriAPPLE)
|
||||
#define glBufferStorage MANGLE(BufferStorage)
|
||||
#define glBufferSubDataARB MANGLE(BufferSubDataARB)
|
||||
@@ -173,7 +169,6 @@
|
||||
#define glCheckFramebufferStatusEXT MANGLE(CheckFramebufferStatusEXT)
|
||||
#define glCheckFramebufferStatus MANGLE(CheckFramebufferStatus)
|
||||
#define glCheckNamedFramebufferStatusEXT MANGLE(CheckNamedFramebufferStatusEXT)
|
||||
#define glCheckNamedFramebufferStatus MANGLE(CheckNamedFramebufferStatus)
|
||||
#define glClampColorARB MANGLE(ClampColorARB)
|
||||
#define glClampColor MANGLE(ClampColor)
|
||||
#define glClearAccum MANGLE(ClearAccum)
|
||||
@@ -196,13 +191,7 @@
|
||||
#define glClearIndex MANGLE(ClearIndex)
|
||||
#define glClear MANGLE(Clear)
|
||||
#define glClearNamedBufferDataEXT MANGLE(ClearNamedBufferDataEXT)
|
||||
#define glClearNamedBufferData MANGLE(ClearNamedBufferData)
|
||||
#define glClearNamedBufferSubDataEXT MANGLE(ClearNamedBufferSubDataEXT)
|
||||
#define glClearNamedBufferSubData MANGLE(ClearNamedBufferSubData)
|
||||
#define glClearNamedFramebufferfi MANGLE(ClearNamedFramebufferfi)
|
||||
#define glClearNamedFramebufferfv MANGLE(ClearNamedFramebufferfv)
|
||||
#define glClearNamedFramebufferiv MANGLE(ClearNamedFramebufferiv)
|
||||
#define glClearNamedFramebufferuiv MANGLE(ClearNamedFramebufferuiv)
|
||||
#define glClearStencil MANGLE(ClearStencil)
|
||||
#define glClearTexImage MANGLE(ClearTexImage)
|
||||
#define glClearTexSubImage MANGLE(ClearTexSubImage)
|
||||
@@ -211,7 +200,6 @@
|
||||
#define glClientActiveVertexStreamATI MANGLE(ClientActiveVertexStreamATI)
|
||||
#define glClientAttribDefaultEXT MANGLE(ClientAttribDefaultEXT)
|
||||
#define glClientWaitSync MANGLE(ClientWaitSync)
|
||||
#define glClipControl MANGLE(ClipControl)
|
||||
#define glClipPlanefOES MANGLE(ClipPlanefOES)
|
||||
#define glClipPlane MANGLE(ClipPlane)
|
||||
#define glClipPlanexOES MANGLE(ClipPlanexOES)
|
||||
@@ -320,11 +308,8 @@
|
||||
#define glCompressedTextureImage2DEXT MANGLE(CompressedTextureImage2DEXT)
|
||||
#define glCompressedTextureImage3DEXT MANGLE(CompressedTextureImage3DEXT)
|
||||
#define glCompressedTextureSubImage1DEXT MANGLE(CompressedTextureSubImage1DEXT)
|
||||
#define glCompressedTextureSubImage1D MANGLE(CompressedTextureSubImage1D)
|
||||
#define glCompressedTextureSubImage2DEXT MANGLE(CompressedTextureSubImage2DEXT)
|
||||
#define glCompressedTextureSubImage2D MANGLE(CompressedTextureSubImage2D)
|
||||
#define glCompressedTextureSubImage3DEXT MANGLE(CompressedTextureSubImage3DEXT)
|
||||
#define glCompressedTextureSubImage3D MANGLE(CompressedTextureSubImage3D)
|
||||
#define glConvolutionFilter1DEXT MANGLE(ConvolutionFilter1DEXT)
|
||||
#define glConvolutionFilter1D MANGLE(ConvolutionFilter1D)
|
||||
#define glConvolutionFilter2DEXT MANGLE(ConvolutionFilter2DEXT)
|
||||
@@ -355,7 +340,6 @@
|
||||
#define glCopyMultiTexSubImage1DEXT MANGLE(CopyMultiTexSubImage1DEXT)
|
||||
#define glCopyMultiTexSubImage2DEXT MANGLE(CopyMultiTexSubImage2DEXT)
|
||||
#define glCopyMultiTexSubImage3DEXT MANGLE(CopyMultiTexSubImage3DEXT)
|
||||
#define glCopyNamedBufferSubData MANGLE(CopyNamedBufferSubData)
|
||||
#define glCopyPathNV MANGLE(CopyPathNV)
|
||||
#define glCopyPixels MANGLE(CopyPixels)
|
||||
#define glCopyTexImage1DEXT MANGLE(CopyTexImage1DEXT)
|
||||
@@ -371,32 +355,20 @@
|
||||
#define glCopyTextureImage1DEXT MANGLE(CopyTextureImage1DEXT)
|
||||
#define glCopyTextureImage2DEXT MANGLE(CopyTextureImage2DEXT)
|
||||
#define glCopyTextureSubImage1DEXT MANGLE(CopyTextureSubImage1DEXT)
|
||||
#define glCopyTextureSubImage1D MANGLE(CopyTextureSubImage1D)
|
||||
#define glCopyTextureSubImage2DEXT MANGLE(CopyTextureSubImage2DEXT)
|
||||
#define glCopyTextureSubImage2D MANGLE(CopyTextureSubImage2D)
|
||||
#define glCopyTextureSubImage3DEXT MANGLE(CopyTextureSubImage3DEXT)
|
||||
#define glCopyTextureSubImage3D MANGLE(CopyTextureSubImage3D)
|
||||
#define glCoverFillPathInstancedNV MANGLE(CoverFillPathInstancedNV)
|
||||
#define glCoverFillPathNV MANGLE(CoverFillPathNV)
|
||||
#define glCoverStrokePathInstancedNV MANGLE(CoverStrokePathInstancedNV)
|
||||
#define glCoverStrokePathNV MANGLE(CoverStrokePathNV)
|
||||
#define glCreateBuffers MANGLE(CreateBuffers)
|
||||
#define glCreateFramebuffers MANGLE(CreateFramebuffers)
|
||||
#define glCreatePerfQueryINTEL MANGLE(CreatePerfQueryINTEL)
|
||||
#define glCreateProgram MANGLE(CreateProgram)
|
||||
#define glCreateProgramObjectARB MANGLE(CreateProgramObjectARB)
|
||||
#define glCreateProgramPipelines MANGLE(CreateProgramPipelines)
|
||||
#define glCreateQueries MANGLE(CreateQueries)
|
||||
#define glCreateRenderbuffers MANGLE(CreateRenderbuffers)
|
||||
#define glCreateSamplers MANGLE(CreateSamplers)
|
||||
#define glCreateShader MANGLE(CreateShader)
|
||||
#define glCreateShaderObjectARB MANGLE(CreateShaderObjectARB)
|
||||
#define glCreateShaderProgramEXT MANGLE(CreateShaderProgramEXT)
|
||||
#define glCreateShaderProgramv MANGLE(CreateShaderProgramv)
|
||||
#define glCreateSyncFromCLeventARB MANGLE(CreateSyncFromCLeventARB)
|
||||
#define glCreateTextures MANGLE(CreateTextures)
|
||||
#define glCreateTransformFeedbacks MANGLE(CreateTransformFeedbacks)
|
||||
#define glCreateVertexArrays MANGLE(CreateVertexArrays)
|
||||
#define glCullFace MANGLE(CullFace)
|
||||
#define glCullParameterdvEXT MANGLE(CullParameterdvEXT)
|
||||
#define glCullParameterfvEXT MANGLE(CullParameterfvEXT)
|
||||
@@ -469,7 +441,6 @@
|
||||
#define glDisable MANGLE(Disable)
|
||||
#define glDisableVariantClientStateEXT MANGLE(DisableVariantClientStateEXT)
|
||||
#define glDisableVertexArrayAttribEXT MANGLE(DisableVertexArrayAttribEXT)
|
||||
#define glDisableVertexArrayAttrib MANGLE(DisableVertexArrayAttrib)
|
||||
#define glDisableVertexArrayEXT MANGLE(DisableVertexArrayEXT)
|
||||
#define glDisableVertexAttribAPPLE MANGLE(DisableVertexAttribAPPLE)
|
||||
#define glDisableVertexAttribArrayARB MANGLE(DisableVertexAttribArrayARB)
|
||||
@@ -530,7 +501,6 @@
|
||||
#define glEnable MANGLE(Enable)
|
||||
#define glEnableVariantClientStateEXT MANGLE(EnableVariantClientStateEXT)
|
||||
#define glEnableVertexArrayAttribEXT MANGLE(EnableVertexArrayAttribEXT)
|
||||
#define glEnableVertexArrayAttrib MANGLE(EnableVertexArrayAttrib)
|
||||
#define glEnableVertexArrayEXT MANGLE(EnableVertexArrayEXT)
|
||||
#define glEnableVertexAttribAPPLE MANGLE(EnableVertexAttribAPPLE)
|
||||
#define glEnableVertexAttribArrayARB MANGLE(EnableVertexAttribArrayARB)
|
||||
@@ -585,7 +555,6 @@
|
||||
#define glFlushMappedBufferRangeAPPLE MANGLE(FlushMappedBufferRangeAPPLE)
|
||||
#define glFlushMappedBufferRange MANGLE(FlushMappedBufferRange)
|
||||
#define glFlushMappedNamedBufferRangeEXT MANGLE(FlushMappedNamedBufferRangeEXT)
|
||||
#define glFlushMappedNamedBufferRange MANGLE(FlushMappedNamedBufferRange)
|
||||
#define glFlushPixelDataRangeNV MANGLE(FlushPixelDataRangeNV)
|
||||
#define glFlushRasterSGIX MANGLE(FlushRasterSGIX)
|
||||
#define glFlushStaticDataIBM MANGLE(FlushStaticDataIBM)
|
||||
@@ -659,7 +628,6 @@
|
||||
#define glGenerateMipmap MANGLE(GenerateMipmap)
|
||||
#define glGenerateMultiTexMipmapEXT MANGLE(GenerateMultiTexMipmapEXT)
|
||||
#define glGenerateTextureMipmapEXT MANGLE(GenerateTextureMipmapEXT)
|
||||
#define glGenerateTextureMipmap MANGLE(GenerateTextureMipmap)
|
||||
#define glGenFencesAPPLE MANGLE(GenFencesAPPLE)
|
||||
#define glGenFencesNV MANGLE(GenFencesNV)
|
||||
#define glGenFragmentShadersATI MANGLE(GenFragmentShadersATI)
|
||||
@@ -737,8 +705,6 @@
|
||||
#define glGetCompressedTexImageARB MANGLE(GetCompressedTexImageARB)
|
||||
#define glGetCompressedTexImage MANGLE(GetCompressedTexImage)
|
||||
#define glGetCompressedTextureImageEXT MANGLE(GetCompressedTextureImageEXT)
|
||||
#define glGetCompressedTextureImage MANGLE(GetCompressedTextureImage)
|
||||
#define glGetCompressedTextureSubImage MANGLE(GetCompressedTextureSubImage)
|
||||
#define glGetConvolutionFilterEXT MANGLE(GetConvolutionFilterEXT)
|
||||
#define glGetConvolutionFilter MANGLE(GetConvolutionFilter)
|
||||
#define glGetConvolutionParameterfvEXT MANGLE(GetConvolutionParameterfvEXT)
|
||||
@@ -777,7 +743,6 @@
|
||||
#define glGetFramebufferParameterivEXT MANGLE(GetFramebufferParameterivEXT)
|
||||
#define glGetFramebufferParameteriv MANGLE(GetFramebufferParameteriv)
|
||||
#define glGetGraphicsResetStatusARB MANGLE(GetGraphicsResetStatusARB)
|
||||
#define glGetGraphicsResetStatus MANGLE(GetGraphicsResetStatus)
|
||||
#define glGetHandleARB MANGLE(GetHandleARB)
|
||||
#define glGetHistogramEXT MANGLE(GetHistogramEXT)
|
||||
#define glGetHistogram MANGLE(GetHistogram)
|
||||
@@ -844,18 +809,12 @@
|
||||
#define glGetMultiTexParameterIivEXT MANGLE(GetMultiTexParameterIivEXT)
|
||||
#define glGetMultiTexParameterIuivEXT MANGLE(GetMultiTexParameterIuivEXT)
|
||||
#define glGetMultiTexParameterivEXT MANGLE(GetMultiTexParameterivEXT)
|
||||
#define glGetNamedBufferParameteri64v MANGLE(GetNamedBufferParameteri64v)
|
||||
#define glGetNamedBufferParameterivEXT MANGLE(GetNamedBufferParameterivEXT)
|
||||
#define glGetNamedBufferParameteriv MANGLE(GetNamedBufferParameteriv)
|
||||
#define glGetNamedBufferParameterui64vNV MANGLE(GetNamedBufferParameterui64vNV)
|
||||
#define glGetNamedBufferPointervEXT MANGLE(GetNamedBufferPointervEXT)
|
||||
#define glGetNamedBufferPointerv MANGLE(GetNamedBufferPointerv)
|
||||
#define glGetNamedBufferSubDataEXT MANGLE(GetNamedBufferSubDataEXT)
|
||||
#define glGetNamedBufferSubData MANGLE(GetNamedBufferSubData)
|
||||
#define glGetNamedFramebufferAttachmentParameterivEXT MANGLE(GetNamedFramebufferAttachmentParameterivEXT)
|
||||
#define glGetNamedFramebufferAttachmentParameteriv MANGLE(GetNamedFramebufferAttachmentParameteriv)
|
||||
#define glGetNamedFramebufferParameterivEXT MANGLE(GetNamedFramebufferParameterivEXT)
|
||||
#define glGetNamedFramebufferParameteriv MANGLE(GetNamedFramebufferParameteriv)
|
||||
#define glGetNamedProgramivEXT MANGLE(GetNamedProgramivEXT)
|
||||
#define glGetNamedProgramLocalParameterdvEXT MANGLE(GetNamedProgramLocalParameterdvEXT)
|
||||
#define glGetNamedProgramLocalParameterfvEXT MANGLE(GetNamedProgramLocalParameterfvEXT)
|
||||
@@ -863,46 +822,27 @@
|
||||
#define glGetNamedProgramLocalParameterIuivEXT MANGLE(GetNamedProgramLocalParameterIuivEXT)
|
||||
#define glGetNamedProgramStringEXT MANGLE(GetNamedProgramStringEXT)
|
||||
#define glGetNamedRenderbufferParameterivEXT MANGLE(GetNamedRenderbufferParameterivEXT)
|
||||
#define glGetNamedRenderbufferParameteriv MANGLE(GetNamedRenderbufferParameteriv)
|
||||
#define glGetNamedStringARB MANGLE(GetNamedStringARB)
|
||||
#define glGetNamedStringivARB MANGLE(GetNamedStringivARB)
|
||||
#define glGetnColorTableARB MANGLE(GetnColorTableARB)
|
||||
#define glGetnColorTable MANGLE(GetnColorTable)
|
||||
#define glGetnCompressedTexImageARB MANGLE(GetnCompressedTexImageARB)
|
||||
#define glGetnCompressedTexImage MANGLE(GetnCompressedTexImage)
|
||||
#define glGetnConvolutionFilterARB MANGLE(GetnConvolutionFilterARB)
|
||||
#define glGetnConvolutionFilter MANGLE(GetnConvolutionFilter)
|
||||
#define glGetNextPerfQueryIdINTEL MANGLE(GetNextPerfQueryIdINTEL)
|
||||
#define glGetnHistogramARB MANGLE(GetnHistogramARB)
|
||||
#define glGetnHistogram MANGLE(GetnHistogram)
|
||||
#define glGetnMapdvARB MANGLE(GetnMapdvARB)
|
||||
#define glGetnMapdv MANGLE(GetnMapdv)
|
||||
#define glGetnMapfvARB MANGLE(GetnMapfvARB)
|
||||
#define glGetnMapfv MANGLE(GetnMapfv)
|
||||
#define glGetnMapivARB MANGLE(GetnMapivARB)
|
||||
#define glGetnMapiv MANGLE(GetnMapiv)
|
||||
#define glGetnMinmaxARB MANGLE(GetnMinmaxARB)
|
||||
#define glGetnMinmax MANGLE(GetnMinmax)
|
||||
#define glGetnPixelMapfvARB MANGLE(GetnPixelMapfvARB)
|
||||
#define glGetnPixelMapfv MANGLE(GetnPixelMapfv)
|
||||
#define glGetnPixelMapuivARB MANGLE(GetnPixelMapuivARB)
|
||||
#define glGetnPixelMapuiv MANGLE(GetnPixelMapuiv)
|
||||
#define glGetnPixelMapusvARB MANGLE(GetnPixelMapusvARB)
|
||||
#define glGetnPixelMapusv MANGLE(GetnPixelMapusv)
|
||||
#define glGetnPolygonStippleARB MANGLE(GetnPolygonStippleARB)
|
||||
#define glGetnPolygonStipple MANGLE(GetnPolygonStipple)
|
||||
#define glGetnSeparableFilterARB MANGLE(GetnSeparableFilterARB)
|
||||
#define glGetnSeparableFilter MANGLE(GetnSeparableFilter)
|
||||
#define glGetnTexImageARB MANGLE(GetnTexImageARB)
|
||||
#define glGetnTexImage MANGLE(GetnTexImage)
|
||||
#define glGetnUniformdvARB MANGLE(GetnUniformdvARB)
|
||||
#define glGetnUniformdv MANGLE(GetnUniformdv)
|
||||
#define glGetnUniformfvARB MANGLE(GetnUniformfvARB)
|
||||
#define glGetnUniformfv MANGLE(GetnUniformfv)
|
||||
#define glGetnUniformivARB MANGLE(GetnUniformivARB)
|
||||
#define glGetnUniformiv MANGLE(GetnUniformiv)
|
||||
#define glGetnUniformuivARB MANGLE(GetnUniformuivARB)
|
||||
#define glGetnUniformuiv MANGLE(GetnUniformuiv)
|
||||
#define glGetObjectBufferfvATI MANGLE(GetObjectBufferfvATI)
|
||||
#define glGetObjectBufferivATI MANGLE(GetObjectBufferivATI)
|
||||
#define glGetObjectLabelEXT MANGLE(GetObjectLabelEXT)
|
||||
@@ -969,7 +909,6 @@
|
||||
#define glGetProgramParameterfvNV MANGLE(GetProgramParameterfvNV)
|
||||
#define glGetProgramPipelineInfoLog MANGLE(GetProgramPipelineInfoLog)
|
||||
#define glGetProgramPipelineiv MANGLE(GetProgramPipelineiv)
|
||||
#define glGetProgramResourcefvNV MANGLE(GetProgramResourcefvNV)
|
||||
#define glGetProgramResourceIndex MANGLE(GetProgramResourceIndex)
|
||||
#define glGetProgramResourceiv MANGLE(GetProgramResourceiv)
|
||||
#define glGetProgramResourceLocationIndex MANGLE(GetProgramResourceLocationIndex)
|
||||
@@ -1034,26 +973,15 @@
|
||||
#define glGetTextureHandleARB MANGLE(GetTextureHandleARB)
|
||||
#define glGetTextureHandleNV MANGLE(GetTextureHandleNV)
|
||||
#define glGetTextureImageEXT MANGLE(GetTextureImageEXT)
|
||||
#define glGetTextureImage MANGLE(GetTextureImage)
|
||||
#define glGetTextureLevelParameterfvEXT MANGLE(GetTextureLevelParameterfvEXT)
|
||||
#define glGetTextureLevelParameterfv MANGLE(GetTextureLevelParameterfv)
|
||||
#define glGetTextureLevelParameterivEXT MANGLE(GetTextureLevelParameterivEXT)
|
||||
#define glGetTextureLevelParameteriv MANGLE(GetTextureLevelParameteriv)
|
||||
#define glGetTextureParameterfvEXT MANGLE(GetTextureParameterfvEXT)
|
||||
#define glGetTextureParameterfv MANGLE(GetTextureParameterfv)
|
||||
#define glGetTextureParameterIivEXT MANGLE(GetTextureParameterIivEXT)
|
||||
#define glGetTextureParameterIiv MANGLE(GetTextureParameterIiv)
|
||||
#define glGetTextureParameterIuivEXT MANGLE(GetTextureParameterIuivEXT)
|
||||
#define glGetTextureParameterIuiv MANGLE(GetTextureParameterIuiv)
|
||||
#define glGetTextureParameterivEXT MANGLE(GetTextureParameterivEXT)
|
||||
#define glGetTextureParameteriv MANGLE(GetTextureParameteriv)
|
||||
#define glGetTextureSamplerHandleARB MANGLE(GetTextureSamplerHandleARB)
|
||||
#define glGetTextureSamplerHandleNV MANGLE(GetTextureSamplerHandleNV)
|
||||
#define glGetTextureSubImage MANGLE(GetTextureSubImage)
|
||||
#define glGetTrackMatrixivNV MANGLE(GetTrackMatrixivNV)
|
||||
#define glGetTransformFeedbacki64_v MANGLE(GetTransformFeedbacki64_v)
|
||||
#define glGetTransformFeedbacki_v MANGLE(GetTransformFeedbacki_v)
|
||||
#define glGetTransformFeedbackiv MANGLE(GetTransformFeedbackiv)
|
||||
#define glGetTransformFeedbackVaryingEXT MANGLE(GetTransformFeedbackVaryingEXT)
|
||||
#define glGetTransformFeedbackVarying MANGLE(GetTransformFeedbackVarying)
|
||||
#define glGetTransformFeedbackVaryingNV MANGLE(GetTransformFeedbackVaryingNV)
|
||||
@@ -1080,11 +1008,8 @@
|
||||
#define glGetVariantIntegervEXT MANGLE(GetVariantIntegervEXT)
|
||||
#define glGetVariantPointervEXT MANGLE(GetVariantPointervEXT)
|
||||
#define glGetVaryingLocationNV MANGLE(GetVaryingLocationNV)
|
||||
#define glGetVertexArrayIndexed64iv MANGLE(GetVertexArrayIndexed64iv)
|
||||
#define glGetVertexArrayIndexediv MANGLE(GetVertexArrayIndexediv)
|
||||
#define glGetVertexArrayIntegeri_vEXT MANGLE(GetVertexArrayIntegeri_vEXT)
|
||||
#define glGetVertexArrayIntegervEXT MANGLE(GetVertexArrayIntegervEXT)
|
||||
#define glGetVertexArrayiv MANGLE(GetVertexArrayiv)
|
||||
#define glGetVertexArrayPointeri_vEXT MANGLE(GetVertexArrayPointeri_vEXT)
|
||||
#define glGetVertexArrayPointervEXT MANGLE(GetVertexArrayPointervEXT)
|
||||
#define glGetVertexAttribArrayObjectfvATI MANGLE(GetVertexAttribArrayObjectfvATI)
|
||||
@@ -1164,8 +1089,6 @@
|
||||
#define glInvalidateBufferData MANGLE(InvalidateBufferData)
|
||||
#define glInvalidateBufferSubData MANGLE(InvalidateBufferSubData)
|
||||
#define glInvalidateFramebuffer MANGLE(InvalidateFramebuffer)
|
||||
#define glInvalidateNamedFramebufferData MANGLE(InvalidateNamedFramebufferData)
|
||||
#define glInvalidateNamedFramebufferSubData MANGLE(InvalidateNamedFramebufferSubData)
|
||||
#define glInvalidateSubFramebuffer MANGLE(InvalidateSubFramebuffer)
|
||||
#define glInvalidateTexImage MANGLE(InvalidateTexImage)
|
||||
#define glInvalidateTexSubImage MANGLE(InvalidateTexSubImage)
|
||||
@@ -1279,9 +1202,7 @@
|
||||
#define glMapGrid2f MANGLE(MapGrid2f)
|
||||
#define glMapGrid2xOES MANGLE(MapGrid2xOES)
|
||||
#define glMapNamedBufferEXT MANGLE(MapNamedBufferEXT)
|
||||
#define glMapNamedBuffer MANGLE(MapNamedBuffer)
|
||||
#define glMapNamedBufferRangeEXT MANGLE(MapNamedBufferRangeEXT)
|
||||
#define glMapNamedBufferRange MANGLE(MapNamedBufferRange)
|
||||
#define glMapObjectBufferATI MANGLE(MapObjectBufferATI)
|
||||
#define glMapParameterfvNV MANGLE(MapParameterfvNV)
|
||||
#define glMapParameterivNV MANGLE(MapParameterivNV)
|
||||
@@ -1301,20 +1222,14 @@
|
||||
#define glMatrixIndexubvARB MANGLE(MatrixIndexubvARB)
|
||||
#define glMatrixIndexuivARB MANGLE(MatrixIndexuivARB)
|
||||
#define glMatrixIndexusvARB MANGLE(MatrixIndexusvARB)
|
||||
#define glMatrixLoad3x2fNV MANGLE(MatrixLoad3x2fNV)
|
||||
#define glMatrixLoad3x3fNV MANGLE(MatrixLoad3x3fNV)
|
||||
#define glMatrixLoaddEXT MANGLE(MatrixLoaddEXT)
|
||||
#define glMatrixLoadfEXT MANGLE(MatrixLoadfEXT)
|
||||
#define glMatrixLoadIdentityEXT MANGLE(MatrixLoadIdentityEXT)
|
||||
#define glMatrixLoadTranspose3x3fNV MANGLE(MatrixLoadTranspose3x3fNV)
|
||||
#define glMatrixLoadTransposedEXT MANGLE(MatrixLoadTransposedEXT)
|
||||
#define glMatrixLoadTransposefEXT MANGLE(MatrixLoadTransposefEXT)
|
||||
#define glMatrixMode MANGLE(MatrixMode)
|
||||
#define glMatrixMult3x2fNV MANGLE(MatrixMult3x2fNV)
|
||||
#define glMatrixMult3x3fNV MANGLE(MatrixMult3x3fNV)
|
||||
#define glMatrixMultdEXT MANGLE(MatrixMultdEXT)
|
||||
#define glMatrixMultfEXT MANGLE(MatrixMultfEXT)
|
||||
#define glMatrixMultTranspose3x3fNV MANGLE(MatrixMultTranspose3x3fNV)
|
||||
#define glMatrixMultTransposedEXT MANGLE(MatrixMultTransposedEXT)
|
||||
#define glMatrixMultTransposefEXT MANGLE(MatrixMultTransposefEXT)
|
||||
#define glMatrixOrthoEXT MANGLE(MatrixOrthoEXT)
|
||||
@@ -1326,7 +1241,6 @@
|
||||
#define glMatrixScalefEXT MANGLE(MatrixScalefEXT)
|
||||
#define glMatrixTranslatedEXT MANGLE(MatrixTranslatedEXT)
|
||||
#define glMatrixTranslatefEXT MANGLE(MatrixTranslatefEXT)
|
||||
#define glMemoryBarrierByRegion MANGLE(MemoryBarrierByRegion)
|
||||
#define glMemoryBarrierEXT MANGLE(MemoryBarrierEXT)
|
||||
#define glMemoryBarrier MANGLE(MemoryBarrier)
|
||||
#define glMinmaxEXT MANGLE(MinmaxEXT)
|
||||
@@ -1335,7 +1249,6 @@
|
||||
#define glMinSampleShading MANGLE(MinSampleShading)
|
||||
#define glMultiDrawArraysEXT MANGLE(MultiDrawArraysEXT)
|
||||
#define glMultiDrawArraysIndirectAMD MANGLE(MultiDrawArraysIndirectAMD)
|
||||
#define glMultiDrawArraysIndirectBindlessCountNV MANGLE(MultiDrawArraysIndirectBindlessCountNV)
|
||||
#define glMultiDrawArraysIndirectBindlessNV MANGLE(MultiDrawArraysIndirectBindlessNV)
|
||||
#define glMultiDrawArraysIndirectCountARB MANGLE(MultiDrawArraysIndirectCountARB)
|
||||
#define glMultiDrawArraysIndirect MANGLE(MultiDrawArraysIndirect)
|
||||
@@ -1344,7 +1257,6 @@
|
||||
#define glMultiDrawElementsBaseVertex MANGLE(MultiDrawElementsBaseVertex)
|
||||
#define glMultiDrawElementsEXT MANGLE(MultiDrawElementsEXT)
|
||||
#define glMultiDrawElementsIndirectAMD MANGLE(MultiDrawElementsIndirectAMD)
|
||||
#define glMultiDrawElementsIndirectBindlessCountNV MANGLE(MultiDrawElementsIndirectBindlessCountNV)
|
||||
#define glMultiDrawElementsIndirectBindlessNV MANGLE(MultiDrawElementsIndirectBindlessNV)
|
||||
#define glMultiDrawElementsIndirectCountARB MANGLE(MultiDrawElementsIndirectCountARB)
|
||||
#define glMultiDrawElementsIndirect MANGLE(MultiDrawElementsIndirect)
|
||||
@@ -1482,29 +1394,17 @@
|
||||
#define glMultTransposeMatrixf MANGLE(MultTransposeMatrixf)
|
||||
#define glMultTransposeMatrixxOES MANGLE(MultTransposeMatrixxOES)
|
||||
#define glNamedBufferDataEXT MANGLE(NamedBufferDataEXT)
|
||||
#define glNamedBufferData MANGLE(NamedBufferData)
|
||||
#define glNamedBufferPageCommitmentARB MANGLE(NamedBufferPageCommitmentARB)
|
||||
#define glNamedBufferPageCommitmentEXT MANGLE(NamedBufferPageCommitmentEXT)
|
||||
#define glNamedBufferStorageEXT MANGLE(NamedBufferStorageEXT)
|
||||
#define glNamedBufferStorage MANGLE(NamedBufferStorage)
|
||||
#define glNamedBufferSubDataEXT MANGLE(NamedBufferSubDataEXT)
|
||||
#define glNamedBufferSubData MANGLE(NamedBufferSubData)
|
||||
#define glNamedCopyBufferSubDataEXT MANGLE(NamedCopyBufferSubDataEXT)
|
||||
#define glNamedFramebufferDrawBuffer MANGLE(NamedFramebufferDrawBuffer)
|
||||
#define glNamedFramebufferDrawBuffers MANGLE(NamedFramebufferDrawBuffers)
|
||||
#define glNamedFramebufferParameteriEXT MANGLE(NamedFramebufferParameteriEXT)
|
||||
#define glNamedFramebufferParameteri MANGLE(NamedFramebufferParameteri)
|
||||
#define glNamedFramebufferReadBuffer MANGLE(NamedFramebufferReadBuffer)
|
||||
#define glNamedFramebufferRenderbufferEXT MANGLE(NamedFramebufferRenderbufferEXT)
|
||||
#define glNamedFramebufferRenderbuffer MANGLE(NamedFramebufferRenderbuffer)
|
||||
#define glNamedFramebufferTexture1DEXT MANGLE(NamedFramebufferTexture1DEXT)
|
||||
#define glNamedFramebufferTexture2DEXT MANGLE(NamedFramebufferTexture2DEXT)
|
||||
#define glNamedFramebufferTexture3DEXT MANGLE(NamedFramebufferTexture3DEXT)
|
||||
#define glNamedFramebufferTextureEXT MANGLE(NamedFramebufferTextureEXT)
|
||||
#define glNamedFramebufferTextureFaceEXT MANGLE(NamedFramebufferTextureFaceEXT)
|
||||
#define glNamedFramebufferTextureLayerEXT MANGLE(NamedFramebufferTextureLayerEXT)
|
||||
#define glNamedFramebufferTextureLayer MANGLE(NamedFramebufferTextureLayer)
|
||||
#define glNamedFramebufferTexture MANGLE(NamedFramebufferTexture)
|
||||
#define glNamedProgramLocalParameter4dEXT MANGLE(NamedProgramLocalParameter4dEXT)
|
||||
#define glNamedProgramLocalParameter4dvEXT MANGLE(NamedProgramLocalParameter4dvEXT)
|
||||
#define glNamedProgramLocalParameter4fEXT MANGLE(NamedProgramLocalParameter4fEXT)
|
||||
@@ -1518,10 +1418,8 @@
|
||||
#define glNamedProgramLocalParametersI4uivEXT MANGLE(NamedProgramLocalParametersI4uivEXT)
|
||||
#define glNamedProgramStringEXT MANGLE(NamedProgramStringEXT)
|
||||
#define glNamedRenderbufferStorageEXT MANGLE(NamedRenderbufferStorageEXT)
|
||||
#define glNamedRenderbufferStorage MANGLE(NamedRenderbufferStorage)
|
||||
#define glNamedRenderbufferStorageMultisampleCoverageEXT MANGLE(NamedRenderbufferStorageMultisampleCoverageEXT)
|
||||
#define glNamedRenderbufferStorageMultisampleEXT MANGLE(NamedRenderbufferStorageMultisampleEXT)
|
||||
#define glNamedRenderbufferStorageMultisample MANGLE(NamedRenderbufferStorageMultisample)
|
||||
#define glNamedStringARB MANGLE(NamedStringARB)
|
||||
#define glNewList MANGLE(NewList)
|
||||
#define glNewObjectBufferATI MANGLE(NewObjectBufferATI)
|
||||
@@ -1576,11 +1474,8 @@
|
||||
#define glPathCoverDepthFuncNV MANGLE(PathCoverDepthFuncNV)
|
||||
#define glPathDashArrayNV MANGLE(PathDashArrayNV)
|
||||
#define glPathFogGenNV MANGLE(PathFogGenNV)
|
||||
#define glPathGlyphIndexArrayNV MANGLE(PathGlyphIndexArrayNV)
|
||||
#define glPathGlyphIndexRangeNV MANGLE(PathGlyphIndexRangeNV)
|
||||
#define glPathGlyphRangeNV MANGLE(PathGlyphRangeNV)
|
||||
#define glPathGlyphsNV MANGLE(PathGlyphsNV)
|
||||
#define glPathMemoryGlyphIndexArrayNV MANGLE(PathMemoryGlyphIndexArrayNV)
|
||||
#define glPathParameterfNV MANGLE(PathParameterfNV)
|
||||
#define glPathParameterfvNV MANGLE(PathParameterfvNV)
|
||||
#define glPathParameteriNV MANGLE(PathParameteriNV)
|
||||
@@ -1693,7 +1588,6 @@
|
||||
#define glProgramParameteri MANGLE(ProgramParameteri)
|
||||
#define glProgramParameters4dvNV MANGLE(ProgramParameters4dvNV)
|
||||
#define glProgramParameters4fvNV MANGLE(ProgramParameters4fvNV)
|
||||
#define glProgramPathFragmentInputGenNV MANGLE(ProgramPathFragmentInputGenNV)
|
||||
#define glProgramStringARB MANGLE(ProgramStringARB)
|
||||
#define glProgramSubroutineParametersuivNV MANGLE(ProgramSubroutineParametersuivNV)
|
||||
#define glProgramUniform1dEXT MANGLE(ProgramUniform1dEXT)
|
||||
@@ -1864,7 +1758,6 @@
|
||||
#define glReadBuffer MANGLE(ReadBuffer)
|
||||
#define glReadInstrumentsSGIX MANGLE(ReadInstrumentsSGIX)
|
||||
#define glReadnPixelsARB MANGLE(ReadnPixelsARB)
|
||||
#define glReadnPixels MANGLE(ReadnPixels)
|
||||
#define glReadPixels MANGLE(ReadPixels)
|
||||
#define glRectd MANGLE(Rectd)
|
||||
#define glRectdv MANGLE(Rectdv)
|
||||
@@ -2019,10 +1912,6 @@
|
||||
#define glStencilOpValueAMD MANGLE(StencilOpValueAMD)
|
||||
#define glStencilStrokePathInstancedNV MANGLE(StencilStrokePathInstancedNV)
|
||||
#define glStencilStrokePathNV MANGLE(StencilStrokePathNV)
|
||||
#define glStencilThenCoverFillPathInstancedNV MANGLE(StencilThenCoverFillPathInstancedNV)
|
||||
#define glStencilThenCoverFillPathNV MANGLE(StencilThenCoverFillPathNV)
|
||||
#define glStencilThenCoverStrokePathInstancedNV MANGLE(StencilThenCoverStrokePathInstancedNV)
|
||||
#define glStencilThenCoverStrokePathNV MANGLE(StencilThenCoverStrokePathNV)
|
||||
#define glStopInstrumentsSGIX MANGLE(StopInstrumentsSGIX)
|
||||
#define glStringMarkerGREMEDY MANGLE(StringMarkerGREMEDY)
|
||||
#define glSwizzleEXT MANGLE(SwizzleEXT)
|
||||
@@ -2183,12 +2072,9 @@
|
||||
#define glTexSubImage3DEXT MANGLE(TexSubImage3DEXT)
|
||||
#define glTexSubImage3D MANGLE(TexSubImage3D)
|
||||
#define glTexSubImage4DSGIS MANGLE(TexSubImage4DSGIS)
|
||||
#define glTextureBarrier MANGLE(TextureBarrier)
|
||||
#define glTextureBarrierNV MANGLE(TextureBarrierNV)
|
||||
#define glTextureBufferEXT MANGLE(TextureBufferEXT)
|
||||
#define glTextureBuffer MANGLE(TextureBuffer)
|
||||
#define glTextureBufferRangeEXT MANGLE(TextureBufferRangeEXT)
|
||||
#define glTextureBufferRange MANGLE(TextureBufferRange)
|
||||
#define glTextureColorMaskSGIS MANGLE(TextureColorMaskSGIS)
|
||||
#define glTextureImage1DEXT MANGLE(TextureImage1DEXT)
|
||||
#define glTextureImage2DEXT MANGLE(TextureImage2DEXT)
|
||||
@@ -2202,41 +2088,25 @@
|
||||
#define glTextureNormalEXT MANGLE(TextureNormalEXT)
|
||||
#define glTexturePageCommitmentEXT MANGLE(TexturePageCommitmentEXT)
|
||||
#define glTextureParameterfEXT MANGLE(TextureParameterfEXT)
|
||||
#define glTextureParameterf MANGLE(TextureParameterf)
|
||||
#define glTextureParameterfvEXT MANGLE(TextureParameterfvEXT)
|
||||
#define glTextureParameterfv MANGLE(TextureParameterfv)
|
||||
#define glTextureParameteriEXT MANGLE(TextureParameteriEXT)
|
||||
#define glTextureParameterIivEXT MANGLE(TextureParameterIivEXT)
|
||||
#define glTextureParameterIiv MANGLE(TextureParameterIiv)
|
||||
#define glTextureParameteri MANGLE(TextureParameteri)
|
||||
#define glTextureParameterIuivEXT MANGLE(TextureParameterIuivEXT)
|
||||
#define glTextureParameterIuiv MANGLE(TextureParameterIuiv)
|
||||
#define glTextureParameterivEXT MANGLE(TextureParameterivEXT)
|
||||
#define glTextureParameteriv MANGLE(TextureParameteriv)
|
||||
#define glTextureRangeAPPLE MANGLE(TextureRangeAPPLE)
|
||||
#define glTextureRenderbufferEXT MANGLE(TextureRenderbufferEXT)
|
||||
#define glTextureStorage1DEXT MANGLE(TextureStorage1DEXT)
|
||||
#define glTextureStorage1D MANGLE(TextureStorage1D)
|
||||
#define glTextureStorage2DEXT MANGLE(TextureStorage2DEXT)
|
||||
#define glTextureStorage2D MANGLE(TextureStorage2D)
|
||||
#define glTextureStorage2DMultisampleEXT MANGLE(TextureStorage2DMultisampleEXT)
|
||||
#define glTextureStorage2DMultisample MANGLE(TextureStorage2DMultisample)
|
||||
#define glTextureStorage3DEXT MANGLE(TextureStorage3DEXT)
|
||||
#define glTextureStorage3D MANGLE(TextureStorage3D)
|
||||
#define glTextureStorage3DMultisampleEXT MANGLE(TextureStorage3DMultisampleEXT)
|
||||
#define glTextureStorage3DMultisample MANGLE(TextureStorage3DMultisample)
|
||||
#define glTextureStorageSparseAMD MANGLE(TextureStorageSparseAMD)
|
||||
#define glTextureSubImage1DEXT MANGLE(TextureSubImage1DEXT)
|
||||
#define glTextureSubImage1D MANGLE(TextureSubImage1D)
|
||||
#define glTextureSubImage2DEXT MANGLE(TextureSubImage2DEXT)
|
||||
#define glTextureSubImage2D MANGLE(TextureSubImage2D)
|
||||
#define glTextureSubImage3DEXT MANGLE(TextureSubImage3DEXT)
|
||||
#define glTextureSubImage3D MANGLE(TextureSubImage3D)
|
||||
#define glTextureView MANGLE(TextureView)
|
||||
#define glTrackMatrixNV MANGLE(TrackMatrixNV)
|
||||
#define glTransformFeedbackAttribsNV MANGLE(TransformFeedbackAttribsNV)
|
||||
#define glTransformFeedbackBufferBase MANGLE(TransformFeedbackBufferBase)
|
||||
#define glTransformFeedbackBufferRange MANGLE(TransformFeedbackBufferRange)
|
||||
#define glTransformFeedbackStreamAttribsNV MANGLE(TransformFeedbackStreamAttribsNV)
|
||||
#define glTransformFeedbackVaryingsEXT MANGLE(TransformFeedbackVaryingsEXT)
|
||||
#define glTransformFeedbackVaryings MANGLE(TransformFeedbackVaryings)
|
||||
@@ -2351,7 +2221,6 @@
|
||||
#define glUnmapBufferARB MANGLE(UnmapBufferARB)
|
||||
#define glUnmapBuffer MANGLE(UnmapBuffer)
|
||||
#define glUnmapNamedBufferEXT MANGLE(UnmapNamedBufferEXT)
|
||||
#define glUnmapNamedBuffer MANGLE(UnmapNamedBuffer)
|
||||
#define glUnmapObjectBufferATI MANGLE(UnmapObjectBufferATI)
|
||||
#define glUnmapTexture2DINTEL MANGLE(UnmapTexture2DINTEL)
|
||||
#define glUpdateObjectBufferATI MANGLE(UpdateObjectBufferATI)
|
||||
@@ -2424,15 +2293,9 @@
|
||||
#define glVertex4sv MANGLE(Vertex4sv)
|
||||
#define glVertex4xOES MANGLE(Vertex4xOES)
|
||||
#define glVertex4xvOES MANGLE(Vertex4xvOES)
|
||||
#define glVertexArrayAttribBinding MANGLE(VertexArrayAttribBinding)
|
||||
#define glVertexArrayAttribFormat MANGLE(VertexArrayAttribFormat)
|
||||
#define glVertexArrayAttribIFormat MANGLE(VertexArrayAttribIFormat)
|
||||
#define glVertexArrayAttribLFormat MANGLE(VertexArrayAttribLFormat)
|
||||
#define glVertexArrayBindingDivisor MANGLE(VertexArrayBindingDivisor)
|
||||
#define glVertexArrayBindVertexBufferEXT MANGLE(VertexArrayBindVertexBufferEXT)
|
||||
#define glVertexArrayColorOffsetEXT MANGLE(VertexArrayColorOffsetEXT)
|
||||
#define glVertexArrayEdgeFlagOffsetEXT MANGLE(VertexArrayEdgeFlagOffsetEXT)
|
||||
#define glVertexArrayElementBuffer MANGLE(VertexArrayElementBuffer)
|
||||
#define glVertexArrayFogCoordOffsetEXT MANGLE(VertexArrayFogCoordOffsetEXT)
|
||||
#define glVertexArrayIndexOffsetEXT MANGLE(VertexArrayIndexOffsetEXT)
|
||||
#define glVertexArrayMultiTexCoordOffsetEXT MANGLE(VertexArrayMultiTexCoordOffsetEXT)
|
||||
@@ -2451,8 +2314,6 @@
|
||||
#define glVertexArrayVertexAttribLOffsetEXT MANGLE(VertexArrayVertexAttribLOffsetEXT)
|
||||
#define glVertexArrayVertexAttribOffsetEXT MANGLE(VertexArrayVertexAttribOffsetEXT)
|
||||
#define glVertexArrayVertexBindingDivisorEXT MANGLE(VertexArrayVertexBindingDivisorEXT)
|
||||
#define glVertexArrayVertexBuffer MANGLE(VertexArrayVertexBuffer)
|
||||
#define glVertexArrayVertexBuffers MANGLE(VertexArrayVertexBuffers)
|
||||
#define glVertexArrayVertexOffsetEXT MANGLE(VertexArrayVertexOffsetEXT)
|
||||
#define glVertexAttrib1dARB MANGLE(VertexAttrib1dARB)
|
||||
#define glVertexAttrib1d MANGLE(VertexAttrib1d)
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -33,7 +33,7 @@ extern "C" {
|
||||
** used to make the header, and the header can be found at
|
||||
** http://www.opengl.org/registry/
|
||||
**
|
||||
** Khronos $Revision: 27684 $ on $Date: 2014-08-11 01:21:35 -0700 (Mon, 11 Aug 2014) $
|
||||
** Khronos $Revision: 25853 $ on $Date: 2014-03-13 03:40:45 -0700 (Thu, 13 Mar 2014) $
|
||||
*/
|
||||
|
||||
#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
|
||||
@@ -53,7 +53,7 @@ extern "C" {
|
||||
#define GLAPI extern
|
||||
#endif
|
||||
|
||||
#define GL_GLEXT_VERSION 20140810
|
||||
#define GL_GLEXT_VERSION 20140313
|
||||
|
||||
/* Generated C header for:
|
||||
* API: gl
|
||||
@@ -1308,13 +1308,11 @@ GLAPI GLboolean APIENTRY glIsVertexArray (GLuint array);
|
||||
#define GL_UNIFORM_BUFFER_START 0x8A29
|
||||
#define GL_UNIFORM_BUFFER_SIZE 0x8A2A
|
||||
#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B
|
||||
#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C
|
||||
#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D
|
||||
#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E
|
||||
#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F
|
||||
#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30
|
||||
#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31
|
||||
#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32
|
||||
#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33
|
||||
#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34
|
||||
#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35
|
||||
@@ -1333,7 +1331,6 @@ GLAPI GLboolean APIENTRY glIsVertexArray (GLuint array);
|
||||
#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42
|
||||
#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43
|
||||
#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44
|
||||
#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45
|
||||
#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46
|
||||
#define GL_INVALID_INDEX 0xFFFFFFFFu
|
||||
typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
|
||||
@@ -2215,7 +2212,6 @@ typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum
|
||||
#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER 0x90ED
|
||||
#define GL_DISPATCH_INDIRECT_BUFFER 0x90EE
|
||||
#define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF
|
||||
#define GL_COMPUTE_SHADER_BIT 0x00000020
|
||||
#define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242
|
||||
#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243
|
||||
#define GL_DEBUG_CALLBACK_FUNCTION 0x8244
|
||||
@@ -2440,7 +2436,6 @@ typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum
|
||||
#define GL_VERTEX_BINDING_STRIDE 0x82D8
|
||||
#define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9
|
||||
#define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA
|
||||
#define GL_VERTEX_BINDING_BUFFER 0x8F4F
|
||||
#define GL_DISPLAY_LIST 0x82E7
|
||||
typedef void (APIENTRYP PFNGLCLEARBUFFERDATAPROC) (GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data);
|
||||
typedef void (APIENTRYP PFNGLCLEARBUFFERSUBDATAPROC) (GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
|
||||
@@ -2575,279 +2570,10 @@ GLAPI void APIENTRY glBindVertexBuffers (GLuint first, GLsizei count, const GLui
|
||||
#endif
|
||||
#endif /* GL_VERSION_4_4 */
|
||||
|
||||
#ifndef GL_VERSION_4_5
|
||||
#define GL_VERSION_4_5 1
|
||||
#define GL_CONTEXT_LOST 0x0507
|
||||
#define GL_NEGATIVE_ONE_TO_ONE 0x935E
|
||||
#define GL_ZERO_TO_ONE 0x935F
|
||||
#define GL_CLIP_ORIGIN 0x935C
|
||||
#define GL_CLIP_DEPTH_MODE 0x935D
|
||||
#define GL_QUERY_WAIT_INVERTED 0x8E17
|
||||
#define GL_QUERY_NO_WAIT_INVERTED 0x8E18
|
||||
#define GL_QUERY_BY_REGION_WAIT_INVERTED 0x8E19
|
||||
#define GL_QUERY_BY_REGION_NO_WAIT_INVERTED 0x8E1A
|
||||
#define GL_MAX_CULL_DISTANCES 0x82F9
|
||||
#define GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES 0x82FA
|
||||
#define GL_TEXTURE_TARGET 0x1006
|
||||
#define GL_QUERY_TARGET 0x82EA
|
||||
#define GL_TEXTURE_BINDING 0x82EB
|
||||
#define GL_GUILTY_CONTEXT_RESET 0x8253
|
||||
#define GL_INNOCENT_CONTEXT_RESET 0x8254
|
||||
#define GL_UNKNOWN_CONTEXT_RESET 0x8255
|
||||
#define GL_RESET_NOTIFICATION_STRATEGY 0x8256
|
||||
#define GL_LOSE_CONTEXT_ON_RESET 0x8252
|
||||
#define GL_NO_RESET_NOTIFICATION 0x8261
|
||||
#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT 0x00000004
|
||||
#define GL_CONTEXT_RELEASE_BEHAVIOR 0x82FB
|
||||
#define GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH 0x82FC
|
||||
typedef void (APIENTRYP PFNGLCLIPCONTROLPROC) (GLenum origin, GLenum depth);
|
||||
typedef void (APIENTRYP PFNGLCREATETRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids);
|
||||
typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC) (GLuint xfb, GLuint index, GLuint buffer);
|
||||
typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC) (GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizei size);
|
||||
typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKIVPROC) (GLuint xfb, GLenum pname, GLint *param);
|
||||
typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKI_VPROC) (GLuint xfb, GLenum pname, GLuint index, GLint *param);
|
||||
typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKI64_VPROC) (GLuint xfb, GLenum pname, GLuint index, GLint64 *param);
|
||||
typedef void (APIENTRYP PFNGLCREATEBUFFERSPROC) (GLsizei n, GLuint *buffers);
|
||||
typedef void (APIENTRYP PFNGLNAMEDBUFFERSTORAGEPROC) (GLuint buffer, GLsizei size, const void *data, GLbitfield flags);
|
||||
typedef void (APIENTRYP PFNGLNAMEDBUFFERDATAPROC) (GLuint buffer, GLsizei size, const void *data, GLenum usage);
|
||||
typedef void (APIENTRYP PFNGLNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizei size, const void *data);
|
||||
typedef void (APIENTRYP PFNGLCOPYNAMEDBUFFERSUBDATAPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizei size);
|
||||
typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERDATAPROC) (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data);
|
||||
typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLenum internalformat, GLintptr offset, GLsizei size, GLenum format, GLenum type, const void *data);
|
||||
typedef void *(APIENTRYP PFNGLMAPNAMEDBUFFERPROC) (GLuint buffer, GLenum access);
|
||||
typedef void *(APIENTRYP PFNGLMAPNAMEDBUFFERRANGEPROC) (GLuint buffer, GLintptr offset, GLsizei length, GLbitfield access);
|
||||
typedef GLboolean (APIENTRYP PFNGLUNMAPNAMEDBUFFERPROC) (GLuint buffer);
|
||||
typedef void (APIENTRYP PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC) (GLuint buffer, GLintptr offset, GLsizei length);
|
||||
typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERIVPROC) (GLuint buffer, GLenum pname, GLint *params);
|
||||
typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERI64VPROC) (GLuint buffer, GLenum pname, GLint64 *params);
|
||||
typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPOINTERVPROC) (GLuint buffer, GLenum pname, void **params);
|
||||
typedef void (APIENTRYP PFNGLGETNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizei size, void *data);
|
||||
typedef void (APIENTRYP PFNGLCREATEFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers);
|
||||
typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
|
||||
typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC) (GLuint framebuffer, GLenum pname, GLint param);
|
||||
typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
|
||||
typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
|
||||
typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC) (GLuint framebuffer, GLenum buf);
|
||||
typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC) (GLuint framebuffer, GLsizei n, const GLenum *bufs);
|
||||
typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC) (GLuint framebuffer, GLenum src);
|
||||
typedef void (APIENTRYP PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC) (GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments);
|
||||
typedef void (APIENTRYP PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC) (GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERIVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint *value);
|
||||
typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint *value);
|
||||
typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERFVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value);
|
||||
typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERFIPROC) (GLuint framebuffer, GLenum buffer, const GLfloat depth, GLint stencil);
|
||||
typedef void (APIENTRYP PFNGLBLITNAMEDFRAMEBUFFERPROC) (GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
|
||||
typedef GLenum (APIENTRYP PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC) (GLuint framebuffer, GLenum target);
|
||||
typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC) (GLuint framebuffer, GLenum pname, GLint *param);
|
||||
typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params);
|
||||
typedef void (APIENTRYP PFNGLCREATERENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers);
|
||||
typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
typedef void (APIENTRYP PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC) (GLuint renderbuffer, GLenum pname, GLint *params);
|
||||
typedef void (APIENTRYP PFNGLCREATETEXTURESPROC) (GLenum target, GLsizei n, GLuint *textures);
|
||||
typedef void (APIENTRYP PFNGLTEXTUREBUFFERPROC) (GLuint texture, GLenum internalformat, GLuint buffer);
|
||||
typedef void (APIENTRYP PFNGLTEXTUREBUFFERRANGEPROC) (GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizei size);
|
||||
typedef void (APIENTRYP PFNGLTEXTURESTORAGE1DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width);
|
||||
typedef void (APIENTRYP PFNGLTEXTURESTORAGE2DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
typedef void (APIENTRYP PFNGLTEXTURESTORAGE3DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
|
||||
typedef void (APIENTRYP PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC) (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
|
||||
typedef void (APIENTRYP PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC) (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
|
||||
typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
|
||||
typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
|
||||
typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE3DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
|
||||
typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
|
||||
typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
|
||||
typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
|
||||
typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
|
||||
typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE3DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFPROC) (GLuint texture, GLenum pname, GLfloat param);
|
||||
typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFVPROC) (GLuint texture, GLenum pname, const GLfloat *param);
|
||||
typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIPROC) (GLuint texture, GLenum pname, GLint param);
|
||||
typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIIVPROC) (GLuint texture, GLenum pname, const GLint *params);
|
||||
typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIUIVPROC) (GLuint texture, GLenum pname, const GLuint *params);
|
||||
typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIVPROC) (GLuint texture, GLenum pname, const GLint *param);
|
||||
typedef void (APIENTRYP PFNGLGENERATETEXTUREMIPMAPPROC) (GLuint texture);
|
||||
typedef void (APIENTRYP PFNGLBINDTEXTUREUNITPROC) (GLuint unit, GLuint texture);
|
||||
typedef void (APIENTRYP PFNGLGETTEXTUREIMAGEPROC) (GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
|
||||
typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC) (GLuint texture, GLint level, GLsizei bufSize, void *pixels);
|
||||
typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERFVPROC) (GLuint texture, GLint level, GLenum pname, GLfloat *params);
|
||||
typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERIVPROC) (GLuint texture, GLint level, GLenum pname, GLint *params);
|
||||
typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERFVPROC) (GLuint texture, GLenum pname, GLfloat *params);
|
||||
typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIIVPROC) (GLuint texture, GLenum pname, GLint *params);
|
||||
typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIUIVPROC) (GLuint texture, GLenum pname, GLuint *params);
|
||||
typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIVPROC) (GLuint texture, GLenum pname, GLint *params);
|
||||
typedef void (APIENTRYP PFNGLCREATEVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays);
|
||||
typedef void (APIENTRYP PFNGLDISABLEVERTEXARRAYATTRIBPROC) (GLuint vaobj, GLuint index);
|
||||
typedef void (APIENTRYP PFNGLENABLEVERTEXARRAYATTRIBPROC) (GLuint vaobj, GLuint index);
|
||||
typedef void (APIENTRYP PFNGLVERTEXARRAYELEMENTBUFFERPROC) (GLuint vaobj, GLuint buffer);
|
||||
typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXBUFFERPROC) (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
|
||||
typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXBUFFERSPROC) (GLuint vaobj, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides);
|
||||
typedef void (APIENTRYP PFNGLVERTEXARRAYATTRIBBINDINGPROC) (GLuint vaobj, GLuint attribindex, GLuint bindingindex);
|
||||
typedef void (APIENTRYP PFNGLVERTEXARRAYATTRIBFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
|
||||
typedef void (APIENTRYP PFNGLVERTEXARRAYATTRIBIFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
|
||||
typedef void (APIENTRYP PFNGLVERTEXARRAYATTRIBLFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
|
||||
typedef void (APIENTRYP PFNGLVERTEXARRAYBINDINGDIVISORPROC) (GLuint vaobj, GLuint bindingindex, GLuint divisor);
|
||||
typedef void (APIENTRYP PFNGLGETVERTEXARRAYIVPROC) (GLuint vaobj, GLenum pname, GLint *param);
|
||||
typedef void (APIENTRYP PFNGLGETVERTEXARRAYINDEXEDIVPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint *param);
|
||||
typedef void (APIENTRYP PFNGLGETVERTEXARRAYINDEXED64IVPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint64 *param);
|
||||
typedef void (APIENTRYP PFNGLCREATESAMPLERSPROC) (GLsizei n, GLuint *samplers);
|
||||
typedef void (APIENTRYP PFNGLCREATEPROGRAMPIPELINESPROC) (GLsizei n, GLuint *pipelines);
|
||||
typedef void (APIENTRYP PFNGLCREATEQUERIESPROC) (GLenum target, GLsizei n, GLuint *ids);
|
||||
typedef void (APIENTRYP PFNGLMEMORYBARRIERBYREGIONPROC) (GLbitfield barriers);
|
||||
typedef void (APIENTRYP PFNGLGETTEXTURESUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
|
||||
typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void *pixels);
|
||||
typedef GLenum (APIENTRYP PFNGLGETGRAPHICSRESETSTATUSPROC) (void);
|
||||
typedef void (APIENTRYP PFNGLGETNCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint lod, GLsizei bufSize, void *pixels);
|
||||
typedef void (APIENTRYP PFNGLGETNTEXIMAGEPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
|
||||
typedef void (APIENTRYP PFNGLGETNUNIFORMDVPROC) (GLuint program, GLint location, GLsizei bufSize, GLdouble *params);
|
||||
typedef void (APIENTRYP PFNGLGETNUNIFORMFVPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
|
||||
typedef void (APIENTRYP PFNGLGETNUNIFORMIVPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params);
|
||||
typedef void (APIENTRYP PFNGLGETNUNIFORMUIVPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint *params);
|
||||
typedef void (APIENTRYP PFNGLREADNPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
|
||||
typedef void (APIENTRYP PFNGLGETNMAPDVPROC) (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v);
|
||||
typedef void (APIENTRYP PFNGLGETNMAPFVPROC) (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v);
|
||||
typedef void (APIENTRYP PFNGLGETNMAPIVPROC) (GLenum target, GLenum query, GLsizei bufSize, GLint *v);
|
||||
typedef void (APIENTRYP PFNGLGETNPIXELMAPFVPROC) (GLenum map, GLsizei bufSize, GLfloat *values);
|
||||
typedef void (APIENTRYP PFNGLGETNPIXELMAPUIVPROC) (GLenum map, GLsizei bufSize, GLuint *values);
|
||||
typedef void (APIENTRYP PFNGLGETNPIXELMAPUSVPROC) (GLenum map, GLsizei bufSize, GLushort *values);
|
||||
typedef void (APIENTRYP PFNGLGETNPOLYGONSTIPPLEPROC) (GLsizei bufSize, GLubyte *pattern);
|
||||
typedef void (APIENTRYP PFNGLGETNCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table);
|
||||
typedef void (APIENTRYP PFNGLGETNCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image);
|
||||
typedef void (APIENTRYP PFNGLGETNSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span);
|
||||
typedef void (APIENTRYP PFNGLGETNHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values);
|
||||
typedef void (APIENTRYP PFNGLGETNMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values);
|
||||
typedef void (APIENTRYP PFNGLTEXTUREBARRIERPROC) (void);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glClipControl (GLenum origin, GLenum depth);
|
||||
GLAPI void APIENTRY glCreateTransformFeedbacks (GLsizei n, GLuint *ids);
|
||||
GLAPI void APIENTRY glTransformFeedbackBufferBase (GLuint xfb, GLuint index, GLuint buffer);
|
||||
GLAPI void APIENTRY glTransformFeedbackBufferRange (GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizei size);
|
||||
GLAPI void APIENTRY glGetTransformFeedbackiv (GLuint xfb, GLenum pname, GLint *param);
|
||||
GLAPI void APIENTRY glGetTransformFeedbacki_v (GLuint xfb, GLenum pname, GLuint index, GLint *param);
|
||||
GLAPI void APIENTRY glGetTransformFeedbacki64_v (GLuint xfb, GLenum pname, GLuint index, GLint64 *param);
|
||||
GLAPI void APIENTRY glCreateBuffers (GLsizei n, GLuint *buffers);
|
||||
GLAPI void APIENTRY glNamedBufferStorage (GLuint buffer, GLsizei size, const void *data, GLbitfield flags);
|
||||
GLAPI void APIENTRY glNamedBufferData (GLuint buffer, GLsizei size, const void *data, GLenum usage);
|
||||
GLAPI void APIENTRY glNamedBufferSubData (GLuint buffer, GLintptr offset, GLsizei size, const void *data);
|
||||
GLAPI void APIENTRY glCopyNamedBufferSubData (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizei size);
|
||||
GLAPI void APIENTRY glClearNamedBufferData (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data);
|
||||
GLAPI void APIENTRY glClearNamedBufferSubData (GLuint buffer, GLenum internalformat, GLintptr offset, GLsizei size, GLenum format, GLenum type, const void *data);
|
||||
GLAPI void *APIENTRY glMapNamedBuffer (GLuint buffer, GLenum access);
|
||||
GLAPI void *APIENTRY glMapNamedBufferRange (GLuint buffer, GLintptr offset, GLsizei length, GLbitfield access);
|
||||
GLAPI GLboolean APIENTRY glUnmapNamedBuffer (GLuint buffer);
|
||||
GLAPI void APIENTRY glFlushMappedNamedBufferRange (GLuint buffer, GLintptr offset, GLsizei length);
|
||||
GLAPI void APIENTRY glGetNamedBufferParameteriv (GLuint buffer, GLenum pname, GLint *params);
|
||||
GLAPI void APIENTRY glGetNamedBufferParameteri64v (GLuint buffer, GLenum pname, GLint64 *params);
|
||||
GLAPI void APIENTRY glGetNamedBufferPointerv (GLuint buffer, GLenum pname, void **params);
|
||||
GLAPI void APIENTRY glGetNamedBufferSubData (GLuint buffer, GLintptr offset, GLsizei size, void *data);
|
||||
GLAPI void APIENTRY glCreateFramebuffers (GLsizei n, GLuint *framebuffers);
|
||||
GLAPI void APIENTRY glNamedFramebufferRenderbuffer (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
|
||||
GLAPI void APIENTRY glNamedFramebufferParameteri (GLuint framebuffer, GLenum pname, GLint param);
|
||||
GLAPI void APIENTRY glNamedFramebufferTexture (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
|
||||
GLAPI void APIENTRY glNamedFramebufferTextureLayer (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
|
||||
GLAPI void APIENTRY glNamedFramebufferDrawBuffer (GLuint framebuffer, GLenum buf);
|
||||
GLAPI void APIENTRY glNamedFramebufferDrawBuffers (GLuint framebuffer, GLsizei n, const GLenum *bufs);
|
||||
GLAPI void APIENTRY glNamedFramebufferReadBuffer (GLuint framebuffer, GLenum src);
|
||||
GLAPI void APIENTRY glInvalidateNamedFramebufferData (GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments);
|
||||
GLAPI void APIENTRY glInvalidateNamedFramebufferSubData (GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
GLAPI void APIENTRY glClearNamedFramebufferiv (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint *value);
|
||||
GLAPI void APIENTRY glClearNamedFramebufferuiv (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint *value);
|
||||
GLAPI void APIENTRY glClearNamedFramebufferfv (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value);
|
||||
GLAPI void APIENTRY glClearNamedFramebufferfi (GLuint framebuffer, GLenum buffer, const GLfloat depth, GLint stencil);
|
||||
GLAPI void APIENTRY glBlitNamedFramebuffer (GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
|
||||
GLAPI GLenum APIENTRY glCheckNamedFramebufferStatus (GLuint framebuffer, GLenum target);
|
||||
GLAPI void APIENTRY glGetNamedFramebufferParameteriv (GLuint framebuffer, GLenum pname, GLint *param);
|
||||
GLAPI void APIENTRY glGetNamedFramebufferAttachmentParameteriv (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params);
|
||||
GLAPI void APIENTRY glCreateRenderbuffers (GLsizei n, GLuint *renderbuffers);
|
||||
GLAPI void APIENTRY glNamedRenderbufferStorage (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
GLAPI void APIENTRY glNamedRenderbufferStorageMultisample (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
GLAPI void APIENTRY glGetNamedRenderbufferParameteriv (GLuint renderbuffer, GLenum pname, GLint *params);
|
||||
GLAPI void APIENTRY glCreateTextures (GLenum target, GLsizei n, GLuint *textures);
|
||||
GLAPI void APIENTRY glTextureBuffer (GLuint texture, GLenum internalformat, GLuint buffer);
|
||||
GLAPI void APIENTRY glTextureBufferRange (GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizei size);
|
||||
GLAPI void APIENTRY glTextureStorage1D (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width);
|
||||
GLAPI void APIENTRY glTextureStorage2D (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
GLAPI void APIENTRY glTextureStorage3D (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
|
||||
GLAPI void APIENTRY glTextureStorage2DMultisample (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
|
||||
GLAPI void APIENTRY glTextureStorage3DMultisample (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
|
||||
GLAPI void APIENTRY glTextureSubImage1D (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
|
||||
GLAPI void APIENTRY glTextureSubImage2D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
|
||||
GLAPI void APIENTRY glTextureSubImage3D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
|
||||
GLAPI void APIENTRY glCompressedTextureSubImage1D (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
|
||||
GLAPI void APIENTRY glCompressedTextureSubImage2D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
|
||||
GLAPI void APIENTRY glCompressedTextureSubImage3D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
|
||||
GLAPI void APIENTRY glCopyTextureSubImage1D (GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
|
||||
GLAPI void APIENTRY glCopyTextureSubImage2D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
GLAPI void APIENTRY glCopyTextureSubImage3D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
GLAPI void APIENTRY glTextureParameterf (GLuint texture, GLenum pname, GLfloat param);
|
||||
GLAPI void APIENTRY glTextureParameterfv (GLuint texture, GLenum pname, const GLfloat *param);
|
||||
GLAPI void APIENTRY glTextureParameteri (GLuint texture, GLenum pname, GLint param);
|
||||
GLAPI void APIENTRY glTextureParameterIiv (GLuint texture, GLenum pname, const GLint *params);
|
||||
GLAPI void APIENTRY glTextureParameterIuiv (GLuint texture, GLenum pname, const GLuint *params);
|
||||
GLAPI void APIENTRY glTextureParameteriv (GLuint texture, GLenum pname, const GLint *param);
|
||||
GLAPI void APIENTRY glGenerateTextureMipmap (GLuint texture);
|
||||
GLAPI void APIENTRY glBindTextureUnit (GLuint unit, GLuint texture);
|
||||
GLAPI void APIENTRY glGetTextureImage (GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
|
||||
GLAPI void APIENTRY glGetCompressedTextureImage (GLuint texture, GLint level, GLsizei bufSize, void *pixels);
|
||||
GLAPI void APIENTRY glGetTextureLevelParameterfv (GLuint texture, GLint level, GLenum pname, GLfloat *params);
|
||||
GLAPI void APIENTRY glGetTextureLevelParameteriv (GLuint texture, GLint level, GLenum pname, GLint *params);
|
||||
GLAPI void APIENTRY glGetTextureParameterfv (GLuint texture, GLenum pname, GLfloat *params);
|
||||
GLAPI void APIENTRY glGetTextureParameterIiv (GLuint texture, GLenum pname, GLint *params);
|
||||
GLAPI void APIENTRY glGetTextureParameterIuiv (GLuint texture, GLenum pname, GLuint *params);
|
||||
GLAPI void APIENTRY glGetTextureParameteriv (GLuint texture, GLenum pname, GLint *params);
|
||||
GLAPI void APIENTRY glCreateVertexArrays (GLsizei n, GLuint *arrays);
|
||||
GLAPI void APIENTRY glDisableVertexArrayAttrib (GLuint vaobj, GLuint index);
|
||||
GLAPI void APIENTRY glEnableVertexArrayAttrib (GLuint vaobj, GLuint index);
|
||||
GLAPI void APIENTRY glVertexArrayElementBuffer (GLuint vaobj, GLuint buffer);
|
||||
GLAPI void APIENTRY glVertexArrayVertexBuffer (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
|
||||
GLAPI void APIENTRY glVertexArrayVertexBuffers (GLuint vaobj, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides);
|
||||
GLAPI void APIENTRY glVertexArrayAttribBinding (GLuint vaobj, GLuint attribindex, GLuint bindingindex);
|
||||
GLAPI void APIENTRY glVertexArrayAttribFormat (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
|
||||
GLAPI void APIENTRY glVertexArrayAttribIFormat (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
|
||||
GLAPI void APIENTRY glVertexArrayAttribLFormat (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
|
||||
GLAPI void APIENTRY glVertexArrayBindingDivisor (GLuint vaobj, GLuint bindingindex, GLuint divisor);
|
||||
GLAPI void APIENTRY glGetVertexArrayiv (GLuint vaobj, GLenum pname, GLint *param);
|
||||
GLAPI void APIENTRY glGetVertexArrayIndexediv (GLuint vaobj, GLuint index, GLenum pname, GLint *param);
|
||||
GLAPI void APIENTRY glGetVertexArrayIndexed64iv (GLuint vaobj, GLuint index, GLenum pname, GLint64 *param);
|
||||
GLAPI void APIENTRY glCreateSamplers (GLsizei n, GLuint *samplers);
|
||||
GLAPI void APIENTRY glCreateProgramPipelines (GLsizei n, GLuint *pipelines);
|
||||
GLAPI void APIENTRY glCreateQueries (GLenum target, GLsizei n, GLuint *ids);
|
||||
GLAPI void APIENTRY glMemoryBarrierByRegion (GLbitfield barriers);
|
||||
GLAPI void APIENTRY glGetTextureSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
|
||||
GLAPI void APIENTRY glGetCompressedTextureSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void *pixels);
|
||||
GLAPI GLenum APIENTRY glGetGraphicsResetStatus (void);
|
||||
GLAPI void APIENTRY glGetnCompressedTexImage (GLenum target, GLint lod, GLsizei bufSize, void *pixels);
|
||||
GLAPI void APIENTRY glGetnTexImage (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
|
||||
GLAPI void APIENTRY glGetnUniformdv (GLuint program, GLint location, GLsizei bufSize, GLdouble *params);
|
||||
GLAPI void APIENTRY glGetnUniformfv (GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
|
||||
GLAPI void APIENTRY glGetnUniformiv (GLuint program, GLint location, GLsizei bufSize, GLint *params);
|
||||
GLAPI void APIENTRY glGetnUniformuiv (GLuint program, GLint location, GLsizei bufSize, GLuint *params);
|
||||
GLAPI void APIENTRY glReadnPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
|
||||
GLAPI void APIENTRY glGetnMapdv (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v);
|
||||
GLAPI void APIENTRY glGetnMapfv (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v);
|
||||
GLAPI void APIENTRY glGetnMapiv (GLenum target, GLenum query, GLsizei bufSize, GLint *v);
|
||||
GLAPI void APIENTRY glGetnPixelMapfv (GLenum map, GLsizei bufSize, GLfloat *values);
|
||||
GLAPI void APIENTRY glGetnPixelMapuiv (GLenum map, GLsizei bufSize, GLuint *values);
|
||||
GLAPI void APIENTRY glGetnPixelMapusv (GLenum map, GLsizei bufSize, GLushort *values);
|
||||
GLAPI void APIENTRY glGetnPolygonStipple (GLsizei bufSize, GLubyte *pattern);
|
||||
GLAPI void APIENTRY glGetnColorTable (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table);
|
||||
GLAPI void APIENTRY glGetnConvolutionFilter (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image);
|
||||
GLAPI void APIENTRY glGetnSeparableFilter (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span);
|
||||
GLAPI void APIENTRY glGetnHistogram (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values);
|
||||
GLAPI void APIENTRY glGetnMinmax (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values);
|
||||
GLAPI void APIENTRY glTextureBarrier (void);
|
||||
#endif
|
||||
#endif /* GL_VERSION_4_5 */
|
||||
|
||||
#ifndef GL_ARB_ES2_compatibility
|
||||
#define GL_ARB_ES2_compatibility 1
|
||||
#endif /* GL_ARB_ES2_compatibility */
|
||||
|
||||
#ifndef GL_ARB_ES3_1_compatibility
|
||||
#define GL_ARB_ES3_1_compatibility 1
|
||||
#endif /* GL_ARB_ES3_1_compatibility */
|
||||
|
||||
#ifndef GL_ARB_ES3_compatibility
|
||||
#define GL_ARB_ES3_compatibility 1
|
||||
#endif /* GL_ARB_ES3_compatibility */
|
||||
@@ -2928,10 +2654,6 @@ GLAPI GLsync APIENTRY glCreateSyncFromCLeventARB (struct _cl_context *context, s
|
||||
#define GL_ARB_clear_texture 1
|
||||
#endif /* GL_ARB_clear_texture */
|
||||
|
||||
#ifndef GL_ARB_clip_control
|
||||
#define GL_ARB_clip_control 1
|
||||
#endif /* GL_ARB_clip_control */
|
||||
|
||||
#ifndef GL_ARB_color_buffer_float
|
||||
#define GL_ARB_color_buffer_float 1
|
||||
#define GL_RGBA_FLOAT_MODE_ARB 0x8820
|
||||
@@ -2955,6 +2677,7 @@ GLAPI void APIENTRY glClampColorARB (GLenum target, GLenum clamp);
|
||||
|
||||
#ifndef GL_ARB_compute_shader
|
||||
#define GL_ARB_compute_shader 1
|
||||
#define GL_COMPUTE_SHADER_BIT 0x00000020
|
||||
#endif /* GL_ARB_compute_shader */
|
||||
|
||||
#ifndef GL_ARB_compute_variable_group_size
|
||||
@@ -2969,10 +2692,6 @@ GLAPI void APIENTRY glDispatchComputeGroupSizeARB (GLuint num_groups_x, GLuint n
|
||||
#endif
|
||||
#endif /* GL_ARB_compute_variable_group_size */
|
||||
|
||||
#ifndef GL_ARB_conditional_render_inverted
|
||||
#define GL_ARB_conditional_render_inverted 1
|
||||
#endif /* GL_ARB_conditional_render_inverted */
|
||||
|
||||
#ifndef GL_ARB_conservative_depth
|
||||
#define GL_ARB_conservative_depth 1
|
||||
#endif /* GL_ARB_conservative_depth */
|
||||
@@ -2987,10 +2706,6 @@ GLAPI void APIENTRY glDispatchComputeGroupSizeARB (GLuint num_groups_x, GLuint n
|
||||
#define GL_ARB_copy_image 1
|
||||
#endif /* GL_ARB_copy_image */
|
||||
|
||||
#ifndef GL_ARB_cull_distance
|
||||
#define GL_ARB_cull_distance 1
|
||||
#endif /* GL_ARB_cull_distance */
|
||||
|
||||
#ifndef GL_ARB_debug_output
|
||||
#define GL_ARB_debug_output 1
|
||||
typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
|
||||
@@ -3045,14 +2760,6 @@ GLAPI GLuint APIENTRY glGetDebugMessageLogARB (GLuint count, GLsizei bufSize, GL
|
||||
#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B
|
||||
#endif /* GL_ARB_depth_texture */
|
||||
|
||||
#ifndef GL_ARB_derivative_control
|
||||
#define GL_ARB_derivative_control 1
|
||||
#endif /* GL_ARB_derivative_control */
|
||||
|
||||
#ifndef GL_ARB_direct_state_access
|
||||
#define GL_ARB_direct_state_access 1
|
||||
#endif /* GL_ARB_direct_state_access */
|
||||
|
||||
#ifndef GL_ARB_draw_buffers
|
||||
#define GL_ARB_draw_buffers 1
|
||||
#define GL_MAX_DRAW_BUFFERS_ARB 0x8824
|
||||
@@ -3311,10 +3018,6 @@ GLAPI void APIENTRY glFramebufferTextureFaceARB (GLenum target, GLenum attachmen
|
||||
#define GL_ARB_get_program_binary 1
|
||||
#endif /* GL_ARB_get_program_binary */
|
||||
|
||||
#ifndef GL_ARB_get_texture_sub_image
|
||||
#define GL_ARB_get_texture_sub_image 1
|
||||
#endif /* GL_ARB_get_texture_sub_image */
|
||||
|
||||
#ifndef GL_ARB_gpu_shader5
|
||||
#define GL_ARB_gpu_shader5 1
|
||||
#endif /* GL_ARB_gpu_shader5 */
|
||||
@@ -3702,20 +3405,6 @@ GLAPI void APIENTRY glGetQueryObjectuivARB (GLuint id, GLenum pname, GLuint *par
|
||||
#define GL_ARB_occlusion_query2 1
|
||||
#endif /* GL_ARB_occlusion_query2 */
|
||||
|
||||
#ifndef GL_ARB_pipeline_statistics_query
|
||||
#define GL_ARB_pipeline_statistics_query 1
|
||||
#define GL_VERTICES_SUBMITTED_ARB 0x82EE
|
||||
#define GL_PRIMITIVES_SUBMITTED_ARB 0x82EF
|
||||
#define GL_VERTEX_SHADER_INVOCATIONS_ARB 0x82F0
|
||||
#define GL_TESS_CONTROL_SHADER_PATCHES_ARB 0x82F1
|
||||
#define GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB 0x82F2
|
||||
#define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB 0x82F3
|
||||
#define GL_FRAGMENT_SHADER_INVOCATIONS_ARB 0x82F4
|
||||
#define GL_COMPUTE_SHADER_INVOCATIONS_ARB 0x82F5
|
||||
#define GL_CLIPPING_INPUT_PRIMITIVES_ARB 0x82F6
|
||||
#define GL_CLIPPING_OUTPUT_PRIMITIVES_ARB 0x82F7
|
||||
#endif /* GL_ARB_pipeline_statistics_query */
|
||||
|
||||
#ifndef GL_ARB_pixel_buffer_object
|
||||
#define GL_ARB_pixel_buffer_object 1
|
||||
#define GL_PIXEL_PACK_BUFFER_ARB 0x88EB
|
||||
@@ -4007,10 +3696,6 @@ GLAPI void APIENTRY glGetShaderSourceARB (GLhandleARB obj, GLsizei maxLength, GL
|
||||
#define GL_ARB_shader_subroutine 1
|
||||
#endif /* GL_ARB_shader_subroutine */
|
||||
|
||||
#ifndef GL_ARB_shader_texture_image_samples
|
||||
#define GL_ARB_shader_texture_image_samples 1
|
||||
#endif /* GL_ARB_shader_texture_image_samples */
|
||||
|
||||
#ifndef GL_ARB_shader_texture_lod
|
||||
#define GL_ARB_shader_texture_lod 1
|
||||
#endif /* GL_ARB_shader_texture_lod */
|
||||
@@ -4061,20 +3746,6 @@ GLAPI void APIENTRY glGetNamedStringivARB (GLint namelen, const GLchar *name, GL
|
||||
#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF
|
||||
#endif /* GL_ARB_shadow_ambient */
|
||||
|
||||
#ifndef GL_ARB_sparse_buffer
|
||||
#define GL_ARB_sparse_buffer 1
|
||||
#define GL_SPARSE_STORAGE_BIT_ARB 0x0400
|
||||
#define GL_SPARSE_BUFFER_PAGE_SIZE_ARB 0x82F8
|
||||
typedef void (APIENTRYP PFNGLBUFFERPAGECOMMITMENTARBPROC) (GLenum target, GLintptr offset, GLsizei size, GLboolean commit);
|
||||
typedef void (APIENTRYP PFNGLNAMEDBUFFERPAGECOMMITMENTEXTPROC) (GLuint buffer, GLintptr offset, GLsizei size, GLboolean commit);
|
||||
typedef void (APIENTRYP PFNGLNAMEDBUFFERPAGECOMMITMENTARBPROC) (GLuint buffer, GLintptr offset, GLsizei size, GLboolean commit);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glBufferPageCommitmentARB (GLenum target, GLintptr offset, GLsizei size, GLboolean commit);
|
||||
GLAPI void APIENTRY glNamedBufferPageCommitmentEXT (GLuint buffer, GLintptr offset, GLsizei size, GLboolean commit);
|
||||
GLAPI void APIENTRY glNamedBufferPageCommitmentARB (GLuint buffer, GLintptr offset, GLsizei size, GLboolean commit);
|
||||
#endif
|
||||
#endif /* GL_ARB_sparse_buffer */
|
||||
|
||||
#ifndef GL_ARB_sparse_texture
|
||||
#define GL_ARB_sparse_texture 1
|
||||
#define GL_TEXTURE_SPARSE_ARB 0x91A6
|
||||
@@ -4106,10 +3777,6 @@ GLAPI void APIENTRY glTexPageCommitmentARB (GLenum target, GLint level, GLint xo
|
||||
#define GL_ARB_tessellation_shader 1
|
||||
#endif /* GL_ARB_tessellation_shader */
|
||||
|
||||
#ifndef GL_ARB_texture_barrier
|
||||
#define GL_ARB_texture_barrier 1
|
||||
#endif /* GL_ARB_texture_barrier */
|
||||
|
||||
#ifndef GL_ARB_texture_border_clamp
|
||||
#define GL_ARB_texture_border_clamp 1
|
||||
#define GL_CLAMP_TO_BORDER_ARB 0x812D
|
||||
@@ -4356,12 +4023,6 @@ GLAPI void APIENTRY glGetCompressedTexImageARB (GLenum target, GLint level, void
|
||||
#define GL_ARB_transform_feedback_instanced 1
|
||||
#endif /* GL_ARB_transform_feedback_instanced */
|
||||
|
||||
#ifndef GL_ARB_transform_feedback_overflow_query
|
||||
#define GL_ARB_transform_feedback_overflow_query 1
|
||||
#define GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB 0x82EC
|
||||
#define GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB 0x82ED
|
||||
#endif /* GL_ARB_transform_feedback_overflow_query */
|
||||
|
||||
#ifndef GL_ARB_transpose_matrix
|
||||
#define GL_ARB_transpose_matrix 1
|
||||
#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3
|
||||
@@ -4382,6 +4043,9 @@ GLAPI void APIENTRY glMultTransposeMatrixdARB (const GLdouble *m);
|
||||
|
||||
#ifndef GL_ARB_uniform_buffer_object
|
||||
#define GL_ARB_uniform_buffer_object 1
|
||||
#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C
|
||||
#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32
|
||||
#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45
|
||||
#endif /* GL_ARB_uniform_buffer_object */
|
||||
|
||||
#ifndef GL_ARB_vertex_array_bgra
|
||||
@@ -4706,51 +4370,10 @@ GLAPI void APIENTRY glWindowPos3svARB (const GLshort *v);
|
||||
#endif
|
||||
#endif /* GL_ARB_window_pos */
|
||||
|
||||
#ifndef GL_KHR_blend_equation_advanced
|
||||
#define GL_KHR_blend_equation_advanced 1
|
||||
#define GL_MULTIPLY_KHR 0x9294
|
||||
#define GL_SCREEN_KHR 0x9295
|
||||
#define GL_OVERLAY_KHR 0x9296
|
||||
#define GL_DARKEN_KHR 0x9297
|
||||
#define GL_LIGHTEN_KHR 0x9298
|
||||
#define GL_COLORDODGE_KHR 0x9299
|
||||
#define GL_COLORBURN_KHR 0x929A
|
||||
#define GL_HARDLIGHT_KHR 0x929B
|
||||
#define GL_SOFTLIGHT_KHR 0x929C
|
||||
#define GL_DIFFERENCE_KHR 0x929E
|
||||
#define GL_EXCLUSION_KHR 0x92A0
|
||||
#define GL_HSL_HUE_KHR 0x92AD
|
||||
#define GL_HSL_SATURATION_KHR 0x92AE
|
||||
#define GL_HSL_COLOR_KHR 0x92AF
|
||||
#define GL_HSL_LUMINOSITY_KHR 0x92B0
|
||||
typedef void (APIENTRYP PFNGLBLENDBARRIERKHRPROC) (void);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glBlendBarrierKHR (void);
|
||||
#endif
|
||||
#endif /* GL_KHR_blend_equation_advanced */
|
||||
|
||||
#ifndef GL_KHR_blend_equation_advanced_coherent
|
||||
#define GL_KHR_blend_equation_advanced_coherent 1
|
||||
#define GL_BLEND_ADVANCED_COHERENT_KHR 0x9285
|
||||
#endif /* GL_KHR_blend_equation_advanced_coherent */
|
||||
|
||||
#ifndef GL_KHR_context_flush_control
|
||||
#define GL_KHR_context_flush_control 1
|
||||
#endif /* GL_KHR_context_flush_control */
|
||||
|
||||
#ifndef GL_KHR_debug
|
||||
#define GL_KHR_debug 1
|
||||
#endif /* GL_KHR_debug */
|
||||
|
||||
#ifndef GL_KHR_robust_buffer_access_behavior
|
||||
#define GL_KHR_robust_buffer_access_behavior 1
|
||||
#endif /* GL_KHR_robust_buffer_access_behavior */
|
||||
|
||||
#ifndef GL_KHR_robustness
|
||||
#define GL_KHR_robustness 1
|
||||
#define GL_CONTEXT_ROBUST_ACCESS 0x90F3
|
||||
#endif /* GL_KHR_robustness */
|
||||
|
||||
#ifndef GL_KHR_texture_compression_astc_hdr
|
||||
#define GL_KHR_texture_compression_astc_hdr 1
|
||||
#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0
|
||||
@@ -4805,11 +4428,11 @@ typedef void (APIENTRYP PFNGLTEXCOORD3BOESPROC) (GLbyte s, GLbyte t, GLbyte r);
|
||||
typedef void (APIENTRYP PFNGLTEXCOORD3BVOESPROC) (const GLbyte *coords);
|
||||
typedef void (APIENTRYP PFNGLTEXCOORD4BOESPROC) (GLbyte s, GLbyte t, GLbyte r, GLbyte q);
|
||||
typedef void (APIENTRYP PFNGLTEXCOORD4BVOESPROC) (const GLbyte *coords);
|
||||
typedef void (APIENTRYP PFNGLVERTEX2BOESPROC) (GLbyte x, GLbyte y);
|
||||
typedef void (APIENTRYP PFNGLVERTEX2BOESPROC) (GLbyte x);
|
||||
typedef void (APIENTRYP PFNGLVERTEX2BVOESPROC) (const GLbyte *coords);
|
||||
typedef void (APIENTRYP PFNGLVERTEX3BOESPROC) (GLbyte x, GLbyte y, GLbyte z);
|
||||
typedef void (APIENTRYP PFNGLVERTEX3BOESPROC) (GLbyte x, GLbyte y);
|
||||
typedef void (APIENTRYP PFNGLVERTEX3BVOESPROC) (const GLbyte *coords);
|
||||
typedef void (APIENTRYP PFNGLVERTEX4BOESPROC) (GLbyte x, GLbyte y, GLbyte z, GLbyte w);
|
||||
typedef void (APIENTRYP PFNGLVERTEX4BOESPROC) (GLbyte x, GLbyte y, GLbyte z);
|
||||
typedef void (APIENTRYP PFNGLVERTEX4BVOESPROC) (const GLbyte *coords);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glMultiTexCoord1bOES (GLenum texture, GLbyte s);
|
||||
@@ -4828,11 +4451,11 @@ GLAPI void APIENTRY glTexCoord3bOES (GLbyte s, GLbyte t, GLbyte r);
|
||||
GLAPI void APIENTRY glTexCoord3bvOES (const GLbyte *coords);
|
||||
GLAPI void APIENTRY glTexCoord4bOES (GLbyte s, GLbyte t, GLbyte r, GLbyte q);
|
||||
GLAPI void APIENTRY glTexCoord4bvOES (const GLbyte *coords);
|
||||
GLAPI void APIENTRY glVertex2bOES (GLbyte x, GLbyte y);
|
||||
GLAPI void APIENTRY glVertex2bOES (GLbyte x);
|
||||
GLAPI void APIENTRY glVertex2bvOES (const GLbyte *coords);
|
||||
GLAPI void APIENTRY glVertex3bOES (GLbyte x, GLbyte y, GLbyte z);
|
||||
GLAPI void APIENTRY glVertex3bOES (GLbyte x, GLbyte y);
|
||||
GLAPI void APIENTRY glVertex3bvOES (const GLbyte *coords);
|
||||
GLAPI void APIENTRY glVertex4bOES (GLbyte x, GLbyte y, GLbyte z, GLbyte w);
|
||||
GLAPI void APIENTRY glVertex4bOES (GLbyte x, GLbyte y, GLbyte z);
|
||||
GLAPI void APIENTRY glVertex4bvOES (const GLbyte *coords);
|
||||
#endif
|
||||
#endif /* GL_OES_byte_coordinates */
|
||||
@@ -5180,113 +4803,6 @@ GLAPI void APIENTRY glBlendEquationSeparateIndexedAMD (GLuint buf, GLenum modeRG
|
||||
#endif
|
||||
#endif /* GL_AMD_draw_buffers_blend */
|
||||
|
||||
#ifndef GL_AMD_gcn_shader
|
||||
#define GL_AMD_gcn_shader 1
|
||||
#endif /* GL_AMD_gcn_shader */
|
||||
|
||||
#ifndef GL_AMD_gpu_shader_int64
|
||||
#define GL_AMD_gpu_shader_int64 1
|
||||
typedef int64_t GLint64EXT;
|
||||
#define GL_INT64_NV 0x140E
|
||||
#define GL_UNSIGNED_INT64_NV 0x140F
|
||||
#define GL_INT8_NV 0x8FE0
|
||||
#define GL_INT8_VEC2_NV 0x8FE1
|
||||
#define GL_INT8_VEC3_NV 0x8FE2
|
||||
#define GL_INT8_VEC4_NV 0x8FE3
|
||||
#define GL_INT16_NV 0x8FE4
|
||||
#define GL_INT16_VEC2_NV 0x8FE5
|
||||
#define GL_INT16_VEC3_NV 0x8FE6
|
||||
#define GL_INT16_VEC4_NV 0x8FE7
|
||||
#define GL_INT64_VEC2_NV 0x8FE9
|
||||
#define GL_INT64_VEC3_NV 0x8FEA
|
||||
#define GL_INT64_VEC4_NV 0x8FEB
|
||||
#define GL_UNSIGNED_INT8_NV 0x8FEC
|
||||
#define GL_UNSIGNED_INT8_VEC2_NV 0x8FED
|
||||
#define GL_UNSIGNED_INT8_VEC3_NV 0x8FEE
|
||||
#define GL_UNSIGNED_INT8_VEC4_NV 0x8FEF
|
||||
#define GL_UNSIGNED_INT16_NV 0x8FF0
|
||||
#define GL_UNSIGNED_INT16_VEC2_NV 0x8FF1
|
||||
#define GL_UNSIGNED_INT16_VEC3_NV 0x8FF2
|
||||
#define GL_UNSIGNED_INT16_VEC4_NV 0x8FF3
|
||||
#define GL_UNSIGNED_INT64_VEC2_NV 0x8FF5
|
||||
#define GL_UNSIGNED_INT64_VEC3_NV 0x8FF6
|
||||
#define GL_UNSIGNED_INT64_VEC4_NV 0x8FF7
|
||||
#define GL_FLOAT16_NV 0x8FF8
|
||||
#define GL_FLOAT16_VEC2_NV 0x8FF9
|
||||
#define GL_FLOAT16_VEC3_NV 0x8FFA
|
||||
#define GL_FLOAT16_VEC4_NV 0x8FFB
|
||||
typedef void (APIENTRYP PFNGLUNIFORM1I64NVPROC) (GLint location, GLint64EXT x);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM2I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM3I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM4I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM1I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM2I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM3I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM4I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM1UI64NVPROC) (GLint location, GLuint64EXT x);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM2UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM3UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM4UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM1UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM2UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM3UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM4UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
typedef void (APIENTRYP PFNGLGETUNIFORMI64VNVPROC) (GLuint program, GLint location, GLint64EXT *params);
|
||||
typedef void (APIENTRYP PFNGLGETUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLuint64EXT *params);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1I64NVPROC) (GLuint program, GLint location, GLint64EXT x);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glUniform1i64NV (GLint location, GLint64EXT x);
|
||||
GLAPI void APIENTRY glUniform2i64NV (GLint location, GLint64EXT x, GLint64EXT y);
|
||||
GLAPI void APIENTRY glUniform3i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
|
||||
GLAPI void APIENTRY glUniform4i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
|
||||
GLAPI void APIENTRY glUniform1i64vNV (GLint location, GLsizei count, const GLint64EXT *value);
|
||||
GLAPI void APIENTRY glUniform2i64vNV (GLint location, GLsizei count, const GLint64EXT *value);
|
||||
GLAPI void APIENTRY glUniform3i64vNV (GLint location, GLsizei count, const GLint64EXT *value);
|
||||
GLAPI void APIENTRY glUniform4i64vNV (GLint location, GLsizei count, const GLint64EXT *value);
|
||||
GLAPI void APIENTRY glUniform1ui64NV (GLint location, GLuint64EXT x);
|
||||
GLAPI void APIENTRY glUniform2ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y);
|
||||
GLAPI void APIENTRY glUniform3ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
|
||||
GLAPI void APIENTRY glUniform4ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
|
||||
GLAPI void APIENTRY glUniform1ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
GLAPI void APIENTRY glUniform2ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
GLAPI void APIENTRY glUniform3ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
GLAPI void APIENTRY glUniform4ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
GLAPI void APIENTRY glGetUniformi64vNV (GLuint program, GLint location, GLint64EXT *params);
|
||||
GLAPI void APIENTRY glGetUniformui64vNV (GLuint program, GLint location, GLuint64EXT *params);
|
||||
GLAPI void APIENTRY glProgramUniform1i64NV (GLuint program, GLint location, GLint64EXT x);
|
||||
GLAPI void APIENTRY glProgramUniform2i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y);
|
||||
GLAPI void APIENTRY glProgramUniform3i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
|
||||
GLAPI void APIENTRY glProgramUniform4i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
|
||||
GLAPI void APIENTRY glProgramUniform1i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
|
||||
GLAPI void APIENTRY glProgramUniform2i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
|
||||
GLAPI void APIENTRY glProgramUniform3i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
|
||||
GLAPI void APIENTRY glProgramUniform4i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
|
||||
GLAPI void APIENTRY glProgramUniform1ui64NV (GLuint program, GLint location, GLuint64EXT x);
|
||||
GLAPI void APIENTRY glProgramUniform2ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y);
|
||||
GLAPI void APIENTRY glProgramUniform3ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
|
||||
GLAPI void APIENTRY glProgramUniform4ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
|
||||
GLAPI void APIENTRY glProgramUniform1ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
GLAPI void APIENTRY glProgramUniform2ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
GLAPI void APIENTRY glProgramUniform3ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
GLAPI void APIENTRY glProgramUniform4ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
#endif
|
||||
#endif /* GL_AMD_gpu_shader_int64 */
|
||||
|
||||
#ifndef GL_AMD_interleaved_elements
|
||||
#define GL_AMD_interleaved_elements 1
|
||||
#define GL_VERTEX_ELEMENT_SWIZZLE_AMD 0x91A4
|
||||
@@ -5449,11 +4965,6 @@ GLAPI void APIENTRY glStencilOpValueAMD (GLenum face, GLuint value);
|
||||
#define GL_AMD_transform_feedback3_lines_triangles 1
|
||||
#endif /* GL_AMD_transform_feedback3_lines_triangles */
|
||||
|
||||
#ifndef GL_AMD_transform_feedback4
|
||||
#define GL_AMD_transform_feedback4 1
|
||||
#define GL_STREAM_RASTERIZATION_AMD 0x91A0
|
||||
#endif /* GL_AMD_transform_feedback4 */
|
||||
|
||||
#ifndef GL_AMD_vertex_shader_layer
|
||||
#define GL_AMD_vertex_shader_layer 1
|
||||
#endif /* GL_AMD_vertex_shader_layer */
|
||||
@@ -7763,10 +7274,6 @@ GLAPI void APIENTRY glTexSubImage3DEXT (GLenum target, GLint level, GLint xoffse
|
||||
#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D
|
||||
#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF
|
||||
#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E
|
||||
typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glFramebufferTextureLayerEXT (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
|
||||
#endif
|
||||
#endif /* GL_EXT_texture_array */
|
||||
|
||||
#ifndef GL_EXT_texture_buffer_object
|
||||
@@ -8782,16 +8289,6 @@ GLAPI void APIENTRY glMultiDrawElementsIndirectBindlessNV (GLenum mode, GLenum t
|
||||
#endif
|
||||
#endif /* GL_NV_bindless_multi_draw_indirect */
|
||||
|
||||
#ifndef GL_NV_bindless_multi_draw_indirect_count
|
||||
#define GL_NV_bindless_multi_draw_indirect_count 1
|
||||
typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNVPROC) (GLenum mode, const void *indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount);
|
||||
typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNVPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glMultiDrawArraysIndirectBindlessCountNV (GLenum mode, const void *indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount);
|
||||
GLAPI void APIENTRY glMultiDrawElementsIndirectBindlessCountNV (GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount);
|
||||
#endif
|
||||
#endif /* GL_NV_bindless_multi_draw_indirect_count */
|
||||
|
||||
#ifndef GL_NV_bindless_texture
|
||||
#define GL_NV_bindless_texture 1
|
||||
typedef GLuint64 (APIENTRYP PFNGLGETTEXTUREHANDLENVPROC) (GLuint texture);
|
||||
@@ -9140,10 +8637,12 @@ GLAPI void APIENTRY glRenderbufferStorageMultisampleCoverageNV (GLenum target, G
|
||||
#define GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28
|
||||
typedef void (APIENTRYP PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint limit);
|
||||
typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);
|
||||
typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
|
||||
typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glProgramVertexLimitNV (GLenum target, GLint limit);
|
||||
GLAPI void APIENTRY glFramebufferTextureEXT (GLenum target, GLenum attachment, GLuint texture, GLint level);
|
||||
GLAPI void APIENTRY glFramebufferTextureLayerEXT (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
|
||||
GLAPI void APIENTRY glFramebufferTextureFaceEXT (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
|
||||
#endif
|
||||
#endif /* GL_NV_geometry_program4 */
|
||||
@@ -9222,6 +8721,103 @@ GLAPI void APIENTRY glGetProgramSubroutineParameteruivNV (GLenum target, GLuint
|
||||
|
||||
#ifndef GL_NV_gpu_shader5
|
||||
#define GL_NV_gpu_shader5 1
|
||||
typedef int64_t GLint64EXT;
|
||||
#define GL_INT64_NV 0x140E
|
||||
#define GL_UNSIGNED_INT64_NV 0x140F
|
||||
#define GL_INT8_NV 0x8FE0
|
||||
#define GL_INT8_VEC2_NV 0x8FE1
|
||||
#define GL_INT8_VEC3_NV 0x8FE2
|
||||
#define GL_INT8_VEC4_NV 0x8FE3
|
||||
#define GL_INT16_NV 0x8FE4
|
||||
#define GL_INT16_VEC2_NV 0x8FE5
|
||||
#define GL_INT16_VEC3_NV 0x8FE6
|
||||
#define GL_INT16_VEC4_NV 0x8FE7
|
||||
#define GL_INT64_VEC2_NV 0x8FE9
|
||||
#define GL_INT64_VEC3_NV 0x8FEA
|
||||
#define GL_INT64_VEC4_NV 0x8FEB
|
||||
#define GL_UNSIGNED_INT8_NV 0x8FEC
|
||||
#define GL_UNSIGNED_INT8_VEC2_NV 0x8FED
|
||||
#define GL_UNSIGNED_INT8_VEC3_NV 0x8FEE
|
||||
#define GL_UNSIGNED_INT8_VEC4_NV 0x8FEF
|
||||
#define GL_UNSIGNED_INT16_NV 0x8FF0
|
||||
#define GL_UNSIGNED_INT16_VEC2_NV 0x8FF1
|
||||
#define GL_UNSIGNED_INT16_VEC3_NV 0x8FF2
|
||||
#define GL_UNSIGNED_INT16_VEC4_NV 0x8FF3
|
||||
#define GL_UNSIGNED_INT64_VEC2_NV 0x8FF5
|
||||
#define GL_UNSIGNED_INT64_VEC3_NV 0x8FF6
|
||||
#define GL_UNSIGNED_INT64_VEC4_NV 0x8FF7
|
||||
#define GL_FLOAT16_NV 0x8FF8
|
||||
#define GL_FLOAT16_VEC2_NV 0x8FF9
|
||||
#define GL_FLOAT16_VEC3_NV 0x8FFA
|
||||
#define GL_FLOAT16_VEC4_NV 0x8FFB
|
||||
typedef void (APIENTRYP PFNGLUNIFORM1I64NVPROC) (GLint location, GLint64EXT x);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM2I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM3I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM4I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM1I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM2I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM3I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM4I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM1UI64NVPROC) (GLint location, GLuint64EXT x);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM2UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM3UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM4UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM1UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM2UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM3UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM4UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
typedef void (APIENTRYP PFNGLGETUNIFORMI64VNVPROC) (GLuint program, GLint location, GLint64EXT *params);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1I64NVPROC) (GLuint program, GLint location, GLint64EXT x);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glUniform1i64NV (GLint location, GLint64EXT x);
|
||||
GLAPI void APIENTRY glUniform2i64NV (GLint location, GLint64EXT x, GLint64EXT y);
|
||||
GLAPI void APIENTRY glUniform3i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
|
||||
GLAPI void APIENTRY glUniform4i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
|
||||
GLAPI void APIENTRY glUniform1i64vNV (GLint location, GLsizei count, const GLint64EXT *value);
|
||||
GLAPI void APIENTRY glUniform2i64vNV (GLint location, GLsizei count, const GLint64EXT *value);
|
||||
GLAPI void APIENTRY glUniform3i64vNV (GLint location, GLsizei count, const GLint64EXT *value);
|
||||
GLAPI void APIENTRY glUniform4i64vNV (GLint location, GLsizei count, const GLint64EXT *value);
|
||||
GLAPI void APIENTRY glUniform1ui64NV (GLint location, GLuint64EXT x);
|
||||
GLAPI void APIENTRY glUniform2ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y);
|
||||
GLAPI void APIENTRY glUniform3ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
|
||||
GLAPI void APIENTRY glUniform4ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
|
||||
GLAPI void APIENTRY glUniform1ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
GLAPI void APIENTRY glUniform2ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
GLAPI void APIENTRY glUniform3ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
GLAPI void APIENTRY glUniform4ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
GLAPI void APIENTRY glGetUniformi64vNV (GLuint program, GLint location, GLint64EXT *params);
|
||||
GLAPI void APIENTRY glProgramUniform1i64NV (GLuint program, GLint location, GLint64EXT x);
|
||||
GLAPI void APIENTRY glProgramUniform2i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y);
|
||||
GLAPI void APIENTRY glProgramUniform3i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
|
||||
GLAPI void APIENTRY glProgramUniform4i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
|
||||
GLAPI void APIENTRY glProgramUniform1i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
|
||||
GLAPI void APIENTRY glProgramUniform2i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
|
||||
GLAPI void APIENTRY glProgramUniform3i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
|
||||
GLAPI void APIENTRY glProgramUniform4i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
|
||||
GLAPI void APIENTRY glProgramUniform1ui64NV (GLuint program, GLint location, GLuint64EXT x);
|
||||
GLAPI void APIENTRY glProgramUniform2ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y);
|
||||
GLAPI void APIENTRY glProgramUniform3ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
|
||||
GLAPI void APIENTRY glProgramUniform4ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
|
||||
GLAPI void APIENTRY glProgramUniform1ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
GLAPI void APIENTRY glProgramUniform2ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
GLAPI void APIENTRY glProgramUniform3ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
GLAPI void APIENTRY glProgramUniform4ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
#endif
|
||||
#endif /* GL_NV_gpu_shader5 */
|
||||
|
||||
#ifndef GL_NV_half_float
|
||||
@@ -9522,40 +9118,6 @@ GLAPI void APIENTRY glProgramBufferParametersIuivNV (GLenum target, GLuint bindi
|
||||
#define GL_FONT_HAS_KERNING_BIT_NV 0x10000000
|
||||
#define GL_PRIMARY_COLOR_NV 0x852C
|
||||
#define GL_SECONDARY_COLOR_NV 0x852D
|
||||
#define GL_ROUNDED_RECT_NV 0xE8
|
||||
#define GL_RELATIVE_ROUNDED_RECT_NV 0xE9
|
||||
#define GL_ROUNDED_RECT2_NV 0xEA
|
||||
#define GL_RELATIVE_ROUNDED_RECT2_NV 0xEB
|
||||
#define GL_ROUNDED_RECT4_NV 0xEC
|
||||
#define GL_RELATIVE_ROUNDED_RECT4_NV 0xED
|
||||
#define GL_ROUNDED_RECT8_NV 0xEE
|
||||
#define GL_RELATIVE_ROUNDED_RECT8_NV 0xEF
|
||||
#define GL_RELATIVE_RECT_NV 0xF7
|
||||
#define GL_FONT_GLYPHS_AVAILABLE_NV 0x9368
|
||||
#define GL_FONT_TARGET_UNAVAILABLE_NV 0x9369
|
||||
#define GL_FONT_UNAVAILABLE_NV 0x936A
|
||||
#define GL_FONT_UNINTELLIGIBLE_NV 0x936B
|
||||
#define GL_CONIC_CURVE_TO_NV 0x1A
|
||||
#define GL_RELATIVE_CONIC_CURVE_TO_NV 0x1B
|
||||
#define GL_FONT_NUM_GLYPH_INDICES_BIT_NV 0x20000000
|
||||
#define GL_STANDARD_FONT_FORMAT_NV 0x936C
|
||||
#define GL_2_BYTES_NV 0x1407
|
||||
#define GL_3_BYTES_NV 0x1408
|
||||
#define GL_4_BYTES_NV 0x1409
|
||||
#define GL_EYE_LINEAR_NV 0x2400
|
||||
#define GL_OBJECT_LINEAR_NV 0x2401
|
||||
#define GL_CONSTANT_NV 0x8576
|
||||
#define GL_PATH_PROJECTION_NV 0x1701
|
||||
#define GL_PATH_MODELVIEW_NV 0x1700
|
||||
#define GL_PATH_MODELVIEW_STACK_DEPTH_NV 0x0BA3
|
||||
#define GL_PATH_MODELVIEW_MATRIX_NV 0x0BA6
|
||||
#define GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV 0x0D36
|
||||
#define GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV 0x84E3
|
||||
#define GL_PATH_PROJECTION_STACK_DEPTH_NV 0x0BA4
|
||||
#define GL_PATH_PROJECTION_MATRIX_NV 0x0BA7
|
||||
#define GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV 0x0D38
|
||||
#define GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV 0x84E4
|
||||
#define GL_FRAGMENT_INPUT_NV 0x936D
|
||||
typedef GLuint (APIENTRYP PFNGLGENPATHSNVPROC) (GLsizei range);
|
||||
typedef void (APIENTRYP PFNGLDELETEPATHSNVPROC) (GLuint path, GLsizei range);
|
||||
typedef GLboolean (APIENTRYP PFNGLISPATHNVPROC) (GLuint path);
|
||||
@@ -9605,21 +9167,6 @@ typedef GLboolean (APIENTRYP PFNGLISPOINTINFILLPATHNVPROC) (GLuint path, GLuint
|
||||
typedef GLboolean (APIENTRYP PFNGLISPOINTINSTROKEPATHNVPROC) (GLuint path, GLfloat x, GLfloat y);
|
||||
typedef GLfloat (APIENTRYP PFNGLGETPATHLENGTHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments);
|
||||
typedef GLboolean (APIENTRYP PFNGLPOINTALONGPATHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY);
|
||||
typedef void (APIENTRYP PFNGLMATRIXLOAD3X2FNVPROC) (GLenum matrixMode, const GLfloat *m);
|
||||
typedef void (APIENTRYP PFNGLMATRIXLOAD3X3FNVPROC) (GLenum matrixMode, const GLfloat *m);
|
||||
typedef void (APIENTRYP PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC) (GLenum matrixMode, const GLfloat *m);
|
||||
typedef void (APIENTRYP PFNGLMATRIXMULT3X2FNVPROC) (GLenum matrixMode, const GLfloat *m);
|
||||
typedef void (APIENTRYP PFNGLMATRIXMULT3X3FNVPROC) (GLenum matrixMode, const GLfloat *m);
|
||||
typedef void (APIENTRYP PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC) (GLenum matrixMode, const GLfloat *m);
|
||||
typedef void (APIENTRYP PFNGLSTENCILTHENCOVERFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode);
|
||||
typedef void (APIENTRYP PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask, GLenum coverMode);
|
||||
typedef void (APIENTRYP PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
|
||||
typedef void (APIENTRYP PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
|
||||
typedef GLenum (APIENTRYP PFNGLPATHGLYPHINDEXRANGENVPROC) (GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint baseAndCount[2]);
|
||||
typedef GLenum (APIENTRYP PFNGLPATHGLYPHINDEXARRAYNVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
|
||||
typedef GLenum (APIENTRYP PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC) (GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC) (GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat *coeffs);
|
||||
typedef void (APIENTRYP PFNGLGETPROGRAMRESOURCEFVNVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLfloat *params);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI GLuint APIENTRY glGenPathsNV (GLsizei range);
|
||||
GLAPI void APIENTRY glDeletePathsNV (GLuint path, GLsizei range);
|
||||
@@ -9670,21 +9217,6 @@ GLAPI GLboolean APIENTRY glIsPointInFillPathNV (GLuint path, GLuint mask, GLfloa
|
||||
GLAPI GLboolean APIENTRY glIsPointInStrokePathNV (GLuint path, GLfloat x, GLfloat y);
|
||||
GLAPI GLfloat APIENTRY glGetPathLengthNV (GLuint path, GLsizei startSegment, GLsizei numSegments);
|
||||
GLAPI GLboolean APIENTRY glPointAlongPathNV (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY);
|
||||
GLAPI void APIENTRY glMatrixLoad3x2fNV (GLenum matrixMode, const GLfloat *m);
|
||||
GLAPI void APIENTRY glMatrixLoad3x3fNV (GLenum matrixMode, const GLfloat *m);
|
||||
GLAPI void APIENTRY glMatrixLoadTranspose3x3fNV (GLenum matrixMode, const GLfloat *m);
|
||||
GLAPI void APIENTRY glMatrixMult3x2fNV (GLenum matrixMode, const GLfloat *m);
|
||||
GLAPI void APIENTRY glMatrixMult3x3fNV (GLenum matrixMode, const GLfloat *m);
|
||||
GLAPI void APIENTRY glMatrixMultTranspose3x3fNV (GLenum matrixMode, const GLfloat *m);
|
||||
GLAPI void APIENTRY glStencilThenCoverFillPathNV (GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode);
|
||||
GLAPI void APIENTRY glStencilThenCoverStrokePathNV (GLuint path, GLint reference, GLuint mask, GLenum coverMode);
|
||||
GLAPI void APIENTRY glStencilThenCoverFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
|
||||
GLAPI void APIENTRY glStencilThenCoverStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
|
||||
GLAPI GLenum APIENTRY glPathGlyphIndexRangeNV (GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint baseAndCount[2]);
|
||||
GLAPI GLenum APIENTRY glPathGlyphIndexArrayNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
|
||||
GLAPI GLenum APIENTRY glPathMemoryGlyphIndexArrayNV (GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
|
||||
GLAPI void APIENTRY glProgramPathFragmentInputGenNV (GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat *coeffs);
|
||||
GLAPI void APIENTRY glGetProgramResourcefvNV (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLfloat *params);
|
||||
#endif
|
||||
#endif /* GL_NV_path_rendering */
|
||||
|
||||
@@ -9853,10 +9385,6 @@ GLAPI void APIENTRY glGetCombinerStageParameterfvNV (GLenum stage, GLenum pname,
|
||||
#define GL_NV_shader_atomic_float 1
|
||||
#endif /* GL_NV_shader_atomic_float */
|
||||
|
||||
#ifndef GL_NV_shader_atomic_int64
|
||||
#define GL_NV_shader_atomic_int64 1
|
||||
#endif /* GL_NV_shader_atomic_int64 */
|
||||
|
||||
#ifndef GL_NV_shader_buffer_load
|
||||
#define GL_NV_shader_buffer_load 1
|
||||
#define GL_BUFFER_GPU_ADDRESS_NV 0x8F1D
|
||||
@@ -9873,6 +9401,7 @@ typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC) (GLuint buffer,
|
||||
typedef void (APIENTRYP PFNGLGETINTEGERUI64VNVPROC) (GLenum value, GLuint64EXT *result);
|
||||
typedef void (APIENTRYP PFNGLUNIFORMUI64NVPROC) (GLint location, GLuint64EXT value);
|
||||
typedef void (APIENTRYP PFNGLUNIFORMUI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
typedef void (APIENTRYP PFNGLGETUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLuint64EXT *params);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORMUI64NVPROC) (GLuint program, GLint location, GLuint64EXT value);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
@@ -9887,6 +9416,7 @@ GLAPI void APIENTRY glGetNamedBufferParameterui64vNV (GLuint buffer, GLenum pnam
|
||||
GLAPI void APIENTRY glGetIntegerui64vNV (GLenum value, GLuint64EXT *result);
|
||||
GLAPI void APIENTRY glUniformui64NV (GLint location, GLuint64EXT value);
|
||||
GLAPI void APIENTRY glUniformui64vNV (GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
GLAPI void APIENTRY glGetUniformui64vNV (GLuint program, GLint location, GLuint64EXT *params);
|
||||
GLAPI void APIENTRY glProgramUniformui64NV (GLuint program, GLint location, GLuint64EXT value);
|
||||
GLAPI void APIENTRY glProgramUniformui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
|
||||
#endif
|
||||
@@ -10126,7 +9656,7 @@ GLAPI void APIENTRY glTextureImage3DMultisampleCoverageNV (GLuint texture, GLenu
|
||||
#define GL_SKIP_COMPONENTS1_NV -6
|
||||
typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKNVPROC) (GLenum primitiveMode);
|
||||
typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKNVPROC) (void);
|
||||
typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC) (GLsizei count, const GLint *attribs, GLenum bufferMode);
|
||||
typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC) (GLuint count, const GLint *attribs, GLenum bufferMode);
|
||||
typedef void (APIENTRYP PFNGLBINDBUFFERRANGENVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
|
||||
typedef void (APIENTRYP PFNGLBINDBUFFEROFFSETNVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset);
|
||||
typedef void (APIENTRYP PFNGLBINDBUFFERBASENVPROC) (GLenum target, GLuint index, GLuint buffer);
|
||||
@@ -10139,7 +9669,7 @@ typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKSTREAMATTRIBSNVPROC) (GLsizei coun
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glBeginTransformFeedbackNV (GLenum primitiveMode);
|
||||
GLAPI void APIENTRY glEndTransformFeedbackNV (void);
|
||||
GLAPI void APIENTRY glTransformFeedbackAttribsNV (GLsizei count, const GLint *attribs, GLenum bufferMode);
|
||||
GLAPI void APIENTRY glTransformFeedbackAttribsNV (GLuint count, const GLint *attribs, GLenum bufferMode);
|
||||
GLAPI void APIENTRY glBindBufferRangeNV (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
|
||||
GLAPI void APIENTRY glBindBufferOffsetNV (GLenum target, GLuint index, GLuint buffer, GLintptr offset);
|
||||
GLAPI void APIENTRY glBindBufferBaseNV (GLenum target, GLuint index, GLuint buffer);
|
||||
|
@@ -518,7 +518,7 @@ typedef struct {
|
||||
unsigned long serial; /* # of last request processed by server */
|
||||
Bool send_event; /* true if this came from a SendEvent request */
|
||||
Display *display; /* Display the event was read from */
|
||||
Drawable drawable; /* drawable on which event was requested in event mask */
|
||||
GLXDrawable drawable; /* drawable on which event was requested in event mask */
|
||||
int event_type;
|
||||
int64_t ust;
|
||||
int64_t msc;
|
||||
|
@@ -33,10 +33,10 @@ extern "C" {
|
||||
** used to make the header, and the header can be found at
|
||||
** http://www.opengl.org/registry/
|
||||
**
|
||||
** Khronos $Revision: 27684 $ on $Date: 2014-08-11 01:21:35 -0700 (Mon, 11 Aug 2014) $
|
||||
** Khronos $Revision: 25407 $ on $Date: 2014-02-18 16:51:56 -0800 (Tue, 18 Feb 2014) $
|
||||
*/
|
||||
|
||||
#define GLX_GLXEXT_VERSION 20140810
|
||||
#define GLX_GLXEXT_VERSION 20140218
|
||||
|
||||
/* Generated C header for:
|
||||
* API: glx
|
||||
@@ -158,13 +158,6 @@ __GLXextFuncPtr glXGetProcAddress (const GLubyte *procName);
|
||||
#endif
|
||||
#endif /* GLX_VERSION_1_4 */
|
||||
|
||||
#ifndef GLX_ARB_context_flush_control
|
||||
#define GLX_ARB_context_flush_control 1
|
||||
#define GLX_CONTEXT_RELEASE_BEHAVIOR_ARB 0x2097
|
||||
#define GLX_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB 0
|
||||
#define GLX_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB 0x2098
|
||||
#endif /* GLX_ARB_context_flush_control */
|
||||
|
||||
#ifndef GLX_ARB_create_context
|
||||
#define GLX_ARB_create_context 1
|
||||
#define GLX_CONTEXT_DEBUG_BIT_ARB 0x00000001
|
||||
@@ -297,23 +290,6 @@ void glXFreeContextEXT (Display *dpy, GLXContext context);
|
||||
#endif
|
||||
#endif /* GLX_EXT_import_context */
|
||||
|
||||
#ifndef GLX_EXT_stereo_tree
|
||||
#define GLX_EXT_stereo_tree 1
|
||||
typedef struct {
|
||||
int type;
|
||||
unsigned long serial;
|
||||
Bool send_event;
|
||||
Display *display;
|
||||
int extension;
|
||||
int evtype;
|
||||
GLXDrawable window;
|
||||
Bool stereo_tree;
|
||||
} GLXStereoNotifyEventEXT;
|
||||
#define GLX_STEREO_TREE_EXT 0x20F5
|
||||
#define GLX_STEREO_NOTIFY_MASK_EXT 0x00000001
|
||||
#define GLX_STEREO_NOTIFY_EXT 0x00000000
|
||||
#endif /* GLX_EXT_stereo_tree */
|
||||
|
||||
#ifndef GLX_EXT_swap_control
|
||||
#define GLX_EXT_swap_control 1
|
||||
#define GLX_SWAP_INTERVAL_EXT 0x20F1
|
||||
@@ -475,16 +451,6 @@ Bool glXSet3DfxModeMESA (int mode);
|
||||
#endif
|
||||
#endif /* GLX_MESA_set_3dfx_mode */
|
||||
|
||||
#ifndef GLX_NV_copy_buffer
|
||||
#define GLX_NV_copy_buffer 1
|
||||
typedef void ( *PFNGLXCOPYBUFFERSUBDATANVPROC) (Display *dpy, GLXContext readCtx, GLXContext writeCtx, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
|
||||
typedef void ( *PFNGLXNAMEDCOPYBUFFERSUBDATANVPROC) (Display *dpy, GLXContext readCtx, GLXContext writeCtx, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
|
||||
#ifdef GLX_GLXEXT_PROTOTYPES
|
||||
void glXCopyBufferSubDataNV (Display *dpy, GLXContext readCtx, GLXContext writeCtx, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
|
||||
void glXNamedCopyBufferSubDataNV (Display *dpy, GLXContext readCtx, GLXContext writeCtx, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
|
||||
#endif
|
||||
#endif /* GLX_NV_copy_buffer */
|
||||
|
||||
#ifndef GLX_NV_copy_image
|
||||
#define GLX_NV_copy_image 1
|
||||
typedef void ( *PFNGLXCOPYIMAGESUBDATANVPROC) (Display *dpy, GLXContext srcCtx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLXContext dstCtx, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
|
||||
@@ -561,8 +527,8 @@ void glXReleaseVideoCaptureDeviceNV (Display *dpy, GLXVideoCaptureDeviceNV devic
|
||||
#endif
|
||||
#endif /* GLX_NV_video_capture */
|
||||
|
||||
#ifndef GLX_NV_video_out
|
||||
#define GLX_NV_video_out 1
|
||||
#ifndef GLX_NV_video_output
|
||||
#define GLX_NV_video_output 1
|
||||
typedef unsigned int GLXVideoDeviceNV;
|
||||
#define GLX_VIDEO_OUT_COLOR_NV 0x20C3
|
||||
#define GLX_VIDEO_OUT_ALPHA_NV 0x20C4
|
||||
@@ -588,7 +554,7 @@ int glXReleaseVideoImageNV (Display *dpy, GLXPbuffer pbuf);
|
||||
int glXSendPbufferToVideoNV (Display *dpy, GLXPbuffer pbuf, int iBufferType, unsigned long *pulCounterPbuffer, GLboolean bBlock);
|
||||
int glXGetVideoInfoNV (Display *dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo);
|
||||
#endif
|
||||
#endif /* GLX_NV_video_out */
|
||||
#endif /* GLX_NV_video_output */
|
||||
|
||||
#ifndef GLX_OML_swap_method
|
||||
#define GLX_OML_swap_method 1
|
||||
|
@@ -1005,7 +1005,7 @@ struct __DRIdri2ExtensionRec {
|
||||
* extensions.
|
||||
*/
|
||||
#define __DRI_IMAGE "DRI_IMAGE"
|
||||
#define __DRI_IMAGE_VERSION 10
|
||||
#define __DRI_IMAGE_VERSION 8
|
||||
|
||||
/**
|
||||
* These formats correspond to the similarly named MESA_FORMAT_*
|
||||
@@ -1133,20 +1133,6 @@ enum __DRIChromaSiting {
|
||||
#define __DRI_IMAGE_ERROR_BAD_PARAMETER 3
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
* \name Capabilities that might be returned by __DRIimageExtensionRec::getCapabilities
|
||||
*/
|
||||
/*@{*/
|
||||
#define __DRI_IMAGE_CAP_GLOBAL_NAMES 1
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
* blitImage flags
|
||||
*/
|
||||
|
||||
#define __BLIT_FLAG_FLUSH 0x0001
|
||||
#define __BLIT_FLAG_FINISH 0x0002
|
||||
|
||||
typedef struct __DRIimageRec __DRIimage;
|
||||
typedef struct __DRIimageExtensionRec __DRIimageExtension;
|
||||
struct __DRIimageExtensionRec {
|
||||
@@ -1253,29 +1239,6 @@ struct __DRIimageExtensionRec {
|
||||
enum __DRIChromaSiting vert_siting,
|
||||
unsigned *error,
|
||||
void *loaderPrivate);
|
||||
|
||||
/**
|
||||
* Blit a part of a __DRIimage to another and flushes
|
||||
*
|
||||
* flush_flag:
|
||||
* 0: no flush
|
||||
* __BLIT_FLAG_FLUSH: flush after the blit operation
|
||||
* __BLIT_FLAG_FINISH: flush and wait the blit finished
|
||||
*
|
||||
* \since 9
|
||||
*/
|
||||
void (*blitImage)(__DRIcontext *context, __DRIimage *dst, __DRIimage *src,
|
||||
int dstx0, int dsty0, int dstwidth, int dstheight,
|
||||
int srcx0, int srcy0, int srcwidth, int srcheight,
|
||||
int flush_flag);
|
||||
|
||||
/**
|
||||
* Query for general capabilities of the driver that concern
|
||||
* buffer sharing and image importing.
|
||||
*
|
||||
* \since 10
|
||||
*/
|
||||
int (*getCapabilities)(__DRIscreen *screen);
|
||||
};
|
||||
|
||||
|
||||
@@ -1309,9 +1272,9 @@ typedef struct __DRI2configQueryExtensionRec __DRI2configQueryExtension;
|
||||
struct __DRI2configQueryExtensionRec {
|
||||
__DRIextension base;
|
||||
|
||||
int (*configQueryb)(__DRIscreen *screen, const char *var, unsigned char *val);
|
||||
int (*configQueryi)(__DRIscreen *screen, const char *var, int *val);
|
||||
int (*configQueryf)(__DRIscreen *screen, const char *var, float *val);
|
||||
int (*configQueryb)(__DRIscreen *screen, const char *var, GLboolean *val);
|
||||
int (*configQueryi)(__DRIscreen *screen, const char *var, GLint *val);
|
||||
int (*configQueryf)(__DRIscreen *screen, const char *var, GLfloat *val);
|
||||
};
|
||||
|
||||
/**
|
||||
|
1363
include/GL/wglext.h
1363
include/GL/wglext.h
File diff suppressed because it is too large
Load Diff
@@ -296,7 +296,7 @@ static void impl_tss_dtor_invoke()
|
||||
static inline void
|
||||
call_once(once_flag *flag, void (*func)(void))
|
||||
{
|
||||
assert(flag && func);
|
||||
assert(!flag && !func);
|
||||
#ifdef EMULATED_THREADS_USE_NATIVE_CALL_ONCE
|
||||
{
|
||||
struct impl_call_once_param param;
|
||||
|
@@ -91,24 +91,24 @@ CHIPSET(0x0F32, byt, "Intel(R) Bay Trail")
|
||||
CHIPSET(0x0F33, byt, "Intel(R) Bay Trail")
|
||||
CHIPSET(0x0157, byt, "Intel(R) Bay Trail")
|
||||
CHIPSET(0x0155, byt, "Intel(R) Bay Trail")
|
||||
CHIPSET(0x1602, bdw_gt1, "Intel(R) Broadwell GT1")
|
||||
CHIPSET(0x1606, bdw_gt1, "Intel(R) Broadwell GT1")
|
||||
CHIPSET(0x160A, bdw_gt1, "Intel(R) Broadwell GT1")
|
||||
CHIPSET(0x160B, bdw_gt1, "Intel(R) Broadwell GT1")
|
||||
CHIPSET(0x160D, bdw_gt1, "Intel(R) Broadwell GT1")
|
||||
CHIPSET(0x160E, bdw_gt1, "Intel(R) Broadwell GT1")
|
||||
CHIPSET(0x1612, bdw_gt2, "Intel(R) HD Graphics 5600 (Broadwell GT2)")
|
||||
CHIPSET(0x1616, bdw_gt2, "Intel(R) HD Graphics 5500 (Broadwell GT2)")
|
||||
CHIPSET(0x161A, bdw_gt2, "Intel(R) Broadwell GT2")
|
||||
CHIPSET(0x161B, bdw_gt2, "Intel(R) Broadwell GT2")
|
||||
CHIPSET(0x161D, bdw_gt2, "Intel(R) Broadwell GT2")
|
||||
CHIPSET(0x161E, bdw_gt2, "Intel(R) HD Graphics 5300 (Broadwell GT2)")
|
||||
CHIPSET(0x1622, bdw_gt3, "Intel(R) Iris Pro 6200 (Broadwell GT3e)")
|
||||
CHIPSET(0x1626, bdw_gt3, "Intel(R) HD Graphics 6000 (Broadwell GT3)")
|
||||
CHIPSET(0x162A, bdw_gt3, "Intel(R) Iris Pro P6300 (Broadwell GT3e)")
|
||||
CHIPSET(0x162B, bdw_gt3, "Intel(R) Iris 6100 (Broadwell GT3)")
|
||||
CHIPSET(0x162D, bdw_gt3, "Intel(R) Broadwell GT3")
|
||||
CHIPSET(0x162E, bdw_gt3, "Intel(R) Broadwell GT3")
|
||||
CHIPSET(0x1602, bdw_gt1, "Intel(R) Broadwell")
|
||||
CHIPSET(0x1606, bdw_gt1, "Intel(R) Broadwell")
|
||||
CHIPSET(0x160A, bdw_gt1, "Intel(R) Broadwell")
|
||||
CHIPSET(0x160B, bdw_gt1, "Intel(R) Broadwell")
|
||||
CHIPSET(0x160D, bdw_gt1, "Intel(R) Broadwell")
|
||||
CHIPSET(0x160E, bdw_gt1, "Intel(R) Broadwell")
|
||||
CHIPSET(0x1612, bdw_gt2, "Intel(R) Broadwell")
|
||||
CHIPSET(0x1616, bdw_gt2, "Intel(R) Broadwell")
|
||||
CHIPSET(0x161A, bdw_gt2, "Intel(R) Broadwell")
|
||||
CHIPSET(0x161B, bdw_gt2, "Intel(R) Broadwell")
|
||||
CHIPSET(0x161D, bdw_gt2, "Intel(R) Broadwell")
|
||||
CHIPSET(0x161E, bdw_gt2, "Intel(R) Broadwell")
|
||||
CHIPSET(0x1622, bdw_gt3, "Intel(R) Broadwell")
|
||||
CHIPSET(0x1626, bdw_gt3, "Intel(R) Broadwell")
|
||||
CHIPSET(0x162A, bdw_gt3, "Intel(R) Broadwell")
|
||||
CHIPSET(0x162B, bdw_gt3, "Intel(R) Broadwell")
|
||||
CHIPSET(0x162D, bdw_gt3, "Intel(R) Broadwell")
|
||||
CHIPSET(0x162E, bdw_gt3, "Intel(R) Broadwell")
|
||||
CHIPSET(0x22B0, chv, "Intel(R) Cherryview")
|
||||
CHIPSET(0x22B1, chv, "Intel(R) Cherryview")
|
||||
CHIPSET(0x22B2, chv, "Intel(R) Cherryview")
|
||||
|
@@ -38,7 +38,6 @@ CHIPSET(0x6828, VERDE_6828, VERDE)
|
||||
CHIPSET(0x6829, VERDE_6829, VERDE)
|
||||
CHIPSET(0x682A, VERDE_682A, VERDE)
|
||||
CHIPSET(0x682B, VERDE_682B, VERDE)
|
||||
CHIPSET(0x682C, VERDE_682C, VERDE)
|
||||
CHIPSET(0x682D, VERDE_682D, VERDE)
|
||||
CHIPSET(0x682F, VERDE_682F, VERDE)
|
||||
CHIPSET(0x6830, VERDE_6830, VERDE)
|
||||
@@ -55,11 +54,8 @@ CHIPSET(0x6600, OLAND_6600, OLAND)
|
||||
CHIPSET(0x6601, OLAND_6601, OLAND)
|
||||
CHIPSET(0x6602, OLAND_6602, OLAND)
|
||||
CHIPSET(0x6603, OLAND_6603, OLAND)
|
||||
CHIPSET(0x6604, OLAND_6604, OLAND)
|
||||
CHIPSET(0x6605, OLAND_6605, OLAND)
|
||||
CHIPSET(0x6606, OLAND_6606, OLAND)
|
||||
CHIPSET(0x6607, OLAND_6607, OLAND)
|
||||
CHIPSET(0x6608, OLAND_6608, OLAND)
|
||||
CHIPSET(0x6610, OLAND_6610, OLAND)
|
||||
CHIPSET(0x6611, OLAND_6611, OLAND)
|
||||
CHIPSET(0x6613, OLAND_6613, OLAND)
|
||||
@@ -77,8 +73,6 @@ CHIPSET(0x666F, HAINAN_666F, HAINAN)
|
||||
|
||||
CHIPSET(0x6640, BONAIRE_6640, BONAIRE)
|
||||
CHIPSET(0x6641, BONAIRE_6641, BONAIRE)
|
||||
CHIPSET(0x6646, BONAIRE_6646, BONAIRE)
|
||||
CHIPSET(0x6647, BONAIRE_6647, BONAIRE)
|
||||
CHIPSET(0x6649, BONAIRE_6649, BONAIRE)
|
||||
CHIPSET(0x6650, BONAIRE_6650, BONAIRE)
|
||||
CHIPSET(0x6651, BONAIRE_6651, BONAIRE)
|
||||
@@ -138,7 +132,6 @@ CHIPSET(0x1313, KAVERI_1313, KAVERI)
|
||||
CHIPSET(0x1315, KAVERI_1315, KAVERI)
|
||||
CHIPSET(0x1316, KAVERI_1316, KAVERI)
|
||||
CHIPSET(0x1317, KAVERI_1317, KAVERI)
|
||||
CHIPSET(0x1318, KAVERI_1318, KAVERI)
|
||||
CHIPSET(0x131B, KAVERI_131B, KAVERI)
|
||||
CHIPSET(0x131C, KAVERI_131C, KAVERI)
|
||||
CHIPSET(0x131D, KAVERI_131D, KAVERI)
|
||||
|
@@ -5,7 +5,7 @@ if BUILD_SHARED
|
||||
if HAVE_COMPAT_SYMLINKS
|
||||
all-local : .libs/install-gallium-links
|
||||
|
||||
.libs/install-gallium-links : $(dri_LTLIBRARIES) $(egl_LTLIBRARIES) $(lib_LTLIBRARIES)
|
||||
.libs/install-gallium-links : $(dri_LTLIBRARIES) $(vdpau_LTLIBRARIES) $(egl_LTLIBRARIES) $(lib_LTLIBRARIES)
|
||||
$(AM_V_GEN)$(MKDIR_P) $(top_builddir)/$(LIB_DIR); \
|
||||
link_dir=$(top_builddir)/$(LIB_DIR)/gallium; \
|
||||
if test x$(egl_LTLIBRARIES) != x; then \
|
||||
@@ -13,6 +13,7 @@ all-local : .libs/install-gallium-links
|
||||
fi; \
|
||||
$(MKDIR_P) $$link_dir; \
|
||||
file_list=$(dri_LTLIBRARIES:%.la=.libs/%.so); \
|
||||
file_list+=$(vdpau_LTLIBRARIES:%.la=.libs/%.$(LIB_EXT)*); \
|
||||
file_list+=$(egl_LTLIBRARIES:%.la=.libs/%.$(LIB_EXT)*); \
|
||||
file_list+=$(lib_LTLIBRARIES:%.la=.libs/%.$(LIB_EXT)*); \
|
||||
for f in $$file_list; do \
|
||||
|
@@ -7,7 +7,7 @@ all-local : .libs/install-mesa-links
|
||||
|
||||
.libs/install-mesa-links : $(lib_LTLIBRARIES)
|
||||
$(AM_V_GEN)$(MKDIR_P) $(top_builddir)/$(LIB_DIR); \
|
||||
for f in $(join $(addsuffix .libs/,$(dir $(lib_LTLIBRARIES))),$(notdir $(lib_LTLIBRARIES:%.la=%.$(LIB_EXT)*))); do \
|
||||
for f in $(lib_LTLIBRARIES:%.la=.libs/%.$(LIB_EXT)*); do \
|
||||
if test -h .libs/$$f; then \
|
||||
cp -d $$f $(top_builddir)/$(LIB_DIR); \
|
||||
else \
|
||||
|
@@ -41,13 +41,26 @@ import SCons.Builder
|
||||
import SCons.Tool
|
||||
import SCons.Util
|
||||
|
||||
# These are the mingw toolchain prefixes we search for:
|
||||
# (We only search for the mingw-w64 toolchain, and not the mingw.org one.)
|
||||
# This is what we search for to find mingw:
|
||||
prefixes32 = SCons.Util.Split("""
|
||||
mingw32-
|
||||
mingw32msvc-
|
||||
i386-mingw32-
|
||||
i486-mingw32-
|
||||
i586-mingw32-
|
||||
i686-mingw32-
|
||||
i386-mingw32msvc-
|
||||
i486-mingw32msvc-
|
||||
i586-mingw32msvc-
|
||||
i686-mingw32msvc-
|
||||
i686-pc-mingw32-
|
||||
i686-w64-mingw32-
|
||||
""")
|
||||
prefixes64 = SCons.Util.Split("""
|
||||
x86_64-w64-mingw32-
|
||||
amd64-mingw32-
|
||||
amd64-mingw32msvc-
|
||||
amd64-pc-mingw32-
|
||||
""")
|
||||
|
||||
def find(env):
|
||||
|
@@ -276,9 +276,6 @@ def parse_source_list(env, filename, names=None):
|
||||
# Prefer relative source paths, as absolute files tend to
|
||||
# cause duplicate actions.
|
||||
f = f[len(cur_srcdir + '/'):]
|
||||
# do not include any headers
|
||||
if f.endswith('.h'):
|
||||
continue
|
||||
srcs.append(f)
|
||||
|
||||
src_lists[sym] = srcs
|
||||
|
@@ -588,9 +588,10 @@ def generate(env):
|
||||
createInstallMethods(env)
|
||||
|
||||
env.PkgCheckModules('X11', ['x11', 'xext', 'xdamage', 'xfixes'])
|
||||
env.PkgCheckModules('XCB', ['x11-xcb', 'xcb-glx >= 1.8.1', 'xcb-dri2 >= 1.8'])
|
||||
env.PkgCheckModules('XCB', ['x11-xcb', 'xcb-glx >= 1.8.1'])
|
||||
env.PkgCheckModules('XF86VIDMODE', ['xxf86vm'])
|
||||
env.PkgCheckModules('DRM', ['libdrm >= 2.4.38'])
|
||||
env.PkgCheckModules('DRM_INTEL', ['libdrm_intel >= 2.4.52'])
|
||||
env.PkgCheckModules('UDEV', ['libudev >= 151'])
|
||||
|
||||
env['dri'] = env['x11'] and env['drm']
|
||||
|
@@ -37,9 +37,6 @@ import SCons.Errors
|
||||
import SCons.Util
|
||||
|
||||
|
||||
required_llvm_version = '3.1'
|
||||
|
||||
|
||||
def generate(env):
|
||||
env['llvm'] = False
|
||||
|
||||
@@ -87,9 +84,6 @@ def generate(env):
|
||||
if llvm_version is None:
|
||||
print 'scons: could not determine the LLVM version from %s' % llvm_config
|
||||
return
|
||||
if llvm_version < distutils.version.LooseVersion(required_llvm_version):
|
||||
print 'scons: LLVM version %s found, but %s is required' % (llvm_version, required_llvm_version)
|
||||
return
|
||||
|
||||
env.Prepend(CPPPATH = [os.path.join(llvm_dir, 'include')])
|
||||
env.AppendUnique(CPPDEFINES = [
|
||||
@@ -104,24 +98,64 @@ def generate(env):
|
||||
'LLVMBitWriter', 'LLVMX86Disassembler', 'LLVMX86AsmParser',
|
||||
'LLVMX86CodeGen', 'LLVMX86Desc', 'LLVMSelectionDAG',
|
||||
'LLVMAsmPrinter', 'LLVMMCParser', 'LLVMX86AsmPrinter',
|
||||
'LLVMX86Utils', 'LLVMX86Info', 'LLVMMCJIT', 'LLVMJIT',
|
||||
'LLVMX86Utils', 'LLVMX86Info', 'LLVMJIT',
|
||||
'LLVMExecutionEngine', 'LLVMCodeGen', 'LLVMScalarOpts',
|
||||
'LLVMInstCombine', 'LLVMTransformUtils', 'LLVMipa',
|
||||
'LLVMAnalysis', 'LLVMTarget', 'LLVMMC', 'LLVMCore',
|
||||
'LLVMSupport', 'LLVMRuntimeDyld', 'LLVMObject'
|
||||
])
|
||||
else:
|
||||
# 3.1
|
||||
elif llvm_version >= distutils.version.LooseVersion('3.0'):
|
||||
# 3.0
|
||||
env.Prepend(LIBS = [
|
||||
'LLVMBitWriter', 'LLVMX86Disassembler', 'LLVMX86AsmParser',
|
||||
'LLVMX86CodeGen', 'LLVMX86Desc', 'LLVMSelectionDAG',
|
||||
'LLVMAsmPrinter', 'LLVMMCParser', 'LLVMX86AsmPrinter',
|
||||
'LLVMX86Utils', 'LLVMX86Info', 'LLVMMCJIT', 'LLVMJIT',
|
||||
'LLVMX86Utils', 'LLVMX86Info', 'LLVMJIT',
|
||||
'LLVMExecutionEngine', 'LLVMCodeGen', 'LLVMScalarOpts',
|
||||
'LLVMInstCombine', 'LLVMTransformUtils', 'LLVMipa',
|
||||
'LLVMAnalysis', 'LLVMTarget', 'LLVMMC', 'LLVMCore',
|
||||
'LLVMSupport'
|
||||
])
|
||||
elif llvm_version >= distutils.version.LooseVersion('2.9'):
|
||||
# 2.9
|
||||
env.Prepend(LIBS = [
|
||||
'LLVMObject', 'LLVMMCJIT', 'LLVMMCDisassembler',
|
||||
'LLVMLinker', 'LLVMipo', 'LLVMInterpreter',
|
||||
'LLVMInstrumentation', 'LLVMJIT', 'LLVMExecutionEngine',
|
||||
'LLVMBitWriter', 'LLVMX86Disassembler', 'LLVMX86AsmParser',
|
||||
'LLVMMCParser', 'LLVMX86AsmPrinter', 'LLVMX86CodeGen',
|
||||
'LLVMSelectionDAG', 'LLVMX86Utils', 'LLVMX86Info', 'LLVMAsmPrinter',
|
||||
'LLVMCodeGen', 'LLVMScalarOpts', 'LLVMInstCombine',
|
||||
'LLVMTransformUtils', 'LLVMipa', 'LLVMAsmParser',
|
||||
'LLVMArchive', 'LLVMBitReader', 'LLVMAnalysis', 'LLVMTarget',
|
||||
'LLVMCore', 'LLVMMC', 'LLVMSupport',
|
||||
])
|
||||
elif llvm_version >= distutils.version.LooseVersion('2.7'):
|
||||
# 2.7
|
||||
env.Prepend(LIBS = [
|
||||
'LLVMLinker', 'LLVMipo', 'LLVMInterpreter',
|
||||
'LLVMInstrumentation', 'LLVMJIT', 'LLVMExecutionEngine',
|
||||
'LLVMBitWriter', 'LLVMX86Disassembler', 'LLVMX86AsmParser',
|
||||
'LLVMMCParser', 'LLVMX86AsmPrinter', 'LLVMX86CodeGen',
|
||||
'LLVMSelectionDAG', 'LLVMX86Info', 'LLVMAsmPrinter',
|
||||
'LLVMCodeGen', 'LLVMScalarOpts', 'LLVMInstCombine',
|
||||
'LLVMTransformUtils', 'LLVMipa', 'LLVMAsmParser',
|
||||
'LLVMArchive', 'LLVMBitReader', 'LLVMAnalysis', 'LLVMTarget',
|
||||
'LLVMMC', 'LLVMCore', 'LLVMSupport', 'LLVMSystem',
|
||||
])
|
||||
else:
|
||||
# 2.6
|
||||
env.Prepend(LIBS = [
|
||||
'LLVMX86AsmParser', 'LLVMX86AsmPrinter', 'LLVMX86CodeGen',
|
||||
'LLVMX86Info', 'LLVMLinker', 'LLVMipo', 'LLVMInterpreter',
|
||||
'LLVMInstrumentation', 'LLVMJIT', 'LLVMExecutionEngine',
|
||||
'LLVMDebugger', 'LLVMBitWriter', 'LLVMAsmParser',
|
||||
'LLVMArchive', 'LLVMBitReader', 'LLVMSelectionDAG',
|
||||
'LLVMAsmPrinter', 'LLVMCodeGen', 'LLVMScalarOpts',
|
||||
'LLVMTransformUtils', 'LLVMipa', 'LLVMAnalysis',
|
||||
'LLVMTarget', 'LLVMMC', 'LLVMCore', 'LLVMSupport',
|
||||
'LLVMSystem',
|
||||
])
|
||||
env.Append(LIBS = [
|
||||
'imagehlp',
|
||||
'psapi',
|
||||
@@ -146,10 +180,6 @@ def generate(env):
|
||||
llvm_version = env.backtick('llvm-config --version').rstrip()
|
||||
llvm_version = distutils.version.LooseVersion(llvm_version)
|
||||
|
||||
if llvm_version < distutils.version.LooseVersion(required_llvm_version):
|
||||
print 'scons: LLVM version %s found, but %s is required' % (llvm_version, required_llvm_version)
|
||||
return
|
||||
|
||||
try:
|
||||
# Treat --cppflags specially to prevent NDEBUG from disabling
|
||||
# assertion failures in debug builds.
|
||||
@@ -165,7 +195,10 @@ def generate(env):
|
||||
if '-fno-rtti' in cxxflags:
|
||||
env.Append(CXXFLAGS = ['-fno-rtti'])
|
||||
|
||||
components = ['engine', 'mcjit', 'bitwriter', 'x86asmprinter']
|
||||
components = ['engine', 'bitwriter', 'x86asmprinter']
|
||||
|
||||
if llvm_version >= distutils.version.LooseVersion('3.1'):
|
||||
components.append('mcjit')
|
||||
|
||||
env.ParseConfig('llvm-config --libs ' + ' '.join(components))
|
||||
env.ParseConfig('llvm-config --ldflags')
|
||||
|
@@ -19,14 +19,12 @@
|
||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
# IN THE SOFTWARE.
|
||||
|
||||
SUBDIRS = gtest util mapi
|
||||
SUBDIRS = gtest loader mapi
|
||||
|
||||
if NEED_OPENGL_COMMON
|
||||
SUBDIRS += glsl mesa
|
||||
endif
|
||||
|
||||
SUBDIRS += loader
|
||||
|
||||
if HAVE_DRI_GLX
|
||||
SUBDIRS += glx
|
||||
endif
|
||||
@@ -48,7 +46,18 @@ SUBDIRS += egl/main
|
||||
endif
|
||||
|
||||
if HAVE_GALLIUM
|
||||
SUBDIRS += gallium
|
||||
SUBDIRS += \
|
||||
gallium/auxiliary \
|
||||
gallium/drivers \
|
||||
gallium/state_trackers \
|
||||
gallium/winsys \
|
||||
gallium/targets
|
||||
|
||||
if HAVE_GALLIUM_TESTS
|
||||
SUBDIRS += \
|
||||
gallium/tests/trivial \
|
||||
gallium/tests/unit
|
||||
endif
|
||||
endif
|
||||
|
||||
EXTRA_DIST = getopt
|
||||
|
@@ -4,7 +4,6 @@ Import('*')
|
||||
if env['platform'] == 'windows':
|
||||
SConscript('getopt/SConscript')
|
||||
|
||||
SConscript('util/SConscript')
|
||||
SConscript('glsl/SConscript')
|
||||
|
||||
if env['hostonly']:
|
||||
|
@@ -40,12 +40,8 @@ LOCAL_C_INCLUDES := \
|
||||
$(MESA_TOP)/src/mapi \
|
||||
$(MESA_TOP)/src/egl/main \
|
||||
$(MESA_TOP)/src/loader \
|
||||
$(TARGET_OUT_HEADERS)/libdrm \
|
||||
$(DRM_GRALLOC_TOP)
|
||||
|
||||
LOCAL_STATIC_LIBRARIES := \
|
||||
libmesa_loader
|
||||
|
||||
LOCAL_MODULE := libmesa_egl_dri2
|
||||
|
||||
include $(MESA_COMMON_MK)
|
||||
|
@@ -35,7 +35,7 @@
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
#ifdef HAVE_LIBDRM
|
||||
#ifdef HAVE_DRM_PLATFORM
|
||||
#include <xf86drm.h>
|
||||
#include <drm_fourcc.h>
|
||||
#endif
|
||||
@@ -304,6 +304,8 @@ const __DRIimageLookupExtension image_lookup_extension = {
|
||||
.lookupEGLImage = dri2_lookup_egl_image
|
||||
};
|
||||
|
||||
static const char dri_driver_path[] = DEFAULT_DRIVER_DIR;
|
||||
|
||||
struct dri2_extension_match {
|
||||
const char *name;
|
||||
int version;
|
||||
@@ -358,7 +360,7 @@ dri2_bind_extensions(struct dri2_egl_display *dri2_dpy,
|
||||
for (j = 0; matches[j].name; j++) {
|
||||
field = ((char *) dri2_dpy + matches[j].offset);
|
||||
if (*(const __DRIextension **) field == NULL) {
|
||||
_eglLog(_EGL_WARNING, "DRI2: did not find extension %s version %d",
|
||||
_eglLog(_EGL_FATAL, "DRI2: did not find extension %s version %d",
|
||||
matches[j].name, matches[j].version);
|
||||
ret = EGL_FALSE;
|
||||
}
|
||||
@@ -467,7 +469,9 @@ dri2_load_driver_swrast(_EGLDisplay *disp)
|
||||
struct dri2_egl_display *dri2_dpy = disp->DriverData;
|
||||
const __DRIextension **extensions;
|
||||
|
||||
dri2_dpy->driver_name = "swrast";
|
||||
extensions = dri2_open_driver(disp);
|
||||
|
||||
if (!extensions)
|
||||
return EGL_FALSE;
|
||||
|
||||
@@ -518,15 +522,7 @@ dri2_setup_screen(_EGLDisplay *disp)
|
||||
}
|
||||
|
||||
if (dri2_dpy->image) {
|
||||
if (dri2_dpy->image->base.version >= 10 &&
|
||||
dri2_dpy->image->getCapabilities != NULL) {
|
||||
int capabilities;
|
||||
|
||||
capabilities = dri2_dpy->image->getCapabilities(dri2_dpy->dri_screen);
|
||||
disp->Extensions.MESA_drm_image = (capabilities & __DRI_IMAGE_CAP_GLOBAL_NAMES) != 0;
|
||||
} else
|
||||
disp->Extensions.MESA_drm_image = EGL_TRUE;
|
||||
|
||||
disp->Extensions.MESA_drm_image = EGL_TRUE;
|
||||
disp->Extensions.KHR_image_base = EGL_TRUE;
|
||||
disp->Extensions.KHR_gl_renderbuffer_image = EGL_TRUE;
|
||||
if (dri2_dpy->image->base.version >= 5 &&
|
||||
@@ -677,7 +673,6 @@ dri2_terminate(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
if (dri2_dpy->driver)
|
||||
dlclose(dri2_dpy->driver);
|
||||
free(dri2_dpy->device_name);
|
||||
free(dri2_dpy->driver_name);
|
||||
|
||||
switch (disp->Platform) {
|
||||
#ifdef HAVE_X11_PLATFORM
|
||||
@@ -816,9 +811,8 @@ dri2_create_context(_EGLDriver *drv, _EGLDisplay *disp, _EGLConfig *conf,
|
||||
api = __DRI_API_GLES3;
|
||||
break;
|
||||
default:
|
||||
_eglError(EGL_BAD_PARAMETER, "eglCreateContext");
|
||||
free(dri2_ctx);
|
||||
return NULL;
|
||||
_eglError(EGL_BAD_PARAMETER, "eglCreateContext");
|
||||
return NULL;
|
||||
}
|
||||
break;
|
||||
case EGL_OPENGL_API:
|
||||
@@ -1394,15 +1388,6 @@ dri2_create_image_wayland_wl_buffer(_EGLDisplay *disp, _EGLContext *ctx,
|
||||
}
|
||||
#endif
|
||||
|
||||
static EGLBoolean
|
||||
dri2_get_sync_values_chromium(_EGLDisplay *dpy, _EGLSurface *surf,
|
||||
EGLuint64KHR *ust, EGLuint64KHR *msc,
|
||||
EGLuint64KHR *sbc)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(dpy);
|
||||
return dri2_dpy->vtbl->get_sync_values(dpy, surf, ust, msc, sbc);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the error code after a call to
|
||||
* dri2_egl_image::dri_image::createImageFromTexture.
|
||||
@@ -1678,13 +1663,36 @@ dri2_check_dma_buf_format(const _EGLImageAttribs *attrs)
|
||||
/**
|
||||
* The spec says:
|
||||
*
|
||||
* "If eglCreateImageKHR is successful for a EGL_LINUX_DMA_BUF_EXT target, the
|
||||
* EGL will take a reference to the dma_buf(s) which it will release at any
|
||||
* time while the EGLDisplay is initialized. It is the responsibility of the
|
||||
* application to close the dma_buf file descriptors."
|
||||
*
|
||||
* Therefore we must never close or otherwise modify the file descriptors.
|
||||
* "If eglCreateImageKHR is successful for a EGL_LINUX_DMA_BUF_EXT target,
|
||||
* the EGL takes ownership of the file descriptor and is responsible for
|
||||
* closing it, which it may do at any time while the EGLDisplay is
|
||||
* initialized."
|
||||
*/
|
||||
static void
|
||||
dri2_take_dma_buf_ownership(const int *fds, unsigned num_fds)
|
||||
{
|
||||
int already_closed[num_fds];
|
||||
unsigned num_closed = 0;
|
||||
unsigned i, j;
|
||||
|
||||
for (i = 0; i < num_fds; ++i) {
|
||||
/**
|
||||
* The same file descriptor can be referenced multiple times in case more
|
||||
* than one plane is found in the same buffer, just with a different
|
||||
* offset.
|
||||
*/
|
||||
for (j = 0; j < num_closed; ++j) {
|
||||
if (already_closed[j] == fds[i])
|
||||
break;
|
||||
}
|
||||
|
||||
if (j == num_closed) {
|
||||
close(fds[i]);
|
||||
already_closed[num_closed++] = fds[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static _EGLImage *
|
||||
dri2_create_image_dma_buf(_EGLDisplay *disp, _EGLContext *ctx,
|
||||
EGLClientBuffer buffer, const EGLint *attr_list)
|
||||
@@ -1747,6 +1755,8 @@ dri2_create_image_dma_buf(_EGLDisplay *disp, _EGLContext *ctx,
|
||||
return EGL_NO_IMAGE_KHR;
|
||||
|
||||
res = dri2_create_image_from_dri(disp, dri_image);
|
||||
if (res)
|
||||
dri2_take_dma_buf_ownership(fds, num_fds);
|
||||
|
||||
return res;
|
||||
}
|
||||
@@ -1981,7 +1991,7 @@ dri2_bind_wayland_display_wl(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
struct wl_display *wl_dpy)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||
int flags = 0;
|
||||
int ret, flags = 0;
|
||||
uint64_t cap;
|
||||
|
||||
(void) drv;
|
||||
@@ -1992,13 +2002,11 @@ dri2_bind_wayland_display_wl(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
wl_drm_callbacks.authenticate =
|
||||
(int(*)(void *, uint32_t)) dri2_dpy->vtbl->authenticate;
|
||||
|
||||
#ifdef HAVE_LIBDRM
|
||||
if (drmGetCap(dri2_dpy->fd, DRM_CAP_PRIME, &cap) == 0 &&
|
||||
cap == (DRM_PRIME_CAP_IMPORT | DRM_PRIME_CAP_EXPORT) &&
|
||||
ret = drmGetCap(dri2_dpy->fd, DRM_CAP_PRIME, &cap);
|
||||
if (ret == 0 && cap == (DRM_PRIME_CAP_IMPORT | DRM_PRIME_CAP_EXPORT) &&
|
||||
dri2_dpy->image->base.version >= 7 &&
|
||||
dri2_dpy->image->createImageFromFds != NULL)
|
||||
flags |= WAYLAND_DRM_PRIME;
|
||||
#endif
|
||||
|
||||
dri2_dpy->wl_server_drm =
|
||||
wayland_drm_init(wl_dpy, dri2_dpy->device_name,
|
||||
@@ -2173,7 +2181,6 @@ _eglBuiltInDriverDRI2(const char *args)
|
||||
dri2_drv->base.API.UnbindWaylandDisplayWL = dri2_unbind_wayland_display_wl;
|
||||
dri2_drv->base.API.QueryWaylandBufferWL = dri2_query_wayland_buffer_wl;
|
||||
#endif
|
||||
dri2_drv->base.API.GetSyncValuesCHROMIUM = dri2_get_sync_values_chromium;
|
||||
|
||||
dri2_drv->base.Name = "DRI2";
|
||||
dri2_drv->base.Unload = dri2_unload;
|
||||
|
@@ -138,10 +138,6 @@ struct dri2_egl_display_vtbl {
|
||||
|
||||
struct wl_buffer* (*create_wayland_buffer_from_image)(
|
||||
_EGLDriver *drv, _EGLDisplay *dpy, _EGLImage *img);
|
||||
|
||||
EGLBoolean (*get_sync_values)(_EGLDisplay *display, _EGLSurface *surface,
|
||||
EGLuint64KHR *ust, EGLuint64KHR *msc,
|
||||
EGLuint64KHR *sbc);
|
||||
};
|
||||
|
||||
struct dri2_egl_display
|
||||
|
@@ -98,11 +98,3 @@ dri2_fallback_create_wayland_buffer_from_image(_EGLDriver *drv,
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline EGLBoolean
|
||||
dri2_fallback_get_sync_values(_EGLDisplay *dpy, _EGLSurface *surf,
|
||||
EGLuint64KHR *ust, EGLuint64KHR *msc,
|
||||
EGLuint64KHR *sbc)
|
||||
{
|
||||
return EGL_FALSE;
|
||||
}
|
||||
|
@@ -54,6 +54,8 @@ get_format_bpp(int native)
|
||||
bpp = 3;
|
||||
break;
|
||||
case HAL_PIXEL_FORMAT_RGB_565:
|
||||
case HAL_PIXEL_FORMAT_RGBA_5551:
|
||||
case HAL_PIXEL_FORMAT_RGBA_4444:
|
||||
bpp = 2;
|
||||
break;
|
||||
default:
|
||||
@@ -369,6 +371,8 @@ dri2_create_image_android_native_buffer(_EGLDisplay *disp, _EGLContext *ctx,
|
||||
format = __DRI_IMAGE_FORMAT_XBGR8888;
|
||||
break;
|
||||
case HAL_PIXEL_FORMAT_RGB_888:
|
||||
case HAL_PIXEL_FORMAT_RGBA_5551:
|
||||
case HAL_PIXEL_FORMAT_RGBA_4444:
|
||||
/* unsupported */
|
||||
default:
|
||||
_eglLog(_EGL_WARNING, "unsupported native buffer format 0x%x", buf->format);
|
||||
@@ -634,7 +638,7 @@ droid_log(EGLint level, const char *msg)
|
||||
static struct dri2_egl_display_vtbl droid_display_vtbl = {
|
||||
.authenticate = NULL,
|
||||
.create_window_surface = droid_create_window_surface,
|
||||
.create_pixmap_surface = dri2_fallback_create_pixmap_surface,
|
||||
.create_pixmap_surface = dri2_fallback_pixmap_surface,
|
||||
.create_pbuffer_surface = droid_create_pbuffer_surface,
|
||||
.destroy_surface = droid_destroy_surface,
|
||||
.create_image = droid_create_image_khr,
|
||||
@@ -646,7 +650,6 @@ static struct dri2_egl_display_vtbl droid_display_vtbl = {
|
||||
.copy_buffers = dri2_fallback_copy_buffers,
|
||||
.query_buffer_age = dri2_fallback_query_buffer_age,
|
||||
.create_wayland_buffer_from_image = dri2_fallback_create_wayland_buffer_from_image,
|
||||
.get_sync_values = dri2_fallback_get_sync_values,
|
||||
};
|
||||
|
||||
EGLBoolean
|
||||
|
@@ -44,7 +44,6 @@ lock_front_buffer(struct gbm_surface *_surf)
|
||||
{
|
||||
struct gbm_dri_surface *surf = (struct gbm_dri_surface *) _surf;
|
||||
struct dri2_egl_surface *dri2_surf = surf->dri_private;
|
||||
struct gbm_dri_device *device = (struct gbm_dri_device *) _surf->gbm;
|
||||
struct gbm_bo *bo;
|
||||
|
||||
if (dri2_surf->current == NULL) {
|
||||
@@ -53,11 +52,8 @@ lock_front_buffer(struct gbm_surface *_surf)
|
||||
}
|
||||
|
||||
bo = dri2_surf->current->bo;
|
||||
|
||||
if (device->dri2) {
|
||||
dri2_surf->current->locked = 1;
|
||||
dri2_surf->current = NULL;
|
||||
}
|
||||
dri2_surf->current->locked = 1;
|
||||
dri2_surf->current = NULL;
|
||||
|
||||
return bo;
|
||||
}
|
||||
@@ -126,22 +122,13 @@ dri2_drm_create_surface(_EGLDriver *drv, _EGLDisplay *disp, EGLint type,
|
||||
goto cleanup_surf;
|
||||
}
|
||||
|
||||
if (dri2_dpy->dri2) {
|
||||
dri2_surf->dri_drawable =
|
||||
(*dri2_dpy->dri2->createNewDrawable) (dri2_dpy->dri_screen,
|
||||
dri2_conf->dri_double_config,
|
||||
dri2_surf->gbm_surf);
|
||||
dri2_surf->dri_drawable =
|
||||
(*dri2_dpy->dri2->createNewDrawable) (dri2_dpy->dri_screen,
|
||||
dri2_conf->dri_double_config,
|
||||
dri2_surf->gbm_surf);
|
||||
|
||||
} else {
|
||||
assert(dri2_dpy->swrast != NULL);
|
||||
dri2_surf->dri_drawable =
|
||||
(*dri2_dpy->swrast->createNewDrawable) (dri2_dpy->dri_screen,
|
||||
dri2_conf->dri_double_config,
|
||||
dri2_surf->gbm_surf);
|
||||
|
||||
}
|
||||
if (dri2_surf->dri_drawable == NULL) {
|
||||
_eglError(EGL_BAD_ALLOC, "createNewDrawable()");
|
||||
_eglError(EGL_BAD_ALLOC, "dri2->createNewDrawable");
|
||||
goto cleanup_surf;
|
||||
}
|
||||
|
||||
@@ -234,28 +221,6 @@ get_back_bo(struct dri2_egl_surface *dri2_surf)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
get_swrast_front_bo(struct dri2_egl_surface *dri2_surf)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy =
|
||||
dri2_egl_display(dri2_surf->base.Resource.Display);
|
||||
struct gbm_dri_surface *surf = dri2_surf->gbm_surf;
|
||||
|
||||
if (dri2_surf->current == NULL) {
|
||||
assert(!dri2_surf->color_buffers[0].locked);
|
||||
dri2_surf->current = &dri2_surf->color_buffers[0];
|
||||
}
|
||||
|
||||
if (dri2_surf->current->bo == NULL)
|
||||
dri2_surf->current->bo = gbm_bo_create(&dri2_dpy->gbm_dri->base.base,
|
||||
surf->base.width, surf->base.height,
|
||||
surf->base.format, surf->base.flags);
|
||||
if (dri2_surf->current->bo == NULL)
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
back_bo_to_dri_buffer(struct dri2_egl_surface *dri2_surf, __DRIbuffer *buffer)
|
||||
{
|
||||
@@ -409,24 +374,20 @@ dri2_drm_swap_buffers(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *draw)
|
||||
struct dri2_egl_surface *dri2_surf = dri2_egl_surface(draw);
|
||||
int i;
|
||||
|
||||
if (dri2_dpy->swrast) {
|
||||
(*dri2_dpy->core->swapBuffers)(dri2_surf->dri_drawable);
|
||||
} else {
|
||||
if (dri2_surf->base.Type == EGL_WINDOW_BIT) {
|
||||
if (dri2_surf->current)
|
||||
_eglError(EGL_BAD_SURFACE, "dri2_swap_buffers");
|
||||
for (i = 0; i < ARRAY_SIZE(dri2_surf->color_buffers); i++)
|
||||
if (dri2_surf->color_buffers[i].age > 0)
|
||||
dri2_surf->color_buffers[i].age++;
|
||||
dri2_surf->current = dri2_surf->back;
|
||||
dri2_surf->current->age = 1;
|
||||
dri2_surf->back = NULL;
|
||||
}
|
||||
|
||||
(*dri2_dpy->flush->flush)(dri2_surf->dri_drawable);
|
||||
(*dri2_dpy->flush->invalidate)(dri2_surf->dri_drawable);
|
||||
if (dri2_surf->base.Type == EGL_WINDOW_BIT) {
|
||||
if (dri2_surf->current)
|
||||
_eglError(EGL_BAD_SURFACE, "dri2_swap_buffers");
|
||||
for (i = 0; i < ARRAY_SIZE(dri2_surf->color_buffers); i++)
|
||||
if (dri2_surf->color_buffers[i].age > 0)
|
||||
dri2_surf->color_buffers[i].age++;
|
||||
dri2_surf->current = dri2_surf->back;
|
||||
dri2_surf->current->age = 1;
|
||||
dri2_surf->back = NULL;
|
||||
}
|
||||
|
||||
(*dri2_dpy->flush->flush)(dri2_surf->dri_drawable);
|
||||
(*dri2_dpy->flush->invalidate)(dri2_surf->dri_drawable);
|
||||
|
||||
return EGL_TRUE;
|
||||
}
|
||||
|
||||
@@ -496,73 +457,6 @@ dri2_drm_authenticate(_EGLDisplay *disp, uint32_t id)
|
||||
return drmAuthMagic(dri2_dpy->fd, id);
|
||||
}
|
||||
|
||||
static void
|
||||
swrast_put_image2(__DRIdrawable *driDrawable,
|
||||
int op,
|
||||
int x,
|
||||
int y,
|
||||
int width,
|
||||
int height,
|
||||
int stride,
|
||||
char *data,
|
||||
void *loaderPrivate)
|
||||
{
|
||||
struct dri2_egl_surface *dri2_surf = loaderPrivate;
|
||||
int internal_stride, i;
|
||||
struct gbm_dri_bo *bo;
|
||||
|
||||
if (op != __DRI_SWRAST_IMAGE_OP_DRAW &&
|
||||
op != __DRI_SWRAST_IMAGE_OP_SWAP)
|
||||
return;
|
||||
|
||||
if (get_swrast_front_bo(dri2_surf) < 0)
|
||||
return;
|
||||
|
||||
bo = gbm_dri_bo(dri2_surf->current->bo);
|
||||
if (gbm_dri_bo_map(bo) == NULL)
|
||||
return;
|
||||
|
||||
internal_stride = bo->base.base.stride;
|
||||
|
||||
for (i = 0; i < height; i++) {
|
||||
memcpy(bo->map + (x + i) * internal_stride + y,
|
||||
data + i * stride, stride);
|
||||
}
|
||||
|
||||
gbm_dri_bo_unmap(bo);
|
||||
}
|
||||
|
||||
static void
|
||||
swrast_get_image(__DRIdrawable *driDrawable,
|
||||
int x,
|
||||
int y,
|
||||
int width,
|
||||
int height,
|
||||
char *data,
|
||||
void *loaderPrivate)
|
||||
{
|
||||
struct dri2_egl_surface *dri2_surf = loaderPrivate;
|
||||
int internal_stride, stride, i;
|
||||
struct gbm_dri_bo *bo;
|
||||
|
||||
if (get_swrast_front_bo(dri2_surf) < 0)
|
||||
return;
|
||||
|
||||
bo = gbm_dri_bo(dri2_surf->current->bo);
|
||||
if (gbm_dri_bo_map(bo) == NULL)
|
||||
return;
|
||||
|
||||
internal_stride = bo->base.base.stride;
|
||||
stride = width * 4;
|
||||
|
||||
for (i = 0; i < height; i++) {
|
||||
memcpy(data + i * stride,
|
||||
bo->map + (x + i) * internal_stride + y, stride);
|
||||
}
|
||||
|
||||
gbm_dri_bo_unmap(bo);
|
||||
}
|
||||
|
||||
static struct dri2_egl_display_vtbl dri2_drm_display_vtbl = {
|
||||
.authenticate = dri2_drm_authenticate,
|
||||
.create_window_surface = dri2_drm_create_window_surface,
|
||||
@@ -578,7 +472,6 @@ static struct dri2_egl_display_vtbl dri2_drm_display_vtbl = {
|
||||
.copy_buffers = dri2_fallback_copy_buffers,
|
||||
.query_buffer_age = dri2_drm_query_buffer_age,
|
||||
.create_wayland_buffer_from_image = dri2_fallback_create_wayland_buffer_from_image,
|
||||
.get_sync_values = dri2_fallback_get_sync_values,
|
||||
};
|
||||
|
||||
EGLBoolean
|
||||
@@ -632,14 +525,13 @@ dri2_initialize_drm(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
|
||||
dri2_dpy->fd = fd;
|
||||
dri2_dpy->device_name = loader_get_device_name_for_fd(dri2_dpy->fd);
|
||||
dri2_dpy->driver_name = strdup(dri2_dpy->gbm_dri->base.driver_name);
|
||||
dri2_dpy->driver_name = dri2_dpy->gbm_dri->base.driver_name;
|
||||
|
||||
dri2_dpy->dri_screen = dri2_dpy->gbm_dri->screen;
|
||||
dri2_dpy->core = dri2_dpy->gbm_dri->core;
|
||||
dri2_dpy->dri2 = dri2_dpy->gbm_dri->dri2;
|
||||
dri2_dpy->image = dri2_dpy->gbm_dri->image;
|
||||
dri2_dpy->flush = dri2_dpy->gbm_dri->flush;
|
||||
dri2_dpy->swrast = dri2_dpy->gbm_dri->swrast;
|
||||
dri2_dpy->driver_configs = dri2_dpy->gbm_dri->driver_configs;
|
||||
|
||||
dri2_dpy->gbm_dri->lookup_image = dri2_lookup_egl_image;
|
||||
@@ -649,8 +541,6 @@ dri2_initialize_drm(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
dri2_dpy->gbm_dri->flush_front_buffer = dri2_drm_flush_front_buffer;
|
||||
dri2_dpy->gbm_dri->get_buffers_with_format = dri2_drm_get_buffers_with_format;
|
||||
dri2_dpy->gbm_dri->image_get_buffers = dri2_drm_image_get_buffers;
|
||||
dri2_dpy->gbm_dri->swrast_put_image2 = swrast_put_image2;
|
||||
dri2_dpy->gbm_dri->swrast_get_image = swrast_get_image;
|
||||
|
||||
dri2_dpy->gbm_dri->base.base.surface_lock_front_buffer = lock_front_buffer;
|
||||
dri2_dpy->gbm_dri->base.base.surface_release_buffer = release_buffer;
|
||||
@@ -681,23 +571,10 @@ dri2_initialize_drm(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
i + 1, EGL_WINDOW_BIT, attr_list, NULL);
|
||||
}
|
||||
|
||||
disp->Extensions.KHR_image_pixmap = EGL_TRUE;
|
||||
if (dri2_dpy->dri2)
|
||||
disp->Extensions.EXT_buffer_age = EGL_TRUE;
|
||||
disp->Extensions.EXT_buffer_age = EGL_TRUE;
|
||||
|
||||
#ifdef HAVE_WAYLAND_PLATFORM
|
||||
if (dri2_dpy->image) {
|
||||
if (dri2_dpy->image->base.version >= 10 &&
|
||||
dri2_dpy->image->getCapabilities != NULL) {
|
||||
int capabilities;
|
||||
|
||||
capabilities =
|
||||
dri2_dpy->image->getCapabilities(dri2_dpy->dri_screen);
|
||||
disp->Extensions.WL_bind_wayland_display =
|
||||
(capabilities & __DRI_IMAGE_CAP_GLOBAL_NAMES) != 0;
|
||||
} else
|
||||
disp->Extensions.WL_bind_wayland_display = EGL_TRUE;
|
||||
}
|
||||
disp->Extensions.WL_bind_wayland_display = EGL_TRUE;
|
||||
#endif
|
||||
|
||||
/* we're supporting EGL 1.4 */
|
||||
|
@@ -964,7 +964,6 @@ static struct dri2_egl_display_vtbl dri2_wl_display_vtbl = {
|
||||
.copy_buffers = dri2_fallback_copy_buffers,
|
||||
.query_buffer_age = dri2_wl_query_buffer_age,
|
||||
.create_wayland_buffer_from_image = dri2_wl_create_wayland_buffer_from_image,
|
||||
.get_sync_values = dri2_fallback_get_sync_values,
|
||||
};
|
||||
|
||||
EGLBoolean
|
||||
|
@@ -481,6 +481,21 @@ dri2_x11_flush_front_buffer(__DRIdrawable * driDrawable, void *loaderPrivate)
|
||||
#endif
|
||||
}
|
||||
|
||||
static char *
|
||||
dri2_x11_strndup(const char *s, int length)
|
||||
{
|
||||
char *d;
|
||||
|
||||
d = malloc(length + 1);
|
||||
if (d == NULL)
|
||||
return NULL;
|
||||
|
||||
memcpy(d, s, length);
|
||||
d[length] = '\0';
|
||||
|
||||
return d;
|
||||
}
|
||||
|
||||
static EGLBoolean
|
||||
dri2_x11_connect(struct dri2_egl_display *dri2_dpy)
|
||||
{
|
||||
@@ -550,14 +565,14 @@ dri2_x11_connect(struct dri2_egl_display *dri2_dpy)
|
||||
|
||||
driver_name = xcb_dri2_connect_driver_name (connect);
|
||||
dri2_dpy->driver_name =
|
||||
strndup(driver_name,
|
||||
xcb_dri2_connect_driver_name_length(connect));
|
||||
dri2_x11_strndup(driver_name,
|
||||
xcb_dri2_connect_driver_name_length(connect));
|
||||
|
||||
device_name = xcb_dri2_connect_device_name (connect);
|
||||
|
||||
dri2_dpy->device_name =
|
||||
strndup(device_name,
|
||||
xcb_dri2_connect_device_name_length(connect));
|
||||
dri2_x11_strndup(device_name,
|
||||
xcb_dri2_connect_device_name_length(connect));
|
||||
|
||||
if (dri2_dpy->device_name == NULL || dri2_dpy->driver_name == NULL) {
|
||||
free(dri2_dpy->device_name);
|
||||
@@ -993,32 +1008,6 @@ dri2_x11_swrast_create_image_khr(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static EGLBoolean
|
||||
dri2_x11_get_sync_values(_EGLDisplay *display, _EGLSurface *surface,
|
||||
EGLuint64KHR *ust, EGLuint64KHR *msc,
|
||||
EGLuint64KHR *sbc)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(display);
|
||||
struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surface);
|
||||
xcb_dri2_get_msc_cookie_t cookie;
|
||||
xcb_dri2_get_msc_reply_t *reply;
|
||||
|
||||
cookie = xcb_dri2_get_msc(dri2_dpy->conn, dri2_surf->drawable);
|
||||
reply = xcb_dri2_get_msc_reply(dri2_dpy->conn, cookie, NULL);
|
||||
|
||||
if (!reply) {
|
||||
_eglError(EGL_BAD_ACCESS, __func__);
|
||||
return EGL_FALSE;
|
||||
}
|
||||
|
||||
*ust = ((EGLuint64KHR) reply->ust_hi << 32) | reply->ust_lo;
|
||||
*msc = ((EGLuint64KHR) reply->msc_hi << 32) | reply->msc_lo;
|
||||
*sbc = ((EGLuint64KHR) reply->sbc_hi << 32) | reply->sbc_lo;
|
||||
free(reply);
|
||||
|
||||
return EGL_TRUE;
|
||||
}
|
||||
|
||||
static struct dri2_egl_display_vtbl dri2_x11_swrast_display_vtbl = {
|
||||
.authenticate = NULL,
|
||||
.create_window_surface = dri2_x11_create_window_surface,
|
||||
@@ -1033,7 +1022,6 @@ static struct dri2_egl_display_vtbl dri2_x11_swrast_display_vtbl = {
|
||||
.copy_buffers = dri2_x11_copy_buffers,
|
||||
.query_buffer_age = dri2_fallback_query_buffer_age,
|
||||
.create_wayland_buffer_from_image = dri2_fallback_create_wayland_buffer_from_image,
|
||||
.get_sync_values = dri2_fallback_get_sync_values,
|
||||
};
|
||||
|
||||
static struct dri2_egl_display_vtbl dri2_x11_display_vtbl = {
|
||||
@@ -1051,7 +1039,6 @@ static struct dri2_egl_display_vtbl dri2_x11_display_vtbl = {
|
||||
.copy_buffers = dri2_x11_copy_buffers,
|
||||
.query_buffer_age = dri2_fallback_query_buffer_age,
|
||||
.create_wayland_buffer_from_image = dri2_fallback_create_wayland_buffer_from_image,
|
||||
.get_sync_values = dri2_x11_get_sync_values,
|
||||
};
|
||||
|
||||
static EGLBoolean
|
||||
@@ -1076,11 +1063,6 @@ dri2_initialize_x11_swrast(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
goto cleanup_dpy;
|
||||
}
|
||||
|
||||
/*
|
||||
* Every hardware driver_name is set using strdup. Doing the same in
|
||||
* here will allow is to simply free the memory at dri2_terminate().
|
||||
*/
|
||||
dri2_dpy->driver_name = strdup("swrast");
|
||||
if (!dri2_load_driver_swrast(disp))
|
||||
goto cleanup_conn;
|
||||
|
||||
@@ -1119,7 +1101,6 @@ dri2_initialize_x11_swrast(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
cleanup_driver:
|
||||
dlclose(dri2_dpy->driver);
|
||||
cleanup_conn:
|
||||
free(dri2_dpy->driver_name);
|
||||
if (disp->PlatformDisplay == NULL)
|
||||
xcb_disconnect(dri2_dpy->conn);
|
||||
cleanup_dpy:
|
||||
@@ -1262,7 +1243,6 @@ dri2_initialize_x11_dri2(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
disp->Extensions.NOK_swap_region = EGL_TRUE;
|
||||
disp->Extensions.NOK_texture_from_pixmap = EGL_TRUE;
|
||||
disp->Extensions.NV_post_sub_buffer = EGL_TRUE;
|
||||
disp->Extensions.CHROMIUM_sync_control = EGL_TRUE;
|
||||
|
||||
#ifdef HAVE_WAYLAND_PLATFORM
|
||||
disp->Extensions.WL_bind_wayland_display = EGL_TRUE;
|
||||
|
@@ -25,10 +25,25 @@
|
||||
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
include $(LOCAL_PATH)/Makefile.sources
|
||||
|
||||
SOURCES := \
|
||||
${LIBEGL_C_FILES}
|
||||
# from Makefile
|
||||
SOURCES = \
|
||||
eglapi.c \
|
||||
eglarray.c \
|
||||
eglconfig.c \
|
||||
eglcontext.c \
|
||||
eglcurrent.c \
|
||||
egldisplay.c \
|
||||
egldriver.c \
|
||||
eglfallbacks.c \
|
||||
eglglobals.c \
|
||||
eglimage.c \
|
||||
egllog.c \
|
||||
eglmisc.c \
|
||||
eglmode.c \
|
||||
eglscreen.c \
|
||||
eglstring.c \
|
||||
eglsurface.c \
|
||||
eglsync.c
|
||||
|
||||
# ---------------------------------------
|
||||
# Build libGLES_mesa
|
||||
@@ -80,12 +95,6 @@ gallium_DRIVERS :=
|
||||
# swrast
|
||||
gallium_DRIVERS += libmesa_pipe_softpipe libmesa_winsys_sw_android
|
||||
|
||||
# freedreno
|
||||
ifneq ($(filter freedreno, $(MESA_GPU_DRIVERS)),)
|
||||
gallium_DRIVERS += libmesa_winsys_freedreno libmesa_pipe_freedreno
|
||||
LOCAL_SHARED_LIBRARIES += libdrm_freedreno
|
||||
endif
|
||||
|
||||
# i915g
|
||||
ifneq ($(filter i915g, $(MESA_GPU_DRIVERS)),)
|
||||
gallium_DRIVERS += libmesa_winsys_i915 libmesa_pipe_i915
|
||||
@@ -100,29 +109,28 @@ endif
|
||||
|
||||
# nouveau
|
||||
ifneq ($(filter nouveau, $(MESA_GPU_DRIVERS)),)
|
||||
gallium_DRIVERS += libmesa_winsys_nouveau libmesa_pipe_nouveau
|
||||
gallium_DRIVERS += \
|
||||
libmesa_winsys_nouveau \
|
||||
libmesa_pipe_nvfx \
|
||||
libmesa_pipe_nv50 \
|
||||
libmesa_pipe_nvc0 \
|
||||
libmesa_pipe_nouveau
|
||||
LOCAL_SHARED_LIBRARIES += libdrm_nouveau
|
||||
LOCAL_SHARED_LIBRARIES += libstlport
|
||||
endif
|
||||
|
||||
# r300g/r600g/radeonsi
|
||||
ifneq ($(filter r300g r600g radeonsi, $(MESA_GPU_DRIVERS)),)
|
||||
gallium_DRIVERS += libmesa_winsys_radeon
|
||||
LOCAL_SHARED_LIBRARIES += libdrm_radeon
|
||||
ifneq ($(filter r300g, $(MESA_GPU_DRIVERS)),)
|
||||
gallium_DRIVERS += libmesa_pipe_r300
|
||||
endif # r300g
|
||||
ifneq ($(filter r600g radeonsi, $(MESA_GPU_DRIVERS)),)
|
||||
endif
|
||||
ifneq ($(filter r600g, $(MESA_GPU_DRIVERS)),)
|
||||
gallium_DRIVERS += libmesa_pipe_r600
|
||||
LOCAL_SHARED_LIBRARIES += libstlport
|
||||
endif # r600g
|
||||
endif
|
||||
ifneq ($(filter radeonsi, $(MESA_GPU_DRIVERS)),)
|
||||
gallium_DRIVERS += libmesa_pipe_radeonsi
|
||||
endif # radeonsi
|
||||
gallium_DRIVERS += libmesa_pipe_radeon
|
||||
endif # r600g || radeonsi
|
||||
endif # r300g || r600g || radeonsi
|
||||
endif
|
||||
endif
|
||||
|
||||
# vmwgfx
|
||||
ifneq ($(filter vmwgfx, $(MESA_GPU_DRIVERS)),)
|
||||
@@ -143,18 +151,14 @@ LOCAL_STATIC_LIBRARIES := \
|
||||
libmesa_st_egl \
|
||||
$(gallium_DRIVERS) \
|
||||
libmesa_st_mesa \
|
||||
libmesa_util \
|
||||
libmesa_glsl \
|
||||
libmesa_glsl_utils \
|
||||
libmesa_gallium \
|
||||
libloader \
|
||||
$(LOCAL_STATIC_LIBRARIES)
|
||||
|
||||
endif # MESA_BUILD_GALLIUM
|
||||
|
||||
LOCAL_STATIC_LIBRARIES := \
|
||||
$(LOCAL_STATIC_LIBRARIES) \
|
||||
libmesa_loader
|
||||
|
||||
LOCAL_MODULE := libGLES_mesa
|
||||
LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/egl
|
||||
|
||||
|
@@ -19,8 +19,6 @@
|
||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
# IN THE SOFTWARE.
|
||||
|
||||
include Makefile.sources
|
||||
|
||||
AM_CFLAGS = \
|
||||
-I$(top_srcdir)/include \
|
||||
-I$(top_srcdir)/src/gbm/main \
|
||||
@@ -34,14 +32,50 @@ AM_CFLAGS = \
|
||||
lib_LTLIBRARIES = libEGL.la
|
||||
|
||||
libEGL_la_SOURCES = \
|
||||
${LIBEGL_C_FILES}
|
||||
eglapi.c \
|
||||
eglapi.h \
|
||||
eglarray.c \
|
||||
eglarray.h \
|
||||
eglcompiler.h \
|
||||
eglconfig.c \
|
||||
eglconfig.h \
|
||||
eglcontext.c \
|
||||
eglcontext.h \
|
||||
eglcurrent.c \
|
||||
eglcurrent.h \
|
||||
egldefines.h \
|
||||
egldisplay.c \
|
||||
egldisplay.h \
|
||||
egldriver.c \
|
||||
egldriver.h \
|
||||
eglfallbacks.c \
|
||||
eglglobals.c \
|
||||
eglglobals.h \
|
||||
eglimage.c \
|
||||
eglimage.h \
|
||||
egllog.c \
|
||||
egllog.h \
|
||||
eglmisc.c \
|
||||
eglmisc.h \
|
||||
eglmode.c \
|
||||
eglmode.h \
|
||||
eglmutex.h \
|
||||
eglscreen.c \
|
||||
eglscreen.h \
|
||||
eglstring.c \
|
||||
eglstring.h \
|
||||
eglsurface.c \
|
||||
eglsurface.h \
|
||||
eglsync.c \
|
||||
eglsync.h \
|
||||
egltypedefs.h
|
||||
|
||||
libEGL_la_LIBADD = \
|
||||
$(EGL_LIB_DEPS)
|
||||
libEGL_la_LDFLAGS = \
|
||||
-no-undefined \
|
||||
-version-number 1:0 \
|
||||
$(BSYMBOLIC) \
|
||||
-Wl,-Bsymbolic \
|
||||
$(GC_SECTIONS) \
|
||||
$(LD_NO_UNDEFINED)
|
||||
|
||||
@@ -92,6 +126,5 @@ egldir = $(includedir)/EGL
|
||||
egl_HEADERS = \
|
||||
$(top_srcdir)/include/EGL/eglext.h \
|
||||
$(top_srcdir)/include/EGL/egl.h \
|
||||
$(top_srcdir)/include/EGL/eglextchromium.h \
|
||||
$(top_srcdir)/include/EGL/eglmesaext.h \
|
||||
$(top_srcdir)/include/EGL/eglplatform.h
|
||||
|
@@ -1,38 +0,0 @@
|
||||
LIBEGL_C_FILES := \
|
||||
eglapi.c \
|
||||
eglapi.h \
|
||||
eglarray.c \
|
||||
eglarray.h \
|
||||
eglcompiler.h \
|
||||
eglconfig.c \
|
||||
eglconfig.h \
|
||||
eglcontext.c \
|
||||
eglcontext.h \
|
||||
eglcurrent.c \
|
||||
eglcurrent.h \
|
||||
egldefines.h \
|
||||
egldisplay.c \
|
||||
egldisplay.h \
|
||||
egldriver.c \
|
||||
egldriver.h \
|
||||
eglfallbacks.c \
|
||||
eglglobals.c \
|
||||
eglglobals.h \
|
||||
eglimage.c \
|
||||
eglimage.h \
|
||||
egllog.c \
|
||||
egllog.h \
|
||||
eglmisc.c \
|
||||
eglmisc.h \
|
||||
eglmode.c \
|
||||
eglmode.h \
|
||||
eglmutex.h \
|
||||
eglscreen.c \
|
||||
eglscreen.h \
|
||||
eglstring.c \
|
||||
eglstring.h \
|
||||
eglsurface.c \
|
||||
eglsurface.h \
|
||||
eglsync.c \
|
||||
eglsync.h \
|
||||
egltypedefs.h
|
@@ -28,8 +28,25 @@ env.Append(CPPPATH = [
|
||||
'#/include',
|
||||
])
|
||||
|
||||
# parse Makefile.sources
|
||||
egl_sources = env.ParseSourceList('Makefile.sources', 'LIBEGL_C_FILES')
|
||||
egl_sources = [
|
||||
'eglapi.c',
|
||||
'eglarray.c',
|
||||
'eglconfig.c',
|
||||
'eglcontext.c',
|
||||
'eglcurrent.c',
|
||||
'egldisplay.c',
|
||||
'egldriver.c',
|
||||
'eglfallbacks.c',
|
||||
'eglglobals.c',
|
||||
'eglimage.c',
|
||||
'egllog.c',
|
||||
'eglmisc.c',
|
||||
'eglmode.c',
|
||||
'eglscreen.c',
|
||||
'eglstring.c',
|
||||
'eglsurface.c',
|
||||
'eglsync.c',
|
||||
]
|
||||
|
||||
egl = env.ConvenienceLibrary(
|
||||
target = 'egl',
|
||||
|
@@ -1094,7 +1094,6 @@ eglGetProcAddress(const char *procname)
|
||||
{ "eglGetPlatformDisplayEXT", (_EGLProc) eglGetPlatformDisplayEXT },
|
||||
{ "eglCreatePlatformWindowSurfaceEXT", (_EGLProc) eglCreatePlatformWindowSurfaceEXT },
|
||||
{ "eglCreatePlatformPixmapSurfaceEXT", (_EGLProc) eglCreatePlatformPixmapSurfaceEXT },
|
||||
{ "eglGetSyncValuesCHROMIUM", (_EGLProc) eglGetSyncValuesCHROMIUM },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
EGLint i;
|
||||
@@ -1760,25 +1759,3 @@ eglPostSubBufferNV(EGLDisplay dpy, EGLSurface surface,
|
||||
|
||||
RETURN_EGL_EVAL(disp, ret);
|
||||
}
|
||||
|
||||
EGLBoolean EGLAPIENTRY
|
||||
eglGetSyncValuesCHROMIUM(EGLDisplay display, EGLSurface surface,
|
||||
EGLuint64KHR *ust, EGLuint64KHR *msc,
|
||||
EGLuint64KHR *sbc)
|
||||
{
|
||||
_EGLDisplay *disp = _eglLockDisplay(display);
|
||||
_EGLSurface *surf = _eglLookupSurface(surface, disp);
|
||||
_EGLDriver *drv;
|
||||
EGLBoolean ret;
|
||||
|
||||
_EGL_CHECK_SURFACE(disp, surf, EGL_FALSE, drv);
|
||||
if (!disp->Extensions.CHROMIUM_sync_control)
|
||||
RETURN_EGL_EVAL(disp, EGL_FALSE);
|
||||
|
||||
if (!ust || !msc || !sbc)
|
||||
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
|
||||
|
||||
ret = drv->API.GetSyncValuesCHROMIUM(disp, surf, ust, msc, sbc);
|
||||
|
||||
RETURN_EGL_EVAL(disp, ret);
|
||||
}
|
||||
|
@@ -139,8 +139,6 @@ typedef EGLint (*QueryBufferAge_t)(_EGLDriver *drv,
|
||||
typedef EGLBoolean (*SwapBuffersWithDamageEXT_t) (_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surface, const EGLint *rects, EGLint n_rects);
|
||||
#endif
|
||||
|
||||
typedef EGLBoolean (*GetSyncValuesCHROMIUM_t) (_EGLDisplay *dpy, _EGLSurface *surface, EGLuint64KHR *ust, EGLuint64KHR *msc, EGLuint64KHR *sbc);
|
||||
|
||||
/**
|
||||
* The API dispatcher jumps through these functions
|
||||
*/
|
||||
@@ -227,7 +225,6 @@ struct _egl_api
|
||||
PostSubBufferNV_t PostSubBufferNV;
|
||||
|
||||
QueryBufferAge_t QueryBufferAge;
|
||||
GetSyncValuesCHROMIUM_t GetSyncValuesCHROMIUM;
|
||||
};
|
||||
|
||||
#endif /* EGLAPI_INCLUDED */
|
||||
|
@@ -322,14 +322,11 @@ _eglParseContextAttribList(_EGLContext *ctx, _EGLDisplay *dpy,
|
||||
break;
|
||||
|
||||
case 3:
|
||||
default:
|
||||
/* Don't put additional version checks here. We don't know that
|
||||
* there won't be versions > 3.0.
|
||||
*/
|
||||
break;
|
||||
|
||||
default:
|
||||
err = EGL_BAD_MATCH;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -113,8 +113,6 @@ struct _egl_extensions
|
||||
|
||||
EGLBoolean ANDROID_image_native_buffer;
|
||||
|
||||
EGLBoolean CHROMIUM_sync_control;
|
||||
|
||||
EGLBoolean NV_post_sub_buffer;
|
||||
|
||||
EGLBoolean EXT_create_context_robustness;
|
||||
|
@@ -117,8 +117,6 @@ _eglUpdateExtensionsString(_EGLDisplay *dpy)
|
||||
|
||||
_EGL_CHECK_EXTENSION(ANDROID_image_native_buffer);
|
||||
|
||||
_EGL_CHECK_EXTENSION(CHROMIUM_sync_control);
|
||||
|
||||
_EGL_CHECK_EXTENSION(EXT_create_context_robustness);
|
||||
_EGL_CHECK_EXTENSION(EXT_buffer_age);
|
||||
_EGL_CHECK_EXTENSION(EXT_swap_buffers_with_damage);
|
||||
|
@@ -26,20 +26,14 @@
|
||||
GALLIUM_TOP := $(call my-dir)
|
||||
GALLIUM_COMMON_MK := $(GALLIUM_TOP)/Android.common.mk
|
||||
|
||||
SUBDIRS := auxiliary
|
||||
|
||||
#
|
||||
# Gallium drivers and their respective winsys
|
||||
#
|
||||
SUBDIRS := \
|
||||
targets/egl-static \
|
||||
state_trackers/egl \
|
||||
auxiliary
|
||||
|
||||
# swrast
|
||||
SUBDIRS += winsys/sw/android drivers/softpipe
|
||||
|
||||
# freedreno
|
||||
ifneq ($(filter freedreno, $(MESA_GPU_DRIVERS)),)
|
||||
SUBDIRS += winsys/freedreno/drm drivers/freedreno
|
||||
endif
|
||||
|
||||
# i915g
|
||||
ifneq ($(filter i915g, $(MESA_GPU_DRIVERS)),)
|
||||
SUBDIRS += winsys/i915/drm drivers/i915
|
||||
@@ -63,8 +57,6 @@ SUBDIRS += winsys/radeon/drm
|
||||
ifneq ($(filter r300g, $(MESA_GPU_DRIVERS)),)
|
||||
SUBDIRS += drivers/r300
|
||||
endif
|
||||
ifneq ($(filter r600g radeonsi, $(MESA_GPU_DRIVERS)),)
|
||||
SUBDIRS += drivers/radeon
|
||||
ifneq ($(filter r600g, $(MESA_GPU_DRIVERS)),)
|
||||
SUBDIRS += drivers/r600
|
||||
endif
|
||||
@@ -72,17 +64,11 @@ ifneq ($(filter radeonsi, $(MESA_GPU_DRIVERS)),)
|
||||
SUBDIRS += drivers/radeonsi
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
# vmwgfx
|
||||
ifneq ($(filter vmwgfx, $(MESA_GPU_DRIVERS)),)
|
||||
SUBDIRS += winsys/svga/drm drivers/svga
|
||||
endif
|
||||
|
||||
#
|
||||
# Gallium state trackers and their users (targets)
|
||||
#
|
||||
SUBDIRS += state_trackers/egl targets/egl-static
|
||||
|
||||
mkfiles := $(patsubst %,$(GALLIUM_TOP)/%/Android.mk,$(SUBDIRS))
|
||||
include $(mkfiles)
|
||||
|
@@ -1,6 +1,5 @@
|
||||
GALLIUM_CFLAGS = \
|
||||
-I$(top_srcdir)/include \
|
||||
-I$(top_srcdir)/src \
|
||||
-I$(top_srcdir)/src/gallium/include \
|
||||
-I$(top_srcdir)/src/gallium/auxiliary \
|
||||
$(DEFINES)
|
||||
@@ -11,7 +10,6 @@ GALLIUM_CFLAGS = \
|
||||
# preprocessor is determined by the ordering of the -I flags.
|
||||
GALLIUM_DRIVER_CFLAGS = \
|
||||
-I$(srcdir)/include \
|
||||
-I$(top_srcdir)/src \
|
||||
-I$(top_srcdir)/include \
|
||||
-I$(top_srcdir)/src/gallium/include \
|
||||
-I$(top_srcdir)/src/gallium/auxiliary \
|
||||
@@ -21,7 +19,6 @@ GALLIUM_DRIVER_CFLAGS = \
|
||||
|
||||
GALLIUM_DRIVER_CXXFLAGS = \
|
||||
-I$(srcdir)/include \
|
||||
-I$(top_srcdir)/src \
|
||||
-I$(top_srcdir)/include \
|
||||
-I$(top_srcdir)/src/gallium/include \
|
||||
-I$(top_srcdir)/src/gallium/auxiliary \
|
||||
@@ -29,9 +26,21 @@ GALLIUM_DRIVER_CXXFLAGS = \
|
||||
$(DEFINES) \
|
||||
$(VISIBILITY_CXXFLAGS)
|
||||
|
||||
GALLIUM_TARGET_CFLAGS = \
|
||||
GALLIUM_DRI_CFLAGS = \
|
||||
-I$(top_srcdir)/include \
|
||||
-I$(top_srcdir)/src/gallium/include \
|
||||
-I$(top_srcdir)/src/gallium/auxiliary \
|
||||
-I$(top_srcdir)/src/gallium/drivers \
|
||||
-I$(top_srcdir)/src/gallium/winsys \
|
||||
-I$(top_srcdir)/src/mesa \
|
||||
-I$(top_srcdir)/src/mapi \
|
||||
$(DEFINES) \
|
||||
$(PTHREAD_CFLAGS) \
|
||||
$(LIBDRM_CFLAGS) \
|
||||
$(VISIBILITY_CFLAGS)
|
||||
|
||||
GALLIUM_VIDEO_CFLAGS = \
|
||||
-I$(top_srcdir)/include \
|
||||
-I$(top_srcdir)/src/loader \
|
||||
-I$(top_srcdir)/src/gallium/include \
|
||||
-I$(top_srcdir)/src/gallium/auxiliary \
|
||||
-I$(top_srcdir)/src/gallium/drivers \
|
||||
@@ -41,12 +50,76 @@ GALLIUM_TARGET_CFLAGS = \
|
||||
$(LIBDRM_CFLAGS) \
|
||||
$(VISIBILITY_CFLAGS)
|
||||
|
||||
|
||||
GALLIUM_DRI_LINKER_FLAGS = \
|
||||
-shared \
|
||||
-shrext .so \
|
||||
-module \
|
||||
-avoid-version \
|
||||
-Wl,--version-script=$(top_srcdir)/src/gallium/targets/dri.sym \
|
||||
$(GC_SECTIONS)
|
||||
|
||||
GALLIUM_VDPAU_LINKER_FLAGS = \
|
||||
-shared \
|
||||
-module \
|
||||
-no-undefined \
|
||||
-version-number $(VDPAU_MAJOR):$(VDPAU_MINOR) \
|
||||
-Wl,--version-script=$(top_srcdir)/src/gallium/targets/vdpau.sym \
|
||||
$(GC_SECTIONS) \
|
||||
$(LD_NO_UNDEFINED)
|
||||
|
||||
GALLIUM_XVMC_LINKER_FLAGS = \
|
||||
-shared \
|
||||
-module \
|
||||
-no-undefined \
|
||||
-version-number $(XVMC_MAJOR):$(XVMC_MINOR) \
|
||||
-Wl,--version-script=$(top_srcdir)/src/gallium/targets/xvmc.sym \
|
||||
$(GC_SECTIONS) \
|
||||
$(LD_NO_UNDEFINED)
|
||||
|
||||
GALLIUM_OMX_LINKER_FLAGS = \
|
||||
-shared \
|
||||
-module \
|
||||
-no-undefined \
|
||||
-avoid-version \
|
||||
-Wl,--version-script=$(top_srcdir)/src/gallium/targets/omx.sym \
|
||||
$(GC_SECTIONS) \
|
||||
$(LD_NO_UNDEFINED)
|
||||
|
||||
GALLIUM_COMMON_LIB_DEPS = \
|
||||
-lm \
|
||||
$(CLOCK_LIB) \
|
||||
$(PTHREAD_LIBS) \
|
||||
$(DLOPEN_LIBS)
|
||||
|
||||
GALLIUM_DRI_LIB_DEPS = \
|
||||
$(top_builddir)/src/mesa/libmesagallium.la \
|
||||
$(top_builddir)/src/gallium/auxiliary/libgallium.la \
|
||||
$(SELINUX_LIBS) \
|
||||
$(LIBDRM_LIBS) \
|
||||
$(EXPAT_LIBS) \
|
||||
$(GALLIUM_COMMON_LIB_DEPS)
|
||||
|
||||
GALLIUM_VDPAU_LIB_DEPS = \
|
||||
$(top_builddir)/src/gallium/auxiliary/libgallium.la \
|
||||
$(top_builddir)/src/gallium/state_trackers/vdpau/libvdpautracker.la \
|
||||
$(VDPAU_LIBS) \
|
||||
$(LIBDRM_LIBS) \
|
||||
$(GALLIUM_COMMON_LIB_DEPS)
|
||||
|
||||
GALLIUM_XVMC_LIB_DEPS = \
|
||||
$(top_builddir)/src/gallium/auxiliary/libgallium.la \
|
||||
$(top_builddir)/src/gallium/state_trackers/xvmc/libxvmctracker.la \
|
||||
$(XVMC_LIBS) \
|
||||
$(LIBDRM_LIBS) \
|
||||
$(GALLIUM_COMMON_LIB_DEPS)
|
||||
|
||||
GALLIUM_OMX_LIB_DEPS = \
|
||||
$(top_builddir)/src/gallium/auxiliary/libgallium.la \
|
||||
$(top_builddir)/src/gallium/state_trackers/omx/libomxtracker.la \
|
||||
$(OMX_LIBS) \
|
||||
$(GALLIUM_COMMON_LIB_DEPS)
|
||||
|
||||
GALLIUM_WINSYS_CFLAGS = \
|
||||
-I$(top_srcdir)/include \
|
||||
-I$(top_srcdir)/src/gallium/include \
|
||||
@@ -54,18 +127,16 @@ GALLIUM_WINSYS_CFLAGS = \
|
||||
$(DEFINES) \
|
||||
$(VISIBILITY_CFLAGS)
|
||||
|
||||
if HAVE_MESA_LLVM
|
||||
|
||||
GALLIUM_PIPE_LOADER_WINSYS_LIBS = \
|
||||
$(top_builddir)/src/gallium/winsys/sw/null/libws_null.la
|
||||
GALLIUM_DRI_LINKER_FLAGS += $(LLVM_LDFLAGS)
|
||||
GALLIUM_VDPAU_LINKER_FLAGS += $(LLVM_LDFLAGS)
|
||||
GALLIUM_XVMC_LINKER_FLAGS += $(LLVM_LDFLAGS)
|
||||
GALLIUM_OMX_LINKER_FLAGS += $(LLVM_LDFLAGS)
|
||||
|
||||
GALLIUM_DRI_LIB_DEPS += $(LLVM_LIBS)
|
||||
GALLIUM_VDPAU_LIB_DEPS += $(LLVM_LIBS)
|
||||
GALLIUM_XVMC_LIB_DEPS += $(LLVM_LIBS)
|
||||
GALLIUM_OMX_LIB_DEPS += $(LLVM_LIBS)
|
||||
|
||||
if HAVE_DRISW
|
||||
GALLIUM_PIPE_LOADER_WINSYS_LIBS += \
|
||||
$(top_builddir)/src/gallium/winsys/sw/dri/libswdri.la
|
||||
endif
|
||||
|
||||
if NEED_WINSYS_XLIB
|
||||
GALLIUM_PIPE_LOADER_WINSYS_LIBS += \
|
||||
$(top_builddir)/src/gallium/winsys/sw/xlib/libws_xlib.la \
|
||||
-lX11 -lXext -lXfixes \
|
||||
$(LIBDRM_LIBS)
|
||||
endif
|
||||
|
@@ -1,174 +0,0 @@
|
||||
SUBDIRS =
|
||||
|
||||
##
|
||||
## Gallium auxiliary module
|
||||
##
|
||||
|
||||
SUBDIRS += auxiliary
|
||||
|
||||
##
|
||||
## Gallium pipe drivers and their respective winsys'
|
||||
##
|
||||
|
||||
SUBDIRS += \
|
||||
drivers/galahad \
|
||||
drivers/identity \
|
||||
drivers/noop \
|
||||
drivers/trace \
|
||||
drivers/rbug
|
||||
|
||||
## freedreno/msm/kgsl
|
||||
if HAVE_GALLIUM_FREEDRENO
|
||||
SUBDIRS += drivers/freedreno winsys/freedreno/drm
|
||||
endif
|
||||
|
||||
## i915g/i915
|
||||
if HAVE_GALLIUM_I915
|
||||
SUBDIRS += drivers/i915 winsys/i915/drm
|
||||
endif
|
||||
|
||||
## ilo/i965
|
||||
if HAVE_GALLIUM_ILO
|
||||
SUBDIRS += drivers/ilo winsys/intel/drm
|
||||
endif
|
||||
|
||||
## nouveau
|
||||
if HAVE_GALLIUM_NOUVEAU
|
||||
SUBDIRS += drivers/nouveau winsys/nouveau/drm
|
||||
endif
|
||||
|
||||
## vmwgfx/svga
|
||||
if HAVE_GALLIUM_SVGA
|
||||
SUBDIRS += drivers/svga winsys/svga/drm
|
||||
endif
|
||||
|
||||
## r300
|
||||
if HAVE_GALLIUM_R300
|
||||
SUBDIRS += drivers/r300
|
||||
endif
|
||||
|
||||
## radeon - linked into r600 and radeonsi
|
||||
if HAVE_GALLIUM_RADEON_COMMON
|
||||
SUBDIRS += drivers/radeon
|
||||
endif
|
||||
|
||||
## r600
|
||||
if HAVE_GALLIUM_R600
|
||||
SUBDIRS += drivers/r600
|
||||
endif
|
||||
|
||||
## radeonsi
|
||||
if HAVE_GALLIUM_RADEONSI
|
||||
SUBDIRS += drivers/radeonsi
|
||||
endif
|
||||
|
||||
## the radeon winsys - linked in by r300, r600 and radeonsi
|
||||
if NEED_RADEON_DRM_WINSYS
|
||||
SUBDIRS += winsys/radeon/drm
|
||||
endif
|
||||
|
||||
## swrast/softpipe
|
||||
if NEED_GALLIUM_SOFTPIPE_DRIVER
|
||||
SUBDIRS += drivers/softpipe
|
||||
|
||||
## swrast/llvmpipe
|
||||
if NEED_GALLIUM_LLVMPIPE_DRIVER
|
||||
SUBDIRS += drivers/llvmpipe
|
||||
endif
|
||||
endif
|
||||
|
||||
## vc4/rpi
|
||||
if HAVE_GALLIUM_VC4
|
||||
SUBDIRS += drivers/vc4 winsys/vc4/drm
|
||||
endif
|
||||
|
||||
## the sw winsys'
|
||||
SUBDIRS += winsys/sw/null
|
||||
|
||||
if NEED_WINSYS_XLIB
|
||||
SUBDIRS += winsys/sw/xlib
|
||||
endif
|
||||
|
||||
if HAVE_DRISW
|
||||
SUBDIRS += winsys/sw/dri
|
||||
endif
|
||||
|
||||
if HAVE_DRI2
|
||||
SUBDIRS += winsys/sw/kms-dri
|
||||
endif
|
||||
|
||||
if HAVE_EGL_PLATFORM_FBDEV
|
||||
SUBDIRS += winsys/sw/fbdev
|
||||
endif
|
||||
|
||||
if HAVE_EGL_PLATFORM_WAYLAND
|
||||
SUBDIRS += winsys/sw/wayland
|
||||
endif
|
||||
|
||||
if NEED_WINSYS_WRAPPER
|
||||
SUBDIRS += winsys/sw/wrapper
|
||||
endif
|
||||
|
||||
|
||||
##
|
||||
## Gallium state trackers and their users (targets)
|
||||
##
|
||||
|
||||
if NEED_GALLIUM_LOADER
|
||||
SUBDIRS += targets/pipe-loader
|
||||
endif
|
||||
|
||||
if HAVE_CLOVER
|
||||
SUBDIRS += state_trackers/clover targets/opencl
|
||||
endif
|
||||
|
||||
if HAVE_DRICOMMON
|
||||
SUBDIRS += state_trackers/dri targets/dri
|
||||
endif
|
||||
|
||||
## the egl target depends on vega
|
||||
if HAVE_OPENVG
|
||||
SUBDIRS += state_trackers/vega
|
||||
endif
|
||||
|
||||
if HAVE_GALLIUM_EGL
|
||||
SUBDIRS += state_trackers/egl targets/egl-static
|
||||
endif
|
||||
|
||||
if HAVE_GALLIUM_GBM
|
||||
SUBDIRS += state_trackers/gbm targets/gbm
|
||||
endif
|
||||
|
||||
if HAVE_X11_DRIVER
|
||||
SUBDIRS += state_trackers/glx/xlib targets/libgl-xlib
|
||||
endif
|
||||
|
||||
if HAVE_ST_OMX
|
||||
SUBDIRS += state_trackers/omx targets/omx
|
||||
endif
|
||||
|
||||
if HAVE_GALLIUM_OSMESA
|
||||
SUBDIRS += state_trackers/osmesa targets/osmesa
|
||||
endif
|
||||
|
||||
if HAVE_ST_VDPAU
|
||||
SUBDIRS += state_trackers/vdpau targets/vdpau
|
||||
endif
|
||||
|
||||
if HAVE_ST_XA
|
||||
SUBDIRS += state_trackers/xa targets/xa
|
||||
endif
|
||||
|
||||
if HAVE_ST_XVMC
|
||||
SUBDIRS += state_trackers/xvmc targets/xvmc
|
||||
endif
|
||||
|
||||
##
|
||||
## Gallium tests
|
||||
##
|
||||
|
||||
if HAVE_GALLIUM_TESTS
|
||||
SUBDIRS += \
|
||||
tests/trivial \
|
||||
tests/unit
|
||||
endif
|
@@ -21,15 +21,41 @@ SConscript([
|
||||
'drivers/trace/SConscript',
|
||||
])
|
||||
|
||||
if not env['msvc']:
|
||||
# These drivers do not build on MSVC compilers
|
||||
SConscript([
|
||||
'drivers/i915/SConscript',
|
||||
])
|
||||
|
||||
#
|
||||
# State trackers
|
||||
#
|
||||
|
||||
# Needed by some state trackers
|
||||
SConscript('winsys/sw/null/SConscript')
|
||||
|
||||
if not env['embedded']:
|
||||
SConscript('state_trackers/vega/SConscript')
|
||||
if env['platform'] not in ('cygwin', 'darwin', 'haiku', 'sunos'):
|
||||
SConscript('state_trackers/egl/SConscript')
|
||||
|
||||
if env['x11']:
|
||||
SConscript('state_trackers/glx/xlib/SConscript')
|
||||
|
||||
if env['dri']:
|
||||
SConscript('state_trackers/dri/SConscript')
|
||||
|
||||
if env['platform'] == 'windows':
|
||||
SConscript('state_trackers/wgl/SConscript')
|
||||
|
||||
#
|
||||
# Winsys
|
||||
#
|
||||
#
|
||||
|
||||
SConscript([
|
||||
'winsys/sw/null/SConscript',
|
||||
'winsys/sw/wrapper/SConscript',
|
||||
])
|
||||
|
||||
|
||||
if env['x11']:
|
||||
SConscript([
|
||||
'winsys/sw/xlib/SConscript',
|
||||
@@ -40,6 +66,11 @@ if env['platform'] == 'windows':
|
||||
'winsys/sw/gdi/SConscript',
|
||||
])
|
||||
|
||||
if not env['msvc']:
|
||||
SConscript([
|
||||
'winsys/i915/sw/SConscript',
|
||||
])
|
||||
|
||||
if env['platform'] == 'haiku':
|
||||
SConscript([
|
||||
'winsys/sw/hgl/SConscript',
|
||||
@@ -48,13 +79,19 @@ if env['platform'] == 'haiku':
|
||||
if env['dri']:
|
||||
SConscript([
|
||||
'winsys/sw/dri/SConscript',
|
||||
'winsys/sw/kms-dri/SConscript',
|
||||
])
|
||||
|
||||
SConscript([
|
||||
'winsys/svga/drm/SConscript',
|
||||
])
|
||||
|
||||
if env['drm_intel']:
|
||||
SConscript([
|
||||
'winsys/i915/drm/SConscript',
|
||||
])
|
||||
|
||||
#
|
||||
# State trackers and targets
|
||||
# Targets
|
||||
#
|
||||
|
||||
SConscript([
|
||||
@@ -62,23 +99,19 @@ SConscript([
|
||||
])
|
||||
|
||||
if not env['embedded']:
|
||||
SConscript('state_trackers/vega/SConscript')
|
||||
if env['platform'] not in ('cygwin', 'darwin', 'freebsd', 'haiku', 'sunos'):
|
||||
SConscript([
|
||||
'state_trackers/egl/SConscript',
|
||||
'targets/egl-static/SConscript',
|
||||
'targets/egl-static/SConscript'
|
||||
])
|
||||
|
||||
if env['x11']:
|
||||
SConscript([
|
||||
'state_trackers/glx/xlib/SConscript',
|
||||
'targets/graw-xlib/SConscript',
|
||||
'targets/libgl-xlib/SConscript',
|
||||
])
|
||||
|
||||
if env['platform'] == 'windows':
|
||||
SConscript([
|
||||
'state_trackers/wgl/SConscript',
|
||||
'targets/graw-gdi/SConscript',
|
||||
'targets/libgl-gdi/SConscript',
|
||||
])
|
||||
@@ -90,9 +123,13 @@ if not env['embedded']:
|
||||
|
||||
if env['dri']:
|
||||
SConscript([
|
||||
'state_trackers/dri/SConscript',
|
||||
'targets/dri/SConscript',
|
||||
'targets/dri-swrast/SConscript',
|
||||
'targets/dri-vmwgfx/SConscript',
|
||||
])
|
||||
if env['drm_intel']:
|
||||
SConscript([
|
||||
'targets/dri-i915/SConscript',
|
||||
])
|
||||
|
||||
|
||||
#
|
||||
|
@@ -30,9 +30,7 @@ include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_SRC_FILES := $(C_SOURCES)
|
||||
|
||||
LOCAL_C_INCLUDES := \
|
||||
$(GALLIUM_TOP)/auxiliary/util \
|
||||
$(MESA_TOP)/src
|
||||
LOCAL_C_INCLUDES := $(GALLIUM_TOP)/auxiliary/util
|
||||
|
||||
LOCAL_MODULE := libmesa_gallium
|
||||
|
||||
|
@@ -39,6 +39,10 @@ indices/u_unfilled_gen.c: $(srcdir)/indices/u_unfilled_gen.py
|
||||
$(AM_V_at)$(MKDIR_P) indices
|
||||
$(AM_V_GEN) $(PYTHON2) $< > $@
|
||||
|
||||
util/u_format_srgb.c: $(srcdir)/util/u_format_srgb.py
|
||||
$(AM_V_at)$(MKDIR_P) util
|
||||
$(AM_V_GEN) $(PYTHON2) $< > $@
|
||||
|
||||
util/u_format_table.c: $(srcdir)/util/u_format_table.py $(srcdir)/util/u_format_pack.py $(srcdir)/util/u_format_parse.py $(srcdir)/util/u_format.csv
|
||||
$(AM_V_at)$(MKDIR_P) util
|
||||
$(AM_V_GEN) $(PYTHON2) $(srcdir)/util/u_format_table.py $(srcdir)/util/u_format.csv > $@
|
||||
|
@@ -113,7 +113,6 @@ C_SOURCES := \
|
||||
util/u_format_s3tc.c \
|
||||
util/u_format_rgtc.c \
|
||||
util/u_format_etc.c \
|
||||
util/u_format_bptc.c \
|
||||
util/u_format_tests.c \
|
||||
util/u_format_yuv.c \
|
||||
util/u_format_zs.c \
|
||||
@@ -163,6 +162,7 @@ C_SOURCES := \
|
||||
GENERATED_SOURCES := \
|
||||
indices/u_indices_gen.c \
|
||||
indices/u_unfilled_gen.c \
|
||||
util/u_format_srgb.c \
|
||||
util/u_format_table.c
|
||||
|
||||
GALLIVM_SOURCES := \
|
||||
|
@@ -3,7 +3,6 @@ Import('*')
|
||||
from sys import executable as python_cmd
|
||||
|
||||
env.Append(CPPPATH = [
|
||||
'#src',
|
||||
'indices',
|
||||
'util',
|
||||
])
|
||||
@@ -22,6 +21,13 @@ env.CodeGenerate(
|
||||
command = python_cmd + ' $SCRIPT > $TARGET'
|
||||
)
|
||||
|
||||
env.CodeGenerate(
|
||||
target = 'util/u_format_srgb.c',
|
||||
script = 'util/u_format_srgb.py',
|
||||
source = [],
|
||||
command = python_cmd + ' $SCRIPT > $TARGET'
|
||||
)
|
||||
|
||||
env.CodeGenerate(
|
||||
target = 'util/u_format_table.c',
|
||||
script = '#src/gallium/auxiliary/util/u_format_table.py',
|
||||
|
@@ -332,7 +332,7 @@ void cso_release_all( struct cso_context *ctx )
|
||||
ctx->pipe->bind_vs_state( ctx->pipe, NULL );
|
||||
ctx->pipe->bind_vertex_elements_state( ctx->pipe, NULL );
|
||||
|
||||
if (ctx->has_streamout)
|
||||
if (ctx->pipe->set_stream_output_targets)
|
||||
ctx->pipe->set_stream_output_targets(ctx->pipe, 0, NULL, NULL);
|
||||
}
|
||||
|
||||
|
@@ -62,7 +62,6 @@ static boolean TAG(do_cliptest)( struct pt_post_vs *pvs,
|
||||
ucp_enable = (1 << num_written_clipdistance) - 1;
|
||||
}
|
||||
|
||||
assert(pos != -1);
|
||||
for (j = 0; j < info->count; j++) {
|
||||
float *position = out->data[pos];
|
||||
unsigned mask = 0x0;
|
||||
@@ -85,10 +84,8 @@ static boolean TAG(do_cliptest)( struct pt_post_vs *pvs,
|
||||
DO_CLIP_FULL_Z | DO_CLIP_HALF_Z | DO_CLIP_USER)) {
|
||||
float *clipvertex = position;
|
||||
|
||||
if ((flags & DO_CLIP_USER) && cv != pos) {
|
||||
assert(cv != -1);
|
||||
if ((flags & DO_CLIP_USER) && cv != pos)
|
||||
clipvertex = out->data[cv];
|
||||
}
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
out->clip[i] = clipvertex[i];
|
||||
|
@@ -818,15 +818,11 @@ draw_current_shader_uses_viewport_index(const struct draw_context *draw)
|
||||
|
||||
/**
|
||||
* Return the index of the shader output which will contain the
|
||||
* clip vertex position.
|
||||
* Note we don't support clipvertex output in the gs. For clipping
|
||||
* to work correctly hence we return ordinary position output instead.
|
||||
* vertex position.
|
||||
*/
|
||||
uint
|
||||
draw_current_shader_clipvertex_output(const struct draw_context *draw)
|
||||
{
|
||||
if (draw->gs.geometry_shader)
|
||||
return draw->gs.position_output;
|
||||
return draw->vs.clipvertex_output;
|
||||
}
|
||||
|
||||
|
@@ -144,10 +144,14 @@ static void tgsi_fetch_gs_input(struct draw_geometry_shader *shader,
|
||||
for (slot = 0, vs_slot = 0; slot < shader->info.num_inputs; ++slot) {
|
||||
unsigned idx = i * TGSI_EXEC_MAX_INPUT_ATTRIBS + slot;
|
||||
if (shader->info.input_semantic_name[slot] == TGSI_SEMANTIC_PRIMID) {
|
||||
machine->Inputs[idx].xyzw[0].u[prim_idx] = shader->in_prim_idx;
|
||||
machine->Inputs[idx].xyzw[1].u[prim_idx] = shader->in_prim_idx;
|
||||
machine->Inputs[idx].xyzw[2].u[prim_idx] = shader->in_prim_idx;
|
||||
machine->Inputs[idx].xyzw[3].u[prim_idx] = shader->in_prim_idx;
|
||||
machine->Inputs[idx].xyzw[0].f[prim_idx] =
|
||||
(float)shader->in_prim_idx;
|
||||
machine->Inputs[idx].xyzw[1].f[prim_idx] =
|
||||
(float)shader->in_prim_idx;
|
||||
machine->Inputs[idx].xyzw[2].f[prim_idx] =
|
||||
(float)shader->in_prim_idx;
|
||||
machine->Inputs[idx].xyzw[3].f[prim_idx] =
|
||||
(float)shader->in_prim_idx;
|
||||
} else {
|
||||
vs_slot = draw_gs_get_input_index(
|
||||
shader->info.input_semantic_name[slot],
|
||||
@@ -228,7 +232,8 @@ llvm_fetch_gs_input(struct draw_geometry_shader *shader,
|
||||
const float (*input_ptr)[4];
|
||||
float (*input_data)[6][PIPE_MAX_SHADER_INPUTS][TGSI_NUM_CHANNELS][TGSI_NUM_CHANNELS] = &shader->gs_input->data;
|
||||
|
||||
shader->llvm_prim_ids[shader->fetched_prim_count] = shader->in_prim_idx;
|
||||
shader->llvm_prim_ids[shader->fetched_prim_count] =
|
||||
shader->in_prim_idx;
|
||||
|
||||
input_ptr = shader->input;
|
||||
|
||||
@@ -243,11 +248,6 @@ llvm_fetch_gs_input(struct draw_geometry_shader *shader,
|
||||
for (slot = 0, vs_slot = 0; slot < shader->info.num_inputs; ++slot) {
|
||||
if (shader->info.input_semantic_name[slot] == TGSI_SEMANTIC_PRIMID) {
|
||||
/* skip. we handle system values through gallivm */
|
||||
/* NOTE: If we hit this case here it's an ordinary input not a sv,
|
||||
* even though it probably should be a sv.
|
||||
* Not sure how to set it up as regular input however if that even,
|
||||
* would make sense so hack around this later in gallivm.
|
||||
*/
|
||||
} else {
|
||||
vs_slot = draw_gs_get_input_index(
|
||||
shader->info.input_semantic_name[slot],
|
||||
@@ -791,7 +791,6 @@ draw_create_geometry_shader(struct draw_context *draw,
|
||||
*/
|
||||
gs->primitive_boundary = gs->max_output_vertices + 1;
|
||||
|
||||
gs->position_output = -1;
|
||||
for (i = 0; i < gs->info.num_outputs; i++) {
|
||||
if (gs->info.output_semantic_name[i] == TGSI_SEMANTIC_POSITION &&
|
||||
gs->info.output_semantic_index[i] == 0)
|
||||
|
@@ -97,6 +97,15 @@ create_jit_dvbuffer_type(struct gallivm_state *gallivm,
|
||||
dvbuffer_type = LLVMStructTypeInContext(gallivm->context, elem_types,
|
||||
Elements(elem_types), 0);
|
||||
|
||||
#if HAVE_LLVM < 0x0300
|
||||
LLVMAddTypeName(gallivm->module, struct_name, dvbuffer_type);
|
||||
|
||||
/* Make sure the target's struct layout cache doesn't return
|
||||
* stale/invalid data.
|
||||
*/
|
||||
LLVMInvalidateStructLayout(gallivm->target, dvbuffer_type);
|
||||
#endif
|
||||
|
||||
LP_CHECK_MEMBER_OFFSET(struct draw_vertex_buffer, map,
|
||||
target, dvbuffer_type,
|
||||
DRAW_JIT_DVBUFFER_MAP);
|
||||
@@ -133,6 +142,15 @@ create_jit_texture_type(struct gallivm_state *gallivm, const char *struct_name)
|
||||
texture_type = LLVMStructTypeInContext(gallivm->context, elem_types,
|
||||
Elements(elem_types), 0);
|
||||
|
||||
#if HAVE_LLVM < 0x0300
|
||||
LLVMAddTypeName(gallivm->module, struct_name, texture_type);
|
||||
|
||||
/* Make sure the target's struct layout cache doesn't return
|
||||
* stale/invalid data.
|
||||
*/
|
||||
LLVMInvalidateStructLayout(gallivm->target, texture_type);
|
||||
#endif
|
||||
|
||||
LP_CHECK_MEMBER_OFFSET(struct draw_jit_texture, width,
|
||||
target, texture_type,
|
||||
DRAW_JIT_TEXTURE_WIDTH);
|
||||
@@ -186,6 +204,15 @@ create_jit_sampler_type(struct gallivm_state *gallivm, const char *struct_name)
|
||||
sampler_type = LLVMStructTypeInContext(gallivm->context, elem_types,
|
||||
Elements(elem_types), 0);
|
||||
|
||||
#if HAVE_LLVM < 0x0300
|
||||
LLVMAddTypeName(gallivm->module, struct_name, sampler_type);
|
||||
|
||||
/* Make sure the target's struct layout cache doesn't return
|
||||
* stale/invalid data.
|
||||
*/
|
||||
LLVMInvalidateStructLayout(gallivm->target, sampler_type);
|
||||
#endif
|
||||
|
||||
LP_CHECK_MEMBER_OFFSET(struct draw_jit_sampler, min_lod,
|
||||
target, sampler_type,
|
||||
DRAW_JIT_SAMPLER_MIN_LOD);
|
||||
@@ -232,6 +259,12 @@ create_jit_context_type(struct gallivm_state *gallivm,
|
||||
PIPE_MAX_SAMPLERS); /* samplers */
|
||||
context_type = LLVMStructTypeInContext(gallivm->context, elem_types,
|
||||
Elements(elem_types), 0);
|
||||
#if HAVE_LLVM < 0x0300
|
||||
LLVMAddTypeName(gallivm->module, struct_name, context_type);
|
||||
|
||||
LLVMInvalidateStructLayout(gallivm->target, context_type);
|
||||
#endif
|
||||
|
||||
LP_CHECK_MEMBER_OFFSET(struct draw_jit_context, vs_constants,
|
||||
target, context_type, DRAW_JIT_CTX_CONSTANTS);
|
||||
LP_CHECK_MEMBER_OFFSET(struct draw_jit_context, num_vs_constants,
|
||||
@@ -289,6 +322,11 @@ create_gs_jit_context_type(struct gallivm_state *gallivm,
|
||||
|
||||
context_type = LLVMStructTypeInContext(gallivm->context, elem_types,
|
||||
Elements(elem_types), 0);
|
||||
#if HAVE_LLVM < 0x0300
|
||||
LLVMAddTypeName(gallivm->module, struct_name, context_type);
|
||||
|
||||
LLVMInvalidateStructLayout(gallivm->target, context_type);
|
||||
#endif
|
||||
|
||||
LP_CHECK_MEMBER_OFFSET(struct draw_gs_jit_context, constants,
|
||||
target, context_type, DRAW_GS_JIT_CTX_CONSTANTS);
|
||||
@@ -352,6 +390,11 @@ create_jit_vertex_buffer_type(struct gallivm_state *gallivm,
|
||||
|
||||
vb_type = LLVMStructTypeInContext(gallivm->context, elem_types,
|
||||
Elements(elem_types), 0);
|
||||
#if HAVE_LLVM < 0x0300
|
||||
LLVMAddTypeName(gallivm->module, struct_name, vb_type);
|
||||
|
||||
LLVMInvalidateStructLayout(gallivm->target, vb_type);
|
||||
#endif
|
||||
|
||||
LP_CHECK_MEMBER_OFFSET(struct pipe_vertex_buffer, stride,
|
||||
target, vb_type, 0);
|
||||
@@ -384,6 +427,11 @@ create_jit_vertex_header(struct gallivm_state *gallivm, int data_elems)
|
||||
|
||||
vertex_header = LLVMStructTypeInContext(gallivm->context, elem_types,
|
||||
Elements(elem_types), 0);
|
||||
#if HAVE_LLVM < 0x0300
|
||||
LLVMAddTypeName(gallivm->module, struct_name, vertex_header);
|
||||
|
||||
LLVMInvalidateStructLayout(gallivm->target, vertex_header);
|
||||
#endif
|
||||
|
||||
/* these are bit-fields and we can't take address of them
|
||||
LP_CHECK_MEMBER_OFFSET(struct vertex_header, clipmask,
|
||||
@@ -525,7 +573,6 @@ draw_llvm_create_variant(struct draw_llvm *llvm,
|
||||
struct llvm_vertex_shader *shader =
|
||||
llvm_vertex_shader(llvm->draw->vs.vertex_shader);
|
||||
LLVMTypeRef vertex_header;
|
||||
char module_name[64];
|
||||
|
||||
variant = MALLOC(sizeof *variant +
|
||||
shader->variant_key_size -
|
||||
@@ -534,12 +581,8 @@ draw_llvm_create_variant(struct draw_llvm *llvm,
|
||||
return NULL;
|
||||
|
||||
variant->llvm = llvm;
|
||||
variant->shader = shader;
|
||||
|
||||
util_snprintf(module_name, sizeof(module_name), "draw_llvm_vs_variant%u",
|
||||
variant->shader->variants_cached);
|
||||
|
||||
variant->gallivm = gallivm_create(module_name);
|
||||
variant->gallivm = gallivm_create();
|
||||
|
||||
create_jit_types(variant);
|
||||
|
||||
@@ -560,8 +603,7 @@ draw_llvm_create_variant(struct draw_llvm *llvm,
|
||||
variant->jit_func_elts = (draw_jit_vert_func_elts)
|
||||
gallivm_jit_function(variant->gallivm, variant->function_elts);
|
||||
|
||||
gallivm_free_ir(variant->gallivm);
|
||||
|
||||
variant->shader = shader;
|
||||
variant->list_item_global.base = variant;
|
||||
variant->list_item_local.base = variant;
|
||||
/*variant->no = */shader->variants_created++;
|
||||
@@ -1480,7 +1522,6 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant,
|
||||
LLVMValueRef context_ptr;
|
||||
LLVMBasicBlockRef block;
|
||||
LLVMBuilderRef builder;
|
||||
char func_name[64];
|
||||
struct lp_type vs_type;
|
||||
LLVMValueRef end, start;
|
||||
LLVMValueRef count, fetch_elts, fetch_elt_max, fetch_count;
|
||||
@@ -1499,15 +1540,16 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant,
|
||||
LLVMValueRef fetch_max;
|
||||
struct lp_build_sampler_soa *sampler = 0;
|
||||
LLVMValueRef ret, clipmask_bool_ptr;
|
||||
const struct draw_geometry_shader *gs = draw->gs.geometry_shader;
|
||||
struct draw_llvm_variant_key *key = &variant->key;
|
||||
/* If geometry shader is present we need to skip both the viewport
|
||||
* transformation and clipping otherwise the inputs to the geometry
|
||||
* shader will be incorrect.
|
||||
*/
|
||||
const boolean bypass_viewport = key->has_gs || key->bypass_viewport;
|
||||
const boolean enable_cliptest = !key->has_gs && (key->clip_xy ||
|
||||
key->clip_z ||
|
||||
key->clip_user);
|
||||
const boolean bypass_viewport = gs || key->bypass_viewport;
|
||||
const boolean enable_cliptest = !gs && (key->clip_xy ||
|
||||
key->clip_z ||
|
||||
key->clip_user);
|
||||
LLVMValueRef variant_func;
|
||||
const unsigned pos = llvm->draw->vs.position_output;
|
||||
const unsigned cv = llvm->draw->vs.clipvertex_output;
|
||||
@@ -1516,9 +1558,6 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant,
|
||||
|
||||
memset(&system_values, 0, sizeof(system_values));
|
||||
|
||||
util_snprintf(func_name, sizeof(func_name), "draw_llvm_vs_variant%u_%s",
|
||||
variant->shader->variants_cached, elts ? "elts" : "linear");
|
||||
|
||||
i = 0;
|
||||
arg_types[i++] = get_context_ptr_type(variant); /* context */
|
||||
arg_types[i++] = get_vertex_header_ptr_type(variant); /* vertex_header */
|
||||
@@ -1536,7 +1575,9 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant,
|
||||
|
||||
func_type = LLVMFunctionType(int32_type, arg_types, num_arg_types, 0);
|
||||
|
||||
variant_func = LLVMAddFunction(gallivm->module, func_name, func_type);
|
||||
variant_func = LLVMAddFunction(gallivm->module,
|
||||
elts ? "draw_llvm_shader_elts" : "draw_llvm_shader",
|
||||
func_type);
|
||||
|
||||
if (elts)
|
||||
variant->function_elts = variant_func;
|
||||
@@ -1731,8 +1772,8 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant,
|
||||
|
||||
if (pos != -1 && cv != -1) {
|
||||
/* store original positions in clip before further manipulation */
|
||||
store_clip(gallivm, vs_type, io, outputs, FALSE, key->clip_user ? cv : pos);
|
||||
store_clip(gallivm, vs_type, io, outputs, TRUE, pos);
|
||||
store_clip(gallivm, vs_type, io, outputs, 0, cv);
|
||||
store_clip(gallivm, vs_type, io, outputs, 1, pos);
|
||||
|
||||
/* do cliptest */
|
||||
if (enable_cliptest) {
|
||||
@@ -1967,6 +2008,16 @@ draw_llvm_destroy_variant(struct draw_llvm_variant *variant)
|
||||
{
|
||||
struct draw_llvm *llvm = variant->llvm;
|
||||
|
||||
if (variant->function_elts) {
|
||||
gallivm_free_function(variant->gallivm,
|
||||
variant->function_elts, variant->jit_func_elts);
|
||||
}
|
||||
|
||||
if (variant->function) {
|
||||
gallivm_free_function(variant->gallivm,
|
||||
variant->function, variant->jit_func);
|
||||
}
|
||||
|
||||
gallivm_destroy(variant->gallivm);
|
||||
|
||||
remove_from_list(&variant->list_item_local);
|
||||
@@ -2047,7 +2098,6 @@ draw_gs_llvm_generate(struct draw_llvm *llvm,
|
||||
struct lp_build_sampler_soa *sampler = 0;
|
||||
struct lp_build_context bld;
|
||||
struct lp_bld_tgsi_system_values system_values;
|
||||
char func_name[64];
|
||||
struct lp_type gs_type;
|
||||
unsigned i;
|
||||
struct draw_gs_llvm_iface gs_iface;
|
||||
@@ -2060,9 +2110,6 @@ draw_gs_llvm_generate(struct draw_llvm *llvm,
|
||||
|
||||
memset(&system_values, 0, sizeof(system_values));
|
||||
|
||||
util_snprintf(func_name, sizeof(func_name), "draw_llvm_gs_variant%u",
|
||||
variant->shader->variants_cached);
|
||||
|
||||
assert(variant->vertex_header_ptr_type);
|
||||
|
||||
arg_types[0] = get_gs_context_ptr_type(variant); /* context */
|
||||
@@ -2075,8 +2122,8 @@ draw_gs_llvm_generate(struct draw_llvm *llvm,
|
||||
|
||||
func_type = LLVMFunctionType(int32_type, arg_types, Elements(arg_types), 0);
|
||||
|
||||
variant_func = LLVMAddFunction(gallivm->module, func_name, func_type);
|
||||
|
||||
variant_func = LLVMAddFunction(gallivm->module, "draw_geometry_shader",
|
||||
func_type);
|
||||
variant->function = variant_func;
|
||||
|
||||
LLVMSetFunctionCallConv(variant_func, LLVMCCallConv);
|
||||
@@ -2180,7 +2227,6 @@ draw_gs_llvm_create_variant(struct draw_llvm *llvm,
|
||||
struct llvm_geometry_shader *shader =
|
||||
llvm_geometry_shader(llvm->draw->gs.geometry_shader);
|
||||
LLVMTypeRef vertex_header;
|
||||
char module_name[64];
|
||||
|
||||
variant = MALLOC(sizeof *variant +
|
||||
shader->variant_key_size -
|
||||
@@ -2191,10 +2237,7 @@ draw_gs_llvm_create_variant(struct draw_llvm *llvm,
|
||||
variant->llvm = llvm;
|
||||
variant->shader = shader;
|
||||
|
||||
util_snprintf(module_name, sizeof(module_name), "draw_llvm_gs_variant%u",
|
||||
variant->shader->variants_cached);
|
||||
|
||||
variant->gallivm = gallivm_create(module_name);
|
||||
variant->gallivm = gallivm_create();
|
||||
|
||||
create_gs_jit_types(variant);
|
||||
|
||||
@@ -2211,8 +2254,6 @@ draw_gs_llvm_create_variant(struct draw_llvm *llvm,
|
||||
variant->jit_func = (draw_gs_jit_func)
|
||||
gallivm_jit_function(variant->gallivm, variant->function);
|
||||
|
||||
gallivm_free_ir(variant->gallivm);
|
||||
|
||||
variant->list_item_global.base = variant;
|
||||
variant->list_item_local.base = variant;
|
||||
/*variant->no = */shader->variants_created++;
|
||||
@@ -2226,6 +2267,11 @@ draw_gs_llvm_destroy_variant(struct draw_gs_llvm_variant *variant)
|
||||
{
|
||||
struct draw_llvm *llvm = variant->llvm;
|
||||
|
||||
if (variant->function) {
|
||||
gallivm_free_function(variant->gallivm,
|
||||
variant->function, variant->jit_func);
|
||||
}
|
||||
|
||||
gallivm_destroy(variant->gallivm);
|
||||
|
||||
remove_from_list(&variant->list_item_local);
|
||||
|
@@ -493,7 +493,7 @@ draw_stats_clipper_primitives(struct draw_context *draw,
|
||||
static INLINE unsigned
|
||||
draw_clamp_viewport_idx(int idx)
|
||||
{
|
||||
return ((PIPE_MAX_VIEWPORTS > idx && idx >= 0) ? idx : 0);
|
||||
return ((PIPE_MAX_VIEWPORTS > idx || idx < 0) ? idx : 0);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -53,9 +53,6 @@
|
||||
#ifndef HAVE_LLVM
|
||||
#error "HAVE_LLVM should be set with LLVM's version number, e.g. (0x0207 for 2.7)"
|
||||
#endif
|
||||
#if HAVE_LLVM < 0x301
|
||||
#error "LLVM 3.1 or newer required"
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
|
@@ -1499,9 +1499,11 @@ lp_build_negate(struct lp_build_context *bld,
|
||||
|
||||
assert(lp_check_value(bld->type, a));
|
||||
|
||||
#if HAVE_LLVM >= 0x0207
|
||||
if (bld->type.floating)
|
||||
a = LLVMBuildFNeg(builder, a, "");
|
||||
else
|
||||
#endif
|
||||
a = LLVMBuildNeg(builder, a, "");
|
||||
|
||||
return a;
|
||||
@@ -1850,7 +1852,7 @@ lp_build_trunc(struct lp_build_context *bld,
|
||||
const struct lp_type type = bld->type;
|
||||
struct lp_type inttype;
|
||||
struct lp_build_context intbld;
|
||||
LLVMValueRef cmpval = lp_build_const_vec(bld->gallivm, type, 1<<24);
|
||||
LLVMValueRef cmpval = lp_build_const_vec(bld->gallivm, type, 2^24);
|
||||
LLVMValueRef trunc, res, anosign, mask;
|
||||
LLVMTypeRef int_vec_type = bld->int_vec_type;
|
||||
LLVMTypeRef vec_type = bld->vec_type;
|
||||
@@ -1905,7 +1907,7 @@ lp_build_round(struct lp_build_context *bld,
|
||||
const struct lp_type type = bld->type;
|
||||
struct lp_type inttype;
|
||||
struct lp_build_context intbld;
|
||||
LLVMValueRef cmpval = lp_build_const_vec(bld->gallivm, type, 1<<24);
|
||||
LLVMValueRef cmpval = lp_build_const_vec(bld->gallivm, type, 2^24);
|
||||
LLVMValueRef res, anosign, mask;
|
||||
LLVMTypeRef int_vec_type = bld->int_vec_type;
|
||||
LLVMTypeRef vec_type = bld->vec_type;
|
||||
@@ -1958,7 +1960,7 @@ lp_build_floor(struct lp_build_context *bld,
|
||||
const struct lp_type type = bld->type;
|
||||
struct lp_type inttype;
|
||||
struct lp_build_context intbld;
|
||||
LLVMValueRef cmpval = lp_build_const_vec(bld->gallivm, type, 1<<24);
|
||||
LLVMValueRef cmpval = lp_build_const_vec(bld->gallivm, type, 2^24);
|
||||
LLVMValueRef trunc, res, anosign, mask;
|
||||
LLVMTypeRef int_vec_type = bld->int_vec_type;
|
||||
LLVMTypeRef vec_type = bld->vec_type;
|
||||
@@ -2027,7 +2029,7 @@ lp_build_ceil(struct lp_build_context *bld,
|
||||
const struct lp_type type = bld->type;
|
||||
struct lp_type inttype;
|
||||
struct lp_build_context intbld;
|
||||
LLVMValueRef cmpval = lp_build_const_vec(bld->gallivm, type, 1<<24);
|
||||
LLVMValueRef cmpval = lp_build_const_vec(bld->gallivm, type, 2^24);
|
||||
LLVMValueRef trunc, res, anosign, mask, tmp;
|
||||
LLVMTypeRef int_vec_type = bld->int_vec_type;
|
||||
LLVMTypeRef vec_type = bld->vec_type;
|
||||
|
@@ -101,7 +101,7 @@ lp_build_half_to_float(struct gallivm_state *gallivm,
|
||||
LLVMTypeRef int_vec_type = lp_build_vec_type(gallivm, i32_type);
|
||||
LLVMValueRef h;
|
||||
|
||||
if (util_cpu_caps.has_f16c &&
|
||||
if (util_cpu_caps.has_f16c && HAVE_LLVM >= 0x0301 &&
|
||||
(src_length == 4 || src_length == 8)) {
|
||||
const char *intrinsic = NULL;
|
||||
if (src_length == 4) {
|
||||
@@ -143,7 +143,7 @@ lp_build_float_to_half(struct gallivm_state *gallivm,
|
||||
struct lp_type i16_type = lp_type_int_vec(16, 16 * length);
|
||||
LLVMValueRef result;
|
||||
|
||||
if (util_cpu_caps.has_f16c &&
|
||||
if (util_cpu_caps.has_f16c && HAVE_LLVM >= 0x0301 &&
|
||||
(length == 4 || length == 8)) {
|
||||
struct lp_type i168_type = lp_type_int_vec(16, 16 * 8);
|
||||
unsigned mode = 3; /* same as LP_BUILD_ROUND_TRUNCATE */
|
||||
@@ -792,23 +792,29 @@ lp_build_conv(struct gallivm_state *gallivm,
|
||||
unsigned dst_shift = lp_const_shift(dst_type);
|
||||
unsigned src_offset = lp_const_offset(src_type);
|
||||
unsigned dst_offset = lp_const_offset(dst_type);
|
||||
struct lp_build_context bld;
|
||||
lp_build_context_init(&bld, gallivm, tmp_type);
|
||||
|
||||
/* Compensate for different offsets */
|
||||
/* sscaled -> unorm and similar would cause negative shift count, skip */
|
||||
if (dst_offset > src_offset && src_type.width > dst_type.width && src_shift > 0) {
|
||||
if (dst_offset > src_offset && src_type.width > dst_type.width) {
|
||||
for (i = 0; i < num_tmps; ++i) {
|
||||
LLVMValueRef shifted;
|
||||
LLVMValueRef shift = lp_build_const_int_vec(gallivm, tmp_type, src_shift - 1);
|
||||
if(src_type.sign)
|
||||
shifted = LLVMBuildAShr(builder, tmp[i], shift, "");
|
||||
else
|
||||
shifted = LLVMBuildLShr(builder, tmp[i], shift, "");
|
||||
|
||||
shifted = lp_build_shr_imm(&bld, tmp[i], src_shift - 1);
|
||||
tmp[i] = LLVMBuildSub(builder, tmp[i], shifted, "");
|
||||
}
|
||||
}
|
||||
|
||||
if(src_shift > dst_shift) {
|
||||
LLVMValueRef shift = lp_build_const_int_vec(gallivm, tmp_type,
|
||||
src_shift - dst_shift);
|
||||
for(i = 0; i < num_tmps; ++i)
|
||||
tmp[i] = lp_build_shr_imm(&bld, tmp[i], src_shift - dst_shift);
|
||||
if(src_type.sign)
|
||||
tmp[i] = LLVMBuildAShr(builder, tmp[i], shift, "");
|
||||
else
|
||||
tmp[i] = LLVMBuildLShr(builder, tmp[i], shift, "");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -894,27 +900,14 @@ lp_build_conv(struct gallivm_state *gallivm,
|
||||
unsigned dst_shift = lp_const_shift(dst_type);
|
||||
unsigned src_offset = lp_const_offset(src_type);
|
||||
unsigned dst_offset = lp_const_offset(dst_type);
|
||||
struct lp_build_context bld;
|
||||
lp_build_context_init(&bld, gallivm, tmp_type);
|
||||
|
||||
if (src_shift < dst_shift) {
|
||||
LLVMValueRef pre_shift[LP_MAX_VECTOR_LENGTH];
|
||||
LLVMValueRef shift = lp_build_const_int_vec(gallivm, tmp_type, dst_shift - src_shift);
|
||||
|
||||
if (dst_shift - src_shift < dst_type.width) {
|
||||
for (i = 0; i < num_tmps; ++i) {
|
||||
pre_shift[i] = tmp[i];
|
||||
tmp[i] = lp_build_shl_imm(&bld, tmp[i], dst_shift - src_shift);
|
||||
}
|
||||
}
|
||||
else {
|
||||
/*
|
||||
* This happens for things like sscaled -> unorm conversions. Shift
|
||||
* counts equal to bit width cause undefined results, so hack around it.
|
||||
*/
|
||||
for (i = 0; i < num_tmps; ++i) {
|
||||
pre_shift[i] = tmp[i];
|
||||
tmp[i] = lp_build_zero(gallivm, dst_type);
|
||||
}
|
||||
for (i = 0; i < num_tmps; ++i) {
|
||||
pre_shift[i] = tmp[i];
|
||||
tmp[i] = LLVMBuildShl(builder, tmp[i], shift, "");
|
||||
}
|
||||
|
||||
/* Compensate for different offsets */
|
||||
|
@@ -34,30 +34,30 @@
|
||||
#include <llvm/Support/Format.h>
|
||||
#include <llvm/Support/MemoryObject.h>
|
||||
|
||||
#if HAVE_LLVM >= 0x0306
|
||||
#include <llvm/Target/TargetSubtargetInfo.h>
|
||||
#endif
|
||||
|
||||
#if HAVE_LLVM >= 0x0300
|
||||
#include <llvm/Support/TargetRegistry.h>
|
||||
#include <llvm/MC/MCSubtargetInfo.h>
|
||||
#else /* HAVE_LLVM < 0x0300 */
|
||||
#include <llvm/Target/TargetRegistry.h>
|
||||
#endif /* HAVE_LLVM < 0x0300 */
|
||||
|
||||
#if HAVE_LLVM >= 0x0209
|
||||
#include <llvm/Support/Host.h>
|
||||
#else /* HAVE_LLVM < 0x0209 */
|
||||
#include <llvm/System/Host.h>
|
||||
#endif /* HAVE_LLVM < 0x0209 */
|
||||
|
||||
#if HAVE_LLVM >= 0x0303
|
||||
#include <llvm/IR/Module.h>
|
||||
#else
|
||||
#include <llvm/Module.h>
|
||||
#endif
|
||||
|
||||
#if HAVE_LLVM >= 0x0207
|
||||
#include <llvm/MC/MCDisassembler.h>
|
||||
#include <llvm/MC/MCAsmInfo.h>
|
||||
#include <llvm/MC/MCInst.h>
|
||||
#include <llvm/MC/MCInstPrinter.h>
|
||||
#endif /* HAVE_LLVM >= 0x0207 */
|
||||
#if HAVE_LLVM >= 0x0301
|
||||
#include <llvm/MC/MCRegisterInfo.h>
|
||||
#endif /* HAVE_LLVM >= 0x0301 */
|
||||
|
||||
#if HAVE_LLVM >= 0x0305
|
||||
#define OwningPtr std::unique_ptr
|
||||
#elif HAVE_LLVM >= 0x0303
|
||||
#if HAVE_LLVM >= 0x0303
|
||||
#include <llvm/ADT/OwningPtr.h>
|
||||
#endif
|
||||
|
||||
@@ -104,8 +104,13 @@ public:
|
||||
|
||||
void write_impl(const char *Ptr, size_t Size);
|
||||
|
||||
#if HAVE_LLVM >= 0x207
|
||||
uint64_t current_pos() const { return pos; }
|
||||
size_t preferred_buffer_size() const { return 512; }
|
||||
#else
|
||||
uint64_t current_pos() { return pos; }
|
||||
size_t preferred_buffer_size() { return 512; }
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
@@ -123,13 +128,6 @@ raw_debug_ostream::write_impl(const char *Ptr, size_t Size)
|
||||
}
|
||||
|
||||
|
||||
extern "C" const char *
|
||||
lp_get_module_id(LLVMModuleRef module)
|
||||
{
|
||||
return llvm::unwrap(module)->getModuleIdentifier().c_str();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Same as LLVMDumpValue, but through our debugging channels.
|
||||
*/
|
||||
@@ -146,6 +144,7 @@ lp_debug_dump_value(LLVMValueRef value)
|
||||
}
|
||||
|
||||
|
||||
#if HAVE_LLVM >= 0x0207
|
||||
/*
|
||||
* MemoryObject wrapper around a buffer of memory, to be used by MC
|
||||
* disassembler.
|
||||
@@ -180,6 +179,7 @@ public:
|
||||
return 0;
|
||||
}
|
||||
};
|
||||
#endif /* HAVE_LLVM >= 0x0207 */
|
||||
|
||||
|
||||
/*
|
||||
@@ -192,6 +192,7 @@ public:
|
||||
static size_t
|
||||
disassemble(const void* func, llvm::raw_ostream & Out)
|
||||
{
|
||||
#if HAVE_LLVM >= 0x0207
|
||||
using namespace llvm;
|
||||
|
||||
const uint8_t *bytes = (const uint8_t *)func;
|
||||
@@ -207,62 +208,83 @@ disassemble(const void* func, llvm::raw_ostream & Out)
|
||||
* Initialize all used objects.
|
||||
*/
|
||||
|
||||
#if HAVE_LLVM >= 0x0301
|
||||
std::string Triple = sys::getDefaultTargetTriple();
|
||||
#else
|
||||
std::string Triple = sys::getHostTriple();
|
||||
#endif
|
||||
|
||||
std::string Error;
|
||||
const Target *T = TargetRegistry::lookupTarget(Triple, Error);
|
||||
|
||||
#if HAVE_LLVM >= 0x0304
|
||||
OwningPtr<const MCAsmInfo> AsmInfo(T->createMCAsmInfo(*T->createMCRegInfo(Triple), Triple));
|
||||
#else
|
||||
#elif HAVE_LLVM >= 0x0300
|
||||
OwningPtr<const MCAsmInfo> AsmInfo(T->createMCAsmInfo(Triple));
|
||||
#else
|
||||
OwningPtr<const MCAsmInfo> AsmInfo(T->createAsmInfo(Triple));
|
||||
#endif
|
||||
|
||||
if (!AsmInfo) {
|
||||
Out << "error: no assembly info for target " << Triple << "\n";
|
||||
Out.flush();
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if HAVE_LLVM >= 0x0300
|
||||
unsigned int AsmPrinterVariant = AsmInfo->getAssemblerDialect();
|
||||
#else
|
||||
int AsmPrinterVariant = AsmInfo->getAssemblerDialect();
|
||||
#endif
|
||||
|
||||
#if HAVE_LLVM >= 0x0301
|
||||
OwningPtr<const MCRegisterInfo> MRI(T->createMCRegInfo(Triple));
|
||||
if (!MRI) {
|
||||
Out << "error: no register info for target " << Triple.c_str() << "\n";
|
||||
Out.flush();
|
||||
return 0;
|
||||
}
|
||||
|
||||
OwningPtr<const MCInstrInfo> MII(T->createMCInstrInfo());
|
||||
if (!MII) {
|
||||
Out << "error: no instruction info for target " << Triple.c_str() << "\n";
|
||||
Out.flush();
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if HAVE_LLVM >= 0x0305
|
||||
OwningPtr<const MCSubtargetInfo> STI(T->createMCSubtargetInfo(Triple, sys::getHostCPUName(), ""));
|
||||
OwningPtr<MCContext> MCCtx(new MCContext(AsmInfo.get(), MRI.get(), 0));
|
||||
OwningPtr<const MCDisassembler> DisAsm(T->createMCDisassembler(*STI, *MCCtx));
|
||||
#else
|
||||
#elif HAVE_LLVM >= 0x0300
|
||||
OwningPtr<const MCSubtargetInfo> STI(T->createMCSubtargetInfo(Triple, sys::getHostCPUName(), ""));
|
||||
OwningPtr<const MCDisassembler> DisAsm(T->createMCDisassembler(*STI));
|
||||
#else
|
||||
OwningPtr<const MCDisassembler> DisAsm(T->createMCDisassembler());
|
||||
#endif
|
||||
if (!DisAsm) {
|
||||
Out << "error: no disassembler for target " << Triple << "\n";
|
||||
Out.flush();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
#if HAVE_LLVM >= 0x0301
|
||||
OwningPtr<MCInstPrinter> Printer(
|
||||
T->createMCInstPrinter(AsmPrinterVariant, *AsmInfo, *MII, *MRI, *STI));
|
||||
#elif HAVE_LLVM == 0x0300
|
||||
OwningPtr<MCInstPrinter> Printer(
|
||||
T->createMCInstPrinter(AsmPrinterVariant, *AsmInfo, *STI));
|
||||
#elif HAVE_LLVM >= 0x0208
|
||||
OwningPtr<MCInstPrinter> Printer(
|
||||
T->createMCInstPrinter(AsmPrinterVariant, *AsmInfo));
|
||||
#else
|
||||
OwningPtr<MCInstPrinter> Printer(
|
||||
T->createMCInstPrinter(AsmPrinterVariant, *AsmInfo, Out));
|
||||
#endif
|
||||
if (!Printer) {
|
||||
Out << "error: no instruction printer for target " << Triple.c_str() << "\n";
|
||||
Out.flush();
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if HAVE_LLVM >= 0x0301
|
||||
TargetOptions options;
|
||||
#if defined(DEBUG)
|
||||
options.JITEmitDebugInfo = true;
|
||||
@@ -274,13 +296,14 @@ disassemble(const void* func, llvm::raw_ostream & Out)
|
||||
options.NoFramePointerElim = true;
|
||||
#endif
|
||||
OwningPtr<TargetMachine> TM(T->createTargetMachine(Triple, sys::getHostCPUName(), "", options));
|
||||
|
||||
#if HAVE_LLVM >= 0x0306
|
||||
const TargetInstrInfo *TII = TM->getSubtargetImpl()->getInstrInfo();
|
||||
#elif HAVE_LLVM == 0x0300
|
||||
OwningPtr<TargetMachine> TM(T->createTargetMachine(Triple, sys::getHostCPUName(), ""));
|
||||
#else
|
||||
const TargetInstrInfo *TII = TM->getInstrInfo();
|
||||
OwningPtr<TargetMachine> TM(T->createTargetMachine(Triple, ""));
|
||||
#endif
|
||||
|
||||
const TargetInstrInfo *TII = TM->getInstrInfo();
|
||||
|
||||
/*
|
||||
* Wrap the data in a MemoryObject
|
||||
*/
|
||||
@@ -301,7 +324,11 @@ disassemble(const void* func, llvm::raw_ostream & Out)
|
||||
|
||||
if (!DisAsm->getInstruction(Inst, Size, memoryObject,
|
||||
pc,
|
||||
#if HAVE_LLVM >= 0x0300
|
||||
nulls(), nulls())) {
|
||||
#else
|
||||
nulls())) {
|
||||
#endif
|
||||
Out << "invalid";
|
||||
pc += 1;
|
||||
}
|
||||
@@ -323,7 +350,13 @@ disassemble(const void* func, llvm::raw_ostream & Out)
|
||||
/*
|
||||
* Print the instruction.
|
||||
*/
|
||||
Printer->printInst(&Inst, Out, "");
|
||||
#if HAVE_LLVM >= 0x0300
|
||||
Printer->printInst(&Inst, Out, "");
|
||||
#elif HAVE_LLVM >= 0x208
|
||||
Printer->printInst(&Inst, Out);
|
||||
#else
|
||||
Printer->printInst(&Inst);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Advance.
|
||||
@@ -331,7 +364,11 @@ disassemble(const void* func, llvm::raw_ostream & Out)
|
||||
|
||||
pc += Size;
|
||||
|
||||
#if HAVE_LLVM >= 0x0300
|
||||
const MCInstrDesc &TID = TII->get(Inst.getOpcode());
|
||||
#else
|
||||
const TargetInstrDesc &TID = TII->get(Inst.getOpcode());
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Keep track of forward jumps to a nearby address.
|
||||
@@ -408,6 +445,10 @@ disassemble(const void* func, llvm::raw_ostream & Out)
|
||||
Out.flush();
|
||||
|
||||
return pc;
|
||||
#else /* HAVE_LLVM < 0x0207 */
|
||||
(void)func;
|
||||
return 0;
|
||||
#endif /* HAVE_LLVM < 0x0207 */
|
||||
}
|
||||
|
||||
|
||||
|
@@ -76,10 +76,6 @@ lp_build_name(LLVMValueRef val, const char *format, ...)
|
||||
}
|
||||
|
||||
|
||||
const char *
|
||||
lp_get_module_id(LLVMModuleRef module);
|
||||
|
||||
|
||||
void
|
||||
lp_debug_dump_value(LLVMValueRef value);
|
||||
|
||||
|
@@ -32,7 +32,6 @@
|
||||
#include "util/u_debug.h"
|
||||
#include "util/u_memory.h"
|
||||
#include "util/u_simple_list.h"
|
||||
#include "os/os_time.h"
|
||||
#include "lp_bld.h"
|
||||
#include "lp_bld_debug.h"
|
||||
#include "lp_bld_misc.h"
|
||||
@@ -69,16 +68,6 @@
|
||||
void LLVMLinkInMCJIT();
|
||||
#endif
|
||||
|
||||
/*
|
||||
* LLVM has several global caches which pointing/derived from objects
|
||||
* owned by the context, so if we freeing contexts causes
|
||||
* memory leaks and false cache hits when these objects are destroyed.
|
||||
*
|
||||
* TODO: For thread safety on multi-threaded OpenGL we should use one LLVM
|
||||
* context per thread, and put them in a pool when threads are destroyed.
|
||||
*/
|
||||
#define USE_GLOBAL_CONTEXT 1
|
||||
|
||||
|
||||
#ifdef DEBUG
|
||||
unsigned gallivm_debug = 0;
|
||||
@@ -115,13 +104,28 @@ unsigned lp_native_vector_width;
|
||||
* See also CodeGenOpt::Level in llvm/Target/TargetMachine.h
|
||||
*/
|
||||
enum LLVM_CodeGenOpt_Level {
|
||||
#if HAVE_LLVM >= 0x207
|
||||
None, // -O0
|
||||
Less, // -O1
|
||||
Default, // -O2, -Os
|
||||
Aggressive // -O3
|
||||
#else
|
||||
Default,
|
||||
None,
|
||||
Aggressive
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
#if HAVE_LLVM <= 0x0206
|
||||
/**
|
||||
* LLVM 2.6 permits only one ExecutionEngine to be created. So use the
|
||||
* same gallivm state everywhere.
|
||||
*/
|
||||
static struct gallivm_state *GlobalGallivm = NULL;
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
* Create the LLVM (optimization) pass manager and install
|
||||
* relevant optimization passes.
|
||||
@@ -133,7 +137,7 @@ create_pass_manager(struct gallivm_state *gallivm)
|
||||
assert(!gallivm->passmgr);
|
||||
assert(gallivm->target);
|
||||
|
||||
gallivm->passmgr = LLVMCreateFunctionPassManagerForModule(gallivm->module);
|
||||
gallivm->passmgr = LLVMCreateFunctionPassManager(gallivm->provider);
|
||||
if (!gallivm->passmgr)
|
||||
return FALSE;
|
||||
|
||||
@@ -148,9 +152,27 @@ create_pass_manager(struct gallivm_state *gallivm)
|
||||
LLVMAddLICMPass(gallivm->passmgr);
|
||||
LLVMAddCFGSimplificationPass(gallivm->passmgr);
|
||||
LLVMAddReassociatePass(gallivm->passmgr);
|
||||
LLVMAddPromoteMemoryToRegisterPass(gallivm->passmgr);
|
||||
LLVMAddConstantPropagationPass(gallivm->passmgr);
|
||||
LLVMAddInstructionCombiningPass(gallivm->passmgr);
|
||||
|
||||
if (HAVE_LLVM >= 0x207 && sizeof(void*) == 4) {
|
||||
/* For LLVM >= 2.7 and 32-bit build, use this order of passes to
|
||||
* avoid generating bad code.
|
||||
* Test with piglit glsl-vs-sqrt-zero test.
|
||||
*/
|
||||
LLVMAddConstantPropagationPass(gallivm->passmgr);
|
||||
LLVMAddPromoteMemoryToRegisterPass(gallivm->passmgr);
|
||||
}
|
||||
else {
|
||||
LLVMAddPromoteMemoryToRegisterPass(gallivm->passmgr);
|
||||
LLVMAddConstantPropagationPass(gallivm->passmgr);
|
||||
}
|
||||
|
||||
if (util_cpu_caps.has_sse4_1) {
|
||||
/* FIXME: There is a bug in this pass, whereby the combination
|
||||
* of fptosi and sitofp (necessary for trunc/floor/ceil/round
|
||||
* implementation) somehow becomes invalid code.
|
||||
*/
|
||||
LLVMAddInstructionCombiningPass(gallivm->passmgr);
|
||||
}
|
||||
LLVMAddGVNPass(gallivm->passmgr);
|
||||
}
|
||||
else {
|
||||
@@ -165,20 +187,35 @@ create_pass_manager(struct gallivm_state *gallivm)
|
||||
|
||||
|
||||
/**
|
||||
* Free gallivm object's LLVM allocations, but not any generated code
|
||||
* nor the gallivm object itself.
|
||||
* Free gallivm object's LLVM allocations, but not the gallivm object itself.
|
||||
*/
|
||||
void
|
||||
gallivm_free_ir(struct gallivm_state *gallivm)
|
||||
static void
|
||||
free_gallivm_state(struct gallivm_state *gallivm)
|
||||
{
|
||||
#if HAVE_LLVM >= 0x207 /* XXX or 0x208? */
|
||||
/* This leads to crashes w/ some versions of LLVM */
|
||||
LLVMModuleRef mod;
|
||||
char *error;
|
||||
|
||||
if (gallivm->engine && gallivm->provider)
|
||||
LLVMRemoveModuleProvider(gallivm->engine, gallivm->provider,
|
||||
&mod, &error);
|
||||
#endif
|
||||
|
||||
if (gallivm->passmgr) {
|
||||
LLVMDisposePassManager(gallivm->passmgr);
|
||||
}
|
||||
|
||||
if (gallivm->engine) {
|
||||
#if 0
|
||||
/* XXX this seems to crash with all versions of LLVM */
|
||||
if (gallivm->provider)
|
||||
LLVMDisposeModuleProvider(gallivm->provider);
|
||||
#endif
|
||||
|
||||
if (HAVE_LLVM >= 0x207 && gallivm->engine) {
|
||||
/* This will already destroy any associated module */
|
||||
LLVMDisposeExecutionEngine(gallivm->engine);
|
||||
} else if (gallivm->module) {
|
||||
} else {
|
||||
LLVMDisposeModule(gallivm->module);
|
||||
}
|
||||
|
||||
@@ -190,38 +227,31 @@ gallivm_free_ir(struct gallivm_state *gallivm)
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Never free the LLVM context.
|
||||
*/
|
||||
#if 0
|
||||
if (gallivm->context)
|
||||
LLVMContextDispose(gallivm->context);
|
||||
#endif
|
||||
|
||||
if (gallivm->builder)
|
||||
LLVMDisposeBuilder(gallivm->builder);
|
||||
|
||||
if (!USE_GLOBAL_CONTEXT && gallivm->context)
|
||||
LLVMContextDispose(gallivm->context);
|
||||
|
||||
gallivm->engine = NULL;
|
||||
gallivm->target = NULL;
|
||||
gallivm->module = NULL;
|
||||
gallivm->provider = NULL;
|
||||
gallivm->passmgr = NULL;
|
||||
gallivm->context = NULL;
|
||||
gallivm->builder = NULL;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Free LLVM-generated code. Should be done AFTER gallivm_free_ir().
|
||||
*/
|
||||
static void
|
||||
gallivm_free_code(struct gallivm_state *gallivm)
|
||||
{
|
||||
assert(!gallivm->module);
|
||||
assert(!gallivm->engine);
|
||||
lp_free_generated_code(gallivm->code);
|
||||
gallivm->code = NULL;
|
||||
}
|
||||
|
||||
|
||||
static boolean
|
||||
init_gallivm_engine(struct gallivm_state *gallivm)
|
||||
{
|
||||
if (1) {
|
||||
/* We can only create one LLVMExecutionEngine (w/ LLVM 2.6 anyway) */
|
||||
enum LLVM_CodeGenOpt_Level optlevel;
|
||||
char *error = NULL;
|
||||
int ret;
|
||||
@@ -233,12 +263,16 @@ init_gallivm_engine(struct gallivm_state *gallivm)
|
||||
optlevel = Default;
|
||||
}
|
||||
|
||||
#if HAVE_LLVM >= 0x0301
|
||||
ret = lp_build_create_jit_compiler_for_module(&gallivm->engine,
|
||||
&gallivm->code,
|
||||
gallivm->module,
|
||||
(unsigned) optlevel,
|
||||
USE_MCJIT,
|
||||
&error);
|
||||
#else
|
||||
ret = LLVMCreateJITCompiler(&gallivm->engine, gallivm->provider,
|
||||
(unsigned) optlevel, &error);
|
||||
#endif
|
||||
if (ret) {
|
||||
_debug_printf("%s\n", error);
|
||||
LLVMDisposeMessage(error);
|
||||
@@ -246,6 +280,8 @@ init_gallivm_engine(struct gallivm_state *gallivm)
|
||||
}
|
||||
}
|
||||
|
||||
LLVMAddModuleProvider(gallivm->engine, gallivm->provider);//new
|
||||
|
||||
#if !USE_MCJIT
|
||||
gallivm->target = LLVMGetExecutionEngineTargetData(gallivm->engine);
|
||||
if (!gallivm->target)
|
||||
@@ -280,31 +316,49 @@ fail:
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Singleton
|
||||
*
|
||||
* We must never free LLVM contexts, because LLVM has several global caches
|
||||
* which pointing/derived from objects owned by the context, causing false
|
||||
* memory leaks and false cache hits when these objects are destroyed.
|
||||
*
|
||||
* TODO: For thread safety on multi-threaded OpenGL we should use one LLVM
|
||||
* context per thread, and put them in a pool when threads are destroyed.
|
||||
*/
|
||||
static LLVMContextRef gallivm_context = NULL;
|
||||
|
||||
|
||||
/**
|
||||
* Allocate gallivm LLVM objects.
|
||||
* \return TRUE for success, FALSE for failure
|
||||
*/
|
||||
static boolean
|
||||
init_gallivm_state(struct gallivm_state *gallivm, const char *name)
|
||||
init_gallivm_state(struct gallivm_state *gallivm)
|
||||
{
|
||||
assert(!gallivm->context);
|
||||
assert(!gallivm->module);
|
||||
assert(!gallivm->provider);
|
||||
|
||||
lp_build_init();
|
||||
|
||||
if (USE_GLOBAL_CONTEXT) {
|
||||
gallivm->context = LLVMGetGlobalContext();
|
||||
} else {
|
||||
gallivm->context = LLVMContextCreate();
|
||||
if (!gallivm_context) {
|
||||
gallivm_context = LLVMContextCreate();
|
||||
}
|
||||
gallivm->context = gallivm_context;
|
||||
if (!gallivm->context)
|
||||
goto fail;
|
||||
|
||||
gallivm->module = LLVMModuleCreateWithNameInContext(name,
|
||||
gallivm->module = LLVMModuleCreateWithNameInContext("gallivm",
|
||||
gallivm->context);
|
||||
if (!gallivm->module)
|
||||
goto fail;
|
||||
|
||||
gallivm->provider =
|
||||
LLVMCreateModuleProviderForExistingModule(gallivm->module);
|
||||
if (!gallivm->provider)
|
||||
goto fail;
|
||||
|
||||
gallivm->builder = LLVMCreateBuilderInContext(gallivm->context);
|
||||
if (!gallivm->builder)
|
||||
goto fail;
|
||||
@@ -360,8 +414,7 @@ init_gallivm_state(struct gallivm_state *gallivm, const char *name)
|
||||
return TRUE;
|
||||
|
||||
fail:
|
||||
gallivm_free_ir(gallivm);
|
||||
gallivm_free_code(gallivm);
|
||||
free_gallivm_state(gallivm);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -467,20 +520,31 @@ lp_build_init(void)
|
||||
|
||||
/**
|
||||
* Create a new gallivm_state object.
|
||||
* Note that we return a singleton.
|
||||
*/
|
||||
struct gallivm_state *
|
||||
gallivm_create(const char *name)
|
||||
gallivm_create(void)
|
||||
{
|
||||
struct gallivm_state *gallivm;
|
||||
|
||||
#if HAVE_LLVM <= 0x206
|
||||
if (GlobalGallivm) {
|
||||
return GlobalGallivm;
|
||||
}
|
||||
#endif
|
||||
|
||||
gallivm = CALLOC_STRUCT(gallivm_state);
|
||||
if (gallivm) {
|
||||
if (!init_gallivm_state(gallivm, name)) {
|
||||
if (!init_gallivm_state(gallivm)) {
|
||||
FREE(gallivm);
|
||||
gallivm = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
#if HAVE_LLVM <= 0x206
|
||||
GlobalGallivm = gallivm;
|
||||
#endif
|
||||
|
||||
return gallivm;
|
||||
}
|
||||
|
||||
@@ -491,15 +555,44 @@ gallivm_create(const char *name)
|
||||
void
|
||||
gallivm_destroy(struct gallivm_state *gallivm)
|
||||
{
|
||||
gallivm_free_ir(gallivm);
|
||||
gallivm_free_code(gallivm);
|
||||
#if HAVE_LLVM <= 0x0206
|
||||
/* No-op: don't destroy the singleton */
|
||||
(void) gallivm;
|
||||
#else
|
||||
free_gallivm_state(gallivm);
|
||||
FREE(gallivm);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Validate and optimze a function.
|
||||
*/
|
||||
static void
|
||||
gallivm_optimize_function(struct gallivm_state *gallivm,
|
||||
LLVMValueRef func)
|
||||
{
|
||||
if (0) {
|
||||
debug_printf("optimizing %s...\n", LLVMGetValueName(func));
|
||||
}
|
||||
|
||||
assert(gallivm->passmgr);
|
||||
|
||||
/* Apply optimizations to LLVM IR */
|
||||
LLVMRunFunctionPassManager(gallivm->passmgr, func);
|
||||
|
||||
if (0) {
|
||||
if (gallivm_debug & GALLIVM_DEBUG_IR) {
|
||||
/* Print the LLVM IR to stderr */
|
||||
lp_debug_dump_value(func);
|
||||
debug_printf("\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Validate a function.
|
||||
* Verification is only done with debug builds.
|
||||
*/
|
||||
void
|
||||
gallivm_verify_function(struct gallivm_state *gallivm,
|
||||
@@ -514,6 +607,8 @@ gallivm_verify_function(struct gallivm_state *gallivm,
|
||||
}
|
||||
#endif
|
||||
|
||||
gallivm_optimize_function(gallivm, func);
|
||||
|
||||
if (gallivm_debug & GALLIVM_DEBUG_IR) {
|
||||
/* Print the LLVM IR to stderr */
|
||||
lp_debug_dump_value(func);
|
||||
@@ -522,44 +617,12 @@ gallivm_verify_function(struct gallivm_state *gallivm,
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Compile a module.
|
||||
* This does IR optimization on all functions in the module.
|
||||
*/
|
||||
void
|
||||
gallivm_compile_module(struct gallivm_state *gallivm)
|
||||
{
|
||||
LLVMValueRef func;
|
||||
int64_t time_begin;
|
||||
|
||||
#if HAVE_LLVM > 0x206
|
||||
assert(!gallivm->compiled);
|
||||
|
||||
if (gallivm->builder) {
|
||||
LLVMDisposeBuilder(gallivm->builder);
|
||||
gallivm->builder = NULL;
|
||||
}
|
||||
|
||||
if (gallivm_debug & GALLIVM_DEBUG_PERF)
|
||||
time_begin = os_time_get();
|
||||
|
||||
/* Run optimization passes */
|
||||
LLVMInitializeFunctionPassManager(gallivm->passmgr);
|
||||
func = LLVMGetFirstFunction(gallivm->module);
|
||||
while (func) {
|
||||
if (0) {
|
||||
debug_printf("optimizing func %s...\n", LLVMGetValueName(func));
|
||||
}
|
||||
LLVMRunFunctionPassManager(gallivm->passmgr, func);
|
||||
func = LLVMGetNextFunction(func);
|
||||
}
|
||||
LLVMFinalizeFunctionPassManager(gallivm->passmgr);
|
||||
|
||||
if (gallivm_debug & GALLIVM_DEBUG_PERF) {
|
||||
int64_t time_end = os_time_get();
|
||||
int time_msec = (int)(time_end - time_begin) / 1000;
|
||||
debug_printf("optimizing module %s took %d msec\n",
|
||||
lp_get_module_id(gallivm->module), time_msec);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Dump byte code to a file */
|
||||
if (0) {
|
||||
@@ -603,5 +666,26 @@ gallivm_jit_function(struct gallivm_state *gallivm,
|
||||
lp_profile(func, code);
|
||||
#endif
|
||||
|
||||
/* Free the function body to save memory */
|
||||
lp_func_delete_body(func);
|
||||
|
||||
return jit_func;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Free the function (and its machine code).
|
||||
*/
|
||||
void
|
||||
gallivm_free_function(struct gallivm_state *gallivm,
|
||||
LLVMValueRef func,
|
||||
const void *code)
|
||||
{
|
||||
#if !USE_MCJIT
|
||||
if (code) {
|
||||
LLVMFreeMachineCodeForFunction(gallivm->engine, func);
|
||||
}
|
||||
|
||||
LLVMDeleteFunction(func);
|
||||
#endif
|
||||
}
|
||||
|
@@ -40,11 +40,11 @@ struct gallivm_state
|
||||
{
|
||||
LLVMModuleRef module;
|
||||
LLVMExecutionEngineRef engine;
|
||||
LLVMModuleProviderRef provider;
|
||||
LLVMTargetDataRef target;
|
||||
LLVMPassManagerRef passmgr;
|
||||
LLVMContextRef context;
|
||||
LLVMBuilderRef builder;
|
||||
struct lp_generated_code *code;
|
||||
unsigned compiled;
|
||||
};
|
||||
|
||||
@@ -54,13 +54,11 @@ lp_build_init(void);
|
||||
|
||||
|
||||
struct gallivm_state *
|
||||
gallivm_create(const char *name);
|
||||
gallivm_create(void);
|
||||
|
||||
void
|
||||
gallivm_destroy(struct gallivm_state *gallivm);
|
||||
|
||||
void
|
||||
gallivm_free_ir(struct gallivm_state *gallivm);
|
||||
|
||||
void
|
||||
gallivm_verify_function(struct gallivm_state *gallivm,
|
||||
@@ -73,6 +71,11 @@ func_pointer
|
||||
gallivm_jit_function(struct gallivm_state *gallivm,
|
||||
LLVMValueRef func);
|
||||
|
||||
void
|
||||
gallivm_free_function(struct gallivm_state *gallivm,
|
||||
LLVMValueRef func,
|
||||
const void * code);
|
||||
|
||||
void
|
||||
lp_set_load_alignment(LLVMValueRef Inst,
|
||||
unsigned Align);
|
||||
|
@@ -97,12 +97,14 @@ gallivm_get_shader_param(enum pipe_shader_cap param)
|
||||
return LP_MAX_TGSI_NESTING;
|
||||
case PIPE_SHADER_CAP_MAX_INPUTS:
|
||||
return PIPE_MAX_SHADER_INPUTS;
|
||||
case PIPE_SHADER_CAP_MAX_CONST_BUFFER_SIZE:
|
||||
return sizeof(float[4]) * 4096;
|
||||
case PIPE_SHADER_CAP_MAX_CONSTS:
|
||||
return 16 * 2024;
|
||||
case PIPE_SHADER_CAP_MAX_CONST_BUFFERS:
|
||||
return PIPE_MAX_CONSTANT_BUFFERS;
|
||||
case PIPE_SHADER_CAP_MAX_TEMPS:
|
||||
return LP_MAX_TGSI_TEMPS;
|
||||
case PIPE_SHADER_CAP_MAX_ADDRS:
|
||||
return LP_MAX_TGSI_ADDRS;
|
||||
case PIPE_SHADER_CAP_MAX_PREDS:
|
||||
return LP_MAX_TGSI_PREDS;
|
||||
case PIPE_SHADER_CAP_TGSI_CONT_SUPPORTED:
|
||||
@@ -120,17 +122,11 @@ gallivm_get_shader_param(enum pipe_shader_cap param)
|
||||
return PIPE_MAX_SAMPLERS;
|
||||
case PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS:
|
||||
return PIPE_MAX_SHADER_SAMPLER_VIEWS;
|
||||
case PIPE_SHADER_CAP_PREFERRED_IR:
|
||||
return PIPE_SHADER_IR_TGSI;
|
||||
case PIPE_SHADER_CAP_TGSI_SQRT_SUPPORTED:
|
||||
return 1;
|
||||
case PIPE_SHADER_CAP_DOUBLES:
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
/* if we get here, we missed a shader cap above (and should have seen
|
||||
* a compiler warning.)
|
||||
*/
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
@@ -123,8 +123,35 @@ lp_build_compare_ext(struct gallivm_state *gallivm,
|
||||
return lp_build_undef(gallivm, type);
|
||||
}
|
||||
|
||||
#if HAVE_LLVM >= 0x0207
|
||||
cond = LLVMBuildFCmp(builder, op, a, b, "");
|
||||
res = LLVMBuildSExt(builder, cond, int_vec_type, "");
|
||||
#else
|
||||
if (type.length == 1) {
|
||||
cond = LLVMBuildFCmp(builder, op, a, b, "");
|
||||
res = LLVMBuildSExt(builder, cond, int_vec_type, "");
|
||||
}
|
||||
else {
|
||||
unsigned i;
|
||||
|
||||
res = LLVMGetUndef(int_vec_type);
|
||||
|
||||
debug_printf("%s: warning: using slow element-wise float"
|
||||
" vector comparison\n", __FUNCTION__);
|
||||
for (i = 0; i < type.length; ++i) {
|
||||
LLVMValueRef index = lp_build_const_int32(gallivm, i);
|
||||
cond = LLVMBuildFCmp(builder, op,
|
||||
LLVMBuildExtractElement(builder, a, index, ""),
|
||||
LLVMBuildExtractElement(builder, b, index, ""),
|
||||
"");
|
||||
cond = LLVMBuildSelect(builder, cond,
|
||||
LLVMConstExtractElement(ones, index),
|
||||
LLVMConstExtractElement(zeros, index),
|
||||
"");
|
||||
res = LLVMBuildInsertElement(builder, res, cond, index, "");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
LLVMIntPredicate op;
|
||||
@@ -152,8 +179,38 @@ lp_build_compare_ext(struct gallivm_state *gallivm,
|
||||
return lp_build_undef(gallivm, type);
|
||||
}
|
||||
|
||||
#if HAVE_LLVM >= 0x0207
|
||||
cond = LLVMBuildICmp(builder, op, a, b, "");
|
||||
res = LLVMBuildSExt(builder, cond, int_vec_type, "");
|
||||
#else
|
||||
if (type.length == 1) {
|
||||
cond = LLVMBuildICmp(builder, op, a, b, "");
|
||||
res = LLVMBuildSExt(builder, cond, int_vec_type, "");
|
||||
}
|
||||
else {
|
||||
unsigned i;
|
||||
|
||||
res = LLVMGetUndef(int_vec_type);
|
||||
|
||||
if (gallivm_debug & GALLIVM_DEBUG_PERF) {
|
||||
debug_printf("%s: using slow element-wise int"
|
||||
" vector comparison\n", __FUNCTION__);
|
||||
}
|
||||
|
||||
for(i = 0; i < type.length; ++i) {
|
||||
LLVMValueRef index = lp_build_const_int32(gallivm, i);
|
||||
cond = LLVMBuildICmp(builder, op,
|
||||
LLVMBuildExtractElement(builder, a, index, ""),
|
||||
LLVMBuildExtractElement(builder, b, index, ""),
|
||||
"");
|
||||
cond = LLVMBuildSelect(builder, cond,
|
||||
LLVMConstExtractElement(ones, index),
|
||||
LLVMConstExtractElement(zeros, index),
|
||||
"");
|
||||
res = LLVMBuildInsertElement(builder, res, cond, index, "");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
return res;
|
||||
@@ -203,6 +260,138 @@ lp_build_compare(struct gallivm_state *gallivm,
|
||||
}
|
||||
#endif
|
||||
|
||||
#if HAVE_LLVM < 0x0207
|
||||
#if defined(PIPE_ARCH_X86) || defined(PIPE_ARCH_X86_64)
|
||||
if(type.width * type.length == 128) {
|
||||
LLVMBuilderRef builder = gallivm->builder;
|
||||
LLVMValueRef cond;
|
||||
LLVMValueRef res;
|
||||
if(type.floating && util_cpu_caps.has_sse) {
|
||||
/* float[4] comparison */
|
||||
LLVMTypeRef vec_type = lp_build_vec_type(gallivm, type);
|
||||
LLVMValueRef args[3];
|
||||
unsigned cc;
|
||||
boolean swap;
|
||||
|
||||
swap = FALSE;
|
||||
switch(func) {
|
||||
case PIPE_FUNC_EQUAL:
|
||||
cc = 0;
|
||||
break;
|
||||
case PIPE_FUNC_NOTEQUAL:
|
||||
cc = 4;
|
||||
break;
|
||||
case PIPE_FUNC_LESS:
|
||||
cc = 1;
|
||||
break;
|
||||
case PIPE_FUNC_LEQUAL:
|
||||
cc = 2;
|
||||
break;
|
||||
case PIPE_FUNC_GREATER:
|
||||
cc = 1;
|
||||
swap = TRUE;
|
||||
break;
|
||||
case PIPE_FUNC_GEQUAL:
|
||||
cc = 2;
|
||||
swap = TRUE;
|
||||
break;
|
||||
default:
|
||||
assert(0);
|
||||
return lp_build_undef(gallivm, type);
|
||||
}
|
||||
|
||||
if(swap) {
|
||||
args[0] = b;
|
||||
args[1] = a;
|
||||
}
|
||||
else {
|
||||
args[0] = a;
|
||||
args[1] = b;
|
||||
}
|
||||
|
||||
args[2] = LLVMConstInt(LLVMInt8TypeInContext(gallivm->context), cc, 0);
|
||||
res = lp_build_intrinsic(builder,
|
||||
"llvm.x86.sse.cmp.ps",
|
||||
vec_type,
|
||||
args, 3);
|
||||
res = LLVMBuildBitCast(builder, res, int_vec_type, "");
|
||||
return res;
|
||||
}
|
||||
else if(util_cpu_caps.has_sse2) {
|
||||
/* int[4] comparison */
|
||||
static const struct {
|
||||
unsigned swap:1;
|
||||
unsigned eq:1;
|
||||
unsigned gt:1;
|
||||
unsigned not:1;
|
||||
} table[] = {
|
||||
{0, 0, 0, 1}, /* PIPE_FUNC_NEVER */
|
||||
{1, 0, 1, 0}, /* PIPE_FUNC_LESS */
|
||||
{0, 1, 0, 0}, /* PIPE_FUNC_EQUAL */
|
||||
{0, 0, 1, 1}, /* PIPE_FUNC_LEQUAL */
|
||||
{0, 0, 1, 0}, /* PIPE_FUNC_GREATER */
|
||||
{0, 1, 0, 1}, /* PIPE_FUNC_NOTEQUAL */
|
||||
{1, 0, 1, 1}, /* PIPE_FUNC_GEQUAL */
|
||||
{0, 0, 0, 0} /* PIPE_FUNC_ALWAYS */
|
||||
};
|
||||
const char *pcmpeq;
|
||||
const char *pcmpgt;
|
||||
LLVMValueRef args[2];
|
||||
LLVMValueRef res;
|
||||
LLVMTypeRef vec_type = lp_build_vec_type(gallivm, type);
|
||||
|
||||
switch (type.width) {
|
||||
case 8:
|
||||
pcmpeq = "llvm.x86.sse2.pcmpeq.b";
|
||||
pcmpgt = "llvm.x86.sse2.pcmpgt.b";
|
||||
break;
|
||||
case 16:
|
||||
pcmpeq = "llvm.x86.sse2.pcmpeq.w";
|
||||
pcmpgt = "llvm.x86.sse2.pcmpgt.w";
|
||||
break;
|
||||
case 32:
|
||||
pcmpeq = "llvm.x86.sse2.pcmpeq.d";
|
||||
pcmpgt = "llvm.x86.sse2.pcmpgt.d";
|
||||
break;
|
||||
default:
|
||||
assert(0);
|
||||
return lp_build_undef(gallivm, type);
|
||||
}
|
||||
|
||||
/* There are no unsigned comparison instructions. So flip the sign bit
|
||||
* so that the results match.
|
||||
*/
|
||||
if (table[func].gt && !type.sign) {
|
||||
LLVMValueRef msb = lp_build_const_int_vec(gallivm, type, (unsigned long long)1 << (type.width - 1));
|
||||
a = LLVMBuildXor(builder, a, msb, "");
|
||||
b = LLVMBuildXor(builder, b, msb, "");
|
||||
}
|
||||
|
||||
if(table[func].swap) {
|
||||
args[0] = b;
|
||||
args[1] = a;
|
||||
}
|
||||
else {
|
||||
args[0] = a;
|
||||
args[1] = b;
|
||||
}
|
||||
|
||||
if(table[func].eq)
|
||||
res = lp_build_intrinsic(builder, pcmpeq, vec_type, args, 2);
|
||||
else if (table[func].gt)
|
||||
res = lp_build_intrinsic(builder, pcmpgt, vec_type, args, 2);
|
||||
else
|
||||
res = LLVMConstNull(vec_type);
|
||||
|
||||
if(table[func].not)
|
||||
res = LLVMBuildNot(builder, res, "");
|
||||
|
||||
return res;
|
||||
}
|
||||
} /* if (type.width * type.length == 128) */
|
||||
#endif
|
||||
#endif /* HAVE_LLVM < 0x0207 */
|
||||
|
||||
return lp_build_compare_ext(gallivm, type, func, a, b, FALSE);
|
||||
}
|
||||
|
||||
|
@@ -54,13 +54,18 @@
|
||||
#include <llvm-c/ExecutionEngine.h>
|
||||
#include <llvm/Target/TargetOptions.h>
|
||||
#include <llvm/ExecutionEngine/ExecutionEngine.h>
|
||||
#if HAVE_LLVM >= 0x0301
|
||||
#include <llvm/ADT/Triple.h>
|
||||
#include <llvm/ExecutionEngine/JITMemoryManager.h>
|
||||
#endif
|
||||
#include <llvm/Support/CommandLine.h>
|
||||
#include <llvm/Support/Host.h>
|
||||
#include <llvm/Support/PrettyStackTrace.h>
|
||||
|
||||
#if HAVE_LLVM >= 0x0300
|
||||
#include <llvm/Support/TargetSelect.h>
|
||||
#else /* HAVE_LLVM < 0x0300 */
|
||||
#include <llvm/Target/TargetSelect.h>
|
||||
#endif /* HAVE_LLVM < 0x0300 */
|
||||
|
||||
#if HAVE_LLVM >= 0x0303
|
||||
#include <llvm/IR/IRBuilder.h>
|
||||
@@ -99,6 +104,76 @@ static LLVMEnsureMultithreaded lLVMEnsureMultithreaded;
|
||||
extern "C" void
|
||||
lp_set_target_options(void)
|
||||
{
|
||||
#if HAVE_LLVM <= 0x0300
|
||||
#if defined(DEBUG)
|
||||
#if HAVE_LLVM >= 0x0207
|
||||
llvm::JITEmitDebugInfo = true;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* LLVM revision 123367 switched the default stack alignment to 16 bytes on
|
||||
* Linux (and several other Unices in later revisions), to match recent gcc
|
||||
* versions.
|
||||
*
|
||||
* However our drivers can be loaded by old binary applications, still
|
||||
* maintaining a 4 bytes stack alignment. Therefore we must tell LLVM here
|
||||
* to only assume a 4 bytes alignment for backwards compatibility.
|
||||
*/
|
||||
#if defined(PIPE_ARCH_X86)
|
||||
#if HAVE_LLVM == 0x0300
|
||||
llvm::StackAlignmentOverride = 4;
|
||||
#else
|
||||
llvm::StackAlignment = 4;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(DEBUG) || defined(PROFILE)
|
||||
llvm::NoFramePointerElim = true;
|
||||
#if HAVE_LLVM >= 0x0208
|
||||
llvm::NoFramePointerElimNonLeaf = true;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
llvm::NoExcessFPPrecision = false;
|
||||
|
||||
/* XXX: Investigate this */
|
||||
#if 0
|
||||
llvm::UnsafeFPMath = true;
|
||||
#endif
|
||||
#endif /* HAVE_LLVM <= 0x0300 */
|
||||
|
||||
#if HAVE_LLVM < 0x0209
|
||||
/*
|
||||
* LLVM will generate MMX instructions for vectors <= 64 bits, leading to
|
||||
* innefficient code, and in 32bit systems, to the corruption of the FPU
|
||||
* stack given that it expects the user to generate the EMMS instructions.
|
||||
*
|
||||
* See also:
|
||||
* - http://llvm.org/bugs/show_bug.cgi?id=3287
|
||||
* - http://l4.me.uk/post/2009/06/07/llvm-wrinkle-3-configuration-what-configuration/
|
||||
*
|
||||
* The -disable-mmx global option can be specified only once since we
|
||||
* dynamically link against LLVM it will reside in a separate shared object,
|
||||
* which may or not be delete when this shared object is, so we use the
|
||||
* llvm::DisablePrettyStackTrace variable (which we set below and should
|
||||
* reside in the same shared library) to determine whether the -disable-mmx
|
||||
* option has been set or not.
|
||||
*
|
||||
* Thankfully this ugly hack is not necessary on LLVM 2.9 onwards.
|
||||
*/
|
||||
if (!llvm::DisablePrettyStackTrace) {
|
||||
static boolean first = TRUE;
|
||||
static const char* options[] = {
|
||||
"prog",
|
||||
"-disable-mmx"
|
||||
};
|
||||
assert(first);
|
||||
llvm::cl::ParseCommandLineOptions(2, const_cast<char**>(options));
|
||||
first = FALSE;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if HAVE_LLVM < 0x0304
|
||||
/*
|
||||
* By default LLVM adds a signal handler to output a pretty stack trace.
|
||||
@@ -112,9 +187,33 @@ lp_set_target_options(void)
|
||||
// usable by the JIT.
|
||||
llvm::InitializeNativeTarget();
|
||||
|
||||
#if HAVE_LLVM >= 0x0208
|
||||
llvm::InitializeNativeTargetAsmPrinter();
|
||||
#elif defined(PIPE_ARCH_X86) || defined(PIPE_ARCH_X86_64)
|
||||
LLVMInitializeX86AsmPrinter();
|
||||
#elif defined(PIPE_ARCH_ARM)
|
||||
LLVMInitializeARMAsmPrinter();
|
||||
#elif defined(PIPE_ARCH_PPC)
|
||||
LLVMInitializePowerPCAsmPrinter();
|
||||
#endif
|
||||
|
||||
#if HAVE_LLVM >= 0x0207
|
||||
# if HAVE_LLVM >= 0x0301
|
||||
llvm::InitializeNativeTargetDisassembler();
|
||||
# elif defined(PIPE_ARCH_X86) || defined(PIPE_ARCH_X86_64)
|
||||
LLVMInitializeX86Disassembler();
|
||||
# elif defined(PIPE_ARCH_ARM)
|
||||
LLVMInitializeARMDisassembler();
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
extern "C" void
|
||||
lp_func_delete_body(LLVMValueRef FF)
|
||||
{
|
||||
llvm::Function *func = llvm::unwrap<llvm::Function>(FF);
|
||||
func->deleteBody();
|
||||
}
|
||||
|
||||
|
||||
@@ -144,260 +243,7 @@ lp_set_store_alignment(LLVMValueRef Inst,
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Delegating is tedious but the default manager class is hidden in an
|
||||
* anonymous namespace in LLVM, so we cannot just derive from it to change
|
||||
* its behavior.
|
||||
*/
|
||||
class DelegatingJITMemoryManager : public llvm::JITMemoryManager {
|
||||
|
||||
protected:
|
||||
virtual llvm::JITMemoryManager *mgr() const = 0;
|
||||
|
||||
public:
|
||||
/*
|
||||
* From JITMemoryManager
|
||||
*/
|
||||
virtual void setMemoryWritable() {
|
||||
mgr()->setMemoryWritable();
|
||||
}
|
||||
virtual void setMemoryExecutable() {
|
||||
mgr()->setMemoryExecutable();
|
||||
}
|
||||
virtual void setPoisonMemory(bool poison) {
|
||||
mgr()->setPoisonMemory(poison);
|
||||
}
|
||||
virtual void AllocateGOT() {
|
||||
mgr()->AllocateGOT();
|
||||
/*
|
||||
* isManagingGOT() is not virtual in base class so we can't delegate.
|
||||
* Instead we mirror the value of HasGOT in our instance.
|
||||
*/
|
||||
HasGOT = mgr()->isManagingGOT();
|
||||
}
|
||||
virtual uint8_t *getGOTBase() const {
|
||||
return mgr()->getGOTBase();
|
||||
}
|
||||
virtual uint8_t *startFunctionBody(const llvm::Function *F,
|
||||
uintptr_t &ActualSize) {
|
||||
return mgr()->startFunctionBody(F, ActualSize);
|
||||
}
|
||||
virtual uint8_t *allocateStub(const llvm::GlobalValue *F,
|
||||
unsigned StubSize,
|
||||
unsigned Alignment) {
|
||||
return mgr()->allocateStub(F, StubSize, Alignment);
|
||||
}
|
||||
virtual void endFunctionBody(const llvm::Function *F,
|
||||
uint8_t *FunctionStart,
|
||||
uint8_t *FunctionEnd) {
|
||||
mgr()->endFunctionBody(F, FunctionStart, FunctionEnd);
|
||||
}
|
||||
virtual uint8_t *allocateSpace(intptr_t Size, unsigned Alignment) {
|
||||
return mgr()->allocateSpace(Size, Alignment);
|
||||
}
|
||||
virtual uint8_t *allocateGlobal(uintptr_t Size, unsigned Alignment) {
|
||||
return mgr()->allocateGlobal(Size, Alignment);
|
||||
}
|
||||
virtual void deallocateFunctionBody(void *Body) {
|
||||
mgr()->deallocateFunctionBody(Body);
|
||||
}
|
||||
#if HAVE_LLVM < 0x0304
|
||||
virtual uint8_t *startExceptionTable(const llvm::Function *F,
|
||||
uintptr_t &ActualSize) {
|
||||
return mgr()->startExceptionTable(F, ActualSize);
|
||||
}
|
||||
virtual void endExceptionTable(const llvm::Function *F,
|
||||
uint8_t *TableStart,
|
||||
uint8_t *TableEnd,
|
||||
uint8_t *FrameRegister) {
|
||||
mgr()->endExceptionTable(F, TableStart, TableEnd,
|
||||
FrameRegister);
|
||||
}
|
||||
virtual void deallocateExceptionTable(void *ET) {
|
||||
mgr()->deallocateExceptionTable(ET);
|
||||
}
|
||||
#endif
|
||||
virtual bool CheckInvariants(std::string &s) {
|
||||
return mgr()->CheckInvariants(s);
|
||||
}
|
||||
virtual size_t GetDefaultCodeSlabSize() {
|
||||
return mgr()->GetDefaultCodeSlabSize();
|
||||
}
|
||||
virtual size_t GetDefaultDataSlabSize() {
|
||||
return mgr()->GetDefaultDataSlabSize();
|
||||
}
|
||||
virtual size_t GetDefaultStubSlabSize() {
|
||||
return mgr()->GetDefaultStubSlabSize();
|
||||
}
|
||||
virtual unsigned GetNumCodeSlabs() {
|
||||
return mgr()->GetNumCodeSlabs();
|
||||
}
|
||||
virtual unsigned GetNumDataSlabs() {
|
||||
return mgr()->GetNumDataSlabs();
|
||||
}
|
||||
virtual unsigned GetNumStubSlabs() {
|
||||
return mgr()->GetNumStubSlabs();
|
||||
}
|
||||
|
||||
/*
|
||||
* From RTDyldMemoryManager
|
||||
*/
|
||||
#if HAVE_LLVM >= 0x0304
|
||||
virtual uint8_t *allocateCodeSection(uintptr_t Size,
|
||||
unsigned Alignment,
|
||||
unsigned SectionID,
|
||||
llvm::StringRef SectionName) {
|
||||
return mgr()->allocateCodeSection(Size, Alignment, SectionID,
|
||||
SectionName);
|
||||
}
|
||||
#else
|
||||
virtual uint8_t *allocateCodeSection(uintptr_t Size,
|
||||
unsigned Alignment,
|
||||
unsigned SectionID) {
|
||||
return mgr()->allocateCodeSection(Size, Alignment, SectionID);
|
||||
}
|
||||
#endif
|
||||
#if HAVE_LLVM >= 0x0303
|
||||
virtual uint8_t *allocateDataSection(uintptr_t Size,
|
||||
unsigned Alignment,
|
||||
unsigned SectionID,
|
||||
#if HAVE_LLVM >= 0x0304
|
||||
llvm::StringRef SectionName,
|
||||
#endif
|
||||
bool IsReadOnly) {
|
||||
return mgr()->allocateDataSection(Size, Alignment, SectionID,
|
||||
#if HAVE_LLVM >= 0x0304
|
||||
SectionName,
|
||||
#endif
|
||||
IsReadOnly);
|
||||
}
|
||||
#if HAVE_LLVM >= 0x0304
|
||||
virtual void registerEHFrames(uint8_t *Addr, uint64_t LoadAddr, size_t Size) {
|
||||
mgr()->registerEHFrames(Addr, LoadAddr, Size);
|
||||
}
|
||||
virtual void deregisterEHFrames(uint8_t *Addr, uint64_t LoadAddr, size_t Size) {
|
||||
mgr()->deregisterEHFrames(Addr, LoadAddr, Size);
|
||||
}
|
||||
#else
|
||||
virtual void registerEHFrames(llvm::StringRef SectionData) {
|
||||
mgr()->registerEHFrames(SectionData);
|
||||
}
|
||||
#endif
|
||||
#else
|
||||
virtual uint8_t *allocateDataSection(uintptr_t Size,
|
||||
unsigned Alignment,
|
||||
unsigned SectionID) {
|
||||
return mgr()->allocateDataSection(Size, Alignment, SectionID);
|
||||
}
|
||||
#endif
|
||||
virtual void *getPointerToNamedFunction(const std::string &Name,
|
||||
bool AbortOnFailure=true) {
|
||||
return mgr()->getPointerToNamedFunction(Name, AbortOnFailure);
|
||||
}
|
||||
#if HAVE_LLVM == 0x0303
|
||||
virtual bool applyPermissions(std::string *ErrMsg = 0) {
|
||||
return mgr()->applyPermissions(ErrMsg);
|
||||
}
|
||||
#elif HAVE_LLVM > 0x0303
|
||||
virtual bool finalizeMemory(std::string *ErrMsg = 0) {
|
||||
return mgr()->finalizeMemory(ErrMsg);
|
||||
}
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Delegate memory management to one shared manager for more efficient use
|
||||
* of memory than creating a separate pool for each LLVM engine.
|
||||
* Keep generated code until freeGeneratedCode() is called, instead of when
|
||||
* memory manager is destroyed, which happens during engine destruction.
|
||||
* This allows additional memory savings as we don't have to keep the engine
|
||||
* around in order to use the code.
|
||||
* All methods are delegated to the shared manager except destruction and
|
||||
* deallocating code. For the latter we just remember what needs to be
|
||||
* deallocated later. The shared manager is deleted once it is empty.
|
||||
*/
|
||||
class ShaderMemoryManager : public DelegatingJITMemoryManager {
|
||||
|
||||
static llvm::JITMemoryManager *TheMM;
|
||||
static unsigned NumUsers;
|
||||
|
||||
struct GeneratedCode {
|
||||
typedef std::vector<void *> Vec;
|
||||
Vec FunctionBody, ExceptionTable;
|
||||
|
||||
GeneratedCode() {
|
||||
++NumUsers;
|
||||
}
|
||||
|
||||
~GeneratedCode() {
|
||||
/*
|
||||
* Deallocate things as previously requested and
|
||||
* free shared manager when no longer used.
|
||||
*/
|
||||
Vec::iterator i;
|
||||
|
||||
assert(TheMM);
|
||||
for ( i = FunctionBody.begin(); i != FunctionBody.end(); ++i )
|
||||
TheMM->deallocateFunctionBody(*i);
|
||||
#if HAVE_LLVM < 0x0304
|
||||
for ( i = ExceptionTable.begin(); i != ExceptionTable.end(); ++i )
|
||||
TheMM->deallocateExceptionTable(*i);
|
||||
#endif
|
||||
--NumUsers;
|
||||
if (NumUsers == 0) {
|
||||
delete TheMM;
|
||||
TheMM = 0;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
GeneratedCode *code;
|
||||
|
||||
llvm::JITMemoryManager *mgr() const {
|
||||
if (!TheMM) {
|
||||
TheMM = CreateDefaultMemManager();
|
||||
}
|
||||
return TheMM;
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
ShaderMemoryManager() {
|
||||
code = new GeneratedCode;
|
||||
}
|
||||
|
||||
virtual ~ShaderMemoryManager() {
|
||||
/*
|
||||
* 'code' is purposely not deleted. It is the user's responsibility
|
||||
* to call getGeneratedCode() and freeGeneratedCode().
|
||||
*/
|
||||
}
|
||||
|
||||
struct lp_generated_code *getGeneratedCode() {
|
||||
return (struct lp_generated_code *) code;
|
||||
}
|
||||
|
||||
static void freeGeneratedCode(struct lp_generated_code *code) {
|
||||
delete (GeneratedCode *) code;
|
||||
}
|
||||
|
||||
#if HAVE_LLVM < 0x0304
|
||||
virtual void deallocateExceptionTable(void *ET) {
|
||||
// remember for later deallocation
|
||||
code->ExceptionTable.push_back(ET);
|
||||
}
|
||||
#endif
|
||||
|
||||
virtual void deallocateFunctionBody(void *Body) {
|
||||
// remember for later deallocation
|
||||
code->FunctionBody.push_back(Body);
|
||||
}
|
||||
};
|
||||
|
||||
llvm::JITMemoryManager *ShaderMemoryManager::TheMM = 0;
|
||||
unsigned ShaderMemoryManager::NumUsers = 0;
|
||||
|
||||
#if HAVE_LLVM >= 0x301
|
||||
|
||||
/**
|
||||
* Same as LLVMCreateJITCompilerForModule, but:
|
||||
@@ -412,7 +258,6 @@ unsigned ShaderMemoryManager::NumUsers = 0;
|
||||
extern "C"
|
||||
LLVMBool
|
||||
lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef *OutJIT,
|
||||
lp_generated_code **OutCode,
|
||||
LLVMModuleRef M,
|
||||
unsigned OptLevel,
|
||||
int useMCJIT,
|
||||
@@ -421,11 +266,7 @@ lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef *OutJIT,
|
||||
using namespace llvm;
|
||||
|
||||
std::string Error;
|
||||
#if HAVE_LLVM >= 0x0306
|
||||
EngineBuilder builder(std::unique_ptr<Module>(unwrap(M)));
|
||||
#else
|
||||
EngineBuilder builder(unwrap(M));
|
||||
#endif
|
||||
|
||||
/**
|
||||
* LLVM 3.1+ haven't more "extern unsigned llvm::StackAlignmentOverride" and
|
||||
@@ -457,14 +298,6 @@ lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef *OutJIT,
|
||||
|
||||
if (useMCJIT) {
|
||||
builder.setUseMCJIT(true);
|
||||
#ifdef _WIN32
|
||||
/*
|
||||
* MCJIT works on Windows, but currently only through ELF object format.
|
||||
*/
|
||||
std::string targetTriple = llvm::sys::getProcessTriple();
|
||||
targetTriple.append("-elf");
|
||||
unwrap(M)->setTargetTriple(targetTriple);
|
||||
#endif
|
||||
}
|
||||
|
||||
llvm::SmallVector<std::string, 1> MAttrs;
|
||||
@@ -472,8 +305,8 @@ lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef *OutJIT,
|
||||
/*
|
||||
* AVX feature is not automatically detected from CPUID by the X86 target
|
||||
* yet, because the old (yet default) JIT engine is not capable of
|
||||
* emitting the opcodes. On newer llvm versions it is and at least some
|
||||
* versions (tested with 3.3) will emit avx opcodes without this anyway.
|
||||
* emitting the opcodes. But as we're using MCJIT here, it is safe to
|
||||
* add set this attribute.
|
||||
*/
|
||||
MAttrs.push_back("+avx");
|
||||
if (util_cpu_caps.has_f16c) {
|
||||
@@ -481,36 +314,14 @@ lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef *OutJIT,
|
||||
}
|
||||
builder.setMAttrs(MAttrs);
|
||||
}
|
||||
|
||||
#if HAVE_LLVM >= 0x0305
|
||||
StringRef MCPU = llvm::sys::getHostCPUName();
|
||||
/*
|
||||
* The cpu bits are no longer set automatically, so need to set mcpu manually.
|
||||
* Note that the MAttrs set above will be sort of ignored (since we should
|
||||
* not set any which would not be set by specifying the cpu anyway).
|
||||
* It ought to be safe though since getHostCPUName() should include bits
|
||||
* not only from the cpu but environment as well (for instance if it's safe
|
||||
* to use avx instructions which need OS support). According to
|
||||
* http://llvm.org/bugs/show_bug.cgi?id=19429 however if I understand this
|
||||
* right it may be necessary to specify older cpu (or disable mattrs) though
|
||||
* when not using MCJIT so no instructions are generated which the old JIT
|
||||
* can't handle. Not entirely sure if we really need to do anything yet.
|
||||
*/
|
||||
builder.setMCPU(MCPU);
|
||||
#endif
|
||||
|
||||
ShaderMemoryManager *MM = new ShaderMemoryManager();
|
||||
*OutCode = MM->getGeneratedCode();
|
||||
|
||||
builder.setJITMemoryManager(MM);
|
||||
builder.setJITMemoryManager(JITMemoryManager::CreateDefaultMemManager());
|
||||
|
||||
ExecutionEngine *JIT;
|
||||
|
||||
#if HAVE_LLVM >= 0x0302
|
||||
#if 0
|
||||
JIT = builder.create();
|
||||
#else
|
||||
/*
|
||||
* Workaround http://llvm.org/PR12833
|
||||
* Workaround http://llvm.org/bugs/show_bug.cgi?id=12833
|
||||
*/
|
||||
StringRef MArch = "";
|
||||
StringRef MCPU = "";
|
||||
@@ -521,17 +332,8 @@ lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef *OutJIT,
|
||||
*OutJIT = wrap(JIT);
|
||||
return 0;
|
||||
}
|
||||
lp_free_generated_code(*OutCode);
|
||||
*OutCode = 0;
|
||||
delete MM;
|
||||
*OutError = strdup(Error.c_str());
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
extern "C"
|
||||
void
|
||||
lp_free_generated_code(struct lp_generated_code *code)
|
||||
{
|
||||
ShaderMemoryManager::freeGeneratedCode(code);
|
||||
}
|
||||
#endif /* HAVE_LLVM >= 0x301 */
|
||||
|
@@ -39,28 +39,26 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
struct lp_generated_code;
|
||||
|
||||
|
||||
extern void
|
||||
lp_set_target_options(void);
|
||||
|
||||
|
||||
extern void
|
||||
lp_func_delete_body(LLVMValueRef func);
|
||||
|
||||
|
||||
extern LLVMValueRef
|
||||
lp_build_load_volatile(LLVMBuilderRef B, LLVMValueRef PointerVal,
|
||||
const char *Name);
|
||||
|
||||
extern int
|
||||
lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef *OutJIT,
|
||||
struct lp_generated_code **OutCode,
|
||||
LLVMModuleRef M,
|
||||
unsigned OptLevel,
|
||||
int useMCJIT,
|
||||
char **OutError);
|
||||
|
||||
extern void
|
||||
lp_free_generated_code(struct lp_generated_code *code);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@@ -455,6 +455,10 @@ lp_build_pack2(struct gallivm_state *gallivm,
|
||||
LLVMValueRef res = NULL;
|
||||
struct lp_type intr_type = dst_type;
|
||||
|
||||
#if HAVE_LLVM < 0x0207
|
||||
intr_type = src_type;
|
||||
#endif
|
||||
|
||||
assert(!src_type.floating);
|
||||
assert(!dst_type.floating);
|
||||
assert(src_type.width == dst_type.width * 2);
|
||||
@@ -464,7 +468,6 @@ lp_build_pack2(struct gallivm_state *gallivm,
|
||||
if((util_cpu_caps.has_sse2 || util_cpu_caps.has_altivec) &&
|
||||
src_type.width * src_type.length >= 128) {
|
||||
const char *intrinsic = NULL;
|
||||
boolean swap_intrinsic_operands = FALSE;
|
||||
|
||||
switch(src_type.width) {
|
||||
case 32:
|
||||
@@ -475,6 +478,10 @@ lp_build_pack2(struct gallivm_state *gallivm,
|
||||
else {
|
||||
if (util_cpu_caps.has_sse4_1) {
|
||||
intrinsic = "llvm.x86.sse41.packusdw";
|
||||
#if HAVE_LLVM < 0x0207
|
||||
/* llvm < 2.7 has inconsistent signatures except for packusdw */
|
||||
intr_type = dst_type;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
} else if (util_cpu_caps.has_altivec) {
|
||||
@@ -483,9 +490,6 @@ lp_build_pack2(struct gallivm_state *gallivm,
|
||||
} else {
|
||||
intrinsic = "llvm.ppc.altivec.vpkuwus";
|
||||
}
|
||||
#ifdef PIPE_ARCH_LITTLE_ENDIAN
|
||||
swap_intrinsic_operands = TRUE;
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
case 16:
|
||||
@@ -494,18 +498,12 @@ lp_build_pack2(struct gallivm_state *gallivm,
|
||||
intrinsic = "llvm.x86.sse2.packsswb.128";
|
||||
} else if (util_cpu_caps.has_altivec) {
|
||||
intrinsic = "llvm.ppc.altivec.vpkshss";
|
||||
#ifdef PIPE_ARCH_LITTLE_ENDIAN
|
||||
swap_intrinsic_operands = TRUE;
|
||||
#endif
|
||||
}
|
||||
} else {
|
||||
if (util_cpu_caps.has_sse2) {
|
||||
intrinsic = "llvm.x86.sse2.packuswb.128";
|
||||
} else if (util_cpu_caps.has_altivec) {
|
||||
intrinsic = "llvm.ppc.altivec.vpkshus";
|
||||
#ifdef PIPE_ARCH_LITTLE_ENDIAN
|
||||
swap_intrinsic_operands = TRUE;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -514,11 +512,7 @@ lp_build_pack2(struct gallivm_state *gallivm,
|
||||
if (intrinsic) {
|
||||
if (src_type.width * src_type.length == 128) {
|
||||
LLVMTypeRef intr_vec_type = lp_build_vec_type(gallivm, intr_type);
|
||||
if (swap_intrinsic_operands) {
|
||||
res = lp_build_intrinsic_binary(builder, intrinsic, intr_vec_type, hi, lo);
|
||||
} else {
|
||||
res = lp_build_intrinsic_binary(builder, intrinsic, intr_vec_type, lo, hi);
|
||||
}
|
||||
res = lp_build_intrinsic_binary(builder, intrinsic, intr_vec_type, lo, hi);
|
||||
if (dst_vec_type != intr_vec_type) {
|
||||
res = LLVMBuildBitCast(builder, res, dst_vec_type, "");
|
||||
}
|
||||
@@ -527,8 +521,6 @@ lp_build_pack2(struct gallivm_state *gallivm,
|
||||
int num_split = src_type.width * src_type.length / 128;
|
||||
int i;
|
||||
int nlen = 128 / src_type.width;
|
||||
int lo_off = swap_intrinsic_operands ? nlen : 0;
|
||||
int hi_off = swap_intrinsic_operands ? 0 : nlen;
|
||||
struct lp_type ndst_type = lp_type_unorm(dst_type.width, 128);
|
||||
struct lp_type nintr_type = lp_type_unorm(intr_type.width, 128);
|
||||
LLVMValueRef tmpres[LP_MAX_VECTOR_WIDTH / 128];
|
||||
@@ -540,9 +532,9 @@ lp_build_pack2(struct gallivm_state *gallivm,
|
||||
|
||||
for (i = 0; i < num_split / 2; i++) {
|
||||
tmplo = lp_build_extract_range(gallivm,
|
||||
lo, i*nlen*2 + lo_off, nlen);
|
||||
lo, i*nlen*2, nlen);
|
||||
tmphi = lp_build_extract_range(gallivm,
|
||||
lo, i*nlen*2 + hi_off, nlen);
|
||||
lo, i*nlen*2 + nlen, nlen);
|
||||
tmpres[i] = lp_build_intrinsic_binary(builder, intrinsic,
|
||||
nintr_vec_type, tmplo, tmphi);
|
||||
if (ndst_vec_type != nintr_vec_type) {
|
||||
@@ -551,9 +543,9 @@ lp_build_pack2(struct gallivm_state *gallivm,
|
||||
}
|
||||
for (i = 0; i < num_split / 2; i++) {
|
||||
tmplo = lp_build_extract_range(gallivm,
|
||||
hi, i*nlen*2 + lo_off, nlen);
|
||||
hi, i*nlen*2, nlen);
|
||||
tmphi = lp_build_extract_range(gallivm,
|
||||
hi, i*nlen*2 + hi_off, nlen);
|
||||
hi, i*nlen*2 + nlen, nlen);
|
||||
tmpres[i+num_split/2] = lp_build_intrinsic_binary(builder, intrinsic,
|
||||
nintr_vec_type,
|
||||
tmplo, tmphi);
|
||||
|
@@ -927,7 +927,6 @@ lp_build_nearest_mip_level(struct lp_build_sample_context *bld,
|
||||
bld->int_coord_bld.type,
|
||||
out);
|
||||
}
|
||||
level = lp_build_andnot(&bld->int_coord_bld, level, *out_of_bounds);
|
||||
*level_out = level;
|
||||
}
|
||||
else {
|
||||
@@ -977,6 +976,15 @@ lp_build_linear_mip_levels(struct lp_build_sample_context *bld,
|
||||
* ends in the process.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This code (vector select in particular) only works with llvm 3.1
|
||||
* (if there's more than one quad, with x86 backend). Might consider
|
||||
* converting to our lp_bld_logic helpers.
|
||||
*/
|
||||
#if HAVE_LLVM < 0x0301
|
||||
assert(leveli_bld->type.length == 1);
|
||||
#endif
|
||||
|
||||
/* *level0_out < first_level */
|
||||
clamp_min = LLVMBuildICmp(builder, LLVMIntSLT,
|
||||
*level0_out, first_level,
|
||||
|
@@ -1543,6 +1543,16 @@ lp_build_sample_mipmap(struct lp_build_sample_context *bld,
|
||||
if (num_quads == 1 && bld->num_lods == 1) {
|
||||
lod_fpart = LLVMBuildTrunc(builder, lod_fpart, u8n_bld.elem_type, "");
|
||||
lod_fpart = lp_build_broadcast_scalar(&u8n_bld, lod_fpart);
|
||||
|
||||
#if HAVE_LLVM == 0x208
|
||||
/* This was a work-around for a bug in LLVM 2.8.
|
||||
* Evidently, something goes wrong in the construction of the
|
||||
* lod_fpart short[8] vector. Adding this no-effect shuffle seems
|
||||
* to force the vector to be properly constructed.
|
||||
* Tested with mesa-demos/src/tests/mipmap_limits.c (press t, f).
|
||||
*/
|
||||
#error Unsupported
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
unsigned num_chans_per_lod = 4 * bld->coord_type.length / bld->num_lods;
|
||||
|
@@ -1775,10 +1775,20 @@ lp_build_sample_common(struct lp_build_sample_context *bld,
|
||||
/* fall-through */
|
||||
case PIPE_TEX_MIPFILTER_NONE:
|
||||
/* always use mip level 0 */
|
||||
first_level = bld->dynamic_state->first_level(bld->dynamic_state,
|
||||
bld->gallivm, texture_index);
|
||||
first_level = lp_build_broadcast_scalar(&bld->leveli_bld, first_level);
|
||||
*ilevel0 = first_level;
|
||||
if (HAVE_LLVM == 0x0207 && target == PIPE_TEXTURE_CUBE) {
|
||||
/* XXX this is a work-around for an apparent bug in LLVM 2.7.
|
||||
* We should be able to set ilevel0 = const(0) but that causes
|
||||
* bad x86 code to be emitted.
|
||||
*/
|
||||
assert(lod_ipart);
|
||||
lp_build_nearest_mip_level(bld, texture_index, lod_ipart, ilevel0, NULL);
|
||||
}
|
||||
else {
|
||||
first_level = bld->dynamic_state->first_level(bld->dynamic_state,
|
||||
bld->gallivm, texture_index);
|
||||
first_level = lp_build_broadcast_scalar(&bld->leveli_bld, first_level);
|
||||
*ilevel0 = first_level;
|
||||
}
|
||||
break;
|
||||
case PIPE_TEX_MIPFILTER_NEAREST:
|
||||
assert(lod_ipart);
|
||||
|
@@ -58,14 +58,24 @@ lp_build_broadcast(struct gallivm_state *gallivm,
|
||||
LLVMBuilderRef builder = gallivm->builder;
|
||||
const unsigned length = LLVMGetVectorSize(vec_type);
|
||||
LLVMValueRef undef = LLVMGetUndef(vec_type);
|
||||
/* The shuffle vector is always made of int32 elements */
|
||||
LLVMTypeRef i32_type = LLVMInt32TypeInContext(gallivm->context);
|
||||
LLVMTypeRef i32_vec_type = LLVMVectorType(i32_type, length);
|
||||
|
||||
assert(LLVMGetElementType(vec_type) == LLVMTypeOf(scalar));
|
||||
|
||||
res = LLVMBuildInsertElement(builder, undef, scalar, LLVMConstNull(i32_type), "");
|
||||
res = LLVMBuildShuffleVector(builder, res, undef, LLVMConstNull(i32_vec_type), "");
|
||||
if (HAVE_LLVM >= 0x207) {
|
||||
/* The shuffle vector is always made of int32 elements */
|
||||
LLVMTypeRef i32_vec_type = LLVMVectorType(i32_type, length);
|
||||
res = LLVMBuildInsertElement(builder, undef, scalar, LLVMConstNull(i32_type), "");
|
||||
res = LLVMBuildShuffleVector(builder, res, undef, LLVMConstNull(i32_vec_type), "");
|
||||
} else {
|
||||
/* XXX: The above path provokes a bug in LLVM 2.6 */
|
||||
unsigned i;
|
||||
res = undef;
|
||||
for(i = 0; i < length; ++i) {
|
||||
LLVMValueRef index = lp_build_const_int32(gallivm, i);
|
||||
res = LLVMBuildInsertElement(builder, res, scalar, index, "");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return res;
|
||||
|
@@ -437,8 +437,6 @@ struct lp_build_tgsi_soa_context
|
||||
|
||||
LLVMValueRef consts_ptr;
|
||||
LLVMValueRef const_sizes_ptr;
|
||||
LLVMValueRef consts[LP_MAX_TGSI_CONST_BUFFERS];
|
||||
LLVMValueRef consts_sizes[LP_MAX_TGSI_CONST_BUFFERS];
|
||||
const LLVMValueRef (*inputs)[TGSI_NUM_CHANNELS];
|
||||
LLVMValueRef (*outputs)[TGSI_NUM_CHANNELS];
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user