Compare commits
248 Commits
mesa-10.5.
...
10.4
Author | SHA1 | Date | |
---|---|---|---|
|
cb154bb221 | ||
|
d26f3c1f86 | ||
|
b7b218f3f6 | ||
|
832c94a55c | ||
|
70832be2f1 | ||
|
ad259df2e0 | ||
|
df2db2a55f | ||
|
0506f69f08 | ||
|
a563045009 | ||
|
b2e243f70c | ||
|
8c25b0f2d1 | ||
|
a91ee1e187 | ||
|
977626f10a | ||
|
b451a2ffbf | ||
|
a561eee82c | ||
|
80ef80d087 | ||
|
fa8bfb3ed1 | ||
|
025cf8cb3f | ||
|
4db4f70546 | ||
|
d4a95ffcda | ||
|
97b0219ed5 | ||
|
93273f16af | ||
|
8e8d215cae | ||
|
1a929baa0b | ||
|
3a625d0b3f | ||
|
944ef59b2f | ||
|
fc9dd495b2 | ||
|
542a754524 | ||
|
e559d126f9 | ||
|
fc5881ad73 | ||
|
9508ca24f1 | ||
|
644bbf88ec | ||
|
a369361f9e | ||
|
f1663a5236 | ||
|
e1b5bc9330 | ||
|
93edf3e7dc | ||
|
66a3f104a5 | ||
|
afa7a851da | ||
|
d880aa573c | ||
|
741aeba26f | ||
|
a598a9bdfe | ||
|
0c46d850d9 | ||
|
da46b1b160 | ||
|
7e723c98ce | ||
|
0a51529a28 | ||
|
2a9e9b5aeb | ||
|
120792fa04 | ||
|
39ae85732d | ||
|
61c1aabb9f | ||
|
6da4e66d4e | ||
|
7e57411b9a | ||
|
1e6735ead1 | ||
|
deea686c71 | ||
|
41bdeda102 | ||
|
a5c608e951 | ||
|
e0276bc297 | ||
|
dc16fb1969 | ||
|
aaa823569b | ||
|
f57b41758d | ||
|
67ac6a3951 | ||
|
5d04b9eeed | ||
|
53041aecef | ||
|
f76bcbb4cd | ||
|
89289934fc | ||
|
dbf82d753b | ||
|
b786e6332b | ||
|
c0ce908a90 | ||
|
c83c5f4b69 | ||
|
f2663112f6 | ||
|
2ad93851ff | ||
|
e35e6773c2 | ||
|
51bdd19c97 | ||
|
5c623ff071 | ||
|
654f197f19 | ||
|
162cee83ba | ||
|
54da987bae | ||
|
62eb27ac8b | ||
|
a824179af5 | ||
|
fecedb6c43 | ||
|
9d1d1f46c7 | ||
|
b51d369690 | ||
|
eab8dc28ed | ||
|
cc580045a8 | ||
|
0d721fa1d6 | ||
|
c96ed76b3d | ||
|
49a5bce780 | ||
|
e92bfa3f95 | ||
|
f70e4d4afd | ||
|
42806f12a9 | ||
|
4c9b64fc44 | ||
|
69c7cf70e7 | ||
|
4d04fd0871 | ||
|
0727ab961c | ||
|
7280ddea9d | ||
|
425bc89720 | ||
|
0b3f8c72f7 | ||
|
63e668eb18 | ||
|
2b4c577730 | ||
|
e3a393b4c3 | ||
|
7ecd0f9528 | ||
|
336887bca1 | ||
|
8e08ba6f96 | ||
|
77e1136f44 | ||
|
22c75f9f5a | ||
|
4b65be8860 | ||
|
9ea8e7f0df | ||
|
d0d09a4eee | ||
|
75f39e45f0 | ||
|
553089093f | ||
|
add30f01ef | ||
|
0dfb9c9e86 | ||
|
7e26cf83ba | ||
|
00d22ce0fa | ||
|
7f700cc35b | ||
|
e6167e749c | ||
|
bce0058333 | ||
|
9a0647ba7f | ||
|
669c5d6d44 | ||
|
87ac37074f | ||
|
e1bcca4f13 | ||
|
50ea1c1f5f | ||
|
3ca8b93476 | ||
|
d06b403377 | ||
|
481af42f28 | ||
|
393fffd07d | ||
|
c159b4095c | ||
|
b80b5b35a3 | ||
|
41ca03a7b4 | ||
|
18ac34825b | ||
|
15ef84ccfb | ||
|
44ee59d300 | ||
|
1e0ab5b826 | ||
|
a3381286d8 | ||
|
882f702441 | ||
|
a25e26f67f | ||
|
021d71b848 | ||
|
14f1659b43 | ||
|
02f2e97c3e | ||
|
5906dd6c99 | ||
|
2d05942b74 | ||
|
099ed78a04 | ||
|
91c5770ba1 | ||
|
3306ed6fd7 | ||
|
81f8006f7d | ||
|
1b498cf5b7 | ||
|
8c77be7ef9 | ||
|
ef43d21bbc | ||
|
ac3ca98a1b | ||
|
af1a690075 | ||
|
fffe533f08 | ||
|
4d5e0f78b7 | ||
|
b9e56ea151 | ||
|
e05c595acd | ||
|
c48d0d8dd2 | ||
|
aafd13027a | ||
|
1f42230fa7 | ||
|
2b85ed72db | ||
|
4cd38a592e | ||
|
60e2e04fe8 | ||
|
1a3df8cc77 | ||
|
45416a255f | ||
|
fb3f7c0bc5 | ||
|
4f570f2fb3 | ||
|
a4c8348597 | ||
|
893583776e | ||
|
2d669f6583 | ||
|
bccfe7ae0f | ||
|
ee241a6889 | ||
|
4b37a18da5 | ||
|
93f6f55983 | ||
|
af0c82099b | ||
|
5fe79b0b12 | ||
|
45f3aa0bc7 | ||
|
90239276ff | ||
|
57868b1ee4 | ||
|
fe2eac2237 | ||
|
db784a09f1 | ||
|
d9f4aaa095 | ||
|
e340a28dba | ||
|
6b908efd58 | ||
|
65f03e6733 | ||
|
ffaf58e7d0 | ||
|
bb9dea8a29 | ||
|
be59440b53 | ||
|
ac8d596498 | ||
|
112d2fdb17 | ||
|
c6353cee0c | ||
|
09e4f1a50f | ||
|
c7b9a2e38a | ||
|
6fcbf9aee3 | ||
|
fd2852fe5b | ||
|
57057c439e | ||
|
b5cc04b6ad | ||
|
d2e9fd5b6d | ||
|
b61192f2ae | ||
|
75c4824d2f | ||
|
f30fbbdbdd | ||
|
b247956c77 | ||
|
72a802a9c2 | ||
|
cfbc474d80 | ||
|
360872a45e | ||
|
42839ea5ba | ||
|
8dc03bd575 | ||
|
41906e9764 | ||
|
56572002fc | ||
|
c0e0de45dc | ||
|
b75a285633 | ||
|
1cf4dbdc81 | ||
|
c29ddc923f | ||
|
085de45812 | ||
|
31c7e6c51d | ||
|
2a0290d5f5 | ||
|
f77a97f057 | ||
|
d45c35c3d7 | ||
|
16eaf01a6a | ||
|
6316d415c4 | ||
|
dca88397ca | ||
|
6c383aaadd | ||
|
7e47ae3185 | ||
|
9e94c05936 | ||
|
4952c49f21 | ||
|
013eba0ec1 | ||
|
db9a6b96ab | ||
|
4d9c0445dd | ||
|
1a8f90dc70 | ||
|
7fe9292069 | ||
|
c260cb700b | ||
|
aab3758916 | ||
|
be24d54195 | ||
|
8751abf752 | ||
|
da7475f35f | ||
|
7b62f0eb50 | ||
|
fa62619da5 | ||
|
2e3d2035cf | ||
|
edb2186671 | ||
|
5a2ff2002b | ||
|
0a3c146723 | ||
|
6452e24ebc | ||
|
4186c1c7b1 | ||
|
d133096d26 | ||
|
01c9bf999e | ||
|
df63e76c2c | ||
|
b46e80ae60 | ||
|
ff97fbd9e9 | ||
|
504d73f342 | ||
|
7bbf0836c8 | ||
|
8d6963f005 | ||
|
50e6b471c5 |
@@ -1,4 +1,4 @@
|
||||
((prog-mode
|
||||
((nil
|
||||
(indent-tabs-mode . nil)
|
||||
(tab-width . 8)
|
||||
(c-basic-offset . 3)
|
||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@@ -18,7 +18,6 @@
|
||||
*.tar
|
||||
*.tar.bz2
|
||||
*.tar.gz
|
||||
*.tar.xz
|
||||
*.trs
|
||||
*.zip
|
||||
*~
|
||||
|
109
Makefile.am
109
Makefile.am
@@ -21,38 +21,85 @@
|
||||
|
||||
SUBDIRS = src
|
||||
|
||||
AM_DISTCHECK_CONFIGURE_FLAGS = \
|
||||
--enable-dri3 \
|
||||
--enable-gallium-tests \
|
||||
--enable-gbm \
|
||||
--enable-gles1 \
|
||||
--enable-gles2 \
|
||||
--enable-glx-tls \
|
||||
--enable-va \
|
||||
--enable-vdpau \
|
||||
--enable-xa \
|
||||
--enable-xvmc \
|
||||
--with-egl-platforms=x11,wayland,drm
|
||||
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
|
||||
EXTRA_DIST = \
|
||||
autogen.sh \
|
||||
common.py \
|
||||
docs \
|
||||
doxygen \
|
||||
scons \
|
||||
SConstruct
|
||||
doxygen:
|
||||
cd doxygen && $(MAKE)
|
||||
|
||||
noinst_HEADERS = \
|
||||
include/c99_compat.h \
|
||||
include/c99 \
|
||||
include/c11 \
|
||||
include/D3D9 \
|
||||
include/HaikuGL \
|
||||
include/pci_ids
|
||||
.PHONY: doxygen
|
||||
|
||||
# We list some directories in EXTRA_DIST, but don't actually want to include
|
||||
# the .gitignore files in the tarball.
|
||||
dist-hook:
|
||||
find $(distdir) -name .gitignore -exec $(RM) {} +
|
||||
# Rules for making release tarballs
|
||||
|
||||
PACKAGE_DIR = Mesa-$(PACKAGE_VERSION)
|
||||
PACKAGE_NAME = MesaLib-$(PACKAGE_VERSION)
|
||||
|
||||
EXTRA_FILES = \
|
||||
aclocal.m4 \
|
||||
configure \
|
||||
bin/ar-lib \
|
||||
bin/compile \
|
||||
bin/config.sub \
|
||||
bin/config.guess \
|
||||
bin/depcomp \
|
||||
bin/install-sh \
|
||||
bin/ltmain.sh \
|
||||
bin/missing \
|
||||
bin/ylwrap \
|
||||
bin/test-driver \
|
||||
src/glsl/glsl_parser.cpp \
|
||||
src/glsl/glsl_parser.h \
|
||||
src/glsl/glsl_lexer.cpp \
|
||||
src/glsl/glcpp/glcpp-lex.c \
|
||||
src/glsl/glcpp/glcpp-parse.c \
|
||||
src/glsl/glcpp/glcpp-parse.h \
|
||||
src/mesa/program/lex.yy.c \
|
||||
src/mesa/program/program_parse.tab.c \
|
||||
src/mesa/program/program_parse.tab.h \
|
||||
`git ls-files | grep "Makefile.am" | sed -e "s/Makefile.am/Makefile.in/"`
|
||||
|
||||
|
||||
IGNORE_FILES = \
|
||||
-x autogen.sh
|
||||
|
||||
|
||||
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
|
||||
|
||||
# Everything for new a Mesa release:
|
||||
ARCHIVES = $(PACKAGE_NAME).tar.gz \
|
||||
$(PACKAGE_NAME).tar.bz2 \
|
||||
$(PACKAGE_NAME).zip
|
||||
|
||||
tarballs: checksums
|
||||
rm -f ../$(PACKAGE_DIR) $(PACKAGE_NAME).tar
|
||||
|
||||
manifest.txt: .git
|
||||
( \
|
||||
ls -1 $(EXTRA_FILES) ; \
|
||||
git ls-files $(IGNORE_FILES) \
|
||||
) | sed -e '/^\(.*\/\)\?\./d' -e "s@^@$(PACKAGE_DIR)/@" > $@
|
||||
|
||||
../$(PACKAGE_DIR):
|
||||
ln -s $(PWD) $@
|
||||
|
||||
$(PACKAGE_NAME).tar: parsers ../$(PACKAGE_DIR) manifest.txt
|
||||
cd .. ; tar -cf $(PACKAGE_DIR)/$(PACKAGE_NAME).tar -T $(PACKAGE_DIR)/manifest.txt
|
||||
|
||||
$(PACKAGE_NAME).tar.gz: $(PACKAGE_NAME).tar ../$(PACKAGE_DIR)
|
||||
gzip --stdout --best $(PACKAGE_NAME).tar > $(PACKAGE_NAME).tar.gz
|
||||
|
||||
$(PACKAGE_NAME).tar.bz2: $(PACKAGE_NAME).tar
|
||||
bzip2 --stdout --best $(PACKAGE_NAME).tar > $(PACKAGE_NAME).tar.bz2
|
||||
|
||||
$(PACKAGE_NAME).zip: parsers ../$(PACKAGE_DIR) manifest.txt
|
||||
rm -f $(PACKAGE_NAME).zip ; \
|
||||
cd .. ; \
|
||||
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
|
||||
|
||||
.PHONY: tarballs checksums
|
||||
|
@@ -1,26 +1,18 @@
|
||||
# Cherry-picked without -x
|
||||
# nir: resolve nir.h dependency list (fix make distcheck)
|
||||
556fc4b84df99a1cd4b18c11fb16f7854a948b2a
|
||||
# No whitespace commits in stable.
|
||||
a10bf5c10caf27232d4df8da74d5c35c23eb883d
|
||||
|
||||
# nir: add missing header to the sources list
|
||||
72e602905dd9d86450a936d5a22bf21758844b38
|
||||
# The following patches address code which is missing in 10.4
|
||||
# http://lists.freedesktop.org/archives/mesa-dev/2015-March/078515.html
|
||||
06084652fefe49c3d6bf1b476ff74ff602fdc22a common: Correct texture init for meta pbo uploads and downloads.
|
||||
|
||||
# configure: rework wayland_scanner handling(fix make distcheck)
|
||||
153539bd9d4445b504110958306f00632222f840
|
||||
# http://lists.freedesktop.org/archives/mesa-dev/2015-March/078547.html
|
||||
ccc5ce6f72c1ec86be4dfcef96c0b51fba0faa6d common: Correct PBO 2D_ARRAY handling.
|
||||
|
||||
# auxiliary/vl: bring back the VL code for the dri targets
|
||||
c39dbfdd0f764b1aaa7319b4694e7335692993dd
|
||||
# http://lists.freedesktop.org/archives/mesa-dev/2015-March/078549.html
|
||||
546aba143d13ba3f993ead4cc30b2404abfc0202 common: Fix PBOs for 1D_ARRAY.
|
||||
|
||||
# mesa: rename format_info.c to format_info.h
|
||||
3f6c28f2a976e35128b7a4a513cfa60af00301e1
|
||||
# mesa: fix dependency tracking of generated sources
|
||||
d22391cb165af4ed2f9a9e5d6233072a432cc969
|
||||
# mesa: drop Makefile from get_hash.h dependency list
|
||||
2c0f72d5389a9838cc4fbf4cc4f4291aa56c7845
|
||||
# mapi: fix *glapi dependency tracking
|
||||
fe5fddd7e2df74233a2a02ae021418485f39d11c
|
||||
# xmlpool: make sure we ship options.h
|
||||
8d8ca64c28170ec7e9ffa01638bcf8fd30a96088
|
||||
# http://lists.freedesktop.org/archives/mesa-dev/2015-March/078501.html
|
||||
2b2fa1865248c6e3b7baec81c4f92774759b201f mesa: Indent break statements and add a missing one.
|
||||
|
||||
# The optimisations mentioned are not available in 10.5
|
||||
627c68308683abbd6e563a09af6013a33938a790 i965/fs: in MAD optimizations, switch last argument to be immediate
|
||||
# http://lists.freedesktop.org/archives/mesa-dev/2015-March/078502.html
|
||||
87109acbed9c9b52f33d58ca06d9048d0ac7a215 mesa: Free memory allocated for luminance in readpixels.
|
||||
|
@@ -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:.*mesa-stable\)' HEAD..origin/master |\
|
||||
git log --reverse --pretty=%H -i --grep='^\([[:space:]]*NOTE: .*[Cc]andidate\|CC:.*10\.4.*mesa-stable\)' HEAD..origin/master |\
|
||||
while read sha
|
||||
do
|
||||
# Check to see whether the patch is on the ignore list.
|
||||
|
124
configure.ac
124
configure.ac
@@ -1,34 +1,3 @@
|
||||
dnl Copyright © 2011-2014 Intel Corporation
|
||||
dnl Copyright © 2011-2014 Emil Velikov <emil.l.velikov@gmail.com>
|
||||
dnl Copyright © 2007-2010 Dan Nicholson
|
||||
dnl Copyright © 2010-2014 Marek Olšák <maraeo@gmail.com>
|
||||
dnl Copyright © 2010-2014 Christian König
|
||||
dnl Copyright © 2012-2014 Tom Stellard <tstellar@gmail.com>
|
||||
dnl Copyright © 2009-2012 Jakob Bornecrantz
|
||||
dnl Copyright © 2009-2014 Jon TURNEY
|
||||
dnl Copyright © 2011-2012 Benjamin Franzke
|
||||
dnl Copyright © 2008-2014 David Airlie
|
||||
dnl Copyright © 2009-2013 Brian Paul
|
||||
dnl
|
||||
dnl Permission is hereby granted, free of charge, to any person obtaining a
|
||||
dnl copy of this software and associated documentation files (the "Software"),
|
||||
dnl to deal in the Software without restriction, including without limitation
|
||||
dnl the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
dnl and/or sell copies of the Software, and to permit persons to whom the
|
||||
dnl Software is furnished to do so, subject to the following conditions:
|
||||
dnl
|
||||
dnl The above copyright notice and this permission notice (including the next
|
||||
dnl paragraph) shall be included in all copies or substantial portions of the
|
||||
dnl Software.
|
||||
dnl
|
||||
dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
dnl IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
dnl FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
dnl THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
dnl LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
dnl FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
dnl DEALINGS IN THE SOFTWARE.
|
||||
dnl
|
||||
dnl Process this file with autoconf to create configure.
|
||||
|
||||
AC_PREREQ([2.60])
|
||||
@@ -43,7 +12,7 @@ AC_INIT([Mesa], [MESA_VERSION],
|
||||
AC_CONFIG_AUX_DIR([bin])
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
AC_CANONICAL_SYSTEM
|
||||
AM_INIT_AUTOMAKE([foreign tar-ustar dist-xz])
|
||||
AM_INIT_AUTOMAKE([foreign])
|
||||
|
||||
# Support silent build rules, requires at least automake-1.11. Disable
|
||||
# by either passing --disable-silent-rules to configure or passing V=1
|
||||
@@ -70,7 +39,6 @@ PRESENTPROTO_REQUIRED=1.0
|
||||
LIBUDEV_REQUIRED=151
|
||||
GLPROTO_REQUIRED=1.4.14
|
||||
LIBOMXIL_BELLAGIO_REQUIRED=0.0
|
||||
LIBVA_REQUIRED=0.35.0
|
||||
VDPAU_REQUIRED=0.4.1
|
||||
WAYLAND_REQUIRED=1.2.0
|
||||
XCB_REQUIRED=1.9.3
|
||||
@@ -78,7 +46,6 @@ XCBDRI2_REQUIRED=1.8
|
||||
XCBGLX_REQUIRED=1.8.1
|
||||
XSHMFENCE_REQUIRED=1.1
|
||||
XVMC_REQUIRED=1.0.6
|
||||
PYTHON_MAKO_REQUIRED=0.3.4
|
||||
|
||||
dnl Check for progs
|
||||
AC_PROG_CPP
|
||||
@@ -105,18 +72,7 @@ AX_PROG_FLEX([],
|
||||
|
||||
AC_CHECK_PROG(INDENT, indent, indent, cat)
|
||||
if test "x$INDENT" != "xcat"; then
|
||||
# Only GNU indent is supported
|
||||
INDENT_VERSION=`indent --version | grep GNU`
|
||||
if test $? -eq 0; then
|
||||
AC_SUBST(INDENT_FLAGS, '-i4 -nut -br -brs -npcs -ce -TGLubyte -TGLbyte -TBool')
|
||||
else
|
||||
INDENT="cat"
|
||||
fi
|
||||
fi
|
||||
|
||||
AX_CHECK_PYTHON_MAKO_MODULE($PYTHON_MAKO_REQUIRED)
|
||||
if test -n "$PYTHON2" -a "x$acv_mako_found" != "xyes"; then
|
||||
AC_MSG_ERROR([Python mako module v$PYTHON_MAKO_REQUIRED or higher not found])
|
||||
AC_SUBST(INDENT_FLAGS, '-i4 -nut -br -brs -npcs -ce -TGLubyte -TGLbyte -TBool')
|
||||
fi
|
||||
|
||||
AC_PROG_INSTALL
|
||||
@@ -145,10 +101,9 @@ AC_COMPILE_IFELSE(
|
||||
|
||||
AC_MSG_RESULT([$acv_mesa_CLANG])
|
||||
|
||||
dnl If we're using GCC, make sure that it is at least version 4.2.0. Older
|
||||
dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
|
||||
dnl versions are explictly not supported.
|
||||
GEN_ASM_OFFSETS=no
|
||||
USE_GNU99=no
|
||||
if test "x$GCC" = xyes -a "x$acv_mesa_CLANG" = xno; then
|
||||
AC_MSG_CHECKING([whether gcc version is sufficient])
|
||||
major=0
|
||||
@@ -160,16 +115,13 @@ if test "x$GCC" = xyes -a "x$acv_mesa_CLANG" = xno; then
|
||||
GCC_VERSION_MINOR=`echo $GCC_VERSION | cut -d. -f2`
|
||||
fi
|
||||
|
||||
if test $GCC_VERSION_MAJOR -lt 4 -o $GCC_VERSION_MAJOR -eq 4 -a $GCC_VERSION_MINOR -lt 2 ; then
|
||||
if test $GCC_VERSION_MAJOR -lt 3 -o $GCC_VERSION_MAJOR -eq 3 -a $GCC_VERSION_MINOR -lt 3 ; then
|
||||
AC_MSG_RESULT([no])
|
||||
AC_MSG_ERROR([If using GCC, version 4.2.0 or later is required.])
|
||||
AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
|
||||
else
|
||||
AC_MSG_RESULT([yes])
|
||||
fi
|
||||
|
||||
if test $GCC_VERSION_MAJOR -lt 4 -o $GCC_VERSION_MAJOR -eq 4 -a $GCC_VERSION_MINOR -lt 6 ; then
|
||||
USE_GNU99=yes
|
||||
fi
|
||||
if test "x$cross_compiling" = xyes; then
|
||||
GEN_ASM_OFFSETS=yes
|
||||
fi
|
||||
@@ -228,13 +180,7 @@ esac
|
||||
|
||||
dnl Add flags for gcc and g++
|
||||
if test "x$GCC" = xyes; then
|
||||
CFLAGS="$CFLAGS -Wall"
|
||||
|
||||
if test "x$USE_GNU99" = xyes; then
|
||||
CFLAGS="$CFLAGS -std=gnu99"
|
||||
else
|
||||
CFLAGS="$CFLAGS -std=c99"
|
||||
fi
|
||||
CFLAGS="$CFLAGS -Wall -std=c99"
|
||||
|
||||
# Enable -Werror=implicit-function-declaration and
|
||||
# -Werror=missing-prototypes, if available, or otherwise, just
|
||||
@@ -1407,7 +1353,7 @@ if test "x$enable_openvg" = xyes; then
|
||||
fi
|
||||
|
||||
AC_MSG_ERROR([Cannot enable OpenVG, because egl_gallium has been removed and
|
||||
OpenVG has not been integrated into standard libEGL yet])
|
||||
OpenVG hasn't been integrated into standard libEGL yet])
|
||||
|
||||
EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
|
||||
VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS $PTHREAD_LIBS"
|
||||
@@ -1421,60 +1367,44 @@ dnl Gallium G3DVL configuration
|
||||
dnl
|
||||
if test -n "$with_gallium_drivers" -a "x$with_gallium_drivers" != xswrast; then
|
||||
if test "x$enable_xvmc" = xauto; then
|
||||
PKG_CHECK_EXISTS([xvmc >= $XVMC_REQUIRED], [enable_xvmc=yes], [enable_xvmc=no])
|
||||
PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
|
||||
fi
|
||||
|
||||
if test "x$enable_vdpau" = xauto; then
|
||||
PKG_CHECK_EXISTS([vdpau >= $VDPAU_REQUIRED], [enable_vdpau=yes], [enable_vdpau=no])
|
||||
PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
|
||||
fi
|
||||
|
||||
if test "x$enable_omx" = xauto; then
|
||||
PKG_CHECK_EXISTS([libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED], [enable_omx=yes], [enable_omx=no])
|
||||
PKG_CHECK_EXISTS([libomxil-bellagio], [enable_omx=yes], [enable_omx=no])
|
||||
fi
|
||||
|
||||
if test "x$enable_va" = xauto; then
|
||||
PKG_CHECK_EXISTS([libva >= $LIBVA_REQUIRED], [enable_va=yes], [enable_va=no])
|
||||
PKG_CHECK_EXISTS([libva], [enable_va=yes], [enable_va=no])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$enable_dri" = xyes -o \
|
||||
"x$enable_xvmc" = xyes -o \
|
||||
"x$enable_vdpau" = xyes -o \
|
||||
"x$enable_omx" = xyes -o \
|
||||
"x$enable_va" = xyes; then
|
||||
need_gallium_vl=yes
|
||||
fi
|
||||
AM_CONDITIONAL(NEED_GALLIUM_VL, test "x$need_gallium_vl" = xyes)
|
||||
|
||||
if test "x$enable_xvmc" = xyes -o \
|
||||
"x$enable_vdpau" = xyes -o \
|
||||
"x$enable_omx" = xyes -o \
|
||||
"x$enable_va" = xyes; then
|
||||
PKG_CHECK_MODULES([VL], [x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED])
|
||||
need_gallium_vl_winsys=yes
|
||||
fi
|
||||
AM_CONDITIONAL(NEED_GALLIUM_VL_WINSYS, test "x$need_gallium_vl_winsys" = xyes)
|
||||
|
||||
if test "x$enable_xvmc" = xyes; then
|
||||
PKG_CHECK_MODULES([XVMC], [xvmc >= $XVMC_REQUIRED])
|
||||
PKG_CHECK_MODULES([XVMC], [xvmc >= $XVMC_REQUIRED x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED])
|
||||
enable_gallium_loader=$enable_shared_pipe_drivers
|
||||
fi
|
||||
AM_CONDITIONAL(HAVE_ST_XVMC, test "x$enable_xvmc" = xyes)
|
||||
|
||||
if test "x$enable_vdpau" = xyes; then
|
||||
PKG_CHECK_MODULES([VDPAU], [vdpau >= $VDPAU_REQUIRED])
|
||||
PKG_CHECK_MODULES([VDPAU], [vdpau >= $VDPAU_REQUIRED x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED],
|
||||
[VDPAU_LIBS="`$PKG_CONFIG --libs x11-xcb xcb xcb-dri2`"])
|
||||
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])
|
||||
PKG_CHECK_MODULES([OMX], [libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED])
|
||||
enable_gallium_loader=$enable_shared_pipe_drivers
|
||||
fi
|
||||
AM_CONDITIONAL(HAVE_ST_OMX, test "x$enable_omx" = xyes)
|
||||
|
||||
if test "x$enable_va" = xyes; then
|
||||
PKG_CHECK_MODULES([VA], [libva >= $LIBVA_REQUIRED])
|
||||
PKG_CHECK_MODULES([VA], [libva >= 0.35.0 x11-xcb xcb-dri2 >= $XCBDRI2_REQUIRED],
|
||||
[VA_LIBS="`$PKG_CONFIG --libs x11-xcb xcb-dri2`"])
|
||||
enable_gallium_loader=$enable_shared_pipe_drivers
|
||||
fi
|
||||
AM_CONDITIONAL(HAVE_ST_VA, test "x$enable_va" = xyes)
|
||||
@@ -1604,13 +1534,6 @@ if test "x$with_egl_platforms" != "x" -a "x$enable_egl" != xyes; then
|
||||
AC_MSG_ERROR([cannot build egl state tracker without EGL library])
|
||||
fi
|
||||
|
||||
PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland_scanner],
|
||||
WAYLAND_SCANNER=`$PKG_CONFIG --variable=wayland_scanner wayland_scanner`,
|
||||
WAYLAND_SCANNER='')
|
||||
if test "x$WAYLAND_SCANNER" = x; then
|
||||
AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner])
|
||||
fi
|
||||
|
||||
# Do per-EGL platform setups and checks
|
||||
egl_platforms=`IFS=', '; echo $with_egl_platforms`
|
||||
for plat in $egl_platforms; do
|
||||
@@ -1618,9 +1541,9 @@ for plat in $egl_platforms; do
|
||||
wayland)
|
||||
PKG_CHECK_MODULES([WAYLAND], [wayland-client >= $WAYLAND_REQUIRED wayland-server >= $WAYLAND_REQUIRED])
|
||||
|
||||
if test "x$WAYLAND_SCANNER" = x; then
|
||||
AC_MSG_ERROR([wayland-scanner is needed to compile the wayland egl platform])
|
||||
fi
|
||||
WAYLAND_PREFIX=`$PKG_CONFIG --variable=prefix wayland-client`
|
||||
AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner],,
|
||||
[${WAYLAND_PREFIX}/bin$PATH_SEPARATOR$PATH])
|
||||
;;
|
||||
|
||||
x11)
|
||||
@@ -1651,7 +1574,7 @@ done
|
||||
# libEGL wants to default to the first platform specified in
|
||||
# ./configure. parse that here.
|
||||
if test "x$egl_platforms" != "x"; then
|
||||
FIRST_PLATFORM_CAPS=`echo $egl_platforms | sed 's| .*||' | tr '[[a-z]]' '[[A-Z]]'`
|
||||
FIRST_PLATFORM_CAPS=`echo $egl_platforms | sed 's| .*||' | tr 'a-z' 'A-Z'`
|
||||
EGL_NATIVE_PLATFORM="_EGL_PLATFORM_$FIRST_PLATFORM_CAPS"
|
||||
else
|
||||
EGL_NATIVE_PLATFORM="_EGL_INVALID_PLATFORM"
|
||||
@@ -2215,6 +2138,7 @@ AC_CONFIG_FILES([Makefile
|
||||
src/egl/drivers/dri2/Makefile
|
||||
src/egl/main/Makefile
|
||||
src/egl/main/egl.pc
|
||||
src/egl/wayland/Makefile
|
||||
src/egl/wayland/wayland-drm/Makefile
|
||||
src/egl/wayland/wayland-egl/Makefile
|
||||
src/egl/wayland/wayland-egl/wayland-egl.pc
|
||||
@@ -2253,6 +2177,8 @@ AC_CONFIG_FILES([Makefile
|
||||
src/gallium/targets/d3dadapter9/Makefile
|
||||
src/gallium/targets/d3dadapter9/d3d.pc
|
||||
src/gallium/targets/dri/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
|
||||
@@ -2292,6 +2218,8 @@ AC_CONFIG_FILES([Makefile
|
||||
src/mapi/es1api/glesv1_cm.pc
|
||||
src/mapi/es2api/glesv2.pc
|
||||
src/mapi/glapi/gen/Makefile
|
||||
src/mapi/vgapi/Makefile
|
||||
src/mapi/vgapi/vg.pc
|
||||
src/mesa/Makefile
|
||||
src/mesa/gl.pc
|
||||
src/mesa/drivers/dri/dri.pc
|
||||
|
15
docs/GL3.txt
15
docs/GL3.txt
@@ -18,7 +18,7 @@ are exposed in the 3.0 context as extensions.
|
||||
Feature Status
|
||||
----------------------------------------------------- ------------------------
|
||||
|
||||
GL 3.0, GLSL 1.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe
|
||||
GL 3.0, GLSL 1.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe (*), softpipe (*)
|
||||
|
||||
glBindFragDataLocation, glGetFragDataLocation DONE
|
||||
Conditional rendering (GL_NV_conditional_render) DONE (r300, swrast)
|
||||
@@ -45,7 +45,7 @@ GL 3.0, GLSL 1.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, soft
|
||||
glVertexAttribI commands DONE
|
||||
Depth format cube textures DONE ()
|
||||
GLX_ARB_create_context (GLX 1.4 is required) DONE
|
||||
Multisample anti-aliasing DONE (llvmpipe (*), softpipe (*), r300)
|
||||
Multisample anti-aliasing DONE (r300)
|
||||
|
||||
(*) llvmpipe and softpipe have fake Multisample anti-aliasing support
|
||||
|
||||
@@ -191,16 +191,7 @@ GL 4.5, GLSL 4.50:
|
||||
GL_ARB_conditional_render_inverted DONE (i965, nv50, nvc0, llvmpipe, softpipe)
|
||||
GL_ARB_cull_distance not started
|
||||
GL_ARB_derivative_control DONE (i965, nv50, nvc0, r600)
|
||||
GL_ARB_direct_state_access started
|
||||
- Transform Feedback object started (Martin Peres)
|
||||
- Buffer object started (Laura Ekstrand)
|
||||
- Framebuffer object started (Laura Ekstrand)
|
||||
- Renderbuffer object not started
|
||||
- Texture object started (Laura Ekstrand)
|
||||
- Vertex array object started (Fredrik Höglund)
|
||||
- Sampler object not started
|
||||
- Program Pipeline object not started
|
||||
- Query object started (Martin Peres)
|
||||
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)
|
||||
|
@@ -16,38 +16,6 @@
|
||||
|
||||
<h1>News</h1>
|
||||
|
||||
<h2>February 06, 2015</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.4.4.html">Mesa 10.4.4</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>January 24, 2015</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.4.3.html">Mesa 10.4.3</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>January 12, 2015</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.3.7.html">Mesa 10.3.7</a>
|
||||
and <a href="relnotes/10.4.2.html">Mesa 10.4.2</a> are released.
|
||||
|
||||
These are bug-fix releases from the 10.3 and 10.4 branches, respectively.
|
||||
<br>
|
||||
NOTE: It is anticipated that 10.3.7 will be the final release in the 10.3
|
||||
series. Users of 10.3 are encouraged to migrate to the 10.4 series in order
|
||||
to obtain future fixes.
|
||||
</p>
|
||||
|
||||
<h2>December 29, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.3.6.html">Mesa 10.3.6</a>
|
||||
and <a href="relnotes/10.4.1.html">Mesa 10.4.1</a> are released.
|
||||
|
||||
These are bug-fix releases from the 10.3 and 10.4 branches, respectively.
|
||||
</p>
|
||||
|
||||
<h2>December 14, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.4.html">Mesa 10.4</a> is released. This is a new
|
||||
@@ -55,18 +23,6 @@ development release. See the release notes for more information about
|
||||
the release.
|
||||
</p>
|
||||
|
||||
<h2>December 5, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.3.5.html">Mesa 10.3.5</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>November 21, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.3.4.html">Mesa 10.3.4</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>November 8, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.3.3.html">Mesa 10.3.3</a> is released.
|
||||
|
@@ -38,10 +38,6 @@
|
||||
Version 2.6.4 or later should work.
|
||||
</li>
|
||||
<br>
|
||||
<li><a href="http://www.makotemplates.org/">Python Mako module</a> -
|
||||
Python Mako module is required. Version 0.7.3 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>
|
||||
@@ -82,7 +78,7 @@ the needed dependencies:
|
||||
<pre>
|
||||
sudo yum install flex bison imake libtool xorg-x11-proto-devel libdrm-devel \
|
||||
gcc-c++ xorg-x11-server-devel libXi-devel libXmu-devel libXdamage-devel git \
|
||||
expat-devel llvm-devel python-mako
|
||||
expat-devel llvm-devel
|
||||
</pre>
|
||||
|
||||
|
||||
|
@@ -21,15 +21,7 @@ The release notes summarize what's new or changed in each Mesa release.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="relnotes/10.4.4.html">10.4.4 release notes</a>
|
||||
<li><a href="relnotes/10.4.3.html">10.4.3 release notes</a>
|
||||
<li><a href="relnotes/10.4.2.html">10.4.2 release notes</a>
|
||||
<li><a href="relnotes/10.3.7.html">10.3.7 release notes</a>
|
||||
<li><a href="relnotes/10.4.1.html">10.4.1 release notes</a>
|
||||
<li><a href="relnotes/10.3.6.html">10.3.6 release notes</a>
|
||||
<li><a href="relnotes/10.4.html">10.4 release notes</a>
|
||||
<li><a href="relnotes/10.3.5.html">10.3.5 release notes</a>
|
||||
<li><a href="relnotes/10.3.4.html">10.3.4 release notes</a>
|
||||
<li><a href="relnotes/10.3.3.html">10.3.3 release notes</a>
|
||||
<li><a href="relnotes/10.3.2.html">10.3.2 release notes</a>
|
||||
<li><a href="relnotes/10.3.1.html">10.3.1 release notes</a>
|
||||
|
@@ -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,124 +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>
|
||||
c4d053d6bc6604cb5c93c99e0ef2e815c539f26dc5a03737eb3809bc1767d12f MesaLib-10.3.6.tar.gz
|
||||
8d43673c6788fbf85f9c36c3a95c61ccf46f8835fc9c0d85d34474490d80572b MesaLib-10.3.6.tar.bz2
|
||||
6b5b1e9a13949cfdb76fe51e8dcc3ea71e464a5ca73d11fdc29c20c4ba3f411a MesaLib-10.3.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=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,93 +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.7 Release Notes / January 12, 2015</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.3.7 is a bug fix release which fixes bugs found since the 10.3.6 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.3.7 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>
|
||||
bc13f33c19bc9f44a0565fdd51a8f9d1c0153a3365c429ceaf4ef43b7022b052 MesaLib-10.3.7.tar.gz
|
||||
43c6ced15e237cbb21b3082d7c0b42777c50c1f731d0d4b5efb5231063fb6a5b MesaLib-10.3.7.tar.bz2
|
||||
d821fd46baf804fecfcf403e901800a4b996c7dd1c83f20a354b46566a49026f MesaLib-10.3.7.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=85529">Bug 85529</a> - Surfaces not drawn in Unvanquished</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=87619">Bug 87619</a> - Changes to state such as render targets change fragment shader without marking it dirty.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Chad Versace (2):</p>
|
||||
<ul>
|
||||
<li>i965: Use safer pointer arithmetic in intel_texsubimage_tiled_memcpy()</li>
|
||||
<li>i965: Use safer pointer arithmetic in gather_oa_results()</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (2):</p>
|
||||
<ul>
|
||||
<li>docs: Add sha256 sums for the 10.3.6 release</li>
|
||||
<li>Update version to 10.3.7</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (2):</p>
|
||||
<ul>
|
||||
<li>nv50,nvc0: set vertex id base to index_bias</li>
|
||||
<li>nv50/ir: fix texture offsets in release builds</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (2):</p>
|
||||
<ul>
|
||||
<li>i965: Add missing BRW_NEW_*_PROG_DATA to texture/renderbuffer atoms.</li>
|
||||
<li>i965: Fix start/base_vertex_location for >1 prims but !BRW_NEW_VERTICES.</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (3):</p>
|
||||
<ul>
|
||||
<li>glsl_to_tgsi: fix a bug in copy propagation</li>
|
||||
<li>vbo: ignore primitive restart if FixedIndex is enabled in DrawArrays</li>
|
||||
<li>st/mesa: fix GL_PRIMITIVE_RESTART_FIXED_INDEX</li>
|
||||
</ul>
|
||||
|
||||
<p>Michel Dänzer (1):</p>
|
||||
<ul>
|
||||
<li>radeonsi: Don't modify PA_SC_RASTER_CONFIG register value if rb_mask == 0</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
114
docs/relnotes/10.4.5.html
Normal file
114
docs/relnotes/10.4.5.html
Normal file
@@ -0,0 +1,114 @@
|
||||
<!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.4.5 Release Notes / February 21, 2015</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.4.5 is a bug fix release which fixes bugs found since the 10.4.4 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.4.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>
|
||||
e12bbdaee9a758617e8ebd0bb0e987f72addd11db2e4da25ba695e386cd63843 MesaLib-10.4.5.tar.gz
|
||||
bf60000700a9d58e3aca2bfeee7e781053b0d839e61a95b1883e05a2dee247a0 MesaLib-10.4.5.tar.bz2
|
||||
3b926de8eee500bb67cf85332c51292f826cc539b8636382aadbb8e70c76527a MesaLib-10.4.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=82477">Bug 82477</a> - [softpipe] piglit fp-long-alu regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88658">Bug 88658</a> - (bisected) Slow video playback on Kabini</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89069">Bug 89069</a> - Lack of grass in The Talos Principle on radeonsi (native\wine\nine)</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Carl Worth (1):</p>
|
||||
<ul>
|
||||
<li>Revert use of Mesa IR optimizer for ARB_fragment_programs</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (3):</p>
|
||||
<ul>
|
||||
<li>docs: Add sha256 sums for the 10.4.4 release</li>
|
||||
<li>get-pick-list.sh: Require explicit "10.4" for nominating stable patches</li>
|
||||
<li>Update version to 10.4.5</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (3):</p>
|
||||
<ul>
|
||||
<li>nvc0: bail out of 2d blits with non-A8_UNORM alpha formats</li>
|
||||
<li>st/mesa: treat resource-less xfb buffers as if they weren't there</li>
|
||||
<li>nvc0: allow holes in xfb target lists</li>
|
||||
</ul>
|
||||
|
||||
<p>Jeremy Huddleston Sequoia (2):</p>
|
||||
<ul>
|
||||
<li>darwin: build fix</li>
|
||||
<li>darwin: build fix</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (4):</p>
|
||||
<ul>
|
||||
<li>i965: Override swizzles for integer luminance formats.</li>
|
||||
<li>i965: Use a gl_color_union for sampler border color.</li>
|
||||
<li>i965: Fix integer border color on Haswell.</li>
|
||||
<li>glsl: Reduce memory consumption of copy propagation passes.</li>
|
||||
</ul>
|
||||
|
||||
<p>Laura Ekstrand (1):</p>
|
||||
<ul>
|
||||
<li>main: Fixed _mesa_GetCompressedTexImage_sw to copy slices correctly.</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (5):</p>
|
||||
<ul>
|
||||
<li>r600g,radeonsi: don't append to streamout buffers that haven't been used yet</li>
|
||||
<li>radeonsi: fix instanced arrays with non-zero start instance</li>
|
||||
<li>radeonsi: small fix in SPI state</li>
|
||||
<li>mesa: fix AtomicBuffer typo in _mesa_DeleteBuffers</li>
|
||||
<li>radeonsi: fix a crash if a stencil ref state is set before a DSA state</li>
|
||||
</ul>
|
||||
|
||||
<p>Michel Dänzer (2):</p>
|
||||
<ul>
|
||||
<li>st/mesa: Don't use PIPE_USAGE_STREAM for GL_PIXEL_UNPACK_BUFFER_ARB</li>
|
||||
<li>Revert "radeon/llvm: enable unsafe math for graphics shaders"</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
143
docs/relnotes/10.4.6.html
Normal file
143
docs/relnotes/10.4.6.html
Normal file
@@ -0,0 +1,143 @@
|
||||
<!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.4.6 Release Notes / March 06, 2015</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.4.6 is a bug fix release which fixes bugs found since the 10.4.5 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.4.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>
|
||||
46c9082142e811c01e49a2c332a9ac0a1eb98f2908985fb9df216539d7eaeaf4 MesaLib-10.4.6.tar.gz
|
||||
d8baedd20e79ccd98a5a7b05e23d59a30892e68de1fcc057ca6873dafca02735 MesaLib-10.4.6.tar.bz2
|
||||
6aded6eac7f0d4d55117b8b581d8424710bbb4c768fc90f7b881f29311a751aa MesaLib-10.4.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=45348">Bug 45348</a> - [swrast] piglit fbo-drawbuffers-arbfp regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=84613">Bug 84613</a> - [G965, bisected] piglit regressions : glslparsertest.glsl2</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=87516">Bug 87516</a> - glProgramBinary violates spec</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88885">Bug 88885</a> - Transform feedback uses incorrect interleaving if a previous draw did not write gl_Position</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89180">Bug 89180</a> - [IVB regression] Rendering issues in Mass Effect through VMware Workstation</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Abdiel Janulgue (2):</p>
|
||||
<ul>
|
||||
<li>glsl: Don't optimize min/max into saturate when EmitNoSat is set</li>
|
||||
<li>st/mesa: For vertex shaders, don't emit saturate when SM 3.0 is unsupported</li>
|
||||
</ul>
|
||||
|
||||
<p>Andreas Boll (1):</p>
|
||||
<ul>
|
||||
<li>glx: Fix returned values of GLX_RENDERER_PREFERRED_PROFILE_MESA</li>
|
||||
</ul>
|
||||
|
||||
<p>Brian Paul (2):</p>
|
||||
<ul>
|
||||
<li>swrast: fix multiple color buffer writing</li>
|
||||
<li>st/mesa: fix sampler view reference counting bug in glDraw/CopyPixels</li>
|
||||
</ul>
|
||||
|
||||
<p>Chris Forbes (1):</p>
|
||||
<ul>
|
||||
<li>i965/gs: Check newly-generated GS-out VUE map against correct stage</li>
|
||||
</ul>
|
||||
|
||||
<p>Eduardo Lima Mitev (1):</p>
|
||||
<ul>
|
||||
<li>mesa: Fix error validating args for TexSubImage3D</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (6):</p>
|
||||
<ul>
|
||||
<li>docs: Add sha256 sums for the 10.4.5 release</li>
|
||||
<li>install-lib-links: remove the .install-lib-links file</li>
|
||||
<li>Revert "mesa: Correct backwards NULL check."</li>
|
||||
<li>mesa: cherry-pick the second half of commit 2aa71e9485a</li>
|
||||
<li>Revert "gallivm: Update for RTDyldMemoryManager becoming an unique_ptr."</li>
|
||||
<li>Update version to 10.4.6</li>
|
||||
</ul>
|
||||
|
||||
<p>Ian Romanick (3):</p>
|
||||
<ul>
|
||||
<li>mesa: Add missing error checks in _mesa_ProgramBinary</li>
|
||||
<li>mesa: Ensure that length is set to zero in _mesa_GetProgramBinary</li>
|
||||
<li>mesa: Always generate GL_INVALID_OPERATION in _mesa_GetProgramBinary</li>
|
||||
</ul>
|
||||
|
||||
<p>Jonathan Gray (1):</p>
|
||||
<ul>
|
||||
<li>auxilary/os: correct sysctl use in os_get_total_physical_memory()</li>
|
||||
</ul>
|
||||
|
||||
<p>José Fonseca (1):</p>
|
||||
<ul>
|
||||
<li>gallivm: Update for RTDyldMemoryManager becoming an unique_ptr.</li>
|
||||
</ul>
|
||||
|
||||
<p>Leo Liu (1):</p>
|
||||
<ul>
|
||||
<li>st/omx/dec/h264: fix picture out-of-order with poc type 0 v2</li>
|
||||
</ul>
|
||||
|
||||
<p>Lucas Stach (1):</p>
|
||||
<ul>
|
||||
<li>install-lib-links: don't depend on .libs directory</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (2):</p>
|
||||
<ul>
|
||||
<li>vbo: fix an unitialized-variable warning</li>
|
||||
<li>radeonsi: fix point sprites</li>
|
||||
</ul>
|
||||
|
||||
<p>Matt Turner (4):</p>
|
||||
<ul>
|
||||
<li>glsl: Rewrite and fix min/max to saturate optimization.</li>
|
||||
<li>mesa: Correct backwards NULL check.</li>
|
||||
<li>i965/fs: Don't use backend_visitor::instructions after creating the CFG.</li>
|
||||
<li>mesa: Correct backwards NULL check.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
134
docs/relnotes/10.4.7.html
Normal file
134
docs/relnotes/10.4.7.html
Normal file
@@ -0,0 +1,134 @@
|
||||
<!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.4.7 Release Notes / March 20, 2015</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.4.7 is a bug fix release which fixes bugs found since the 10.4.6 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.4.7 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>
|
||||
9e7b59267199658808f8b33e0410b86fbafbdcd52378658b9df65fac9d24947f MesaLib-10.4.7.tar.gz
|
||||
2c351c98671f9a7ab3fd9c601bb7a255801b1580f5dd0992639f99152801b0d2 MesaLib-10.4.7.tar.bz2
|
||||
d14ac578b5ce16560757b53fbd1cb4d6b34652f8e110e4b10a019adc82e67ffd MesaLib-10.4.7.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=79202">Bug 79202</a> - valgrind errors in glsl-fs-uniform-array-loop-unroll.shader_test; random code generation</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89156">Bug 89156</a> - r300g: GL_COMPRESSED_RED_RGTC1 / ATI1N support broken</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89224">Bug 89224</a> - Incorrect rendering of Unigine Valley running in VM on VMware Workstation</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89530">Bug 89530</a> - FTBFS in loader: missing fstat</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Andrey Sudnik (1):</p>
|
||||
<ul>
|
||||
<li>i965/vec4: Don't lose the saturate modifier in copy propagation.</li>
|
||||
</ul>
|
||||
|
||||
<p>Daniel Stone (1):</p>
|
||||
<ul>
|
||||
<li>egl: Take alpha bits into account when selecting GBM formats</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (6):</p>
|
||||
<ul>
|
||||
<li>docs: Add sha256 sums for the 10.4.6 release</li>
|
||||
<li>cherry-ignore: add not applicable/rejected commits</li>
|
||||
<li>mesa: rename format_info.c to format_info.h</li>
|
||||
<li>loader: include <sys/stat.h> for non-sysfs builds</li>
|
||||
<li>auxiliary/os: fix the android build - s/drm_munmap/os_munmap/</li>
|
||||
<li>Update version to 10.4.7</li>
|
||||
</ul>
|
||||
|
||||
<p>Iago Toral Quiroga (1):</p>
|
||||
<ul>
|
||||
<li>i965: Fix out-of-bounds accesses into pull_constant_loc array</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (4):</p>
|
||||
<ul>
|
||||
<li>freedreno: move fb state copy after checking for size change</li>
|
||||
<li>freedreno/ir3: fix array count returned by TXQ</li>
|
||||
<li>freedreno/ir3: get the # of miplevels from getinfo</li>
|
||||
<li>freedreno: fix slice pitch calculations</li>
|
||||
</ul>
|
||||
|
||||
<p>Marc-Andre Lureau (1):</p>
|
||||
<ul>
|
||||
<li>gallium/auxiliary/indices: fix start param</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (4):</p>
|
||||
<ul>
|
||||
<li>r300g: fix RGTC1 and LATC1 SNORM formats</li>
|
||||
<li>r300g: fix a crash when resolving into an sRGB texture</li>
|
||||
<li>r300g: fix sRGB->sRGB blits</li>
|
||||
<li>radeonsi: increase coords array size for radeon_llvm_emit_prepare_cube_coords</li>
|
||||
</ul>
|
||||
|
||||
<p>Mario Kleiner (1):</p>
|
||||
<ul>
|
||||
<li>glx: Handle out-of-sequence swap completion events correctly. (v2)</li>
|
||||
</ul>
|
||||
|
||||
<p>Matt Turner (2):</p>
|
||||
<ul>
|
||||
<li>r300g: Use PATH_MAX instead of limiting ourselves to 100 chars.</li>
|
||||
<li>r300g: Check return value of snprintf().</li>
|
||||
</ul>
|
||||
|
||||
<p>Rob Clark (2):</p>
|
||||
<ul>
|
||||
<li>freedreno/ir3: fix silly typo for binning pass shaders</li>
|
||||
<li>freedreno: update generated headers</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Iglesias Gonsalvez (1):</p>
|
||||
<ul>
|
||||
<li>glsl: optimize (0 cmp x + y) into (-x cmp y).</li>
|
||||
</ul>
|
||||
|
||||
<p>Stefan Dösinger (1):</p>
|
||||
<ul>
|
||||
<li>r300g: Fix the ATI1N swizzle (RGTC1 and LATC1)</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,212 +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.5.0 Release Notes / March 06, 2015</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.5.0 is a new development release.
|
||||
People who are concerned with stability and reliability should stick
|
||||
with a previous release or wait for Mesa 10.5.1.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.5.0 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>
|
||||
2bb6e2e982ee4d8264d52d638c2a4e3f8a164190336d72d4e34ae1304d87ed91 mesa-10.5.0.tar.gz
|
||||
d7ca9f9044bbdd674377e3eebceef1fae339c8817b9aa435c2053e4fea44e5d3 mesa-10.5.0.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
|
||||
<p>
|
||||
Note: some of the new features are only available with certain drivers.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>GL_ARB_framebuffer_sRGB on freedreno</li>
|
||||
<li>GL_ARB_texture_rg on freedreno</li>
|
||||
<li>GL_EXT_packed_float on freedreno</li>
|
||||
<li>GL_EXT_polygon_offset_clamp on i965, nv50, nvc0, r600, radeonsi, llvmpipe</li>
|
||||
<li>GL_EXT_texture_shared_exponent on freedreno</li>
|
||||
<li>GL_EXT_texture_snorm on freedreno</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=10370">Bug 10370</a> - Incorrect pixels read back if draw bitmap texture through Display list</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=45348">Bug 45348</a> - [swrast] piglit fbo-drawbuffers-arbfp regression</li>
|
||||
|
||||
<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=67672">Bug 67672</a> - [llvmpipe] lp_test_arit fails on old CPUs</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77544">Bug 77544</a> - i965: Try to use LINE instructions to perform MAD with immediate arguments</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=80568">Bug 80568</a> - [gen4] GPU Crash During Google Chrome Operation</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82477">Bug 82477</a> - [softpipe] piglit fp-long-alu regression</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=83463">Bug 83463</a> - [swrast] piglit glsl-vs-clamp-1 regression</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=83510">Bug 83510</a> - Graphical glitches in Unreal Engine 4</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83908">Bug 83908</a> - [i965] Incorrect icon colors in Steam Big Picture</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=84212">Bug 84212</a> - [BSW]ES3-CTS.shaders.loops.do_while_dynamic_iterations.vector_counter_vertex fails and causes GPU hang</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=84651">Bug 84651</a> - Distorted graphics or black window when running Battle.net app on Intel hardware via wine</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>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=85367">Bug 85367</a> - [gen4] GPU hang in glmark-es2</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=85467">Bug 85467</a> - [llvmpipe] piglit gl-1.0-dlist-beginend failure with llvm-3.6.0svn</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=85529">Bug 85529</a> - Surfaces not drawn in Unvanquished</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>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=85696">Bug 85696</a> - r600g+nine: Bioshock shader failure after 7b1c0cbc90d456384b0950ad21faa3c61a6b43ff</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86089">Bug 86089</a> - [r600g][mesa 10.4.0-dev] shader failure - r600_sb::bc_finalizer::cf_peephole() when starting Second Life</li>
|
||||
|
||||
<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>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86760">Bug 86760</a> - mesa doesn't build: recipe for target 'r600_llvm.lo' failed</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86764">Bug 86764</a> - [SNB+ Bisected]Piglit glean/pointSprite fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86788">Bug 86788</a> - (bisected) 32bit UrbanTerror 4.1 timedemo sse4.1 segfault...</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86811">Bug 86811</a> - [BDW/BSW Bisected]Piglit spec_arb_shading_language_packing_execution_built-in-functions_vs-unpackSnorm4x8 fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86837">Bug 86837</a> - kodi segfault since auxiliary/vl: rework the build of the VL code</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86939">Bug 86939</a> - test_vf_float_conversions.cpp:63:12: error: expected primary-expression before ‘union’</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86944">Bug 86944</a> - glsl_parser_extras.cpp", line 1455: Error: Badly formed expression. (Oracle Studio)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86958">Bug 86958</a> - lp_bld_misc.cpp:503:40: error: no matching function for call to ‘llvm::EngineBuilder::setMCJITMemoryManager(ShaderMemoryManager*&)’</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86969">Bug 86969</a> - _drm_intel_gem_bo_references() function takes half the CPU with Witcher2 game</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=87076">Bug 87076</a> - Dead Island needs allow_glsl_extension_directive_midshader</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=87516">Bug 87516</a> - glProgramBinary violates spec</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=87619">Bug 87619</a> - Changes to state such as render targets change fragment shader without marking it dirty.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=87658">Bug 87658</a> - [llvmpipe] SEGV in sse2_has_daz on ancient Pentium4-M</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=87694">Bug 87694</a> - [SNB] Crash in brw_begin_transform_feedback</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=87886">Bug 87886</a> - constant fps drops with Intel and Radeon</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=87887">Bug 87887</a> - [i965 Bisected]ES2-CTS.gtf.GL.cos.cos_float_vert_xvary fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=87913">Bug 87913</a> - CPU cacheline size of 0 can be returned by CPUID leaf 0x80000006 in some virtual machines</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88079">Bug 88079</a> - dEQP-GLES3.functional.fbo.completeness.renderable.renderbuffer.color0 tests fail due to enabling of GL_RGB and GL_RGBA</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88170">Bug 88170</a> - 32 bits opengl apps crash with latest llvm 3.6 git / mesa git / radeonsi</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88219">Bug 88219</a> - include/c11/threads_posix.h:197: undefined reference to `pthread_mutex_lock'</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88227">Bug 88227</a> - Radeonsi: High GTT usage in Prison Architect large map</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88248">Bug 88248</a> - Calling glClear while there is an occlusion query in progress messes up the results</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88335">Bug 88335</a> - format_pack.c:9567:22: error: expected ')'</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88385">Bug 88385</a> - [SNB+ Bisected]Ogles3conform ES3-CTS.gtf.GL3Tests.packed_pixels.packed_pixels core dumped</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88467">Bug 88467</a> - nir.c:140: error: ‘nir_src’ has no member named ‘ssa’</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88478">Bug 88478</a> - #error "<malloc.h> has been replaced by <stdlib.h>"</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88519">Bug 88519</a> - sha1.c:210:22: error: 'grcy_md_hd_t' undeclared (first use in this function)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88523">Bug 88523</a> - sha1.c:37: error: 'SHA1_CTX' undeclared (first use in this function)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88561">Bug 88561</a> - [radeonsi][regression,bisected] Depth test/buffer issues in Portal</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88658">Bug 88658</a> - (bisected) Slow video playback on Kabini</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88662">Bug 88662</a> - unaligned access to gl_dlist_node</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88783">Bug 88783</a> - FTBFS: Clover: src/gallium/state_trackers/clover/llvm/invocation.cpp:335:49: error: no matching function for call to 'llvm::TargetLibraryInfo::TargetLibraryInfo(llvm::Triple)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88792">Bug 88792</a> - [BDW/BSW Bisected]Piglit spec_ARB_pixel_buffer_object_pbo-read-argb8888 fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88806">Bug 88806</a> - nir/nir_constant_expressions.c:2754:15: error: controlling expression type 'unsigned int' not compatible with any generic association type</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88841">Bug 88841</a> - [SNB/IVB/HSW/BDW Bisected]Piglit spec_EGL_NOK_texture_from_pixmap_basic fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88852">Bug 88852</a> - macros.h(181) : error C2143: syntax error : missing '{' before 'enum [tag]'</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88905">Bug 88905</a> - [SNB+ Bisected]Ogles3conform ES3-CTS.gtf.GL3Tests.packed_pixels.packed_pixels fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88930">Bug 88930</a> - [osmesa] osbuffer->textures should be indexed by attachment type</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88962">Bug 88962</a> - [osmesa] Crash on postprocessing if z buffer is NULL</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89032">Bug 89032</a> - [BDW/BSW/SKL Bisected]Piglit spec_OpenGL_1.1_infinite-spot-light fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89037">Bug 89037</a> - [SKL]Piglit spec_EXT_texture_array_copyteximage_1D_ARRAY_samples=2 sporadically causes GPU hang</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89068">Bug 89068</a> - glTexImage2D regression by texstore_rgba switch to _mesa_format_convert</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89069">Bug 89069</a> - Lack of grass in The Talos Principle on radeonsi (native\wine\nine)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89180">Bug 89180</a> - [IVB regression] Rendering issues in Mass Effect through VMware Workstation</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86330">Bug 86330</a> - lp_bld_debug.cpp:112: multiple definition of `raw_debug_ostream::write_impl(char const*, unsigned long)'</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<ul>
|
||||
<li>Removed support for GCC versions earlier than 4.2.0.</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,217 +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.5.1 Release Notes / March 13, 2015</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.5.1 is a bug fix release which fixes bugs found since the 10.5.0 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.5.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>
|
||||
b5b6256a6d46023e16a675257fd11a0f94d7b3e60a76cf112952da3d0fef8e9b mesa-10.5.1.tar.gz
|
||||
ffc51943d15c6812ee7611d053d8980a683fbd6a4986cff567b12cc66637d679 mesa-10.5.1.tar.xz
|
||||
</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=79202">Bug 79202</a> - valgrind errors in glsl-fs-uniform-array-loop-unroll.shader_test; random code generation</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=84613">Bug 84613</a> - [G965, bisected] piglit regressions : glslparsertest.glsl2</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86747">Bug 86747</a> - Noise in Football Manager 2014 textures</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86974">Bug 86974</a> - INTEL_DEBUG=shader_time always asserts in fs_generator::generate_code() when Mesa is built with --enable-debug (= with asserts)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88246">Bug 88246</a> - Commit 2881b12 causes 43 DrawElements test regressions</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88793">Bug 88793</a> - [BDW/BSW Bisected]Piglit/shaders_glsl-max-varyings fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88883">Bug 88883</a> - ir-a2xx.c: variable changed in assert statement</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88885">Bug 88885</a> - Transform feedback uses incorrect interleaving if a previous draw did not write gl_Position</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89095">Bug 89095</a> - [SNB/IVB/BYT Bisected]Webglc conformance/glsl/functions/glsl-function-mix-float.html fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89156">Bug 89156</a> - r300g: GL_COMPRESSED_RED_RGTC1 / ATI1N support broken</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89224">Bug 89224</a> - Incorrect rendering of Unigine Valley running in VM on VMware Workstation</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89292">Bug 89292</a> - [regression,bisected] incomplete screenshots in some cases</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89311">Bug 89311</a> - [regression, bisected] dEQP: Added entry points for glCompressedTextureSubImage*D.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89312">Bug 89312</a> - [regression, bisected] main: Added entry points for CopyTextureSubImage*D. (d6b7c40cecfe01)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89315">Bug 89315</a> - [HSW, regression, bisected] i965/fs: Emit MAD instructions when possible.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89317">Bug 89317</a> - [HSW, regression, bisected] i965: Add LINTERP/CINTERP to can_do_cmod() (d91390634)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89416">Bug 89416</a> - UE4Editor crash after load project</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89430">Bug 89430</a> - [g965][bisected] arb_copy_image-targets gl_texture* tests fail</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Andrey Sudnik (1):</p>
|
||||
<ul>
|
||||
<li>i965/vec4: Don't lose the saturate modifier in copy propagation.</li>
|
||||
</ul>
|
||||
|
||||
<p>Chris Forbes (1):</p>
|
||||
<ul>
|
||||
<li>i965/gs: Check newly-generated GS-out VUE map against correct stage</li>
|
||||
</ul>
|
||||
|
||||
<p>Daniel Stone (1):</p>
|
||||
<ul>
|
||||
<li>egl: Take alpha bits into account when selecting GBM formats</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (5):</p>
|
||||
<ul>
|
||||
<li>docs: Add sha256 sums for the 10.5.0 release</li>
|
||||
<li>egl/main: no longer export internal function</li>
|
||||
<li>cherry-ignore: ignore a few more commits picked without -x</li>
|
||||
<li>mapi: fix commit 90411b56f6bc817e229d8801ac0adad6d4e3fb7a</li>
|
||||
<li>Update version to 10.5.1</li>
|
||||
</ul>
|
||||
|
||||
<p>Frank Henigman (1):</p>
|
||||
<ul>
|
||||
<li>intel: fix EGLImage renderbuffer _BaseFormat</li>
|
||||
</ul>
|
||||
|
||||
<p>Iago Toral Quiroga (1):</p>
|
||||
<ul>
|
||||
<li>i965: Fix out-of-bounds accesses into pull_constant_loc array</li>
|
||||
</ul>
|
||||
|
||||
<p>Ian Romanick (1):</p>
|
||||
<ul>
|
||||
<li>i965/fs/nir: Use emit_math for nir_op_fpow</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (3):</p>
|
||||
<ul>
|
||||
<li>freedreno: move fb state copy after checking for size change</li>
|
||||
<li>freedreno/ir3: fix array count returned by TXQ</li>
|
||||
<li>freedreno/ir3: get the # of miplevels from getinfo</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (2):</p>
|
||||
<ul>
|
||||
<li>meta/TexSubImage: Stash everything other than PIXEL_TRANSFER/store in meta_begin</li>
|
||||
<li>main/base_tex_format: Properly handle STENCIL_INDEX1/4/16</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (8):</p>
|
||||
<ul>
|
||||
<li>i965: Split Gen4-5 BlitFramebuffer code; prefer BLT over Meta.</li>
|
||||
<li>glsl: Mark array access when copying to a temporary for the ?: operator.</li>
|
||||
<li>i965/fs: Set force_writemask_all on shader_time instructions.</li>
|
||||
<li>i965/fs: Set smear on shader_time diff register.</li>
|
||||
<li>i965/fs: Make emit_shader_time_write return rather than emit.</li>
|
||||
<li>i965/fs: Make get_timestamp() pass back the MOV rather than emitting it.</li>
|
||||
<li>i965/fs: Make emit_shader_time_end() insert before EOT.</li>
|
||||
<li>i965/fs: Don't issue FB writes for bound but unwritten color targets.</li>
|
||||
</ul>
|
||||
|
||||
<p>Laura Ekstrand (2):</p>
|
||||
<ul>
|
||||
<li>main: Fix target checking for CompressedTexSubImage*D.</li>
|
||||
<li>main: Fix target checking for CopyTexSubImage*D.</li>
|
||||
</ul>
|
||||
|
||||
<p>Marc-Andre Lureau (1):</p>
|
||||
<ul>
|
||||
<li>gallium/auxiliary/indices: fix start param</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (3):</p>
|
||||
<ul>
|
||||
<li>r300g: fix RGTC1 and LATC1 SNORM formats</li>
|
||||
<li>r300g: fix a crash when resolving into an sRGB texture</li>
|
||||
<li>r300g: fix sRGB->sRGB blits</li>
|
||||
</ul>
|
||||
|
||||
<p>Matt Turner (12):</p>
|
||||
<ul>
|
||||
<li>i965/vec4: Fix implementation of i2b.</li>
|
||||
<li>mesa: Indent break statements and add a missing one.</li>
|
||||
<li>mesa: Free memory allocated for luminance in readpixels.</li>
|
||||
<li>mesa: Correct backwards NULL check.</li>
|
||||
<li>i965: Consider scratch writes to have side effects.</li>
|
||||
<li>i965/fs: Don't use backend_visitor::instructions after creating the CFG.</li>
|
||||
<li>r300g: Use PATH_MAX instead of limiting ourselves to 100 chars.</li>
|
||||
<li>r300g: Check return value of snprintf().</li>
|
||||
<li>i965/fs: Don't propagate cmod to inst with different type.</li>
|
||||
<li>i965: Tell intel_get_memcpy() which direction the memcpy() is going.</li>
|
||||
<li>Revert SHA1 additions.</li>
|
||||
<li>i965: Avoid applying negate to wrong MAD source.</li>
|
||||
</ul>
|
||||
|
||||
<p>Neil Roberts (4):</p>
|
||||
<ul>
|
||||
<li>meta: In pbo_{Get,}TexSubImage don't repeatedly rebind the source tex</li>
|
||||
<li>Revert "common: Fix PBOs for 1D_ARRAY."</li>
|
||||
<li>meta: Allow GL_UN/PACK_IMAGE_HEIGHT in _mesa_meta_pbo_Get/TexSubImage</li>
|
||||
<li>meta: Fix the y offset for 1D_ARRAY in _mesa_meta_pbo_TexSubImage</li>
|
||||
</ul>
|
||||
|
||||
<p>Rob Clark (11):</p>
|
||||
<ul>
|
||||
<li>freedreno/ir3: fix silly typo for binning pass shaders</li>
|
||||
<li>freedreno/a2xx: fix increment in assert</li>
|
||||
<li>freedreno/a4xx: bit of cleanup</li>
|
||||
<li>freedreno: update generated headers</li>
|
||||
<li>freedreno/a4xx: set PC_PRIM_VTX_CNTL.VAROUT properly</li>
|
||||
<li>freedreno: update generated headers</li>
|
||||
<li>freedreno/a4xx: aniso filtering</li>
|
||||
<li>freedreno/ir3: fix up cat6 instruction encodings</li>
|
||||
<li>freedreno/ir3: add support for memory (cat6) instructions</li>
|
||||
<li>freedreno/ir3: handle flat bypass for a4xx</li>
|
||||
<li>freedreno/ir3: fix failed assert in grouping</li>
|
||||
</ul>
|
||||
|
||||
<p>Stefan Dösinger (1):</p>
|
||||
<ul>
|
||||
<li>r300g: Fix the ATI1N swizzle (RGTC1 and LATC1)</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,129 +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.5.2 Release Notes / March 28, 2015</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.5.2 is a bug fix release which fixes bugs found since the 10.5.1 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.5.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>
|
||||
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=88534">Bug 88534</a> - include/c11/threads_posix.h PTHREAD_MUTEX_RECURSIVE_NP not defined</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89328">Bug 89328</a> - python required to build Mesa release tarballs</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89530">Bug 89530</a> - FTBFS in loader: missing fstat</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89590">Bug 89590</a> - Crash in glLinkProgram with shaders with multiple constant arrays</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89680">Bug 89680</a> - Hard link exist in Mesa 10.5.1 sources</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Anuj Phogat (1):</p>
|
||||
<ul>
|
||||
<li>glsl: Generate link error for non-matching gl_FragCoord redeclarations</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (7):</p>
|
||||
<ul>
|
||||
<li>docs: Add sha256 sums for the 10.5.1 release</li>
|
||||
<li>automake: add missing egl files to the tarball</li>
|
||||
<li>st/egl: don't ship the dri2.c link at the tarball</li>
|
||||
<li>loader: include <sys/stat.h> for non-sysfs builds</li>
|
||||
<li>auxiliary/os: fix the android build - s/drm_munmap/os_munmap/</li>
|
||||
<li>cherry-ignore: add commit non applicable for 10.5</li>
|
||||
<li>Update version to 10.5.2</li>
|
||||
</ul>
|
||||
|
||||
<p>Felix Janda (1):</p>
|
||||
<ul>
|
||||
<li>c11/threads: Use PTHREAD_MUTEX_RECURSIVE by default</li>
|
||||
</ul>
|
||||
|
||||
<p>Francisco Jerez (1):</p>
|
||||
<ul>
|
||||
<li>i965: Set nr_params to the number of uniform components in the VS/GS path.</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (2):</p>
|
||||
<ul>
|
||||
<li>freedreno/a3xx: use the same layer size for all slices</li>
|
||||
<li>freedreno: fix slice pitch calculations</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (1):</p>
|
||||
<ul>
|
||||
<li>radeonsi: increase coords array size for radeon_llvm_emit_prepare_cube_coords</li>
|
||||
</ul>
|
||||
|
||||
<p>Mario Kleiner (2):</p>
|
||||
<ul>
|
||||
<li>glx: Handle out-of-sequence swap completion events correctly. (v2)</li>
|
||||
<li>mapi: Make private copies of name strings provided by client.</li>
|
||||
</ul>
|
||||
|
||||
<p>Rob Clark (1):</p>
|
||||
<ul>
|
||||
<li>freedreno: update generated headers</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Iglesias Gonsalvez (2):</p>
|
||||
<ul>
|
||||
<li>glsl: optimize (0 cmp x + y) into (-x cmp y).</li>
|
||||
<li>configure: Introduce new output variable to ax_check_python_mako_module.m4</li>
|
||||
</ul>
|
||||
|
||||
<p>Tapani Pälli (1):</p>
|
||||
<ul>
|
||||
<li>glsl: fix names in lower_constant_arrays_to_uniforms</li>
|
||||
</ul>
|
||||
|
||||
<p>Tom Stellard (1):</p>
|
||||
<ul>
|
||||
<li>clover: Return 0 as storage size for local kernel args that are not set v2</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -50,7 +50,6 @@
|
||||
#define E_OUTOFMEMORY MAKE_HRESULT(1, 0x007, 14)
|
||||
#define E_NOINTERFACE MAKE_HRESULT(1, 0x000, 0x4002)
|
||||
#define E_POINTER MAKE_HRESULT(1, 0x000, 0x4003)
|
||||
#define E_FAIL MAKE_HRESULT(1, 0x000, 0x4005)
|
||||
|
||||
#define S_OK ((HRESULT)0)
|
||||
#define S_FALSE ((HRESULT)1)
|
||||
@@ -472,7 +471,6 @@ typedef enum _D3DBUSTYPE {
|
||||
} D3DBUSTYPE;
|
||||
|
||||
typedef enum _D3DCMPFUNC {
|
||||
D3DCMP_NEVER_ZERO = 0, //Needed to avoid warnings
|
||||
D3DCMP_NEVER = 1,
|
||||
D3DCMP_LESS = 2,
|
||||
D3DCMP_EQUAL = 3,
|
||||
@@ -573,7 +571,6 @@ typedef enum _D3DDEVTYPE {
|
||||
} D3DDEVTYPE;
|
||||
|
||||
typedef enum _D3DFILLMODE {
|
||||
D3DFILL_SOLID_ZERO = 0,
|
||||
D3DFILL_POINT = 1,
|
||||
D3DFILL_WIREFRAME = 2,
|
||||
D3DFILL_SOLID = 3
|
||||
@@ -654,7 +651,6 @@ typedef enum _D3DFORMAT {
|
||||
D3DFMT_BINARYBUFFER = 199,
|
||||
D3DFMT_ATI1 = MAKEFOURCC('A', 'T', 'I', '1'),
|
||||
D3DFMT_ATI2 = MAKEFOURCC('A', 'T', 'I', '2'),
|
||||
D3DFMT_ATOC = MAKEFOURCC('A', 'T', 'O', 'C'),
|
||||
D3DFMT_DF16 = MAKEFOURCC('D', 'F', '1', '6'),
|
||||
D3DFMT_DF24 = MAKEFOURCC('D', 'F', '2', '4'),
|
||||
D3DFMT_INTZ = MAKEFOURCC('I', 'N', 'T', 'Z'),
|
||||
@@ -662,7 +658,6 @@ typedef enum _D3DFORMAT {
|
||||
D3DFMT_NVDB = MAKEFOURCC('N', 'V', 'D', 'B'),
|
||||
D3DFMT_NV11 = MAKEFOURCC('N', 'V', '1', '1'),
|
||||
D3DFMT_NV12 = MAKEFOURCC('N', 'V', '1', '2'),
|
||||
D3DFMT_RESZ = MAKEFOURCC('R', 'E', 'S', 'Z'),
|
||||
D3DFMT_Y210 = MAKEFOURCC('Y', '2', '1', '0'),
|
||||
D3DFMT_Y216 = MAKEFOURCC('Y', '2', '1', '6'),
|
||||
D3DFMT_Y410 = MAKEFOURCC('Y', '4', '1', '0')
|
||||
|
@@ -106,7 +106,7 @@ typedef void *EGLNativeDisplayType;
|
||||
|
||||
#elif defined(__unix__)
|
||||
|
||||
#if defined(MESA_EGL_NO_X11_HEADERS)
|
||||
#ifdef MESA_EGL_NO_X11_HEADERS
|
||||
|
||||
typedef void *EGLNativeDisplayType;
|
||||
typedef khronos_uintptr_t EGLNativePixmapType;
|
||||
@@ -124,16 +124,8 @@ typedef Window EGLNativeWindowType;
|
||||
|
||||
#endif /* MESA_EGL_NO_X11_HEADERS */
|
||||
|
||||
#elif __HAIKU__
|
||||
#include <kernel/image.h>
|
||||
typedef void *EGLNativeDisplayType;
|
||||
typedef khronos_uintptr_t EGLNativePixmapType;
|
||||
typedef khronos_uintptr_t EGLNativeWindowType;
|
||||
|
||||
#else
|
||||
|
||||
#error "Platform not recognized"
|
||||
|
||||
#endif
|
||||
|
||||
/* EGL 1.2 types, renamed for consistency in EGL 1.3 */
|
||||
|
@@ -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: 29735 $ on $Date: 2015-02-02 19:00:01 -0800 (Mon, 02 Feb 2015) $
|
||||
** Khronos $Revision: 27684 $ on $Date: 2014-08-11 01:21:35 -0700 (Mon, 11 Aug 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 20150202
|
||||
#define GL_GLEXT_VERSION 20140810
|
||||
|
||||
/* Generated C header for:
|
||||
* API: gl
|
||||
@@ -2044,10 +2044,6 @@ GLAPI void APIENTRY glGetDoublei_v (GLenum target, GLuint index, GLdouble *data)
|
||||
|
||||
#ifndef GL_VERSION_4_2
|
||||
#define GL_VERSION_4_2 1
|
||||
#define GL_COPY_READ_BUFFER_BINDING 0x8F36
|
||||
#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37
|
||||
#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24
|
||||
#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23
|
||||
#define GL_UNPACK_COMPRESSED_BLOCK_WIDTH 0x9127
|
||||
#define GL_UNPACK_COMPRESSED_BLOCK_HEIGHT 0x9128
|
||||
#define GL_UNPACK_COMPRESSED_BLOCK_DEPTH 0x9129
|
||||
@@ -2594,6 +2590,7 @@ GLAPI void APIENTRY glBindVertexBuffers (GLuint first, GLsizei count, const GLui
|
||||
#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
|
||||
@@ -2606,25 +2603,25 @@ GLAPI void APIENTRY glBindVertexBuffers (GLuint first, GLsizei count, const GLui
|
||||
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, GLsizeiptr size);
|
||||
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, GLsizeiptr size, const void *data, GLbitfield flags);
|
||||
typedef void (APIENTRYP PFNGLNAMEDBUFFERDATAPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage);
|
||||
typedef void (APIENTRYP PFNGLNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data);
|
||||
typedef void (APIENTRYP PFNGLCOPYNAMEDBUFFERSUBDATAPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
|
||||
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, GLsizeiptr size, 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, GLsizeiptr length, GLbitfield 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, GLsizeiptr length);
|
||||
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, GLsizeiptr size, void *data);
|
||||
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);
|
||||
@@ -2649,7 +2646,7 @@ typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLuint re
|
||||
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, GLsizeiptr size);
|
||||
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);
|
||||
@@ -2697,10 +2694,6 @@ typedef void (APIENTRYP PFNGLGETVERTEXARRAYINDEXED64IVPROC) (GLuint vaobj, GLuin
|
||||
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 PFNGLGETQUERYBUFFEROBJECTI64VPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
|
||||
typedef void (APIENTRYP PFNGLGETQUERYBUFFEROBJECTIVPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
|
||||
typedef void (APIENTRYP PFNGLGETQUERYBUFFEROBJECTUI64VPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
|
||||
typedef void (APIENTRYP PFNGLGETQUERYBUFFEROBJECTUIVPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
|
||||
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);
|
||||
@@ -2729,25 +2722,25 @@ typedef void (APIENTRYP PFNGLTEXTUREBARRIERPROC) (void);
|
||||
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, GLsizeiptr size);
|
||||
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, GLsizeiptr size, const void *data, GLbitfield flags);
|
||||
GLAPI void APIENTRY glNamedBufferData (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage);
|
||||
GLAPI void APIENTRY glNamedBufferSubData (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data);
|
||||
GLAPI void APIENTRY glCopyNamedBufferSubData (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
|
||||
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, GLsizeiptr size, 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, GLsizeiptr length, GLbitfield 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, GLsizeiptr length);
|
||||
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, GLsizeiptr size, void *data);
|
||||
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);
|
||||
@@ -2772,7 +2765,7 @@ GLAPI void APIENTRY glNamedRenderbufferStorageMultisample (GLuint renderbuffer,
|
||||
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, GLsizeiptr size);
|
||||
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);
|
||||
@@ -2820,10 +2813,6 @@ GLAPI void APIENTRY glGetVertexArrayIndexed64iv (GLuint vaobj, GLuint index, GLe
|
||||
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 glGetQueryBufferObjecti64v (GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
|
||||
GLAPI void APIENTRY glGetQueryBufferObjectiv (GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
|
||||
GLAPI void APIENTRY glGetQueryBufferObjectui64v (GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
|
||||
GLAPI void APIENTRY glGetQueryBufferObjectuiv (GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
|
||||
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);
|
||||
@@ -2990,6 +2979,8 @@ GLAPI void APIENTRY glDispatchComputeGroupSizeARB (GLuint num_groups_x, GLuint n
|
||||
|
||||
#ifndef GL_ARB_copy_buffer
|
||||
#define GL_ARB_copy_buffer 1
|
||||
#define GL_COPY_READ_BUFFER_BINDING 0x8F36
|
||||
#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37
|
||||
#endif /* GL_ARB_copy_buffer */
|
||||
|
||||
#ifndef GL_ARB_copy_image
|
||||
@@ -4074,13 +4065,13 @@ GLAPI void APIENTRY glGetNamedStringivARB (GLint namelen, const GLchar *name, GL
|
||||
#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, GLsizeiptr size, GLboolean commit);
|
||||
typedef void (APIENTRYP PFNGLNAMEDBUFFERPAGECOMMITMENTEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit);
|
||||
typedef void (APIENTRYP PFNGLNAMEDBUFFERPAGECOMMITMENTARBPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit);
|
||||
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, GLsizeiptr size, GLboolean commit);
|
||||
GLAPI void APIENTRY glNamedBufferPageCommitmentEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit);
|
||||
GLAPI void APIENTRY glNamedBufferPageCommitmentARB (GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit);
|
||||
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 */
|
||||
|
||||
@@ -4088,7 +4079,7 @@ GLAPI void APIENTRY glNamedBufferPageCommitmentARB (GLuint buffer, GLintptr offs
|
||||
#define GL_ARB_sparse_texture 1
|
||||
#define GL_TEXTURE_SPARSE_ARB 0x91A6
|
||||
#define GL_VIRTUAL_PAGE_SIZE_INDEX_ARB 0x91A7
|
||||
#define GL_NUM_SPARSE_LEVELS_ARB 0x91AA
|
||||
#define GL_MIN_SPARSE_LEVEL_ARB 0x919B
|
||||
#define GL_NUM_VIRTUAL_PAGE_SIZES_ARB 0x91A8
|
||||
#define GL_VIRTUAL_PAGE_SIZE_X_ARB 0x9195
|
||||
#define GL_VIRTUAL_PAGE_SIZE_Y_ARB 0x9196
|
||||
@@ -4353,6 +4344,8 @@ GLAPI void APIENTRY glGetCompressedTexImageARB (GLenum target, GLint level, void
|
||||
|
||||
#ifndef GL_ARB_transform_feedback2
|
||||
#define GL_ARB_transform_feedback2 1
|
||||
#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23
|
||||
#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24
|
||||
#endif /* GL_ARB_transform_feedback2 */
|
||||
|
||||
#ifndef GL_ARB_transform_feedback3
|
||||
@@ -7492,19 +7485,6 @@ GLAPI void APIENTRY glPolygonOffsetEXT (GLfloat factor, GLfloat bias);
|
||||
#endif
|
||||
#endif /* GL_EXT_polygon_offset */
|
||||
|
||||
#ifndef GL_EXT_polygon_offset_clamp
|
||||
#define GL_EXT_polygon_offset_clamp 1
|
||||
#define GL_POLYGON_OFFSET_CLAMP_EXT 0x8E1B
|
||||
typedef void (APIENTRYP PFNGLPOLYGONOFFSETCLAMPEXTPROC) (GLfloat factor, GLfloat units, GLfloat clamp);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glPolygonOffsetClampEXT (GLfloat factor, GLfloat units, GLfloat clamp);
|
||||
#endif
|
||||
#endif /* GL_EXT_polygon_offset_clamp */
|
||||
|
||||
#ifndef GL_EXT_post_depth_coverage
|
||||
#define GL_EXT_post_depth_coverage 1
|
||||
#endif /* GL_EXT_post_depth_coverage */
|
||||
|
||||
#ifndef GL_EXT_provoking_vertex
|
||||
#define GL_EXT_provoking_vertex 1
|
||||
#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT 0x8E4C
|
||||
@@ -7517,20 +7497,6 @@ GLAPI void APIENTRY glProvokingVertexEXT (GLenum mode);
|
||||
#endif
|
||||
#endif /* GL_EXT_provoking_vertex */
|
||||
|
||||
#ifndef GL_EXT_raster_multisample
|
||||
#define GL_EXT_raster_multisample 1
|
||||
#define GL_RASTER_MULTISAMPLE_EXT 0x9327
|
||||
#define GL_RASTER_SAMPLES_EXT 0x9328
|
||||
#define GL_MAX_RASTER_SAMPLES_EXT 0x9329
|
||||
#define GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT 0x932A
|
||||
#define GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT 0x932B
|
||||
#define GL_EFFECTIVE_RASTER_SAMPLES_EXT 0x932C
|
||||
typedef void (APIENTRYP PFNGLRASTERSAMPLESEXTPROC) (GLuint samples, GLboolean fixedsamplelocations);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glRasterSamplesEXT (GLuint samples, GLboolean fixedsamplelocations);
|
||||
#endif
|
||||
#endif /* GL_EXT_raster_multisample */
|
||||
|
||||
#ifndef GL_EXT_rescale_normal
|
||||
#define GL_EXT_rescale_normal 1
|
||||
#define GL_RESCALE_NORMAL_EXT 0x803A
|
||||
@@ -7685,10 +7651,6 @@ GLAPI void APIENTRY glMemoryBarrierEXT (GLbitfield barriers);
|
||||
#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB
|
||||
#endif /* GL_EXT_shared_texture_palette */
|
||||
|
||||
#ifndef GL_EXT_sparse_texture2
|
||||
#define GL_EXT_sparse_texture2 1
|
||||
#endif /* GL_EXT_sparse_texture2 */
|
||||
|
||||
#ifndef GL_EXT_stencil_clear_tag
|
||||
#define GL_EXT_stencil_clear_tag 1
|
||||
#define GL_STENCIL_TAG_BITS_EXT 0x88F2
|
||||
@@ -7901,10 +7863,6 @@ GLAPI void APIENTRY glTexBufferEXT (GLenum target, GLenum internalformat, GLuint
|
||||
#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
|
||||
#endif /* GL_EXT_texture_filter_anisotropic */
|
||||
|
||||
#ifndef GL_EXT_texture_filter_minmax
|
||||
#define GL_EXT_texture_filter_minmax 1
|
||||
#endif /* GL_EXT_texture_filter_minmax */
|
||||
|
||||
#ifndef GL_EXT_texture_integer
|
||||
#define GL_EXT_texture_integer 1
|
||||
#define GL_RGBA32UI_EXT 0x8D70
|
||||
@@ -8954,18 +8912,6 @@ GLAPI void APIENTRY glEndConditionalRenderNV (void);
|
||||
#endif
|
||||
#endif /* GL_NV_conditional_render */
|
||||
|
||||
#ifndef GL_NV_conservative_raster
|
||||
#define GL_NV_conservative_raster 1
|
||||
#define GL_CONSERVATIVE_RASTERIZATION_NV 0x9346
|
||||
#define GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV 0x9347
|
||||
#define GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV 0x9348
|
||||
#define GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV 0x9349
|
||||
typedef void (APIENTRYP PFNGLSUBPIXELPRECISIONBIASNVPROC) (GLuint xbits, GLuint ybits);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glSubpixelPrecisionBiasNV (GLuint xbits, GLuint ybits);
|
||||
#endif
|
||||
#endif /* GL_NV_conservative_raster */
|
||||
|
||||
#ifndef GL_NV_copy_depth_to_color
|
||||
#define GL_NV_copy_depth_to_color 1
|
||||
#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E
|
||||
@@ -9108,11 +9054,6 @@ GLAPI void APIENTRY glSetFenceNV (GLuint fence, GLenum condition);
|
||||
#endif
|
||||
#endif /* GL_NV_fence */
|
||||
|
||||
#ifndef GL_NV_fill_rectangle
|
||||
#define GL_NV_fill_rectangle 1
|
||||
#define GL_FILL_RECTANGLE_NV 0x933C
|
||||
#endif /* GL_NV_fill_rectangle */
|
||||
|
||||
#ifndef GL_NV_float_buffer
|
||||
#define GL_NV_float_buffer 1
|
||||
#define GL_FLOAT_R_NV 0x8880
|
||||
@@ -9139,16 +9080,6 @@ GLAPI void APIENTRY glSetFenceNV (GLuint fence, GLenum condition);
|
||||
#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C
|
||||
#endif /* GL_NV_fog_distance */
|
||||
|
||||
#ifndef GL_NV_fragment_coverage_to_color
|
||||
#define GL_NV_fragment_coverage_to_color 1
|
||||
#define GL_FRAGMENT_COVERAGE_TO_COLOR_NV 0x92DD
|
||||
#define GL_FRAGMENT_COVERAGE_COLOR_NV 0x92DE
|
||||
typedef void (APIENTRYP PFNGLFRAGMENTCOVERAGECOLORNVPROC) (GLuint color);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glFragmentCoverageColorNV (GLuint color);
|
||||
#endif
|
||||
#endif /* GL_NV_fragment_coverage_to_color */
|
||||
|
||||
#ifndef GL_NV_fragment_program
|
||||
#define GL_NV_fragment_program 1
|
||||
#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868
|
||||
@@ -9190,30 +9121,6 @@ GLAPI void APIENTRY glGetProgramNamedParameterdvNV (GLuint id, GLsizei len, cons
|
||||
#define GL_NV_fragment_program_option 1
|
||||
#endif /* GL_NV_fragment_program_option */
|
||||
|
||||
#ifndef GL_NV_fragment_shader_interlock
|
||||
#define GL_NV_fragment_shader_interlock 1
|
||||
#endif /* GL_NV_fragment_shader_interlock */
|
||||
|
||||
#ifndef GL_NV_framebuffer_mixed_samples
|
||||
#define GL_NV_framebuffer_mixed_samples 1
|
||||
#define GL_COVERAGE_MODULATION_TABLE_NV 0x9331
|
||||
#define GL_COLOR_SAMPLES_NV 0x8E20
|
||||
#define GL_DEPTH_SAMPLES_NV 0x932D
|
||||
#define GL_STENCIL_SAMPLES_NV 0x932E
|
||||
#define GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV 0x932F
|
||||
#define GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV 0x9330
|
||||
#define GL_COVERAGE_MODULATION_NV 0x9332
|
||||
#define GL_COVERAGE_MODULATION_TABLE_SIZE_NV 0x9333
|
||||
typedef void (APIENTRYP PFNGLCOVERAGEMODULATIONTABLENVPROC) (GLsizei n, const GLfloat *v);
|
||||
typedef void (APIENTRYP PFNGLGETCOVERAGEMODULATIONTABLENVPROC) (GLsizei bufsize, GLfloat *v);
|
||||
typedef void (APIENTRYP PFNGLCOVERAGEMODULATIONNVPROC) (GLenum components);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glCoverageModulationTableNV (GLsizei n, const GLfloat *v);
|
||||
GLAPI void APIENTRY glGetCoverageModulationTableNV (GLsizei bufsize, GLfloat *v);
|
||||
GLAPI void APIENTRY glCoverageModulationNV (GLenum components);
|
||||
#endif
|
||||
#endif /* GL_NV_framebuffer_mixed_samples */
|
||||
|
||||
#ifndef GL_NV_framebuffer_multisample_coverage
|
||||
#define GL_NV_framebuffer_multisample_coverage 1
|
||||
#define GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB
|
||||
@@ -9245,10 +9152,6 @@ GLAPI void APIENTRY glFramebufferTextureFaceEXT (GLenum target, GLenum attachmen
|
||||
#define GL_NV_geometry_shader4 1
|
||||
#endif /* GL_NV_geometry_shader4 */
|
||||
|
||||
#ifndef GL_NV_geometry_shader_passthrough
|
||||
#define GL_NV_geometry_shader_passthrough 1
|
||||
#endif /* GL_NV_geometry_shader_passthrough */
|
||||
|
||||
#ifndef GL_NV_gpu_program4
|
||||
#define GL_NV_gpu_program4 1
|
||||
#define GL_MIN_PROGRAM_TEXEL_OFFSET_NV 0x8904
|
||||
@@ -9421,18 +9324,6 @@ GLAPI void APIENTRY glVertexAttribs4hvNV (GLuint index, GLsizei n, const GLhalfN
|
||||
#endif
|
||||
#endif /* GL_NV_half_float */
|
||||
|
||||
#ifndef GL_NV_internalformat_sample_query
|
||||
#define GL_NV_internalformat_sample_query 1
|
||||
#define GL_MULTISAMPLES_NV 0x9371
|
||||
#define GL_SUPERSAMPLE_SCALE_X_NV 0x9372
|
||||
#define GL_SUPERSAMPLE_SCALE_Y_NV 0x9373
|
||||
#define GL_CONFORMANT_NV 0x9374
|
||||
typedef void (APIENTRYP PFNGLGETINTERNALFORMATSAMPLEIVNVPROC) (GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei bufSize, GLint *params);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glGetInternalformatSampleivNV (GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei bufSize, GLint *params);
|
||||
#endif
|
||||
#endif /* GL_NV_internalformat_sample_query */
|
||||
|
||||
#ifndef GL_NV_light_max_exponent
|
||||
#define GL_NV_light_max_exponent 1
|
||||
#define GL_MAX_SHININESS_NV 0x8504
|
||||
@@ -9441,6 +9332,7 @@ GLAPI void APIENTRY glGetInternalformatSampleivNV (GLenum target, GLenum interna
|
||||
|
||||
#ifndef GL_NV_multisample_coverage
|
||||
#define GL_NV_multisample_coverage 1
|
||||
#define GL_COLOR_SAMPLES_NV 0x8E20
|
||||
#endif /* GL_NV_multisample_coverage */
|
||||
|
||||
#ifndef GL_NV_multisample_filter_hint
|
||||
@@ -9553,11 +9445,13 @@ GLAPI void APIENTRY glProgramBufferParametersIuivNV (GLenum target, GLuint bindi
|
||||
#define GL_SKIP_MISSING_GLYPH_NV 0x90A9
|
||||
#define GL_USE_MISSING_GLYPH_NV 0x90AA
|
||||
#define GL_PATH_ERROR_POSITION_NV 0x90AB
|
||||
#define GL_PATH_FOG_GEN_MODE_NV 0x90AC
|
||||
#define GL_ACCUM_ADJACENT_PAIRS_NV 0x90AD
|
||||
#define GL_ADJACENT_PAIRS_NV 0x90AE
|
||||
#define GL_FIRST_TO_REST_NV 0x90AF
|
||||
#define GL_PATH_GEN_MODE_NV 0x90B0
|
||||
#define GL_PATH_GEN_COEFF_NV 0x90B1
|
||||
#define GL_PATH_GEN_COLOR_FORMAT_NV 0x90B2
|
||||
#define GL_PATH_GEN_COMPONENTS_NV 0x90B3
|
||||
#define GL_PATH_STENCIL_FUNC_NV 0x90B7
|
||||
#define GL_PATH_STENCIL_REF_NV 0x90B8
|
||||
@@ -9626,6 +9520,8 @@ GLAPI void APIENTRY glProgramBufferParametersIuivNV (GLenum target, GLuint bindi
|
||||
#define GL_FONT_UNDERLINE_POSITION_BIT_NV 0x04000000
|
||||
#define GL_FONT_UNDERLINE_THICKNESS_BIT_NV 0x08000000
|
||||
#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
|
||||
@@ -9649,10 +9545,6 @@ GLAPI void APIENTRY glProgramBufferParametersIuivNV (GLenum target, GLuint bindi
|
||||
#define GL_EYE_LINEAR_NV 0x2400
|
||||
#define GL_OBJECT_LINEAR_NV 0x2401
|
||||
#define GL_CONSTANT_NV 0x8576
|
||||
#define GL_PATH_FOG_GEN_MODE_NV 0x90AC
|
||||
#define GL_PRIMARY_COLOR_NV 0x852C
|
||||
#define GL_SECONDARY_COLOR_NV 0x852D
|
||||
#define GL_PATH_GEN_COLOR_FORMAT_NV 0x90B2
|
||||
#define GL_PATH_PROJECTION_NV 0x1701
|
||||
#define GL_PATH_MODELVIEW_NV 0x1700
|
||||
#define GL_PATH_MODELVIEW_STACK_DEPTH_NV 0x0BA3
|
||||
@@ -9690,6 +9582,9 @@ typedef void (APIENTRYP PFNGLSTENCILSTROKEPATHNVPROC) (GLuint path, GLint refere
|
||||
typedef void (APIENTRYP PFNGLSTENCILFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues);
|
||||
typedef void (APIENTRYP PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues);
|
||||
typedef void (APIENTRYP PFNGLPATHCOVERDEPTHFUNCNVPROC) (GLenum func);
|
||||
typedef void (APIENTRYP PFNGLPATHCOLORGENNVPROC) (GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat *coeffs);
|
||||
typedef void (APIENTRYP PFNGLPATHTEXGENNVPROC) (GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat *coeffs);
|
||||
typedef void (APIENTRYP PFNGLPATHFOGGENNVPROC) (GLenum genMode);
|
||||
typedef void (APIENTRYP PFNGLCOVERFILLPATHNVPROC) (GLuint path, GLenum coverMode);
|
||||
typedef void (APIENTRYP PFNGLCOVERSTROKEPATHNVPROC) (GLuint path, GLenum coverMode);
|
||||
typedef void (APIENTRYP PFNGLCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
|
||||
@@ -9702,6 +9597,10 @@ typedef void (APIENTRYP PFNGLGETPATHDASHARRAYNVPROC) (GLuint path, GLfloat *dash
|
||||
typedef void (APIENTRYP PFNGLGETPATHMETRICSNVPROC) (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics);
|
||||
typedef void (APIENTRYP PFNGLGETPATHMETRICRANGENVPROC) (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics);
|
||||
typedef void (APIENTRYP PFNGLGETPATHSPACINGNVPROC) (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing);
|
||||
typedef void (APIENTRYP PFNGLGETPATHCOLORGENIVNVPROC) (GLenum color, GLenum pname, GLint *value);
|
||||
typedef void (APIENTRYP PFNGLGETPATHCOLORGENFVNVPROC) (GLenum color, GLenum pname, GLfloat *value);
|
||||
typedef void (APIENTRYP PFNGLGETPATHTEXGENIVNVPROC) (GLenum texCoordSet, GLenum pname, GLint *value);
|
||||
typedef void (APIENTRYP PFNGLGETPATHTEXGENFVNVPROC) (GLenum texCoordSet, GLenum pname, GLfloat *value);
|
||||
typedef GLboolean (APIENTRYP PFNGLISPOINTINFILLPATHNVPROC) (GLuint path, GLuint mask, GLfloat x, GLfloat y);
|
||||
typedef GLboolean (APIENTRYP PFNGLISPOINTINSTROKEPATHNVPROC) (GLuint path, GLfloat x, GLfloat y);
|
||||
typedef GLfloat (APIENTRYP PFNGLGETPATHLENGTHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments);
|
||||
@@ -9721,13 +9620,6 @@ typedef GLenum (APIENTRYP PFNGLPATHGLYPHINDEXARRAYNVPROC) (GLuint firstPathName,
|
||||
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);
|
||||
typedef void (APIENTRYP PFNGLPATHCOLORGENNVPROC) (GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat *coeffs);
|
||||
typedef void (APIENTRYP PFNGLPATHTEXGENNVPROC) (GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat *coeffs);
|
||||
typedef void (APIENTRYP PFNGLPATHFOGGENNVPROC) (GLenum genMode);
|
||||
typedef void (APIENTRYP PFNGLGETPATHCOLORGENIVNVPROC) (GLenum color, GLenum pname, GLint *value);
|
||||
typedef void (APIENTRYP PFNGLGETPATHCOLORGENFVNVPROC) (GLenum color, GLenum pname, GLfloat *value);
|
||||
typedef void (APIENTRYP PFNGLGETPATHTEXGENIVNVPROC) (GLenum texCoordSet, GLenum pname, GLint *value);
|
||||
typedef void (APIENTRYP PFNGLGETPATHTEXGENFVNVPROC) (GLenum texCoordSet, GLenum pname, GLfloat *value);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI GLuint APIENTRY glGenPathsNV (GLsizei range);
|
||||
GLAPI void APIENTRY glDeletePathsNV (GLuint path, GLsizei range);
|
||||
@@ -9755,6 +9647,9 @@ GLAPI void APIENTRY glStencilStrokePathNV (GLuint path, GLint reference, GLuint
|
||||
GLAPI void APIENTRY glStencilFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues);
|
||||
GLAPI void APIENTRY glStencilStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues);
|
||||
GLAPI void APIENTRY glPathCoverDepthFuncNV (GLenum func);
|
||||
GLAPI void APIENTRY glPathColorGenNV (GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat *coeffs);
|
||||
GLAPI void APIENTRY glPathTexGenNV (GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat *coeffs);
|
||||
GLAPI void APIENTRY glPathFogGenNV (GLenum genMode);
|
||||
GLAPI void APIENTRY glCoverFillPathNV (GLuint path, GLenum coverMode);
|
||||
GLAPI void APIENTRY glCoverStrokePathNV (GLuint path, GLenum coverMode);
|
||||
GLAPI void APIENTRY glCoverFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
|
||||
@@ -9767,6 +9662,10 @@ GLAPI void APIENTRY glGetPathDashArrayNV (GLuint path, GLfloat *dashArray);
|
||||
GLAPI void APIENTRY glGetPathMetricsNV (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics);
|
||||
GLAPI void APIENTRY glGetPathMetricRangeNV (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics);
|
||||
GLAPI void APIENTRY glGetPathSpacingNV (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing);
|
||||
GLAPI void APIENTRY glGetPathColorGenivNV (GLenum color, GLenum pname, GLint *value);
|
||||
GLAPI void APIENTRY glGetPathColorGenfvNV (GLenum color, GLenum pname, GLfloat *value);
|
||||
GLAPI void APIENTRY glGetPathTexGenivNV (GLenum texCoordSet, GLenum pname, GLint *value);
|
||||
GLAPI void APIENTRY glGetPathTexGenfvNV (GLenum texCoordSet, GLenum pname, GLfloat *value);
|
||||
GLAPI GLboolean APIENTRY glIsPointInFillPathNV (GLuint path, GLuint mask, GLfloat x, GLfloat y);
|
||||
GLAPI GLboolean APIENTRY glIsPointInStrokePathNV (GLuint path, GLfloat x, GLfloat y);
|
||||
GLAPI GLfloat APIENTRY glGetPathLengthNV (GLuint path, GLsizei startSegment, GLsizei numSegments);
|
||||
@@ -9786,21 +9685,9 @@ GLAPI GLenum APIENTRY glPathGlyphIndexArrayNV (GLuint firstPathName, GLenum font
|
||||
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);
|
||||
GLAPI void APIENTRY glPathColorGenNV (GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat *coeffs);
|
||||
GLAPI void APIENTRY glPathTexGenNV (GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat *coeffs);
|
||||
GLAPI void APIENTRY glPathFogGenNV (GLenum genMode);
|
||||
GLAPI void APIENTRY glGetPathColorGenivNV (GLenum color, GLenum pname, GLint *value);
|
||||
GLAPI void APIENTRY glGetPathColorGenfvNV (GLenum color, GLenum pname, GLfloat *value);
|
||||
GLAPI void APIENTRY glGetPathTexGenivNV (GLenum texCoordSet, GLenum pname, GLint *value);
|
||||
GLAPI void APIENTRY glGetPathTexGenfvNV (GLenum texCoordSet, GLenum pname, GLfloat *value);
|
||||
#endif
|
||||
#endif /* GL_NV_path_rendering */
|
||||
|
||||
#ifndef GL_NV_path_rendering_shared_edge
|
||||
#define GL_NV_path_rendering_shared_edge 1
|
||||
#define GL_SHARED_EDGE_NV 0xC0
|
||||
#endif /* GL_NV_path_rendering_shared_edge */
|
||||
|
||||
#ifndef GL_NV_pixel_data_range
|
||||
#define GL_NV_pixel_data_range 1
|
||||
#define GL_WRITE_PIXEL_DATA_RANGE_NV 0x8878
|
||||
@@ -9958,30 +9845,6 @@ GLAPI void APIENTRY glGetCombinerStageParameterfvNV (GLenum stage, GLenum pname,
|
||||
#endif
|
||||
#endif /* GL_NV_register_combiners2 */
|
||||
|
||||
#ifndef GL_NV_sample_locations
|
||||
#define GL_NV_sample_locations 1
|
||||
#define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV 0x933D
|
||||
#define GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV 0x933E
|
||||
#define GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV 0x933F
|
||||
#define GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV 0x9340
|
||||
#define GL_SAMPLE_LOCATION_NV 0x8E50
|
||||
#define GL_PROGRAMMABLE_SAMPLE_LOCATION_NV 0x9341
|
||||
#define GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV 0x9342
|
||||
#define GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV 0x9343
|
||||
typedef void (APIENTRYP PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLenum target, GLuint start, GLsizei count, const GLfloat *v);
|
||||
typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v);
|
||||
typedef void (APIENTRYP PFNGLRESOLVEDEPTHVALUESNVPROC) (void);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glFramebufferSampleLocationsfvNV (GLenum target, GLuint start, GLsizei count, const GLfloat *v);
|
||||
GLAPI void APIENTRY glNamedFramebufferSampleLocationsfvNV (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v);
|
||||
GLAPI void APIENTRY glResolveDepthValuesNV (void);
|
||||
#endif
|
||||
#endif /* GL_NV_sample_locations */
|
||||
|
||||
#ifndef GL_NV_sample_mask_override_coverage
|
||||
#define GL_NV_sample_mask_override_coverage 1
|
||||
#endif /* GL_NV_sample_mask_override_coverage */
|
||||
|
||||
#ifndef GL_NV_shader_atomic_counters
|
||||
#define GL_NV_shader_atomic_counters 1
|
||||
#endif /* GL_NV_shader_atomic_counters */
|
||||
@@ -9990,10 +9853,6 @@ GLAPI void APIENTRY glResolveDepthValuesNV (void);
|
||||
#define GL_NV_shader_atomic_float 1
|
||||
#endif /* GL_NV_shader_atomic_float */
|
||||
|
||||
#ifndef GL_NV_shader_atomic_fp16_vector
|
||||
#define GL_NV_shader_atomic_fp16_vector 1
|
||||
#endif /* GL_NV_shader_atomic_fp16_vector */
|
||||
|
||||
#ifndef GL_NV_shader_atomic_int64
|
||||
#define GL_NV_shader_atomic_int64 1
|
||||
#endif /* GL_NV_shader_atomic_int64 */
|
||||
@@ -10317,13 +10176,6 @@ GLAPI void APIENTRY glDrawTransformFeedbackNV (GLenum mode, GLuint id);
|
||||
#endif
|
||||
#endif /* GL_NV_transform_feedback2 */
|
||||
|
||||
#ifndef GL_NV_uniform_buffer_unified_memory
|
||||
#define GL_NV_uniform_buffer_unified_memory 1
|
||||
#define GL_UNIFORM_BUFFER_UNIFIED_NV 0x936E
|
||||
#define GL_UNIFORM_BUFFER_ADDRESS_NV 0x936F
|
||||
#define GL_UNIFORM_BUFFER_LENGTH_NV 0x9370
|
||||
#endif /* GL_NV_uniform_buffer_unified_memory */
|
||||
|
||||
#ifndef GL_NV_vdpau_interop
|
||||
#define GL_NV_vdpau_interop 1
|
||||
typedef GLintptr GLvdpauSurfaceNV;
|
||||
@@ -10819,10 +10671,6 @@ GLAPI void APIENTRY glVideoCaptureStreamParameterdvNV (GLuint video_capture_slot
|
||||
#endif
|
||||
#endif /* GL_NV_video_capture */
|
||||
|
||||
#ifndef GL_NV_viewport_array2
|
||||
#define GL_NV_viewport_array2 1
|
||||
#endif /* GL_NV_viewport_array2 */
|
||||
|
||||
#ifndef GL_OML_interlace
|
||||
#define GL_OML_interlace 1
|
||||
#define GL_INTERLACE_OML 0x8980
|
||||
@@ -11401,10 +11249,10 @@ GLAPI void APIENTRY glReferencePlaneSGIX (const GLdouble *equation);
|
||||
|
||||
#ifndef GL_SGIX_resample
|
||||
#define GL_SGIX_resample 1
|
||||
#define GL_PACK_RESAMPLE_SGIX 0x842E
|
||||
#define GL_UNPACK_RESAMPLE_SGIX 0x842F
|
||||
#define GL_RESAMPLE_REPLICATE_SGIX 0x8433
|
||||
#define GL_RESAMPLE_ZERO_FILL_SGIX 0x8434
|
||||
#define GL_PACK_RESAMPLE_SGIX 0x842C
|
||||
#define GL_UNPACK_RESAMPLE_SGIX 0x842D
|
||||
#define GL_RESAMPLE_REPLICATE_SGIX 0x842E
|
||||
#define GL_RESAMPLE_ZERO_FILL_SGIX 0x842F
|
||||
#define GL_RESAMPLE_DECIMATE_SGIX 0x8430
|
||||
#endif /* GL_SGIX_resample */
|
||||
|
||||
|
@@ -279,7 +279,6 @@ struct __DRItexBufferExtensionRec {
|
||||
|
||||
#define __DRI2_FLUSH_DRAWABLE (1 << 0) /* the drawable should be flushed. */
|
||||
#define __DRI2_FLUSH_CONTEXT (1 << 1) /* glFlush should be called */
|
||||
#define __DRI2_FLUSH_INVALIDATE_ANCILLARY (1 << 2)
|
||||
|
||||
enum __DRI2throttleReason {
|
||||
__DRI2_THROTTLE_SWAPBUFFER,
|
||||
|
@@ -177,8 +177,13 @@ mtx_init(mtx_t *mtx, int type)
|
||||
&& type != (mtx_try|mtx_recursive))
|
||||
return thrd_error;
|
||||
pthread_mutexattr_init(&attr);
|
||||
if ((type & mtx_recursive) != 0)
|
||||
if ((type & mtx_recursive) != 0) {
|
||||
#if defined(__linux__) || defined(__linux)
|
||||
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE_NP);
|
||||
#else
|
||||
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
|
||||
#endif
|
||||
}
|
||||
pthread_mutex_init(mtx, &attr);
|
||||
pthread_mutexattr_destroy(&attr);
|
||||
return thrd_success;
|
||||
|
@@ -35,7 +35,8 @@
|
||||
#define bool _Bool
|
||||
|
||||
/* For compilers that don't have the builtin _Bool type. */
|
||||
#if (defined(_MSC_VER) && _MSC_VER < 1800)
|
||||
#if (defined(_MSC_VER) && _MSC_VER < 1800) || \
|
||||
(defined __GNUC__&& __STDC_VERSION__ < 199901L && __GNUC__ < 3)
|
||||
typedef unsigned char _Bool;
|
||||
#endif
|
||||
|
||||
|
@@ -114,7 +114,11 @@
|
||||
# elif defined(__SUNPRO_C) && defined(__C99FEATURES__)
|
||||
/* C99 */
|
||||
# elif defined(__GNUC__)
|
||||
# define __func__ __FUNCTION__
|
||||
# if __GNUC__ >= 2
|
||||
# define __func__ __FUNCTION__
|
||||
# else
|
||||
# define __func__ "<unknown>"
|
||||
# endif
|
||||
# elif defined(_MSC_VER)
|
||||
# if _MSC_VER >= 1300
|
||||
# define __func__ __FUNCTION__
|
||||
|
@@ -109,21 +109,6 @@ 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(0x1902, skl_gt1, "Intel(R) Skylake DT GT1")
|
||||
CHIPSET(0x1906, skl_gt1, "Intel(R) Skylake ULT GT1")
|
||||
CHIPSET(0x190A, skl_gt1, "Intel(R) Skylake SRV GT1")
|
||||
CHIPSET(0x190B, skl_gt1, "Intel(R) Skylake Halo GT1")
|
||||
CHIPSET(0x190E, skl_gt1, "Intel(R) Skylake ULX GT1")
|
||||
CHIPSET(0x1912, skl_gt2, "Intel(R) Skylake DT GT2")
|
||||
CHIPSET(0x1916, skl_gt2, "Intel(R) Skylake ULT GT2")
|
||||
CHIPSET(0x191A, skl_gt2, "Intel(R) Skylake SRV GT2")
|
||||
CHIPSET(0x191B, skl_gt2, "Intel(R) Skylake Halo GT2")
|
||||
CHIPSET(0x191D, skl_gt2, "Intel(R) Skylake WKS GT2")
|
||||
CHIPSET(0x191E, skl_gt2, "Intel(R) Skylake ULX GT2")
|
||||
CHIPSET(0x1921, skl_gt2, "Intel(R) Skylake ULT GT2F")
|
||||
CHIPSET(0x1926, skl_gt3, "Intel(R) Skylake ULT GT3")
|
||||
CHIPSET(0x192A, skl_gt3, "Intel(R) Skylake SRV GT3")
|
||||
CHIPSET(0x192B, skl_gt3, "Intel(R) Skylake Halo GT3")
|
||||
CHIPSET(0x22B0, chv, "Intel(R) Cherryview")
|
||||
CHIPSET(0x22B1, chv, "Intel(R) Cherryview")
|
||||
CHIPSET(0x22B2, chv, "Intel(R) Cherryview")
|
||||
|
@@ -16,9 +16,6 @@ all-local : .install-mesa-links
|
||||
done && touch $@
|
||||
|
||||
clean-local:
|
||||
for f in $(notdir $(lib_LTLIBRARIES:%.la=.libs/%.$(LIB_EXT)*)); do \
|
||||
$(RM) $(top_builddir)/$(LIB_DIR)/$$f; \
|
||||
done;
|
||||
$(RM) .install-mesa-links
|
||||
|
||||
endif
|
||||
|
@@ -1,63 +0,0 @@
|
||||
# ===========================================================================
|
||||
#
|
||||
# SYNOPSIS
|
||||
#
|
||||
# AX_CHECK_PYTHON_MAKO_MODULE(MIN_VERSION_NUMBER)
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
# Check whether Python mako module is installed and its version higher than
|
||||
# minimum requested.
|
||||
#
|
||||
# Example of its use:
|
||||
#
|
||||
# For example, the minimum mako version would be 0.7.3. Then configure.ac
|
||||
# would contain:
|
||||
#
|
||||
# AX_CHECK_PYTHON_MAKO_MODULE(0.7.3)
|
||||
#
|
||||
# LICENSE
|
||||
#
|
||||
# Copyright (c) 2014 Intel Corporation.
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to
|
||||
# deal in the Software without restriction, including without limitation the
|
||||
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
# sell copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
# IN THE SOFTWARE.
|
||||
|
||||
dnl macro that checks for mako module in python
|
||||
AC_DEFUN([AX_CHECK_PYTHON_MAKO_MODULE],
|
||||
[AC_MSG_CHECKING(if module mako in python is installed)
|
||||
echo "
|
||||
try:
|
||||
import sys
|
||||
import mako
|
||||
except ImportError as err:
|
||||
sys.exit(err)
|
||||
else:
|
||||
ver_req = map(int, '$1'.split('.'))
|
||||
ver_act = map(int, mako.__version__.split('.'))
|
||||
sys.exit(int(ver_req > ver_act))
|
||||
" | $PYTHON2 -
|
||||
|
||||
if test $? -ne 0 ; then
|
||||
AC_MSG_RESULT(no)
|
||||
AC_SUBST(acv_mako_found, 'no')
|
||||
else
|
||||
AC_MSG_RESULT(yes)
|
||||
AC_SUBST(acv_mako_found, 'yes')
|
||||
fi
|
||||
])
|
@@ -42,7 +42,7 @@
|
||||
# modified version of the Autoconf Macro, you may extend this special
|
||||
# exception to the GPL to apply to your modified version as well.
|
||||
|
||||
#serial 12
|
||||
#serial 9
|
||||
|
||||
# mattst88:
|
||||
# Replaced m4_ifnblank(...) with m4_ifval(m4_normalize(...), ...)
|
||||
@@ -53,7 +53,7 @@ AC_DEFUN([AX_PROG_FLEX], [
|
||||
AC_REQUIRE([AC_PROG_EGREP])
|
||||
|
||||
AC_CACHE_CHECK([if flex is the lexer generator],[ax_cv_prog_flex],[
|
||||
AS_IF([$LEX --version 2>/dev/null | $EGREP -qw '^g?flex'],
|
||||
AS_IF([$LEX --version 2>/dev/null | $EGREP -q '^\<flex\>'],
|
||||
[ax_cv_prog_flex=yes], [ax_cv_prog_flex=no])
|
||||
])
|
||||
AS_IF([test "$ax_cv_prog_flex" = "yes"],
|
||||
|
@@ -378,19 +378,22 @@ def generate(env):
|
||||
#'-march=pentium4',
|
||||
]
|
||||
if distutils.version.LooseVersion(ccversion) >= distutils.version.LooseVersion('4.2') \
|
||||
and (platform != 'windows' or env['build'] == 'debug' or True) \
|
||||
and platform != 'haiku':
|
||||
# NOTE: We need to ensure stack is realigned given that we
|
||||
# produce shared objects, and have no control over the stack
|
||||
# alignment policy of the application. Therefore we need
|
||||
# -mstackrealign ore -mincoming-stack-boundary=2.
|
||||
#
|
||||
# XXX: -O and -mstackrealign causes stack corruption on MinGW
|
||||
#
|
||||
# XXX: We could have SSE without -mstackrealign if we always used
|
||||
# __attribute__((force_align_arg_pointer)), but that's not
|
||||
# always the case.
|
||||
ccflags += [
|
||||
'-mstackrealign', # ensure stack is aligned
|
||||
'-msse', '-msse2', # enable SIMD intrinsics
|
||||
'-mfpmath=sse', # generate SSE floating-point arithmetic
|
||||
'-mmmx', '-msse', '-msse2', # enable SIMD intrinsics
|
||||
#'-mfpmath=sse',
|
||||
]
|
||||
if platform in ['windows', 'darwin']:
|
||||
# Workaround http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37216
|
||||
@@ -469,7 +472,7 @@ def generate(env):
|
||||
]
|
||||
if env['machine'] == 'x86':
|
||||
ccflags += [
|
||||
'/arch:SSE2', # use the SSE2 instructions (default since MSVC 2012)
|
||||
#'/arch:SSE2', # use the SSE2 instructions
|
||||
]
|
||||
if platform == 'windows':
|
||||
ccflags += [
|
||||
@@ -624,9 +627,6 @@ def generate(env):
|
||||
env.PkgCheckModules('DRM', ['libdrm >= 2.4.38'])
|
||||
env.PkgCheckModules('UDEV', ['libudev >= 151'])
|
||||
|
||||
if env['x11']:
|
||||
env.Append(CPPPATH = env['X11_CPPPATH'])
|
||||
|
||||
env['dri'] = env['x11'] and env['drm']
|
||||
|
||||
# for debugging
|
||||
|
@@ -98,20 +98,8 @@ def generate(env):
|
||||
'HAVE_STDINT_H',
|
||||
])
|
||||
env.Prepend(LIBPATH = [os.path.join(llvm_dir, 'lib')])
|
||||
# LIBS should match the output of `llvm-config --libs engine mcjit bitwriter x86asmprinter`
|
||||
if llvm_version >= distutils.version.LooseVersion('3.5'):
|
||||
env.Prepend(LIBS = [
|
||||
'LLVMBitWriter', 'LLVMMCJIT', 'LLVMRuntimeDyld',
|
||||
'LLVMX86Disassembler', 'LLVMX86AsmParser', 'LLVMX86CodeGen',
|
||||
'LLVMSelectionDAG', 'LLVMAsmPrinter', 'LLVMX86Desc',
|
||||
'LLVMObject', 'LLVMMCParser', 'LLVMBitReader', 'LLVMX86Info',
|
||||
'LLVMX86AsmPrinter', 'LLVMX86Utils', 'LLVMJIT',
|
||||
'LLVMExecutionEngine', 'LLVMCodeGen', 'LLVMScalarOpts',
|
||||
'LLVMInstCombine', 'LLVMTransformUtils', 'LLVMipa',
|
||||
'LLVMAnalysis', 'LLVMTarget', 'LLVMMC', 'LLVMCore',
|
||||
'LLVMSupport'
|
||||
])
|
||||
else:
|
||||
if True:
|
||||
# 3.2
|
||||
env.Prepend(LIBS = [
|
||||
'LLVMBitWriter', 'LLVMX86Disassembler', 'LLVMX86AsmParser',
|
||||
'LLVMX86CodeGen', 'LLVMX86Desc', 'LLVMSelectionDAG',
|
||||
|
@@ -19,9 +19,7 @@
|
||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
# IN THE SOFTWARE.
|
||||
|
||||
AUTOMAKE_OPTIONS = subdir-objects
|
||||
|
||||
SUBDIRS = . gtest util mapi/glapi/gen mapi
|
||||
SUBDIRS = gtest util mapi
|
||||
|
||||
if NEED_OPENGL_COMMON
|
||||
SUBDIRS += glsl mesa
|
||||
@@ -34,7 +32,7 @@ SUBDIRS += glx
|
||||
endif
|
||||
|
||||
if HAVE_EGL_PLATFORM_WAYLAND
|
||||
SUBDIRS += egl/wayland/wayland-egl egl/wayland/wayland-drm
|
||||
SUBDIRS += egl/wayland
|
||||
endif
|
||||
|
||||
if HAVE_EGL_DRIVER_DRI2
|
||||
@@ -53,20 +51,4 @@ if HAVE_GALLIUM
|
||||
SUBDIRS += gallium
|
||||
endif
|
||||
|
||||
EXTRA_DIST = \
|
||||
egl/drivers/haiku \
|
||||
egl/docs \
|
||||
getopt hgl SConscript
|
||||
|
||||
AM_CPPFLAGS = \
|
||||
-I$(top_srcdir)/include/ \
|
||||
-I$(top_srcdir)/src/mapi/ \
|
||||
-I$(top_srcdir)/src/mesa/ \
|
||||
$(DEFINES)
|
||||
|
||||
noinst_LTLIBRARIES = libglsl_util.la
|
||||
|
||||
libglsl_util_la_SOURCES = \
|
||||
mesa/main/imports.c \
|
||||
mesa/program/prog_hash_table.c \
|
||||
mesa/program/symbol_table.c
|
||||
EXTRA_DIST = getopt
|
||||
|
@@ -33,11 +33,6 @@ if not env['embedded']:
|
||||
if env['platform'] not in ('cygwin', 'darwin', 'freebsd', 'haiku', 'windows'):
|
||||
SConscript('glx/SConscript')
|
||||
if env['platform'] not in ['darwin', 'haiku', 'sunos']:
|
||||
if env['dri']:
|
||||
SConscript('egl/drivers/dri2/SConscript')
|
||||
SConscript('egl/main/SConscript')
|
||||
if env['platform'] == 'haiku':
|
||||
SConscript('egl/drivers/haiku/SConscript')
|
||||
SConscript('egl/main/SConscript')
|
||||
|
||||
if env['gles']:
|
||||
|
@@ -36,9 +36,8 @@ AM_CFLAGS = \
|
||||
noinst_LTLIBRARIES = libegl_dri2.la
|
||||
|
||||
libegl_dri2_la_SOURCES = \
|
||||
egl_dri2.c \
|
||||
egl_dri2.h \
|
||||
egl_dri2_fallbacks.h
|
||||
egl_dri2.c
|
||||
|
||||
libegl_dri2_la_LIBADD = \
|
||||
$(top_builddir)/src/loader/libloader.la \
|
||||
@@ -64,5 +63,3 @@ if HAVE_EGL_PLATFORM_DRM
|
||||
libegl_dri2_la_SOURCES += platform_drm.c
|
||||
AM_CFLAGS += -DHAVE_DRM_PLATFORM
|
||||
endif
|
||||
|
||||
EXTRA_DIST = SConscript
|
||||
|
@@ -1,40 +0,0 @@
|
||||
Import('*')
|
||||
|
||||
env = env.Clone()
|
||||
|
||||
env.Append(CPPDEFINES = [
|
||||
'DEFAULT_DRIVER_DIR=\\"\\"'
|
||||
])
|
||||
|
||||
env.Append(CPPPATH = [
|
||||
'#/include',
|
||||
'#/src/egl/main',
|
||||
'#/src/loader',
|
||||
])
|
||||
|
||||
sources = [
|
||||
'egl_dri2.c',
|
||||
]
|
||||
|
||||
if env['x11']:
|
||||
sources.append('platform_x11.c')
|
||||
env.Append(CPPDEFINES = [
|
||||
'HAVE_X11_PLATFORM',
|
||||
])
|
||||
#env.Append(CPPPATH = [
|
||||
# 'XCB_DRI2_CFLAGS',
|
||||
#])
|
||||
|
||||
if env['drm']:
|
||||
env.PkgUseModules('DRM')
|
||||
|
||||
env.Prepend(LIBS = [
|
||||
libloader,
|
||||
])
|
||||
|
||||
egl_dri2 = env.ConvenienceLibrary(
|
||||
target = 'egl_dri2',
|
||||
source = sources,
|
||||
)
|
||||
|
||||
Export('egl_dri2')
|
@@ -534,7 +534,7 @@ dri2_setup_screen(_EGLDisplay *disp)
|
||||
disp->Extensions.KHR_gl_texture_2D_image = EGL_TRUE;
|
||||
disp->Extensions.KHR_gl_texture_cubemap_image = EGL_TRUE;
|
||||
}
|
||||
#ifdef HAVE_LIBDRM
|
||||
#ifdef HAVE_DRM_PLATFORM
|
||||
if (dri2_dpy->image->base.version >= 8 &&
|
||||
dri2_dpy->image->createImageFromDmaBufs) {
|
||||
disp->Extensions.EXT_image_dma_buf_import = EGL_TRUE;
|
||||
@@ -659,7 +659,6 @@ dri2_initialize(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
#endif
|
||||
|
||||
default:
|
||||
_eglLog(_EGL_WARNING, "No EGL platform enabled.");
|
||||
return EGL_FALSE;
|
||||
}
|
||||
}
|
||||
@@ -1087,42 +1086,6 @@ dri2_swap_interval(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surf,
|
||||
return dri2_dpy->vtbl->swap_interval(drv, dpy, surf, interval);
|
||||
}
|
||||
|
||||
/**
|
||||
* Asks the client API to flush any rendering to the drawable so that we can
|
||||
* do our swapbuffers.
|
||||
*/
|
||||
void
|
||||
dri2_flush_drawable_for_swapbuffers(_EGLDisplay *disp, _EGLSurface *draw)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||
struct dri2_egl_surface *dri2_surf = dri2_egl_surface(draw);
|
||||
|
||||
if (dri2_dpy->flush) {
|
||||
if (dri2_dpy->flush->base.version >= 4) {
|
||||
/* We know there's a current context because:
|
||||
*
|
||||
* "If surface is not bound to the calling thread’s current
|
||||
* context, an EGL_BAD_SURFACE error is generated."
|
||||
*/
|
||||
_EGLContext *ctx = _eglGetCurrentContext();
|
||||
struct dri2_egl_context *dri2_ctx = dri2_egl_context(ctx);
|
||||
|
||||
/* From the EGL 1.4 spec (page 52):
|
||||
*
|
||||
* "The contents of ancillary buffers are always undefined
|
||||
* after calling eglSwapBuffers."
|
||||
*/
|
||||
dri2_dpy->flush->flush_with_flags(dri2_ctx->dri_context,
|
||||
dri2_surf->dri_drawable,
|
||||
__DRI2_FLUSH_DRAWABLE |
|
||||
__DRI2_FLUSH_INVALIDATE_ANCILLARY,
|
||||
__DRI2_THROTTLE_SWAPBUFFER);
|
||||
} else {
|
||||
dri2_dpy->flush->flush(dri2_surf->dri_drawable);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static EGLBoolean
|
||||
dri2_swap_buffers(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surf)
|
||||
{
|
||||
@@ -1335,7 +1298,7 @@ dri2_create_image_khr_renderbuffer(_EGLDisplay *disp, _EGLContext *ctx,
|
||||
return dri2_create_image_from_dri(disp, dri_image);
|
||||
}
|
||||
|
||||
#ifdef HAVE_LIBDRM
|
||||
#ifdef HAVE_DRM_PLATFORM
|
||||
static _EGLImage *
|
||||
dri2_create_image_mesa_drm_buffer(_EGLDisplay *disp, _EGLContext *ctx,
|
||||
EGLClientBuffer buffer, const EGLint *attr_list)
|
||||
@@ -1571,7 +1534,7 @@ dri2_create_wayland_buffer_from_image(_EGLDriver *drv, _EGLDisplay *dpy,
|
||||
return dri2_dpy->vtbl->create_wayland_buffer_from_image(drv, dpy, img);
|
||||
}
|
||||
|
||||
#ifdef HAVE_LIBDRM
|
||||
#ifdef HAVE_DRM_PLATFORM
|
||||
static EGLBoolean
|
||||
dri2_check_dma_buf_attribs(const _EGLImageAttribs *attrs)
|
||||
{
|
||||
@@ -1821,7 +1784,7 @@ dri2_create_image_khr(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
return dri2_create_image_khr_texture(disp, ctx, target, buffer, attr_list);
|
||||
case EGL_GL_RENDERBUFFER_KHR:
|
||||
return dri2_create_image_khr_renderbuffer(disp, ctx, buffer, attr_list);
|
||||
#ifdef HAVE_LIBDRM
|
||||
#ifdef HAVE_DRM_PLATFORM
|
||||
case EGL_DRM_BUFFER_MESA:
|
||||
return dri2_create_image_mesa_drm_buffer(disp, ctx, buffer, attr_list);
|
||||
#endif
|
||||
@@ -1829,7 +1792,7 @@ dri2_create_image_khr(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
case EGL_WAYLAND_BUFFER_WL:
|
||||
return dri2_create_image_wayland_wl_buffer(disp, ctx, buffer, attr_list);
|
||||
#endif
|
||||
#ifdef HAVE_LIBDRM
|
||||
#ifdef HAVE_DRM_PLATFORM
|
||||
case EGL_LINUX_DMA_BUF_EXT:
|
||||
return dri2_create_image_dma_buf(disp, ctx, buffer, attr_list);
|
||||
#endif
|
||||
@@ -1853,7 +1816,7 @@ dri2_destroy_image_khr(_EGLDriver *drv, _EGLDisplay *disp, _EGLImage *image)
|
||||
return EGL_TRUE;
|
||||
}
|
||||
|
||||
#ifdef HAVE_LIBDRM
|
||||
#ifdef HAVE_DRM_PLATFORM
|
||||
static _EGLImage *
|
||||
dri2_create_drm_image_mesa(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
const EGLint *attr_list)
|
||||
@@ -2215,7 +2178,7 @@ _eglBuiltInDriverDRI2(const char *args)
|
||||
dri2_drv->base.API.CreateImageKHR = dri2_create_image;
|
||||
dri2_drv->base.API.DestroyImageKHR = dri2_destroy_image_khr;
|
||||
dri2_drv->base.API.CreateWaylandBufferFromImageWL = dri2_create_wayland_buffer_from_image;
|
||||
#ifdef HAVE_LIBDRM
|
||||
#ifdef HAVE_DRM_PLATFORM
|
||||
dri2_drv->base.API.CreateDRMImageMESA = dri2_create_drm_image_mesa;
|
||||
dri2_drv->base.API.ExportDRMImageMESA = dri2_export_drm_image_mesa;
|
||||
#endif
|
||||
|
@@ -332,7 +332,4 @@ dri2_initialize_wayland(_EGLDriver *drv, _EGLDisplay *disp);
|
||||
EGLBoolean
|
||||
dri2_initialize_android(_EGLDriver *drv, _EGLDisplay *disp);
|
||||
|
||||
void
|
||||
dri2_flush_drawable_for_swapbuffers(_EGLDisplay *disp, _EGLSurface *draw);
|
||||
|
||||
#endif /* EGL_DRI2_INCLUDED */
|
||||
|
@@ -311,7 +311,7 @@ droid_swap_buffers(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *draw)
|
||||
dri2_drv->glFlush();
|
||||
}
|
||||
|
||||
dri2_flush_drawable_for_swapbuffers(disp, draw);
|
||||
(*dri2_dpy->flush->flush)(dri2_surf->dri_drawable);
|
||||
|
||||
if (dri2_surf->buffer)
|
||||
droid_window_enqueue_buffer(dri2_surf);
|
||||
|
@@ -431,7 +431,7 @@ dri2_drm_swap_buffers(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *draw)
|
||||
dri2_surf->back = NULL;
|
||||
}
|
||||
|
||||
dri2_flush_drawable_for_swapbuffers(disp, draw);
|
||||
(*dri2_dpy->flush->flush)(dri2_surf->dri_drawable);
|
||||
(*dri2_dpy->flush->invalidate)(dri2_surf->dri_drawable);
|
||||
}
|
||||
|
||||
|
@@ -130,12 +130,13 @@ dri2_wl_create_surface(_EGLDriver *drv, _EGLDisplay *disp, EGLint type,
|
||||
|
||||
(void) drv;
|
||||
|
||||
dri2_surf = calloc(1, sizeof *dri2_surf);
|
||||
dri2_surf = malloc(sizeof *dri2_surf);
|
||||
if (!dri2_surf) {
|
||||
_eglError(EGL_BAD_ALLOC, "dri2_create_surface");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
memset(dri2_surf, 0, sizeof *dri2_surf);
|
||||
if (!_eglInitSurface(&dri2_surf->base, disp, type, conf, attrib_list))
|
||||
goto cleanup_surf;
|
||||
|
||||
@@ -292,26 +293,6 @@ get_back_bo(struct dri2_egl_surface *dri2_surf)
|
||||
struct dri2_egl_display *dri2_dpy =
|
||||
dri2_egl_display(dri2_surf->base.Resource.Display);
|
||||
int i;
|
||||
unsigned int dri_image_format;
|
||||
|
||||
/* currently supports three WL DRM formats,
|
||||
* WL_DRM_FORMAT_ARGB8888, WL_DRM_FORMAT_XRGB8888,
|
||||
* and WL_DRM_FORMAT_RGB565
|
||||
*/
|
||||
switch (dri2_surf->format) {
|
||||
case WL_DRM_FORMAT_ARGB8888:
|
||||
dri_image_format = __DRI_IMAGE_FORMAT_ARGB8888;
|
||||
break;
|
||||
case WL_DRM_FORMAT_XRGB8888:
|
||||
dri_image_format = __DRI_IMAGE_FORMAT_XRGB8888;
|
||||
break;
|
||||
case WL_DRM_FORMAT_RGB565:
|
||||
dri_image_format = __DRI_IMAGE_FORMAT_RGB565;
|
||||
break;
|
||||
default:
|
||||
/* format is not supported */
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* We always want to throttle to some event (either a frame callback or
|
||||
* a sync request) after the commit so that we can be sure the
|
||||
@@ -342,7 +323,7 @@ get_back_bo(struct dri2_egl_surface *dri2_surf)
|
||||
dri2_dpy->image->createImage(dri2_dpy->dri_screen,
|
||||
dri2_surf->base.Width,
|
||||
dri2_surf->base.Height,
|
||||
dri_image_format,
|
||||
__DRI_IMAGE_FORMAT_ARGB8888,
|
||||
__DRI_IMAGE_USE_SHARE,
|
||||
NULL);
|
||||
dri2_surf->back->age = 0;
|
||||
@@ -482,26 +463,11 @@ dri2_wl_get_buffers(__DRIdrawable * driDrawable,
|
||||
unsigned int *attachments, int count,
|
||||
int *out_count, void *loaderPrivate)
|
||||
{
|
||||
struct dri2_egl_surface *dri2_surf = loaderPrivate;
|
||||
unsigned int *attachments_with_format;
|
||||
__DRIbuffer *buffer;
|
||||
unsigned int bpp;
|
||||
|
||||
const unsigned int format = 32;
|
||||
int i;
|
||||
|
||||
switch (dri2_surf->format) {
|
||||
case WL_DRM_FORMAT_ARGB8888:
|
||||
case WL_DRM_FORMAT_XRGB8888:
|
||||
bpp = 32;
|
||||
break;
|
||||
case WL_DRM_FORMAT_RGB565:
|
||||
bpp = 16;
|
||||
break;
|
||||
default:
|
||||
/* format is not supported */
|
||||
return NULL;
|
||||
}
|
||||
|
||||
attachments_with_format = calloc(count, 2 * sizeof(unsigned int));
|
||||
if (!attachments_with_format) {
|
||||
*out_count = 0;
|
||||
@@ -510,7 +476,7 @@ dri2_wl_get_buffers(__DRIdrawable * driDrawable,
|
||||
|
||||
for (i = 0; i < count; ++i) {
|
||||
attachments_with_format[2*i] = attachments[i];
|
||||
attachments_with_format[2*i + 1] = bpp;
|
||||
attachments_with_format[2*i + 1] = format;
|
||||
}
|
||||
|
||||
buffer =
|
||||
@@ -631,6 +597,8 @@ dri2_wl_swap_buffers_with_damage(_EGLDriver *drv,
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||
struct dri2_egl_surface *dri2_surf = dri2_egl_surface(draw);
|
||||
struct dri2_egl_context *dri2_ctx;
|
||||
_EGLContext *ctx;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(dri2_surf->color_buffers); i++)
|
||||
@@ -682,7 +650,17 @@ dri2_wl_swap_buffers_with_damage(_EGLDriver *drv,
|
||||
}
|
||||
}
|
||||
|
||||
dri2_flush_drawable_for_swapbuffers(disp, draw);
|
||||
if (dri2_dpy->flush->base.version >= 4) {
|
||||
ctx = _eglGetCurrentContext();
|
||||
dri2_ctx = dri2_egl_context(ctx);
|
||||
(*dri2_dpy->flush->flush_with_flags)(dri2_ctx->dri_context,
|
||||
dri2_surf->dri_drawable,
|
||||
__DRI2_FLUSH_DRAWABLE,
|
||||
__DRI2_THROTTLE_SWAPBUFFER);
|
||||
} else {
|
||||
(*dri2_dpy->flush->flush)(dri2_surf->dri_drawable);
|
||||
}
|
||||
|
||||
(*dri2_dpy->flush->invalidate)(dri2_surf->dri_drawable);
|
||||
|
||||
wl_surface_commit(dri2_surf->wl_win->surface);
|
||||
|
@@ -773,7 +773,8 @@ dri2_x11_swap_buffers_msc(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *draw,
|
||||
if (draw->SwapBehavior == EGL_BUFFER_PRESERVED || !dri2_dpy->swap_available)
|
||||
return dri2_copy_region(drv, disp, draw, dri2_surf->region) ? 0 : -1;
|
||||
|
||||
dri2_flush_drawable_for_swapbuffers(disp, draw);
|
||||
if (dri2_dpy->flush)
|
||||
(*dri2_dpy->flush->flush)(dri2_surf->dri_drawable);
|
||||
|
||||
cookie = xcb_dri2_swap_buffers_unchecked(dri2_dpy->conn, dri2_surf->drawable,
|
||||
msc_hi, msc_lo, divisor_hi, divisor_lo, remainder_hi, remainder_lo);
|
||||
|
@@ -1,34 +0,0 @@
|
||||
Import('*')
|
||||
|
||||
env = env.Clone()
|
||||
|
||||
env.Append(CPPDEFINES = [
|
||||
'DEFAULT_DRIVER_DIR=\\"\\"',
|
||||
])
|
||||
|
||||
env.Append(CPPPATH = [
|
||||
'#/include',
|
||||
'#/src/egl/main',
|
||||
'#/src/loader',
|
||||
])
|
||||
|
||||
sources = [
|
||||
'egl_haiku.cpp'
|
||||
]
|
||||
|
||||
if env['platform'] == 'haiku':
|
||||
env.Append(CPPDEFINES = [
|
||||
'HAVE_HAIKU_PLATFORM',
|
||||
'_EGL_NATIVE_PLATFORM=haiku',
|
||||
])
|
||||
|
||||
env.Prepend(LIBS = [
|
||||
libloader,
|
||||
])
|
||||
|
||||
egl_haiku = env.ConvenienceLibrary(
|
||||
target = 'egl_haiku',
|
||||
source = sources,
|
||||
)
|
||||
|
||||
Export('egl_haiku')
|
@@ -1,436 +0,0 @@
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
*
|
||||
* Copyright (C) 2014 Adrián Arroyo Calle <adrian.arroyocalle@gmail.com>
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <errno.h>
|
||||
#include <dlfcn.h>
|
||||
#include <stdio.h>
|
||||
|
||||
extern "C" {
|
||||
#include "loader.h"
|
||||
#include "eglconfig.h"
|
||||
#include "eglcontext.h"
|
||||
#include "egldisplay.h"
|
||||
#include "egldriver.h"
|
||||
#include "eglcurrent.h"
|
||||
#include "egllog.h"
|
||||
#include "eglsurface.h"
|
||||
#include "eglimage.h"
|
||||
#include "egltypedefs.h"
|
||||
}
|
||||
|
||||
#include <InterfaceKit.h>
|
||||
#include <OpenGLKit.h>
|
||||
|
||||
|
||||
#define CALLOC_STRUCT(T) (struct T *) calloc(1, sizeof(struct T))
|
||||
|
||||
|
||||
_EGL_DRIVER_STANDARD_TYPECASTS(haiku_egl)
|
||||
|
||||
|
||||
struct haiku_egl_driver
|
||||
{
|
||||
_EGLDriver base;
|
||||
|
||||
void *handle;
|
||||
_EGLProc (*get_proc_address)(const char *procname);
|
||||
void (*glFlush)(void);
|
||||
};
|
||||
|
||||
struct haiku_egl_config
|
||||
{
|
||||
_EGLConfig base;
|
||||
};
|
||||
|
||||
struct haiku_egl_context
|
||||
{
|
||||
_EGLContext ctx;
|
||||
};
|
||||
|
||||
struct haiku_egl_surface
|
||||
{
|
||||
_EGLSurface surf;
|
||||
BGLView* gl;
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
static void
|
||||
swrastCreateDrawable(struct dri2_egl_display * dri2_dpy,
|
||||
struct dri2_egl_surface * dri2_surf, int depth)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
swrastDestroyDrawable(struct dri2_egl_display * dri2_dpy,
|
||||
struct dri2_egl_surface * dri2_surf)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
swrastGetDrawableInfo(__DRIdrawable * draw, int *x, int *y,
|
||||
int *w, int *h, void *loaderPrivate)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
swrastPutImage(__DRIdrawable * draw, int op, int x, int y,
|
||||
int w, int h, char *data, void *loaderPrivate)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
swrastGetImage(__DRIdrawable * read, int x, int y,
|
||||
int w, int h, char *data, void *loaderPrivate)
|
||||
{
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
static void
|
||||
haiku_log(EGLint level, const char *msg)
|
||||
{
|
||||
switch (level) {
|
||||
case _EGL_DEBUG:
|
||||
fprintf(stderr,"%s", msg);
|
||||
break;
|
||||
case _EGL_INFO:
|
||||
fprintf(stderr,"%s", msg);
|
||||
break;
|
||||
case _EGL_WARNING:
|
||||
fprintf(stderr,"%s", msg);
|
||||
break;
|
||||
case _EGL_FATAL:
|
||||
fprintf(stderr,"%s", msg);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Called via eglCreateWindowSurface(), drv->API.CreateWindowSurface().
|
||||
*/
|
||||
static _EGLSurface *
|
||||
haiku_create_surface(_EGLDriver *drv, _EGLDisplay *disp, EGLint type,
|
||||
_EGLConfig *conf, void *native_surface, const EGLint *attrib_list)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Called via eglCreateWindowSurface(), drv->API.CreateWindowSurface().
|
||||
*/
|
||||
static _EGLSurface *
|
||||
haiku_create_window_surface(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
_EGLConfig *conf, void *native_window, const EGLint *attrib_list)
|
||||
{
|
||||
struct haiku_egl_surface* surface;
|
||||
surface = (struct haiku_egl_surface*)calloc(1,sizeof (*surface));
|
||||
|
||||
_eglInitSurface(&surface->surf, disp, EGL_WINDOW_BIT, conf, attrib_list);
|
||||
(&surface->surf)->SwapInterval = 1;
|
||||
|
||||
_eglLog(_EGL_DEBUG, "Creating window");
|
||||
BWindow* win = (BWindow*)native_window;
|
||||
|
||||
_eglLog(_EGL_DEBUG, "Creating GL view");
|
||||
surface->gl = new BGLView(win->Bounds(), "OpenGL", B_FOLLOW_ALL_SIDES, 0,
|
||||
BGL_RGB | BGL_DOUBLE | BGL_ALPHA);
|
||||
|
||||
_eglLog(_EGL_DEBUG, "Adding GL");
|
||||
win->AddChild(surface->gl);
|
||||
|
||||
_eglLog(_EGL_DEBUG, "Showing window");
|
||||
win->Show();
|
||||
return &surface->surf;
|
||||
}
|
||||
|
||||
|
||||
static _EGLSurface *
|
||||
haiku_create_pixmap_surface(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
_EGLConfig *conf, void *native_pixmap, const EGLint *attrib_list)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
static _EGLSurface *
|
||||
haiku_create_pbuffer_surface(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
_EGLConfig *conf, const EGLint *attrib_list)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
static EGLBoolean
|
||||
haiku_destroy_surface(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf)
|
||||
{
|
||||
return EGL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
static EGLBoolean
|
||||
haiku_add_configs_for_visuals(_EGLDisplay *dpy)
|
||||
{
|
||||
printf("Adding configs\n");
|
||||
|
||||
struct haiku_egl_config* conf;
|
||||
conf = CALLOC_STRUCT(haiku_egl_config);
|
||||
|
||||
_eglInitConfig(&conf->base, dpy, 1);
|
||||
_eglLog(_EGL_DEBUG,"Config inited\n");
|
||||
_eglSetConfigKey(&conf->base, EGL_RED_SIZE, 8);
|
||||
_eglSetConfigKey(&conf->base, EGL_BLUE_SIZE, 8);
|
||||
_eglSetConfigKey(&conf->base, EGL_GREEN_SIZE, 8);
|
||||
_eglSetConfigKey(&conf->base, EGL_LUMINANCE_SIZE, 0);
|
||||
_eglSetConfigKey(&conf->base, EGL_ALPHA_SIZE, 8);
|
||||
_eglSetConfigKey(&conf->base, EGL_COLOR_BUFFER_TYPE, EGL_RGB_BUFFER);
|
||||
EGLint r = (_eglGetConfigKey(&conf->base, EGL_RED_SIZE)
|
||||
+ _eglGetConfigKey(&conf->base, EGL_GREEN_SIZE)
|
||||
+ _eglGetConfigKey(&conf->base, EGL_BLUE_SIZE)
|
||||
+ _eglGetConfigKey(&conf->base, EGL_ALPHA_SIZE));
|
||||
_eglSetConfigKey(&conf->base, EGL_BUFFER_SIZE, r);
|
||||
_eglSetConfigKey(&conf->base, EGL_CONFIG_CAVEAT, EGL_NONE);
|
||||
_eglSetConfigKey(&conf->base, EGL_CONFIG_ID, 1);
|
||||
_eglSetConfigKey(&conf->base, EGL_BIND_TO_TEXTURE_RGB, EGL_FALSE);
|
||||
_eglSetConfigKey(&conf->base, EGL_BIND_TO_TEXTURE_RGBA, EGL_FALSE);
|
||||
_eglSetConfigKey(&conf->base, EGL_STENCIL_SIZE, 0);
|
||||
_eglSetConfigKey(&conf->base, EGL_TRANSPARENT_TYPE, EGL_NONE);
|
||||
_eglSetConfigKey(&conf->base, EGL_NATIVE_RENDERABLE, EGL_TRUE); // Let's say yes
|
||||
_eglSetConfigKey(&conf->base, EGL_NATIVE_VISUAL_ID, 0); // No visual
|
||||
_eglSetConfigKey(&conf->base, EGL_NATIVE_VISUAL_TYPE, EGL_NONE); // No visual
|
||||
_eglSetConfigKey(&conf->base, EGL_RENDERABLE_TYPE, 0x8);
|
||||
_eglSetConfigKey(&conf->base, EGL_SAMPLE_BUFFERS, 0); // TODO: How to get the right value ?
|
||||
_eglSetConfigKey(&conf->base, EGL_SAMPLES, _eglGetConfigKey(&conf->base, EGL_SAMPLE_BUFFERS) == 0 ? 0 : 0);
|
||||
_eglSetConfigKey(&conf->base, EGL_DEPTH_SIZE, 24); // TODO: How to get the right value ?
|
||||
_eglSetConfigKey(&conf->base, EGL_LEVEL, 0);
|
||||
_eglSetConfigKey(&conf->base, EGL_MAX_PBUFFER_WIDTH, 0); // TODO: How to get the right value ?
|
||||
_eglSetConfigKey(&conf->base, EGL_MAX_PBUFFER_HEIGHT, 0); // TODO: How to get the right value ?
|
||||
_eglSetConfigKey(&conf->base, EGL_MAX_PBUFFER_PIXELS, 0); // TODO: How to get the right value ?
|
||||
_eglSetConfigKey(&conf->base, EGL_SURFACE_TYPE, EGL_WINDOW_BIT /*| EGL_PIXMAP_BIT | EGL_PBUFFER_BIT*/);
|
||||
|
||||
printf("Config configuated\n");
|
||||
if (!_eglValidateConfig(&conf->base, EGL_FALSE)) {
|
||||
_eglLog(_EGL_DEBUG, "Haiku failed to validate config");
|
||||
return EGL_FALSE;
|
||||
}
|
||||
printf("Validated config\n");
|
||||
|
||||
_eglLinkConfig(&conf->base);
|
||||
if (!_eglGetArraySize(dpy->Configs)) {
|
||||
_eglLog(_EGL_WARNING, "Haiku: failed to create any config");
|
||||
return EGL_FALSE;
|
||||
}
|
||||
printf("Config successful!\n");
|
||||
|
||||
return EGL_TRUE;
|
||||
}
|
||||
|
||||
extern "C"
|
||||
EGLBoolean
|
||||
init_haiku(_EGLDriver *drv, _EGLDisplay *dpy)
|
||||
{
|
||||
_eglLog(_EGL_DEBUG,"\nInitializing Haiku EGL\n");
|
||||
//_EGLDisplay* egl_dpy;
|
||||
|
||||
printf("Initializing Haiku EGL\n");
|
||||
_eglSetLogProc(haiku_log);
|
||||
|
||||
loader_set_logger(_eglLog);
|
||||
|
||||
/*egl_dpy = (_EGLDisplay*) calloc(1, sizeof(_EGLDisplay));
|
||||
if (!egl_dpy)
|
||||
return _eglError(EGL_BAD_ALLOC, "eglInitialize");
|
||||
|
||||
dpy->DriverData=(void*) egl_dpy;
|
||||
if (!dpy->PlatformDisplay) {
|
||||
// OPEN DEVICE
|
||||
//dri2_dpy->bwindow = (void*)haiku_create_window();
|
||||
//dri2_dpy->own_device = true;
|
||||
} else {
|
||||
//dri2_dpy->bwindow = (BWindow*)dpy->PlatformDisplay;
|
||||
}*/
|
||||
|
||||
//dri2_dpy->driver_name = strdup("swrast");
|
||||
//if (!dri2_load_driver_swrast(dpy))
|
||||
// goto cleanup_conn;
|
||||
|
||||
/*dri2_dpy->swrast_loader_extension.base.name = __DRI_SWRAST_LOADER;
|
||||
dri2_dpy->swrast_loader_extension.base.version = __DRI_SWRAST_LOADER_VERSION;
|
||||
dri2_dpy->swrast_loader_extension.getDrawableInfo = swrastGetDrawableInfo;
|
||||
dri2_dpy->swrast_loader_extension.putImage = swrastPutImage;
|
||||
dri2_dpy->swrast_loader_extension.getImage = swrastGetImage;
|
||||
|
||||
dri2_dpy->extensions[0] = &dri2_dpy->swrast_loader_extension.base;
|
||||
dri2_dpy->extensions[1] = NULL;
|
||||
dri2_dpy->extensions[2] = NULL;*/
|
||||
|
||||
/*if (dri2_dpy->bwindow) {
|
||||
if (!dri2_haiku_add_configs_for_visuals(dri2_dpy, dpy))
|
||||
goto cleanup_configs;
|
||||
}*/
|
||||
_eglLog(_EGL_DEBUG,"Add configs");
|
||||
haiku_add_configs_for_visuals(dpy);
|
||||
|
||||
dpy->VersionMajor=1;
|
||||
dpy->VersionMinor=4;
|
||||
|
||||
//dpy->Extensions.KHR_create_context = true;
|
||||
|
||||
//dri2_dpy->vtbl = &dri2_haiku_display_vtbl;
|
||||
_eglLog(_EGL_DEBUG, "Initialization finished");
|
||||
|
||||
return EGL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
extern "C"
|
||||
EGLBoolean
|
||||
haiku_terminate(_EGLDriver* drv,_EGLDisplay* dpy)
|
||||
{
|
||||
return EGL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
extern "C"
|
||||
_EGLContext*
|
||||
haiku_create_context(_EGLDriver *drv, _EGLDisplay *disp, _EGLConfig *conf,
|
||||
_EGLContext *share_list, const EGLint *attrib_list)
|
||||
{
|
||||
_eglLog(_EGL_DEBUG,"Creating context");
|
||||
struct haiku_egl_context* context;
|
||||
context=(struct haiku_egl_context*)calloc(1,sizeof (*context));
|
||||
if(!_eglInitContext(&context->ctx, disp, conf, attrib_list))
|
||||
printf("ERROR creating context");
|
||||
_eglLog(_EGL_DEBUG, "Context created");
|
||||
return &context->ctx;
|
||||
}
|
||||
|
||||
|
||||
extern "C"
|
||||
EGLBoolean
|
||||
haiku_destroy_context(_EGLDriver* drv, _EGLDisplay *disp, _EGLContext* ctx)
|
||||
{
|
||||
ctx=NULL;
|
||||
return EGL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
extern "C"
|
||||
EGLBoolean
|
||||
haiku_make_current(_EGLDriver* drv, _EGLDisplay* dpy, _EGLSurface *dsurf,
|
||||
_EGLSurface *rsurf, _EGLContext *ctx)
|
||||
{
|
||||
struct haiku_egl_context* cont=haiku_egl_context(ctx);
|
||||
struct haiku_egl_surface* surf=haiku_egl_surface(dsurf);
|
||||
_EGLContext *old_ctx;
|
||||
_EGLSurface *old_dsurf, *old_rsurf;
|
||||
_eglBindContext(ctx, dsurf, rsurf, &old_ctx, &old_dsurf, &old_rsurf);
|
||||
//cont->ctx.DrawSurface=&surf->surf;
|
||||
surf->gl->LockGL();
|
||||
return EGL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
extern "C"
|
||||
EGLBoolean
|
||||
haiku_swap_buffers(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surf)
|
||||
{
|
||||
struct haiku_egl_surface* surface=haiku_egl_surface(surf);
|
||||
surface->gl->SwapBuffers();
|
||||
//gl->Render();
|
||||
return EGL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
extern "C"
|
||||
void
|
||||
haiku_unload(_EGLDriver* drv)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This is the main entrypoint into the driver, called by libEGL.
|
||||
* Create a new _EGLDriver object and init its dispatch table.
|
||||
*/
|
||||
extern "C"
|
||||
_EGLDriver*
|
||||
_eglBuiltInDriverHaiku(const char *args)
|
||||
{
|
||||
_eglLog(_EGL_DEBUG,"Driver loaded");
|
||||
struct haiku_egl_driver* driver;
|
||||
driver=(struct haiku_egl_driver*)calloc(1,sizeof(*driver));
|
||||
_eglInitDriverFallbacks(&driver->base);
|
||||
driver->base.API.Initialize = init_haiku;
|
||||
driver->base.API.Terminate = haiku_terminate;
|
||||
driver->base.API.CreateContext = haiku_create_context;
|
||||
driver->base.API.DestroyContext = haiku_destroy_context;
|
||||
driver->base.API.MakeCurrent = haiku_make_current;
|
||||
driver->base.API.CreateWindowSurface = haiku_create_window_surface;
|
||||
driver->base.API.CreatePixmapSurface = haiku_create_pixmap_surface;
|
||||
driver->base.API.CreatePbufferSurface = haiku_create_pbuffer_surface;
|
||||
driver->base.API.DestroySurface = haiku_destroy_surface;
|
||||
/*
|
||||
driver->API.GetProcAddress = dri2_get_proc_address;
|
||||
driver->API.WaitClient = dri2_wait_client;
|
||||
driver->API.WaitNative = dri2_wait_native;
|
||||
driver->API.BindTexImage = dri2_bind_tex_image;
|
||||
driver->API.ReleaseTexImage = dri2_release_tex_image;
|
||||
driver->API.SwapInterval = dri2_swap_interval;
|
||||
*/
|
||||
|
||||
driver->base.API.SwapBuffers = haiku_swap_buffers;
|
||||
/*
|
||||
driver->API.SwapBuffersWithDamageEXT = dri2_swap_buffers_with_damage;
|
||||
driver->API.SwapBuffersRegionNOK = dri2_swap_buffers_region;
|
||||
driver->API.PostSubBufferNV = dri2_post_sub_buffer;
|
||||
driver->API.CopyBuffers = dri2_copy_buffers,
|
||||
driver->API.QueryBufferAge = dri2_query_buffer_age;
|
||||
driver->API.CreateImageKHR = dri2_create_image;
|
||||
driver->API.DestroyImageKHR = dri2_destroy_image_khr;
|
||||
driver->API.CreateWaylandBufferFromImageWL = dri2_create_wayland_buffer_from_image;
|
||||
driver->API.GetSyncValuesCHROMIUM = dri2_get_sync_values_chromium;
|
||||
*/
|
||||
|
||||
driver->base.Name = "Haiku";
|
||||
driver->base.Unload = haiku_unload;
|
||||
|
||||
_eglLog(_EGL_DEBUG, "API Calls defined");
|
||||
|
||||
return &driver->base;
|
||||
}
|
@@ -95,8 +95,3 @@ egl_HEADERS = \
|
||||
$(top_srcdir)/include/EGL/eglextchromium.h \
|
||||
$(top_srcdir)/include/EGL/eglmesaext.h \
|
||||
$(top_srcdir)/include/EGL/eglplatform.h
|
||||
|
||||
EXTRA_DIST = \
|
||||
egl.def \
|
||||
README.txt \
|
||||
SConscript
|
||||
|
@@ -18,32 +18,16 @@ if env['platform'] == 'windows':
|
||||
'_EGL_GET_CORE_ADDRESSES',
|
||||
'KHRONOS_DLL_EXPORTS',
|
||||
])
|
||||
elif env['platform'] == 'haiku':
|
||||
env.Append(CPPDEFINES = [
|
||||
'_EGL_NATIVE_PLATFORM=_EGL_PLATFORM_HAIKU',
|
||||
'_EGL_OS_UNIX',
|
||||
'_EGL_BUILT_IN_DRIVER_HAIKU',
|
||||
])
|
||||
env.Prepend(LIBS = [
|
||||
egl_haiku,
|
||||
libloader,
|
||||
])
|
||||
else:
|
||||
env.Append(CPPDEFINES = [
|
||||
'_EGL_NATIVE_PLATFORM=_EGL_PLATFORM_X11',
|
||||
'_EGL_OS_UNIX',
|
||||
])
|
||||
if env['dri']:
|
||||
env.Prepend(LIBS = [
|
||||
egl_dri2,
|
||||
libloader,
|
||||
])
|
||||
|
||||
env.Append(CPPPATH = [
|
||||
'#/include',
|
||||
])
|
||||
|
||||
|
||||
# parse Makefile.sources
|
||||
egl_sources = env.ParseSourceList('Makefile.sources', 'LIBEGL_C_FILES')
|
||||
|
||||
|
@@ -357,23 +357,6 @@ eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor)
|
||||
|
||||
/* limit to APIs supported by core */
|
||||
disp->ClientAPIs &= _EGL_API_ALL_BITS;
|
||||
|
||||
/* EGL_KHR_get_all_proc_addresses is a corner-case extension. The spec
|
||||
* classifies it as an EGL display extension, though conceptually it's an
|
||||
* EGL client extension.
|
||||
*
|
||||
* From the EGL_KHR_get_all_proc_addresses spec:
|
||||
*
|
||||
* The EGL implementation must expose the name
|
||||
* EGL_KHR_client_get_all_proc_addresses if and only if it exposes
|
||||
* EGL_KHR_get_all_proc_addresses and supports
|
||||
* EGL_EXT_client_extensions.
|
||||
*
|
||||
* Mesa unconditionally exposes both client extensions mentioned above,
|
||||
* so the spec requires that each EGLDisplay unconditionally expose
|
||||
* EGL_KHR_get_all_proc_addresses also.
|
||||
*/
|
||||
disp->Extensions.KHR_get_all_proc_addresses = EGL_TRUE;
|
||||
}
|
||||
|
||||
/* Update applications version of major and minor if not NULL */
|
||||
@@ -821,11 +804,9 @@ eglSwapBuffers(EGLDisplay dpy, EGLSurface surface)
|
||||
_EGL_CHECK_SURFACE(disp, surf, EGL_FALSE, drv);
|
||||
|
||||
/* surface must be bound to current context in EGL 1.4 */
|
||||
#ifndef _EGL_BUILT_IN_DRIVER_HAIKU
|
||||
if (_eglGetContextHandle(ctx) == EGL_NO_CONTEXT ||
|
||||
surf != ctx->DrawSurface)
|
||||
RETURN_EGL_ERROR(disp, EGL_BAD_SURFACE, EGL_FALSE);
|
||||
#endif
|
||||
|
||||
ret = drv->API.SwapBuffers(drv, disp, surf);
|
||||
|
||||
|
@@ -49,7 +49,7 @@ extern _EGLArray *
|
||||
_eglCreateArray(const char *name, EGLint init_size);
|
||||
|
||||
|
||||
extern void
|
||||
PUBLIC void
|
||||
_eglDestroyArray(_EGLArray *array, void (*free_cb)(void *));
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ void *
|
||||
_eglFindArray(_EGLArray *array, void *elem);
|
||||
|
||||
|
||||
extern EGLint
|
||||
PUBLIC EGLint
|
||||
_eglFilterArray(_EGLArray *array, void **data, EGLint size,
|
||||
_EGLArrayForEach filter, void *filter_data);
|
||||
|
||||
|
@@ -75,7 +75,7 @@ _eglInitConfig(_EGLConfig *conf, _EGLDisplay *dpy, EGLint id)
|
||||
*
|
||||
* Note that we just save the ptr to the config (we don't copy the config).
|
||||
*/
|
||||
EGLConfig
|
||||
PUBLIC EGLConfig
|
||||
_eglLinkConfig(_EGLConfig *conf)
|
||||
{
|
||||
_EGLDisplay *dpy = conf->Display;
|
||||
|
@@ -162,11 +162,11 @@ _eglGetConfigKey(const _EGLConfig *conf, EGLint key)
|
||||
}
|
||||
|
||||
|
||||
extern void
|
||||
PUBLIC void
|
||||
_eglInitConfig(_EGLConfig *config, _EGLDisplay *dpy, EGLint id);
|
||||
|
||||
|
||||
extern EGLConfig
|
||||
PUBLIC EGLConfig
|
||||
_eglLinkConfig(_EGLConfig *conf);
|
||||
|
||||
|
||||
@@ -184,25 +184,25 @@ _eglGetConfigHandle(_EGLConfig *conf)
|
||||
}
|
||||
|
||||
|
||||
extern EGLBoolean
|
||||
PUBLIC EGLBoolean
|
||||
_eglValidateConfig(const _EGLConfig *conf, EGLBoolean for_matching);
|
||||
|
||||
|
||||
extern EGLBoolean
|
||||
PUBLIC EGLBoolean
|
||||
_eglMatchConfig(const _EGLConfig *conf, const _EGLConfig *criteria);
|
||||
|
||||
|
||||
extern EGLBoolean
|
||||
PUBLIC EGLBoolean
|
||||
_eglParseConfigAttribList(_EGLConfig *conf, _EGLDisplay *dpy,
|
||||
const EGLint *attrib_list);
|
||||
|
||||
|
||||
extern EGLint
|
||||
PUBLIC EGLint
|
||||
_eglCompareConfigs(const _EGLConfig *conf1, const _EGLConfig *conf2,
|
||||
const _EGLConfig *criteria, EGLBoolean compare_id);
|
||||
|
||||
|
||||
extern EGLBoolean
|
||||
PUBLIC EGLBoolean
|
||||
_eglFilterConfigArray(_EGLArray *array, EGLConfig *configs,
|
||||
EGLint config_size, EGLint *num_configs,
|
||||
EGLBoolean (*match)(const _EGLConfig *, void *),
|
||||
|
@@ -63,7 +63,7 @@ struct _egl_context
|
||||
};
|
||||
|
||||
|
||||
extern EGLBoolean
|
||||
PUBLIC EGLBoolean
|
||||
_eglInitContext(_EGLContext *ctx, _EGLDisplay *dpy,
|
||||
_EGLConfig *config, const EGLint *attrib_list);
|
||||
|
||||
@@ -72,7 +72,7 @@ extern EGLBoolean
|
||||
_eglQueryContext(_EGLDriver *drv, _EGLDisplay *dpy, _EGLContext *ctx, EGLint attribute, EGLint *value);
|
||||
|
||||
|
||||
extern EGLBoolean
|
||||
PUBLIC EGLBoolean
|
||||
_eglBindContext(_EGLContext *ctx, _EGLSurface *draw, _EGLSurface *read,
|
||||
_EGLContext **old_ctx,
|
||||
_EGLSurface **old_draw, _EGLSurface **old_read);
|
||||
|
@@ -242,7 +242,7 @@ _eglIsCurrentThreadDummy(void)
|
||||
/**
|
||||
* Return the currently bound context of the given API, or NULL.
|
||||
*/
|
||||
_EGLContext *
|
||||
PUBLIC _EGLContext *
|
||||
_eglGetAPIContext(EGLenum api)
|
||||
{
|
||||
_EGLThreadInfo *t = _eglGetCurrentThread();
|
||||
|
@@ -90,7 +90,7 @@ _eglConvertApiFromIndex(EGLint idx)
|
||||
}
|
||||
|
||||
|
||||
extern _EGLThreadInfo *
|
||||
PUBLIC _EGLThreadInfo *
|
||||
_eglGetCurrentThread(void);
|
||||
|
||||
|
||||
@@ -102,15 +102,15 @@ extern EGLBoolean
|
||||
_eglIsCurrentThreadDummy(void);
|
||||
|
||||
|
||||
extern _EGLContext *
|
||||
PUBLIC _EGLContext *
|
||||
_eglGetAPIContext(EGLenum api);
|
||||
|
||||
|
||||
extern _EGLContext *
|
||||
PUBLIC _EGLContext *
|
||||
_eglGetCurrentContext(void);
|
||||
|
||||
|
||||
extern EGLBoolean
|
||||
PUBLIC EGLBoolean
|
||||
_eglError(EGLint errCode, const char *msg);
|
||||
|
||||
|
||||
|
@@ -75,8 +75,7 @@ static const struct {
|
||||
{ _EGL_PLATFORM_DRM, "drm" },
|
||||
{ _EGL_PLATFORM_FBDEV, "fbdev" },
|
||||
{ _EGL_PLATFORM_NULL, "null" },
|
||||
{ _EGL_PLATFORM_ANDROID, "android" },
|
||||
{ _EGL_PLATFORM_HAIKU, "haiku" }
|
||||
{ _EGL_PLATFORM_ANDROID, "android" }
|
||||
};
|
||||
|
||||
|
||||
@@ -178,10 +177,6 @@ _eglNativePlatformDetectNativeDisplay(void *nativeDisplay)
|
||||
/* If not matched to any other platform, fallback to x11. */
|
||||
return _EGL_PLATFORM_X11;
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_HAIKU_PLATFORM
|
||||
return _EGL_PLATFORM_HAIKU;
|
||||
#endif
|
||||
}
|
||||
|
||||
return _EGL_INVALID_PLATFORM;
|
||||
|
@@ -46,7 +46,6 @@ enum _egl_platform_type {
|
||||
_EGL_PLATFORM_FBDEV,
|
||||
_EGL_PLATFORM_NULL,
|
||||
_EGL_PLATFORM_ANDROID,
|
||||
_EGL_PLATFORM_HAIKU,
|
||||
|
||||
_EGL_NUM_PLATFORMS,
|
||||
_EGL_INVALID_PLATFORM = -1
|
||||
@@ -98,7 +97,6 @@ struct _egl_extensions
|
||||
EGLBoolean KHR_image_base;
|
||||
EGLBoolean KHR_image_pixmap;
|
||||
EGLBoolean KHR_vg_parent_image;
|
||||
EGLBoolean KHR_get_all_proc_addresses;
|
||||
EGLBoolean KHR_gl_texture_2D_image;
|
||||
EGLBoolean KHR_gl_texture_cubemap_image;
|
||||
EGLBoolean KHR_gl_texture_3D_image;
|
||||
@@ -177,11 +175,11 @@ extern _EGLDisplay *
|
||||
_eglFindDisplay(_EGLPlatformType plat, void *plat_dpy);
|
||||
|
||||
|
||||
extern void
|
||||
PUBLIC void
|
||||
_eglReleaseDisplayResources(_EGLDriver *drv, _EGLDisplay *dpy);
|
||||
|
||||
|
||||
extern void
|
||||
PUBLIC void
|
||||
_eglCleanupDisplay(_EGLDisplay *disp);
|
||||
|
||||
|
||||
@@ -189,7 +187,7 @@ extern EGLBoolean
|
||||
_eglCheckDisplayHandle(EGLDisplay dpy);
|
||||
|
||||
|
||||
extern EGLBoolean
|
||||
PUBLIC EGLBoolean
|
||||
_eglCheckResource(void *res, _EGLResourceType type, _EGLDisplay *dpy);
|
||||
|
||||
|
||||
@@ -221,11 +219,11 @@ extern void
|
||||
_eglInitResource(_EGLResource *res, EGLint size, _EGLDisplay *dpy);
|
||||
|
||||
|
||||
extern void
|
||||
PUBLIC void
|
||||
_eglGetResource(_EGLResource *res);
|
||||
|
||||
|
||||
extern EGLBoolean
|
||||
PUBLIC EGLBoolean
|
||||
_eglPutResource(_EGLResource *res);
|
||||
|
||||
|
||||
|
@@ -52,9 +52,6 @@
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
#ifdef _EGL_BUILT_IN_DRIVER_HAIKU
|
||||
_EGLDriver* _eglBuiltInDriverHaiku(const char* args);
|
||||
#endif
|
||||
|
||||
typedef struct _egl_module {
|
||||
char *Path;
|
||||
@@ -75,9 +72,6 @@ const struct {
|
||||
#endif
|
||||
#ifdef _EGL_BUILT_IN_DRIVER_DRI2
|
||||
{ "egl_dri2", _eglBuiltInDriverDRI2 },
|
||||
#endif
|
||||
#ifdef _EGL_BUILT_IN_DRIVER_HAIKU
|
||||
{ "egl_haiku", _eglBuiltInDriverHaiku },
|
||||
#endif
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
@@ -96,7 +96,7 @@ extern _EGLDriver *
|
||||
_eglBuiltInDriverGLX(const char *args);
|
||||
|
||||
|
||||
extern _EGLDriver *
|
||||
PUBLIC _EGLDriver *
|
||||
_eglMain(const char *args);
|
||||
|
||||
|
||||
@@ -113,11 +113,11 @@ _eglUnloadDrivers(void);
|
||||
|
||||
|
||||
/* defined in eglfallbacks.c */
|
||||
extern void
|
||||
PUBLIC void
|
||||
_eglInitDriverFallbacks(_EGLDriver *drv);
|
||||
|
||||
|
||||
extern void
|
||||
PUBLIC void
|
||||
_eglSearchPathForEach(EGLBoolean (*callback)(const char *, size_t, void *),
|
||||
void *callback_data);
|
||||
|
||||
|
@@ -55,8 +55,7 @@ struct _egl_global _eglGlobal =
|
||||
true, /* EGL_EXT_platform_base */
|
||||
true, /* EGL_EXT_platform_x11 */
|
||||
true, /* EGL_EXT_platform_wayland */
|
||||
true, /* EGL_MESA_platform_gbm */
|
||||
true, /* EGL_KHR_client_get_all_proc_addresses */
|
||||
true /* EGL_MESA_platform_gbm */
|
||||
},
|
||||
|
||||
/* ClientExtensionsString */
|
||||
@@ -65,7 +64,6 @@ struct _egl_global _eglGlobal =
|
||||
" EGL_EXT_platform_x11"
|
||||
" EGL_EXT_platform_wayland"
|
||||
" EGL_MESA_platform_gbm"
|
||||
" EGL_KHR_client_get_all_proc_addresses"
|
||||
};
|
||||
|
||||
|
||||
|
@@ -56,7 +56,6 @@ struct _egl_global
|
||||
bool EXT_platform_x11;
|
||||
bool EXT_platform_wayland;
|
||||
bool MESA_platform_gbm;
|
||||
bool KHR_get_all_proc_addresses;
|
||||
} ClientExtensions;
|
||||
|
||||
const char *ClientExtensionString;
|
||||
|
@@ -80,12 +80,12 @@ struct _egl_image
|
||||
};
|
||||
|
||||
|
||||
extern EGLint
|
||||
PUBLIC EGLint
|
||||
_eglParseImageAttribList(_EGLImageAttribs *attrs, _EGLDisplay *dpy,
|
||||
const EGLint *attrib_list);
|
||||
|
||||
|
||||
extern EGLBoolean
|
||||
PUBLIC EGLBoolean
|
||||
_eglInitImage(_EGLImage *img, _EGLDisplay *dpy);
|
||||
|
||||
|
||||
|
@@ -43,15 +43,15 @@
|
||||
typedef void (*_EGLLogProc)(EGLint level, const char *msg);
|
||||
|
||||
|
||||
extern void
|
||||
PUBLIC void
|
||||
_eglSetLogProc(_EGLLogProc logger);
|
||||
|
||||
|
||||
extern void
|
||||
PUBLIC void
|
||||
_eglSetLogLevel(EGLint level);
|
||||
|
||||
|
||||
extern void
|
||||
PUBLIC void
|
||||
_eglLog(EGLint level, const char *fmtStr, ...);
|
||||
|
||||
|
||||
|
@@ -101,7 +101,6 @@ _eglUpdateExtensionsString(_EGLDisplay *dpy)
|
||||
_eglAppendExtension(&exts, "EGL_KHR_image");
|
||||
|
||||
_EGL_CHECK_EXTENSION(KHR_vg_parent_image);
|
||||
_EGL_CHECK_EXTENSION(KHR_get_all_proc_addresses);
|
||||
_EGL_CHECK_EXTENSION(KHR_gl_texture_2D_image);
|
||||
_EGL_CHECK_EXTENSION(KHR_gl_texture_cubemap_image);
|
||||
_EGL_CHECK_EXTENSION(KHR_gl_texture_3D_image);
|
||||
|
@@ -67,11 +67,11 @@ struct _egl_screen
|
||||
};
|
||||
|
||||
|
||||
extern void
|
||||
PUBLIC void
|
||||
_eglInitScreen(_EGLScreen *screen, _EGLDisplay *dpy, EGLint num_modes);
|
||||
|
||||
|
||||
extern EGLScreenMESA
|
||||
PUBLIC EGLScreenMESA
|
||||
_eglLinkScreen(_EGLScreen *screen);
|
||||
|
||||
|
||||
|
@@ -78,7 +78,7 @@ struct _egl_surface
|
||||
};
|
||||
|
||||
|
||||
extern EGLBoolean
|
||||
PUBLIC EGLBoolean
|
||||
_eglInitSurface(_EGLSurface *surf, _EGLDisplay *dpy, EGLint type,
|
||||
_EGLConfig *config, const EGLint *attrib_list);
|
||||
|
||||
@@ -91,10 +91,10 @@ extern EGLBoolean
|
||||
_eglSurfaceAttrib(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surf, EGLint attribute, EGLint value);
|
||||
|
||||
|
||||
extern EGLBoolean
|
||||
PUBLIC extern EGLBoolean
|
||||
_eglBindTexImage(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surf, EGLint buffer);
|
||||
|
||||
extern EGLBoolean
|
||||
PUBLIC extern EGLBoolean
|
||||
_eglReleaseTexImage(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf, EGLint buffer);
|
||||
|
||||
|
||||
|
@@ -48,7 +48,7 @@ struct _egl_sync
|
||||
};
|
||||
|
||||
|
||||
extern EGLBoolean
|
||||
PUBLIC EGLBoolean
|
||||
_eglInitSync(_EGLSync *sync, _EGLDisplay *dpy, EGLenum type,
|
||||
const EGLint *attrib_list);
|
||||
|
||||
|
1
src/egl/wayland/Makefile.am
Normal file
1
src/egl/wayland/Makefile.am
Normal file
@@ -0,0 +1 @@
|
||||
SUBDIRS = wayland-drm wayland-egl
|
@@ -15,6 +15,5 @@ libwayland_egl_la_LDFLAGS = \
|
||||
$(LD_NO_UNDEFINED)
|
||||
|
||||
TESTS = wayland-egl-symbols-check
|
||||
EXTRA_DIST = wayland-egl-symbols-check
|
||||
|
||||
include $(top_srcdir)/install-lib-links.mk
|
||||
|
@@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/* GCC visibility */
|
||||
#if defined(__GNUC__)
|
||||
#if defined(__GNUC__) && __GNUC__ >= 4
|
||||
#define WL_EGL_EXPORT __attribute__ ((visibility("default")))
|
||||
#else
|
||||
#define WL_EGL_EXPORT
|
||||
|
@@ -32,7 +32,6 @@ GALLIUM_DRIVER_CXXFLAGS = \
|
||||
$(VISIBILITY_CXXFLAGS)
|
||||
|
||||
GALLIUM_TARGET_CFLAGS = \
|
||||
-I$(top_srcdir)/src \
|
||||
-I$(top_srcdir)/include \
|
||||
-I$(top_srcdir)/src/loader \
|
||||
-I$(top_srcdir)/src/gallium/include \
|
||||
@@ -51,7 +50,6 @@ GALLIUM_COMMON_LIB_DEPS = \
|
||||
$(DLOPEN_LIBS)
|
||||
|
||||
GALLIUM_WINSYS_CFLAGS = \
|
||||
-I$(top_srcdir)/src \
|
||||
-I$(top_srcdir)/include \
|
||||
-I$(top_srcdir)/src/gallium/include \
|
||||
-I$(top_srcdir)/src/gallium/auxiliary \
|
||||
|
@@ -112,13 +112,7 @@ SUBDIRS += winsys/sw/wrapper
|
||||
##
|
||||
|
||||
EXTRA_DIST = \
|
||||
docs \
|
||||
README.portability \
|
||||
SConscript \
|
||||
state_trackers/egl \
|
||||
state_trackers/gbm \
|
||||
targets/egl-static \
|
||||
targets/gbm \
|
||||
winsys/sw/android \
|
||||
winsys/sw/gdi \
|
||||
winsys/sw/hgl
|
||||
|
||||
@@ -181,7 +175,6 @@ endif
|
||||
##
|
||||
|
||||
EXTRA_DIST += \
|
||||
include \
|
||||
state_trackers/README \
|
||||
state_trackers/wgl targets/libgl-gdi \
|
||||
targets/graw-gdi targets/graw-null targets/graw-xlib \
|
||||
|
@@ -63,7 +63,7 @@ SConscript([
|
||||
|
||||
if not env['embedded']:
|
||||
SConscript('state_trackers/vega/SConscript')
|
||||
if env['platform'] not in ('cygwin', 'darwin', 'freebsd', 'sunos'):
|
||||
if env['platform'] not in ('cygwin', 'darwin', 'freebsd', 'haiku', 'sunos'):
|
||||
SConscript([
|
||||
'state_trackers/egl/SConscript',
|
||||
'targets/egl-static/SConscript',
|
||||
|
@@ -28,9 +28,7 @@ include $(LOCAL_PATH)/Makefile.sources
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_SRC_FILES := \
|
||||
$(C_SOURCES) \
|
||||
$(VL_STUB_SOURCES)
|
||||
LOCAL_SRC_FILES := $(C_SOURCES)
|
||||
|
||||
LOCAL_C_INCLUDES := \
|
||||
$(GALLIUM_TOP)/auxiliary/util \
|
||||
|
@@ -30,7 +30,8 @@ AM_CXXFLAGS += \
|
||||
$(LLVM_CXXFLAGS)
|
||||
|
||||
libgallium_la_SOURCES += \
|
||||
$(GALLIVM_SOURCES)
|
||||
$(GALLIVM_SOURCES) \
|
||||
$(GALLIVM_CPP_SOURCES)
|
||||
|
||||
endif
|
||||
|
||||
@@ -45,60 +46,3 @@ indices/u_unfilled_gen.c: $(srcdir)/indices/u_unfilled_gen.py
|
||||
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 > $@
|
||||
|
||||
|
||||
noinst_LTLIBRARIES += libgalliumvl_stub.la
|
||||
libgalliumvl_stub_la_SOURCES = \
|
||||
$(VL_STUB_SOURCES)
|
||||
|
||||
if NEED_GALLIUM_VL
|
||||
|
||||
COMMON_VL_CFLAGS = \
|
||||
$(AM_CFLAGS) \
|
||||
$(VL_CFLAGS) \
|
||||
$(DRI2PROTO_CFLAGS) \
|
||||
$(LIBDRM_CFLAGS) \
|
||||
$(GALLIUM_PIPE_LOADER_DEFINES) \
|
||||
-DPIPE_SEARCH_DIR=\"$(libdir)/gallium-pipe\"
|
||||
|
||||
if HAVE_GALLIUM_STATIC_TARGETS
|
||||
COMMON_VL_CFLAGS += \
|
||||
-DGALLIUM_STATIC_TARGETS=1
|
||||
|
||||
endif # HAVE_GALLIUM_STATIC_TARGETS
|
||||
|
||||
noinst_LTLIBRARIES += libgalliumvl.la
|
||||
|
||||
libgalliumvl_la_CFLAGS = \
|
||||
$(COMMON_VL_CFLAGS)
|
||||
|
||||
libgalliumvl_la_SOURCES = \
|
||||
$(VL_SOURCES)
|
||||
|
||||
if NEED_GALLIUM_VL_WINSYS
|
||||
|
||||
noinst_LTLIBRARIES += libgalliumvlwinsys.la
|
||||
|
||||
libgalliumvlwinsys_la_CFLAGS = \
|
||||
$(COMMON_VL_CFLAGS)
|
||||
|
||||
libgalliumvlwinsys_la_SOURCES = \
|
||||
$(VL_WINSYS_SOURCES)
|
||||
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
EXTRA_DIST = \
|
||||
SConscript \
|
||||
indices/u_indices.c \
|
||||
indices/u_unfilled_indices.c \
|
||||
indices/u_indices_gen.py \
|
||||
indices/u_unfilled_gen.py \
|
||||
postprocess/ADDING \
|
||||
rbug/README \
|
||||
target-helpers \
|
||||
util/u_format.csv \
|
||||
util/u_format_pack.py \
|
||||
util/u_format_parse.py \
|
||||
util/u_format_table.py
|
||||
|
@@ -1,23 +1,13 @@
|
||||
C_SOURCES := \
|
||||
cso_cache/cso_cache.c \
|
||||
cso_cache/cso_cache.h \
|
||||
cso_cache/cso_context.c \
|
||||
cso_cache/cso_context.h \
|
||||
cso_cache/cso_hash.c \
|
||||
cso_cache/cso_hash.h \
|
||||
draw/draw_cliptest_tmp.h \
|
||||
draw/draw_context.c \
|
||||
draw/draw_context.h \
|
||||
draw/draw_decompose_tmp.h \
|
||||
draw/draw_fs.c \
|
||||
draw/draw_fs.h \
|
||||
draw/draw_gs.c \
|
||||
draw/draw_gs.h \
|
||||
draw/draw_gs_tmp.h \
|
||||
draw/draw_pipe.c \
|
||||
draw/draw_pipe_aaline.c \
|
||||
draw/draw_pipe_aapoint.c \
|
||||
draw/draw_pipe.c \
|
||||
draw/draw_pipe.h \
|
||||
draw/draw_pipe_clip.c \
|
||||
draw/draw_pipe_cull.c \
|
||||
draw/draw_pipe_flatshade.c \
|
||||
@@ -32,317 +22,142 @@ C_SOURCES := \
|
||||
draw/draw_pipe_wide_line.c \
|
||||
draw/draw_pipe_wide_point.c \
|
||||
draw/draw_prim_assembler.c \
|
||||
draw/draw_prim_assembler.h \
|
||||
draw/draw_prim_assembler_tmp.h \
|
||||
draw/draw_private.h \
|
||||
draw/draw_pt.c \
|
||||
draw/draw_pt_decompose.h \
|
||||
draw/draw_pt_emit.c \
|
||||
draw/draw_pt_fetch.c \
|
||||
draw/draw_pt_fetch_emit.c \
|
||||
draw/draw_pt_fetch_shade_emit.c \
|
||||
draw/draw_pt_fetch_shade_pipeline.c \
|
||||
draw/draw_pt.h \
|
||||
draw/draw_pt_post_vs.c \
|
||||
draw/draw_pt_so_emit.c \
|
||||
draw/draw_pt_util.c \
|
||||
draw/draw_pt_vsplit.c \
|
||||
draw/draw_pt_vsplit_tmp.h \
|
||||
draw/draw_so_emit_tmp.h \
|
||||
draw/draw_split_tmp.h \
|
||||
draw/draw_vbuf.h \
|
||||
draw/draw_vertex.c \
|
||||
draw/draw_vertex.h \
|
||||
draw/draw_vs.c \
|
||||
draw/draw_vs_exec.c \
|
||||
draw/draw_vs.h \
|
||||
draw/draw_vs_variant.c \
|
||||
hud/font.c \
|
||||
hud/font.h \
|
||||
hud/hud_context.c \
|
||||
hud/hud_context.h \
|
||||
hud/hud_cpu.c \
|
||||
hud/hud_driver_query.c \
|
||||
hud/hud_fps.c \
|
||||
hud/hud_private.h \
|
||||
indices/u_indices.h \
|
||||
indices/u_indices_priv.h \
|
||||
hud/hud_driver_query.c \
|
||||
indices/u_primconvert.c \
|
||||
indices/u_primconvert.h \
|
||||
os/os_memory_aligned.h \
|
||||
os/os_memory_debug.h \
|
||||
os/os_memory_stdc.h \
|
||||
os/os_memory.h \
|
||||
os/os_misc.c \
|
||||
os/os_misc.h \
|
||||
os/os_mman.h \
|
||||
os/os_process.c \
|
||||
os/os_process.h \
|
||||
os/os_thread.h \
|
||||
os/os_time.c \
|
||||
os/os_time.h \
|
||||
pipebuffer/pb_buffer_fenced.c \
|
||||
pipebuffer/pb_buffer_fenced.h \
|
||||
pipebuffer/pb_buffer.h \
|
||||
pipebuffer/pb_buffer_malloc.c \
|
||||
pipebuffer/pb_bufmgr_alt.c \
|
||||
pipebuffer/pb_bufmgr_cache.c \
|
||||
pipebuffer/pb_bufmgr_debug.c \
|
||||
pipebuffer/pb_bufmgr.h \
|
||||
pipebuffer/pb_bufmgr_mm.c \
|
||||
pipebuffer/pb_bufmgr_ondemand.c \
|
||||
pipebuffer/pb_bufmgr_pool.c \
|
||||
pipebuffer/pb_bufmgr_slab.c \
|
||||
pipebuffer/pb_validate.c \
|
||||
pipebuffer/pb_validate.h \
|
||||
postprocess/filters.h \
|
||||
postprocess/postprocess.h \
|
||||
postprocess/pp_celshade.c \
|
||||
postprocess/pp_celshade.h \
|
||||
postprocess/pp_colors.c \
|
||||
postprocess/pp_colors.h \
|
||||
postprocess/pp_filters.h \
|
||||
postprocess/pp_init.c \
|
||||
postprocess/pp_mlaa_areamap.h \
|
||||
postprocess/pp_mlaa.c \
|
||||
postprocess/pp_mlaa.h \
|
||||
postprocess/pp_private.h \
|
||||
postprocess/pp_program.c \
|
||||
postprocess/pp_run.c \
|
||||
postprocess/pp_program.c \
|
||||
rbug/rbug_connection.c \
|
||||
rbug/rbug_connection.h \
|
||||
rbug/rbug_context.c \
|
||||
rbug/rbug_context.h \
|
||||
rbug/rbug_core.c \
|
||||
rbug/rbug_core.h \
|
||||
rbug/rbug_demarshal.c \
|
||||
rbug/rbug.h \
|
||||
rbug/rbug_internal.h \
|
||||
rbug/rbug_proto.h \
|
||||
rbug/rbug_shader.c \
|
||||
rbug/rbug_shader.h \
|
||||
rbug/rbug_texture.c \
|
||||
rbug/rbug_texture.h \
|
||||
rbug/rbug_shader.c \
|
||||
rtasm/rtasm_cpu.c \
|
||||
rtasm/rtasm_cpu.h \
|
||||
rtasm/rtasm_execmem.c \
|
||||
rtasm/rtasm_execmem.h \
|
||||
rtasm/rtasm_x86sse.c \
|
||||
rtasm/rtasm_x86sse.h \
|
||||
tgsi/tgsi_build.c \
|
||||
tgsi/tgsi_build.h \
|
||||
tgsi/tgsi_dump.c \
|
||||
tgsi/tgsi_dump.h \
|
||||
tgsi/tgsi_exec.c \
|
||||
tgsi/tgsi_exec.h \
|
||||
tgsi/tgsi_info.c \
|
||||
tgsi/tgsi_info.h \
|
||||
tgsi/tgsi_iterate.c \
|
||||
tgsi/tgsi_iterate.h \
|
||||
tgsi/tgsi_lowering.c \
|
||||
tgsi/tgsi_lowering.h \
|
||||
tgsi/tgsi_opcode_tmp.h \
|
||||
tgsi/tgsi_parse.c \
|
||||
tgsi/tgsi_parse.h \
|
||||
tgsi/tgsi_sanity.c \
|
||||
tgsi/tgsi_sanity.h \
|
||||
tgsi/tgsi_scan.c \
|
||||
tgsi/tgsi_scan.h \
|
||||
tgsi/tgsi_strings.c \
|
||||
tgsi/tgsi_strings.h \
|
||||
tgsi/tgsi_text.c \
|
||||
tgsi/tgsi_text.h \
|
||||
tgsi/tgsi_transform.c \
|
||||
tgsi/tgsi_transform.h \
|
||||
tgsi/tgsi_ureg.c \
|
||||
tgsi/tgsi_ureg.h \
|
||||
tgsi/tgsi_util.c \
|
||||
tgsi/tgsi_util.h \
|
||||
translate/translate.c \
|
||||
translate/translate.h \
|
||||
translate/translate_cache.c \
|
||||
translate/translate_cache.h \
|
||||
translate/translate_generic.c \
|
||||
translate/translate_sse.c \
|
||||
util/dbghelp.h \
|
||||
util/u_bitmask.c \
|
||||
util/u_bitmask.h \
|
||||
util/u_blend.h \
|
||||
util/u_blit.c \
|
||||
util/u_blit.h \
|
||||
util/u_blitter.c \
|
||||
util/u_blitter.h \
|
||||
util/u_box.h \
|
||||
util/u_cache.c \
|
||||
util/u_cache.h \
|
||||
util/u_caps.c \
|
||||
util/u_caps.h \
|
||||
util/u_clear.h \
|
||||
util/u_cpu_detect.c \
|
||||
util/u_cpu_detect.h \
|
||||
util/u_debug.c \
|
||||
util/u_debug_describe.c \
|
||||
util/u_debug_describe.h \
|
||||
util/u_debug_flush.c \
|
||||
util/u_debug_flush.h \
|
||||
util/u_debug.h \
|
||||
util/u_debug_memory.c \
|
||||
util/u_debug_refcnt.c \
|
||||
util/u_debug_refcnt.h \
|
||||
util/u_debug_stack.c \
|
||||
util/u_debug_stack.h \
|
||||
util/u_debug_symbol.c \
|
||||
util/u_debug_symbol.h \
|
||||
util/u_dirty_flags.h \
|
||||
util/u_dirty_surfaces.h \
|
||||
util/u_dl.c \
|
||||
util/u_dl.h \
|
||||
util/u_double_list.h \
|
||||
util/u_draw.c \
|
||||
util/u_draw.h \
|
||||
util/u_draw_quad.c \
|
||||
util/u_draw_quad.h \
|
||||
util/u_dual_blend.h \
|
||||
util/u_dump_defines.c \
|
||||
util/u_dump.h \
|
||||
util/u_dump_state.c \
|
||||
util/u_dynarray.h \
|
||||
util/u_fifo.h \
|
||||
util/u_format_bptc.c \
|
||||
util/u_format_bptc.h \
|
||||
util/u_bitmask.c \
|
||||
util/u_blit.c \
|
||||
util/u_blitter.c \
|
||||
util/u_cache.c \
|
||||
util/u_caps.c \
|
||||
util/u_cpu_detect.c \
|
||||
util/u_dl.c \
|
||||
util/u_draw.c \
|
||||
util/u_draw_quad.c \
|
||||
util/u_format.c \
|
||||
util/u_format_etc.c \
|
||||
util/u_format_etc.h \
|
||||
util/u_format.h \
|
||||
util/u_format_latc.c \
|
||||
util/u_format_latc.h \
|
||||
util/u_format_other.c \
|
||||
util/u_format_other.h \
|
||||
util/u_format_r11g11b10f.h \
|
||||
util/u_format_rgb9e5.h \
|
||||
util/u_format_rgtc.c \
|
||||
util/u_format_rgtc.h \
|
||||
util/u_format_latc.c \
|
||||
util/u_format_s3tc.c \
|
||||
util/u_format_s3tc.h \
|
||||
util/u_format_rgtc.c \
|
||||
util/u_format_etc.c \
|
||||
util/u_format_bptc.c \
|
||||
util/u_format_tests.c \
|
||||
util/u_format_tests.h \
|
||||
util/u_format_yuv.c \
|
||||
util/u_format_yuv.h \
|
||||
util/u_format_zs.c \
|
||||
util/u_format_zs.h \
|
||||
util/u_framebuffer.c \
|
||||
util/u_framebuffer.h \
|
||||
util/u_gen_mipmap.c \
|
||||
util/u_gen_mipmap.h \
|
||||
util/u_half.h \
|
||||
util/u_handle_table.c \
|
||||
util/u_handle_table.h \
|
||||
util/u_hash.c \
|
||||
util/u_hash.h \
|
||||
util/u_hash_table.c \
|
||||
util/u_hash_table.h \
|
||||
util/u_helpers.c \
|
||||
util/u_helpers.h \
|
||||
util/u_index_modify.c \
|
||||
util/u_index_modify.h \
|
||||
util/u_init.h \
|
||||
util/u_inlines.h \
|
||||
util/u_keymap.c \
|
||||
util/u_keymap.h \
|
||||
util/u_linear.c \
|
||||
util/u_linear.h \
|
||||
util/u_linkage.c \
|
||||
util/u_linkage.h \
|
||||
util/u_math.c \
|
||||
util/u_math.h \
|
||||
util/u_memory.h \
|
||||
util/u_mm.c \
|
||||
util/u_mm.h \
|
||||
util/u_network.c \
|
||||
util/u_network.h \
|
||||
util/u_pack_color.h \
|
||||
util/u_pointer.h \
|
||||
util/u_prim.h \
|
||||
util/u_math.c \
|
||||
util/u_mm.c \
|
||||
util/u_pstipple.c \
|
||||
util/u_pstipple.h \
|
||||
util/u_range.h \
|
||||
util/u_rect.h \
|
||||
util/u_resource.c \
|
||||
util/u_resource.h \
|
||||
util/u_ringbuffer.c \
|
||||
util/u_ringbuffer.h \
|
||||
util/u_sampler.c \
|
||||
util/u_sampler.h \
|
||||
util/u_simple_shaders.c \
|
||||
util/u_simple_shaders.h \
|
||||
util/u_slab.c \
|
||||
util/u_slab.h \
|
||||
util/u_snprintf.c \
|
||||
util/u_split_prim.h \
|
||||
util/u_sse.h \
|
||||
util/u_staging.c \
|
||||
util/u_staging.h \
|
||||
util/u_string.h \
|
||||
util/u_suballoc.c \
|
||||
util/u_suballoc.h \
|
||||
util/u_surface.c \
|
||||
util/u_surface.h \
|
||||
util/u_surfaces.c \
|
||||
util/u_surfaces.h \
|
||||
util/u_tests.c \
|
||||
util/u_tests.h \
|
||||
util/u_texture.c \
|
||||
util/u_texture.h \
|
||||
util/u_tile.c \
|
||||
util/u_tile.h \
|
||||
util/u_time.h \
|
||||
util/u_transfer.c \
|
||||
util/u_transfer.h \
|
||||
util/u_resource.c \
|
||||
util/u_upload_mgr.c \
|
||||
util/u_upload_mgr.h \
|
||||
util/u_vbuf.c \
|
||||
util/u_vbuf.h \
|
||||
util/u_video.h
|
||||
|
||||
VL_SOURCES := \
|
||||
vl/vl_compositor.c \
|
||||
vl/vl_compositor.h \
|
||||
vl/vl_csc.c \
|
||||
vl/vl_csc.h \
|
||||
vl/vl_decoder.c \
|
||||
vl/vl_decoder.h \
|
||||
vl/vl_defines.h \
|
||||
vl/vl_deint_filter.c \
|
||||
vl/vl_deint_filter.h \
|
||||
vl/vl_idct.c \
|
||||
vl/vl_idct.h \
|
||||
vl/vl_compositor.c \
|
||||
vl/vl_matrix_filter.c \
|
||||
vl/vl_matrix_filter.h \
|
||||
vl/vl_mc.c \
|
||||
vl/vl_mc.h \
|
||||
vl/vl_median_filter.c \
|
||||
vl/vl_median_filter.h \
|
||||
vl/vl_mpeg12_bitstream.c \
|
||||
vl/vl_mpeg12_bitstream.h \
|
||||
vl/vl_decoder.c \
|
||||
vl/vl_mpeg12_decoder.c \
|
||||
vl/vl_mpeg12_decoder.h \
|
||||
vl/vl_rbsp.h \
|
||||
vl/vl_types.h \
|
||||
vl/vl_vertex_buffers.c \
|
||||
vl/vl_vertex_buffers.h \
|
||||
vl/vl_video_buffer.c \
|
||||
vl/vl_video_buffer.h \
|
||||
vl/vl_vlc.h \
|
||||
vl/vl_winsys.h \
|
||||
vl/vl_mpeg12_bitstream.c \
|
||||
vl/vl_zscan.c \
|
||||
vl/vl_zscan.h
|
||||
|
||||
# XXX: Nuke this as our dri targets no longer depend on VL.
|
||||
VL_WINSYS_SOURCES := \
|
||||
vl/vl_winsys_dri.c
|
||||
|
||||
VL_STUB_SOURCES := \
|
||||
vl/vl_stubs.c
|
||||
vl/vl_idct.c \
|
||||
vl/vl_mc.c \
|
||||
vl/vl_vertex_buffers.c \
|
||||
vl/vl_video_buffer.c \
|
||||
vl/vl_deint_filter.c
|
||||
|
||||
GENERATED_SOURCES := \
|
||||
indices/u_indices_gen.c \
|
||||
@@ -350,67 +165,42 @@ GENERATED_SOURCES := \
|
||||
util/u_format_table.c
|
||||
|
||||
GALLIVM_SOURCES := \
|
||||
gallivm/lp_bld_arit.c \
|
||||
gallivm/lp_bld_arit.h \
|
||||
gallivm/lp_bld_arit_overflow.c \
|
||||
gallivm/lp_bld_arit_overflow.h \
|
||||
gallivm/lp_bld_assert.c \
|
||||
gallivm/lp_bld_assert.h \
|
||||
gallivm/lp_bld_bitarit.c \
|
||||
gallivm/lp_bld_bitarit.h \
|
||||
gallivm/lp_bld_const.c \
|
||||
gallivm/lp_bld_const.h \
|
||||
gallivm/lp_bld_conv.c \
|
||||
gallivm/lp_bld_conv.h \
|
||||
gallivm/lp_bld_debug.cpp \
|
||||
gallivm/lp_bld_debug.h \
|
||||
gallivm/lp_bld_flow.c \
|
||||
gallivm/lp_bld_flow.h \
|
||||
gallivm/lp_bld_format_aos_array.c \
|
||||
gallivm/lp_bld_format_aos.c \
|
||||
gallivm/lp_bld_arit.c \
|
||||
gallivm/lp_bld_arit_overflow.c \
|
||||
gallivm/lp_bld_assert.c \
|
||||
gallivm/lp_bld_bitarit.c \
|
||||
gallivm/lp_bld_const.c \
|
||||
gallivm/lp_bld_conv.c \
|
||||
gallivm/lp_bld_flow.c \
|
||||
gallivm/lp_bld_format_aos.c \
|
||||
gallivm/lp_bld_format_aos_array.c \
|
||||
gallivm/lp_bld_format_float.c \
|
||||
gallivm/lp_bld_format.h \
|
||||
gallivm/lp_bld_format_soa.c \
|
||||
gallivm/lp_bld_format_srgb.c \
|
||||
gallivm/lp_bld_format_yuv.c \
|
||||
gallivm/lp_bld_gather.c \
|
||||
gallivm/lp_bld_gather.h \
|
||||
gallivm/lp_bld.h \
|
||||
gallivm/lp_bld_init.c \
|
||||
gallivm/lp_bld_init.h \
|
||||
gallivm/lp_bld_intr.c \
|
||||
gallivm/lp_bld_intr.h \
|
||||
gallivm/lp_bld_limits.h \
|
||||
gallivm/lp_bld_logic.c \
|
||||
gallivm/lp_bld_logic.h \
|
||||
gallivm/lp_bld_misc.cpp \
|
||||
gallivm/lp_bld_misc.h \
|
||||
gallivm/lp_bld_pack.c \
|
||||
gallivm/lp_bld_pack.h \
|
||||
gallivm/lp_bld_printf.c \
|
||||
gallivm/lp_bld_printf.h \
|
||||
gallivm/lp_bld_quad.c \
|
||||
gallivm/lp_bld_quad.h \
|
||||
gallivm/lp_bld_sample_aos.c \
|
||||
gallivm/lp_bld_sample_aos.h \
|
||||
gallivm/lp_bld_sample.c \
|
||||
gallivm/lp_bld_sample.h \
|
||||
gallivm/lp_bld_sample_soa.c \
|
||||
gallivm/lp_bld_struct.c \
|
||||
gallivm/lp_bld_struct.h \
|
||||
gallivm/lp_bld_swizzle.c \
|
||||
gallivm/lp_bld_swizzle.h \
|
||||
gallivm/lp_bld_tgsi_action.c \
|
||||
gallivm/lp_bld_tgsi_action.h \
|
||||
gallivm/lp_bld_tgsi_aos.c \
|
||||
gallivm/lp_bld_tgsi.c \
|
||||
gallivm/lp_bld_tgsi.h \
|
||||
gallivm/lp_bld_tgsi_info.c \
|
||||
gallivm/lp_bld_tgsi_soa.c \
|
||||
gallivm/lp_bld_type.c \
|
||||
gallivm/lp_bld_type.h \
|
||||
draw/draw_llvm.c \
|
||||
draw/draw_llvm.h \
|
||||
draw/draw_llvm_sample.c \
|
||||
draw/draw_pt_fetch_shade_pipeline_llvm.c \
|
||||
draw/draw_vs_llvm.c
|
||||
gallivm/lp_bld_format_srgb.c \
|
||||
gallivm/lp_bld_format_soa.c \
|
||||
gallivm/lp_bld_format_yuv.c \
|
||||
gallivm/lp_bld_gather.c \
|
||||
gallivm/lp_bld_init.c \
|
||||
gallivm/lp_bld_intr.c \
|
||||
gallivm/lp_bld_logic.c \
|
||||
gallivm/lp_bld_pack.c \
|
||||
gallivm/lp_bld_printf.c \
|
||||
gallivm/lp_bld_quad.c \
|
||||
gallivm/lp_bld_sample.c \
|
||||
gallivm/lp_bld_sample_aos.c \
|
||||
gallivm/lp_bld_sample_soa.c \
|
||||
gallivm/lp_bld_struct.c \
|
||||
gallivm/lp_bld_swizzle.c \
|
||||
gallivm/lp_bld_tgsi.c \
|
||||
gallivm/lp_bld_tgsi_action.c \
|
||||
gallivm/lp_bld_tgsi_aos.c \
|
||||
gallivm/lp_bld_tgsi_info.c \
|
||||
gallivm/lp_bld_tgsi_soa.c \
|
||||
gallivm/lp_bld_type.c \
|
||||
draw/draw_llvm.c \
|
||||
draw/draw_llvm_sample.c \
|
||||
draw/draw_vs_llvm.c \
|
||||
draw/draw_pt_fetch_shade_pipeline_llvm.c
|
||||
|
||||
GALLIVM_CPP_SOURCES := \
|
||||
gallivm/lp_bld_debug.cpp \
|
||||
gallivm/lp_bld_misc.cpp
|
||||
|
@@ -36,13 +36,13 @@ env.Depends('util/u_format_table.c', [
|
||||
|
||||
source = env.ParseSourceList('Makefile.sources', [
|
||||
'C_SOURCES',
|
||||
'VL_STUB_SOURCES',
|
||||
'GENERATED_SOURCES'
|
||||
])
|
||||
|
||||
if env['llvm']:
|
||||
source += env.ParseSourceList('Makefile.sources', [
|
||||
'GALLIVM_SOURCES',
|
||||
'GALLIVM_CPP_SOURCES'
|
||||
])
|
||||
|
||||
gallium = env.ConvenienceLibrary(
|
||||
|
@@ -286,9 +286,9 @@ out:
|
||||
}
|
||||
|
||||
/**
|
||||
* Free the CSO context.
|
||||
* Prior to context destruction, this function unbinds all state objects.
|
||||
*/
|
||||
void cso_destroy_context( struct cso_context *ctx )
|
||||
void cso_release_all( struct cso_context *ctx )
|
||||
{
|
||||
unsigned i, shader;
|
||||
|
||||
@@ -355,10 +355,20 @@ void cso_destroy_context( struct cso_context *ctx )
|
||||
cso_cache_delete( ctx->cache );
|
||||
ctx->cache = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
if (ctx->vbuf)
|
||||
u_vbuf_destroy(ctx->vbuf);
|
||||
FREE( ctx );
|
||||
|
||||
/**
|
||||
* Free the CSO context. NOTE: the state tracker should have previously called
|
||||
* cso_release_all().
|
||||
*/
|
||||
void cso_destroy_context( struct cso_context *ctx )
|
||||
{
|
||||
if (ctx) {
|
||||
if (ctx->vbuf)
|
||||
u_vbuf_destroy(ctx->vbuf);
|
||||
FREE( ctx );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@@ -42,9 +42,13 @@ struct cso_context;
|
||||
struct u_vbuf;
|
||||
|
||||
struct cso_context *cso_create_context( struct pipe_context *pipe );
|
||||
|
||||
void cso_release_all( struct cso_context *ctx );
|
||||
|
||||
void cso_destroy_context( struct cso_context *cso );
|
||||
|
||||
|
||||
|
||||
enum pipe_error cso_set_blend( struct cso_context *cso,
|
||||
const struct pipe_blend_state *blend );
|
||||
void cso_save_blend(struct cso_context *cso);
|
||||
|
@@ -35,9 +35,7 @@
|
||||
|
||||
#include "cso_hash.h"
|
||||
|
||||
#ifndef MAX
|
||||
#define MAX(a, b) ((a > b) ? (a) : (b))
|
||||
#endif
|
||||
|
||||
static const int MinNumBits = 4;
|
||||
|
||||
|
@@ -53,7 +53,20 @@
|
||||
boolean
|
||||
draw_get_option_use_llvm(void)
|
||||
{
|
||||
return debug_get_bool_option("DRAW_USE_LLVM", TRUE);
|
||||
static boolean first = TRUE;
|
||||
static boolean value;
|
||||
if (first) {
|
||||
first = FALSE;
|
||||
value = debug_get_bool_option("DRAW_USE_LLVM", TRUE);
|
||||
|
||||
#ifdef PIPE_ARCH_X86
|
||||
util_cpu_detect();
|
||||
/* require SSE2 due to LLVM PR6960. XXX Might be fixed by now? */
|
||||
if (!util_cpu_caps.has_sse2)
|
||||
value = FALSE;
|
||||
#endif
|
||||
}
|
||||
return value;
|
||||
}
|
||||
#else
|
||||
boolean
|
||||
@@ -254,48 +267,21 @@ void draw_set_zs_format(struct draw_context *draw, enum pipe_format format)
|
||||
}
|
||||
|
||||
|
||||
static bool
|
||||
draw_is_vs_window_space(struct draw_context *draw)
|
||||
static void update_clip_flags( struct draw_context *draw )
|
||||
{
|
||||
if (draw->vs.vertex_shader) {
|
||||
struct tgsi_shader_info *info = &draw->vs.vertex_shader->info;
|
||||
|
||||
return info->properties[TGSI_PROPERTY_VS_WINDOW_SPACE_POSITION] != 0;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
draw_update_clip_flags(struct draw_context *draw)
|
||||
{
|
||||
bool window_space = draw_is_vs_window_space(draw);
|
||||
|
||||
draw->clip_xy = !draw->driver.bypass_clip_xy && !window_space;
|
||||
draw->clip_xy = !draw->driver.bypass_clip_xy;
|
||||
draw->guard_band_xy = (!draw->driver.bypass_clip_xy &&
|
||||
draw->driver.guard_band_xy);
|
||||
draw->clip_z = (!draw->driver.bypass_clip_z &&
|
||||
draw->rasterizer && draw->rasterizer->depth_clip) &&
|
||||
!window_space;
|
||||
draw->rasterizer && draw->rasterizer->depth_clip);
|
||||
draw->clip_user = draw->rasterizer &&
|
||||
draw->rasterizer->clip_plane_enable != 0 &&
|
||||
!window_space;
|
||||
draw->rasterizer->clip_plane_enable != 0;
|
||||
draw->guard_band_points_xy = draw->guard_band_xy ||
|
||||
(draw->driver.bypass_clip_points &&
|
||||
(draw->rasterizer &&
|
||||
draw->rasterizer->point_tri_clip));
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
draw_update_viewport_flags(struct draw_context *draw)
|
||||
{
|
||||
bool window_space = draw_is_vs_window_space(draw);
|
||||
|
||||
draw->bypass_viewport = window_space || draw->identity_viewport;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Register new primitive rasterization/rendering state.
|
||||
* This causes the drawing pipeline to be rebuilt.
|
||||
@@ -309,7 +295,7 @@ void draw_set_rasterizer_state( struct draw_context *draw,
|
||||
|
||||
draw->rasterizer = raster;
|
||||
draw->rast_handle = rast_handle;
|
||||
draw_update_clip_flags(draw);
|
||||
update_clip_flags(draw);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -336,7 +322,7 @@ void draw_set_driver_clipping( struct draw_context *draw,
|
||||
draw->driver.bypass_clip_z = bypass_clip_z;
|
||||
draw->driver.guard_band_xy = guard_band_xy;
|
||||
draw->driver.bypass_clip_points = bypass_clip_points;
|
||||
draw_update_clip_flags(draw);
|
||||
update_clip_flags(draw);
|
||||
}
|
||||
|
||||
|
||||
@@ -387,10 +373,11 @@ void draw_set_viewport_states( struct draw_context *draw,
|
||||
(viewport->scale[0] == 1.0f &&
|
||||
viewport->scale[1] == 1.0f &&
|
||||
viewport->scale[2] == 1.0f &&
|
||||
viewport->scale[3] == 1.0f &&
|
||||
viewport->translate[0] == 0.0f &&
|
||||
viewport->translate[1] == 0.0f &&
|
||||
viewport->translate[2] == 0.0f);
|
||||
draw_update_viewport_flags(draw);
|
||||
viewport->translate[2] == 0.0f &&
|
||||
viewport->translate[3] == 0.0f);
|
||||
}
|
||||
|
||||
|
||||
@@ -689,7 +676,7 @@ draw_total_vs_outputs(const struct draw_context *draw)
|
||||
{
|
||||
const struct tgsi_shader_info *info = &draw->vs.vertex_shader->info;
|
||||
|
||||
return info->num_outputs + draw->extra_shader_outputs.num;
|
||||
return info->num_outputs + draw->extra_shader_outputs.num;;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -821,7 +808,7 @@ draw_current_shader_viewport_index_output(const struct draw_context *draw)
|
||||
{
|
||||
if (draw->gs.geometry_shader)
|
||||
return draw->gs.geometry_shader->viewport_index_output;
|
||||
return draw->vs.vertex_shader->viewport_index_output;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -833,7 +820,7 @@ draw_current_shader_uses_viewport_index(const struct draw_context *draw)
|
||||
{
|
||||
if (draw->gs.geometry_shader)
|
||||
return draw->gs.geometry_shader->info.writes_viewport_index;
|
||||
return draw->vs.vertex_shader->info.writes_viewport_index;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
|
@@ -715,7 +715,7 @@ draw_create_geometry_shader(struct draw_context *draw,
|
||||
{
|
||||
#ifdef HAVE_LLVM
|
||||
boolean use_llvm = draw->llvm != NULL;
|
||||
struct llvm_geometry_shader *llvm_gs = NULL;
|
||||
struct llvm_geometry_shader *llvm_gs;
|
||||
#endif
|
||||
struct draw_geometry_shader *gs;
|
||||
unsigned i;
|
||||
|
@@ -54,7 +54,7 @@
|
||||
#include "util/u_math.h"
|
||||
#include "util/u_pointer.h"
|
||||
#include "util/u_string.h"
|
||||
#include "util/simple_list.h"
|
||||
#include "util/u_simple_list.h"
|
||||
|
||||
|
||||
#define DEBUG_STORE 0
|
||||
@@ -225,7 +225,7 @@ create_jit_context_type(struct gallivm_state *gallivm,
|
||||
LP_MAX_TGSI_CONST_BUFFERS);
|
||||
elem_types[2] = LLVMPointerType(LLVMArrayType(LLVMArrayType(float_type, 4),
|
||||
DRAW_TOTAL_CLIP_PLANES), 0);
|
||||
elem_types[3] = LLVMPointerType(float_type, 0); /* viewports */
|
||||
elem_types[3] = LLVMPointerType(float_type, 0); /* viewport */
|
||||
elem_types[4] = LLVMArrayType(texture_type,
|
||||
PIPE_MAX_SHADER_SAMPLER_VIEWS); /* textures */
|
||||
elem_types[5] = LLVMArrayType(sampler_type,
|
||||
@@ -238,7 +238,7 @@ create_jit_context_type(struct gallivm_state *gallivm,
|
||||
target, context_type, DRAW_JIT_CTX_NUM_CONSTANTS);
|
||||
LP_CHECK_MEMBER_OFFSET(struct draw_jit_context, planes,
|
||||
target, context_type, DRAW_JIT_CTX_PLANES);
|
||||
LP_CHECK_MEMBER_OFFSET(struct draw_jit_context, viewports,
|
||||
LP_CHECK_MEMBER_OFFSET(struct draw_jit_context, viewport,
|
||||
target, context_type, DRAW_JIT_CTX_VIEWPORT);
|
||||
LP_CHECK_MEMBER_OFFSET(struct draw_jit_context, textures,
|
||||
target, context_type,
|
||||
@@ -274,7 +274,7 @@ create_gs_jit_context_type(struct gallivm_state *gallivm,
|
||||
LP_MAX_TGSI_CONST_BUFFERS);
|
||||
elem_types[2] = LLVMPointerType(LLVMArrayType(LLVMArrayType(float_type, 4),
|
||||
DRAW_TOTAL_CLIP_PLANES), 0);
|
||||
elem_types[3] = LLVMPointerType(float_type, 0); /* viewports */
|
||||
elem_types[3] = LLVMPointerType(float_type, 0); /* viewport */
|
||||
|
||||
elem_types[4] = LLVMArrayType(texture_type,
|
||||
PIPE_MAX_SHADER_SAMPLER_VIEWS); /* textures */
|
||||
@@ -296,7 +296,7 @@ create_gs_jit_context_type(struct gallivm_state *gallivm,
|
||||
target, context_type, DRAW_GS_JIT_CTX_NUM_CONSTANTS);
|
||||
LP_CHECK_MEMBER_OFFSET(struct draw_gs_jit_context, planes,
|
||||
target, context_type, DRAW_GS_JIT_CTX_PLANES);
|
||||
LP_CHECK_MEMBER_OFFSET(struct draw_gs_jit_context, viewports,
|
||||
LP_CHECK_MEMBER_OFFSET(struct draw_gs_jit_context, viewport,
|
||||
target, context_type, DRAW_GS_JIT_CTX_VIEWPORT);
|
||||
LP_CHECK_MEMBER_OFFSET(struct draw_gs_jit_context, textures,
|
||||
target, context_type,
|
||||
@@ -742,7 +742,6 @@ generate_fetch(struct gallivm_state *gallivm,
|
||||
val = lp_build_fetch_rgba_aos(gallivm,
|
||||
format_desc,
|
||||
lp_float32_vec4_type(),
|
||||
FALSE,
|
||||
map_ptr,
|
||||
zero, zero, zero);
|
||||
LLVMBuildStore(builder, val, temp_ptr);
|
||||
@@ -1081,11 +1080,7 @@ generate_viewport(struct draw_llvm_variant *variant,
|
||||
LLVMTypeRef vs_type_llvm = lp_build_vec_type(gallivm, vs_type);
|
||||
LLVMValueRef out3 = LLVMBuildLoad(builder, outputs[pos][3], ""); /*w0 w1 .. wn*/
|
||||
LLVMValueRef const1 = lp_build_const_vec(gallivm, f32_type, 1.0); /*1.0 1.0 1.0 1.0*/
|
||||
LLVMValueRef vp_ptr = draw_jit_context_viewports(gallivm, context_ptr);
|
||||
|
||||
/* We treat pipe_viewport_state as a float array */
|
||||
const int scale_index_offset = offsetof(struct pipe_viewport_state, scale) / sizeof(float);
|
||||
const int trans_index_offset = offsetof(struct pipe_viewport_state, translate) / sizeof(float);
|
||||
LLVMValueRef vp_ptr = draw_jit_context_viewport(gallivm, context_ptr);
|
||||
|
||||
/* for 1/w convention*/
|
||||
out3 = LLVMBuildFDiv(builder, const1, out3, "");
|
||||
@@ -1100,10 +1095,10 @@ generate_viewport(struct draw_llvm_variant *variant,
|
||||
LLVMValueRef trans_i;
|
||||
LLVMValueRef index;
|
||||
|
||||
index = lp_build_const_int32(gallivm, i + scale_index_offset);
|
||||
index = lp_build_const_int32(gallivm, i);
|
||||
scale_i = LLVMBuildGEP(builder, vp_ptr, &index, 1, "");
|
||||
|
||||
index = lp_build_const_int32(gallivm, i + trans_index_offset);
|
||||
index = lp_build_const_int32(gallivm, i+4);
|
||||
trans_i = LLVMBuildGEP(builder, vp_ptr, &index, 1, "");
|
||||
|
||||
scale = lp_build_broadcast(gallivm, vs_type_llvm,
|
||||
@@ -1269,7 +1264,7 @@ generate_clipmask(struct draw_llvm *llvm,
|
||||
test = lp_build_compare(gallivm, f32_type, PIPE_FUNC_GREATER, zero, clipdist);
|
||||
is_nan_or_inf = lp_build_is_inf_or_nan(gallivm, vs_type, clipdist);
|
||||
test = LLVMBuildOr(builder, test, is_nan_or_inf, "");
|
||||
temp = lp_build_const_int_vec(gallivm, i32_type, 1LL << plane_idx);
|
||||
temp = lp_build_const_int_vec(gallivm, i32_type, 1 << plane_idx);
|
||||
test = LLVMBuildAnd(builder, test, temp, "");
|
||||
mask = LLVMBuildOr(builder, mask, test, "");
|
||||
} else {
|
||||
@@ -1305,7 +1300,7 @@ generate_clipmask(struct draw_llvm *llvm,
|
||||
sum = LLVMBuildFAdd(builder, sum, test, "");
|
||||
|
||||
test = lp_build_compare(gallivm, f32_type, PIPE_FUNC_GREATER, zero, sum);
|
||||
temp = lp_build_const_int_vec(gallivm, i32_type, 1LL << plane_idx);
|
||||
temp = lp_build_const_int_vec(gallivm, i32_type, 1 << plane_idx);
|
||||
test = LLVMBuildAnd(builder, test, temp, "");
|
||||
mask = LLVMBuildOr(builder, mask, test, "");
|
||||
}
|
||||
@@ -1522,12 +1517,8 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant,
|
||||
/* 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.
|
||||
* The code can't handle vp transform when vs writes vp index neither
|
||||
* (though this would be fixable here, but couldn't just broadcast
|
||||
* the values).
|
||||
*/
|
||||
const boolean bypass_viewport = key->has_gs || key->bypass_viewport ||
|
||||
llvm->draw->vs.vertex_shader->info.writes_viewport_index;
|
||||
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);
|
||||
@@ -1653,8 +1644,6 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant,
|
||||
LLVMValueRef aos_attribs[PIPE_MAX_SHADER_INPUTS][LP_MAX_VECTOR_WIDTH / 32] = { { 0 } };
|
||||
LLVMValueRef io;
|
||||
LLVMValueRef clipmask; /* holds the clipmask value */
|
||||
LLVMValueRef true_index_array = lp_build_zero(gallivm,
|
||||
lp_type_uint_vec(32, 32*vector_length));
|
||||
const LLVMValueRef (*ptr_aos)[TGSI_NUM_CHANNELS];
|
||||
|
||||
io_itr = lp_loop.counter;
|
||||
@@ -1664,6 +1653,7 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant,
|
||||
lp_build_printf(gallivm, " --- io %d = %p, loop counter %d\n",
|
||||
io_itr, io, lp_loop.counter);
|
||||
#endif
|
||||
system_values.vertex_id = lp_build_zero(gallivm, lp_type_uint_vec(32, 32*vector_length));
|
||||
for (i = 0; i < vector_length; ++i) {
|
||||
LLVMValueRef vert_index =
|
||||
LLVMBuildAdd(builder,
|
||||
@@ -1671,6 +1661,7 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant,
|
||||
lp_build_const_int32(gallivm, i), "");
|
||||
LLVMValueRef true_index =
|
||||
LLVMBuildAdd(builder, start, vert_index, "");
|
||||
LLVMValueRef vertex_id;
|
||||
|
||||
/* make sure we're not out of bounds which can happen
|
||||
* if fetch_count % 4 != 0, because on the last iteration
|
||||
@@ -1713,8 +1704,22 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant,
|
||||
lp_build_endif(&if_ctx);
|
||||
true_index = LLVMBuildLoad(builder, index_ptr, "true_index");
|
||||
}
|
||||
true_index_array = LLVMBuildInsertElement(
|
||||
gallivm->builder, true_index_array, true_index,
|
||||
/* in the paths with elts vertex id has to be unaffected by the
|
||||
* index bias and because indices inside our elements array have
|
||||
* already had index bias applied we need to subtract it here to
|
||||
* get back to the original index.
|
||||
* in the linear paths vertex id has to be unaffected by the
|
||||
* original start index and because we abuse the 'start' variable
|
||||
* to either represent the actual start index or the index at which
|
||||
* the primitive was split (we split rendering into chunks of at
|
||||
* most 4095-vertices) we need to back out the original start
|
||||
* index out of our vertex id here.
|
||||
*/
|
||||
vertex_id = LLVMBuildSub(builder, true_index, vertex_id_offset, "");
|
||||
|
||||
system_values.vertex_id = LLVMBuildInsertElement(
|
||||
gallivm->builder,
|
||||
system_values.vertex_id, vertex_id,
|
||||
lp_build_const_int32(gallivm, i), "");
|
||||
|
||||
for (j = 0; j < draw->pt.nr_vertex_elements; ++j) {
|
||||
@@ -1730,24 +1735,6 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant,
|
||||
convert_to_soa(gallivm, aos_attribs, inputs,
|
||||
draw->pt.nr_vertex_elements, vs_type);
|
||||
|
||||
/* In the paths with elts vertex id has to be unaffected by the
|
||||
* index bias and because indices inside our elements array have
|
||||
* already had index bias applied we need to subtract it here to
|
||||
* get back to the original index.
|
||||
* in the linear paths vertex id has to be unaffected by the
|
||||
* original start index and because we abuse the 'start' variable
|
||||
* to either represent the actual start index or the index at which
|
||||
* the primitive was split (we split rendering into chunks of at
|
||||
* most 4095-vertices) we need to back out the original start
|
||||
* index out of our vertex id here.
|
||||
*/
|
||||
system_values.basevertex = lp_build_broadcast(gallivm, lp_build_vec_type(gallivm,
|
||||
lp_type_uint_vec(32, 32*vector_length)),
|
||||
vertex_id_offset);
|
||||
system_values.vertex_id = true_index_array;
|
||||
system_values.vertex_id_nobase = LLVMBuildSub(builder, true_index_array,
|
||||
system_values.basevertex, "");
|
||||
|
||||
ptr_aos = (const LLVMValueRef (*)[TGSI_NUM_CHANNELS]) inputs;
|
||||
generate_vs(variant,
|
||||
builder,
|
||||
@@ -1840,7 +1827,7 @@ draw_llvm_make_variant_key(struct draw_llvm *llvm, char *store)
|
||||
key->clip_xy = llvm->draw->clip_xy;
|
||||
key->clip_z = llvm->draw->clip_z;
|
||||
key->clip_user = llvm->draw->clip_user;
|
||||
key->bypass_viewport = llvm->draw->bypass_viewport;
|
||||
key->bypass_viewport = llvm->draw->identity_viewport;
|
||||
key->clip_halfz = llvm->draw->rasterizer->clip_halfz;
|
||||
key->need_edgeflags = (llvm->draw->vs.edgeflag_output ? TRUE : FALSE);
|
||||
key->ucp_enable = llvm->draw->rasterizer->clip_plane_enable;
|
||||
|
@@ -37,7 +37,7 @@
|
||||
#include "gallivm/lp_bld_limits.h"
|
||||
|
||||
#include "pipe/p_context.h"
|
||||
#include "util/simple_list.h"
|
||||
#include "util/u_simple_list.h"
|
||||
|
||||
|
||||
struct draw_llvm;
|
||||
@@ -125,7 +125,7 @@ struct draw_jit_context
|
||||
const float *vs_constants[LP_MAX_TGSI_CONST_BUFFERS];
|
||||
int num_vs_constants[LP_MAX_TGSI_CONST_BUFFERS];
|
||||
float (*planes) [DRAW_TOTAL_CLIP_PLANES][4];
|
||||
struct pipe_viewport_state *viewports;
|
||||
float *viewport;
|
||||
|
||||
struct draw_jit_texture textures[PIPE_MAX_SHADER_SAMPLER_VIEWS];
|
||||
struct draw_jit_sampler samplers[PIPE_MAX_SAMPLERS];
|
||||
@@ -150,8 +150,8 @@ enum {
|
||||
#define draw_jit_context_planes(_gallivm, _ptr) \
|
||||
lp_build_struct_get(_gallivm, _ptr, DRAW_JIT_CTX_PLANES, "planes")
|
||||
|
||||
#define draw_jit_context_viewports(_gallivm, _ptr) \
|
||||
lp_build_struct_get(_gallivm, _ptr, DRAW_JIT_CTX_VIEWPORT, "viewports")
|
||||
#define draw_jit_context_viewport(_gallivm, _ptr) \
|
||||
lp_build_struct_get(_gallivm, _ptr, DRAW_JIT_CTX_VIEWPORT, "viewport")
|
||||
|
||||
#define draw_jit_context_textures(_gallivm, _ptr) \
|
||||
lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_JIT_CTX_TEXTURES, "textures")
|
||||
@@ -207,7 +207,7 @@ struct draw_gs_jit_context
|
||||
const float *constants[LP_MAX_TGSI_CONST_BUFFERS];
|
||||
int num_constants[LP_MAX_TGSI_CONST_BUFFERS];
|
||||
float (*planes) [DRAW_TOTAL_CLIP_PLANES][4];
|
||||
struct pipe_viewport_state *viewports;
|
||||
float *viewport;
|
||||
|
||||
/* There two need to be exactly at DRAW_JIT_CTX_TEXTURES and
|
||||
* DRAW_JIT_CTX_SAMPLERS positions in the struct */
|
||||
@@ -245,8 +245,8 @@ enum {
|
||||
#define draw_gs_jit_context_planes(_gallivm, _ptr) \
|
||||
lp_build_struct_get(_gallivm, _ptr, DRAW_GS_JIT_CTX_PLANES, "planes")
|
||||
|
||||
#define draw_gs_jit_context_viewports(_gallivm, _ptr) \
|
||||
lp_build_struct_get(_gallivm, _ptr, DRAW_GS_JIT_CTX_VIEWPORT, "viewports")
|
||||
#define draw_gs_jit_context_viewport(_gallivm, _ptr) \
|
||||
lp_build_struct_get(_gallivm, _ptr, DRAW_GS_JIT_CTX_VIEWPORT, "viewport")
|
||||
|
||||
#define draw_gs_jit_context_textures(_gallivm, _ptr) \
|
||||
lp_build_struct_get_ptr(_gallivm, _ptr, DRAW_GS_JIT_CTX_TEXTURES, "textures")
|
||||
|
@@ -741,10 +741,9 @@ static void
|
||||
clip_init_state( struct draw_stage *stage )
|
||||
{
|
||||
struct clip_stage *clipper = clip_stage( stage );
|
||||
const struct draw_context *draw = stage->draw;
|
||||
const struct draw_fragment_shader *fs = draw->fs.fragment_shader;
|
||||
const struct tgsi_shader_info *info = draw_get_shader_info(draw);
|
||||
const struct draw_fragment_shader *fs = stage->draw->fs.fragment_shader;
|
||||
uint i, j;
|
||||
const struct tgsi_shader_info *info = draw_get_shader_info(stage->draw);
|
||||
|
||||
/* We need to know for each attribute what kind of interpolation is
|
||||
* done on it (flat, smooth or noperspective). But the information
|
||||
@@ -766,7 +765,7 @@ clip_init_state( struct draw_stage *stage )
|
||||
* gl_Color/gl_SecondaryColor, with the correct default.
|
||||
*/
|
||||
int indexed_interp[2];
|
||||
indexed_interp[0] = indexed_interp[1] = draw->rasterizer->flatshade ?
|
||||
indexed_interp[0] = indexed_interp[1] = stage->draw->rasterizer->flatshade ?
|
||||
TGSI_INTERPOLATE_CONSTANT : TGSI_INTERPOLATE_PERSPECTIVE;
|
||||
|
||||
if (fs) {
|
||||
@@ -803,11 +802,11 @@ clip_init_state( struct draw_stage *stage )
|
||||
clipper->noperspective_attribs[i] = interp == TGSI_INTERPOLATE_LINEAR;
|
||||
}
|
||||
/* Search the extra vertex attributes */
|
||||
for (j = 0; j < draw->extra_shader_outputs.num; j++) {
|
||||
for (j = 0; j < stage->draw->extra_shader_outputs.num; j++) {
|
||||
/* Find the interpolation mode for a specific attribute */
|
||||
int interp = find_interp(fs, indexed_interp,
|
||||
draw->extra_shader_outputs.semantic_name[j],
|
||||
draw->extra_shader_outputs.semantic_index[j]);
|
||||
stage->draw->extra_shader_outputs.semantic_name[j],
|
||||
stage->draw->extra_shader_outputs.semantic_index[j]);
|
||||
/* If it's flat, add it to the flat vector. Otherwise update
|
||||
* the noperspective mask.
|
||||
*/
|
||||
|
@@ -33,7 +33,6 @@
|
||||
|
||||
#include "pipe/p_shader_tokens.h"
|
||||
#include "draw_vs.h"
|
||||
#include "draw_fs.h"
|
||||
#include "draw_pipe.h"
|
||||
|
||||
|
||||
@@ -42,10 +41,20 @@ struct flat_stage
|
||||
{
|
||||
struct draw_stage stage;
|
||||
|
||||
uint num_flat_attribs;
|
||||
uint flat_attribs[PIPE_MAX_SHADER_OUTPUTS]; /* flatshaded attribs */
|
||||
uint num_color_attribs;
|
||||
uint color_attribs[2]; /* front/back primary colors */
|
||||
|
||||
uint num_spec_attribs;
|
||||
uint spec_attribs[2]; /* front/back secondary colors */
|
||||
};
|
||||
|
||||
#define COPY_3FV( DST, SRC ) \
|
||||
do { \
|
||||
(DST)[0] = (SRC)[0]; \
|
||||
(DST)[1] = (SRC)[1]; \
|
||||
(DST)[2] = (SRC)[2]; \
|
||||
} while (0)
|
||||
|
||||
|
||||
static INLINE struct flat_stage *
|
||||
flat_stage(struct draw_stage *stage)
|
||||
@@ -54,41 +63,51 @@ flat_stage(struct draw_stage *stage)
|
||||
}
|
||||
|
||||
|
||||
/** Copy all the constant attributes from 'src' vertex to 'dst' vertex */
|
||||
static INLINE void copy_flats( struct draw_stage *stage,
|
||||
struct vertex_header *dst,
|
||||
const struct vertex_header *src )
|
||||
/** Copy all the color attributes from 'src' vertex to 'dst' vertex */
|
||||
static INLINE void copy_colors( struct draw_stage *stage,
|
||||
struct vertex_header *dst,
|
||||
const struct vertex_header *src )
|
||||
{
|
||||
const struct flat_stage *flat = flat_stage(stage);
|
||||
uint i;
|
||||
|
||||
for (i = 0; i < flat->num_flat_attribs; i++) {
|
||||
const uint attr = flat->flat_attribs[i];
|
||||
for (i = 0; i < flat->num_color_attribs; i++) {
|
||||
const uint attr = flat->color_attribs[i];
|
||||
COPY_4FV(dst->data[attr], src->data[attr]);
|
||||
}
|
||||
|
||||
for (i = 0; i < flat->num_spec_attribs; i++) {
|
||||
const uint attr = flat->spec_attribs[i];
|
||||
COPY_3FV(dst->data[attr], src->data[attr]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/** Copy all the color attributes from src vertex to dst0 & dst1 vertices */
|
||||
static INLINE void copy_flats2( struct draw_stage *stage,
|
||||
struct vertex_header *dst0,
|
||||
struct vertex_header *dst1,
|
||||
const struct vertex_header *src )
|
||||
static INLINE void copy_colors2( struct draw_stage *stage,
|
||||
struct vertex_header *dst0,
|
||||
struct vertex_header *dst1,
|
||||
const struct vertex_header *src )
|
||||
{
|
||||
const struct flat_stage *flat = flat_stage(stage);
|
||||
uint i;
|
||||
for (i = 0; i < flat->num_flat_attribs; i++) {
|
||||
const uint attr = flat->flat_attribs[i];
|
||||
for (i = 0; i < flat->num_color_attribs; i++) {
|
||||
const uint attr = flat->color_attribs[i];
|
||||
COPY_4FV(dst0->data[attr], src->data[attr]);
|
||||
COPY_4FV(dst1->data[attr], src->data[attr]);
|
||||
}
|
||||
|
||||
for (i = 0; i < flat->num_spec_attribs; i++) {
|
||||
const uint attr = flat->spec_attribs[i];
|
||||
COPY_3FV(dst0->data[attr], src->data[attr]);
|
||||
COPY_3FV(dst1->data[attr], src->data[attr]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Flatshade tri. Not required for clipping which handles this on its own,
|
||||
* but required for unfilled tris and other primitive-changing stages
|
||||
* (like widelines). If no such stages are active, handled by hardware.
|
||||
* Flatshade tri. Required for clipping and when unfilled tris are
|
||||
* active, otherwise handled by hardware.
|
||||
*/
|
||||
static void flatshade_tri_0( struct draw_stage *stage,
|
||||
struct prim_header *header )
|
||||
@@ -102,8 +121,8 @@ static void flatshade_tri_0( struct draw_stage *stage,
|
||||
tmp.v[1] = dup_vert(stage, header->v[1], 0);
|
||||
tmp.v[2] = dup_vert(stage, header->v[2], 1);
|
||||
|
||||
copy_flats2(stage, tmp.v[1], tmp.v[2], tmp.v[0]);
|
||||
|
||||
copy_colors2(stage, tmp.v[1], tmp.v[2], tmp.v[0]);
|
||||
|
||||
stage->next->tri( stage->next, &tmp );
|
||||
}
|
||||
|
||||
@@ -120,143 +139,69 @@ static void flatshade_tri_2( struct draw_stage *stage,
|
||||
tmp.v[1] = dup_vert(stage, header->v[1], 1);
|
||||
tmp.v[2] = header->v[2];
|
||||
|
||||
copy_flats2(stage, tmp.v[0], tmp.v[1], tmp.v[2]);
|
||||
|
||||
copy_colors2(stage, tmp.v[0], tmp.v[1], tmp.v[2]);
|
||||
|
||||
stage->next->tri( stage->next, &tmp );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Flatshade line.
|
||||
* Flatshade line. Required for clipping.
|
||||
*/
|
||||
static void flatshade_line_0( struct draw_stage *stage,
|
||||
struct prim_header *header )
|
||||
{
|
||||
struct prim_header tmp;
|
||||
|
||||
tmp.det = header->det;
|
||||
tmp.flags = header->flags;
|
||||
tmp.pad = header->pad;
|
||||
tmp.v[0] = header->v[0];
|
||||
tmp.v[1] = dup_vert(stage, header->v[1], 0);
|
||||
|
||||
copy_flats(stage, tmp.v[1], tmp.v[0]);
|
||||
|
||||
copy_colors(stage, tmp.v[1], tmp.v[0]);
|
||||
|
||||
stage->next->line( stage->next, &tmp );
|
||||
}
|
||||
|
||||
|
||||
static void flatshade_line_1( struct draw_stage *stage,
|
||||
struct prim_header *header )
|
||||
{
|
||||
struct prim_header tmp;
|
||||
|
||||
tmp.det = header->det;
|
||||
tmp.flags = header->flags;
|
||||
tmp.pad = header->pad;
|
||||
tmp.v[0] = dup_vert(stage, header->v[0], 0);
|
||||
tmp.v[1] = header->v[1];
|
||||
|
||||
copy_flats(stage, tmp.v[0], tmp.v[1]);
|
||||
|
||||
copy_colors(stage, tmp.v[0], tmp.v[1]);
|
||||
|
||||
stage->next->line( stage->next, &tmp );
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
find_interp(const struct draw_fragment_shader *fs, int *indexed_interp,
|
||||
uint semantic_name, uint semantic_index)
|
||||
{
|
||||
int interp;
|
||||
/* If it's gl_{Front,Back}{,Secondary}Color, pick up the mode
|
||||
* from the array we've filled before. */
|
||||
if (semantic_name == TGSI_SEMANTIC_COLOR ||
|
||||
semantic_name == TGSI_SEMANTIC_BCOLOR) {
|
||||
interp = indexed_interp[semantic_index];
|
||||
} else {
|
||||
/* Otherwise, search in the FS inputs, with a decent default
|
||||
* if we don't find it.
|
||||
*/
|
||||
uint j;
|
||||
interp = TGSI_INTERPOLATE_PERSPECTIVE;
|
||||
if (fs) {
|
||||
for (j = 0; j < fs->info.num_inputs; j++) {
|
||||
if (semantic_name == fs->info.input_semantic_name[j] &&
|
||||
semantic_index == fs->info.input_semantic_index[j]) {
|
||||
interp = fs->info.input_interpolate[j];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return interp;
|
||||
}
|
||||
|
||||
|
||||
static void flatshade_init_state( struct draw_stage *stage )
|
||||
{
|
||||
struct flat_stage *flat = flat_stage(stage);
|
||||
const struct draw_context *draw = stage->draw;
|
||||
const struct draw_fragment_shader *fs = draw->fs.fragment_shader;
|
||||
const struct tgsi_shader_info *info = draw_get_shader_info(draw);
|
||||
uint i, j;
|
||||
const struct draw_vertex_shader *vs = stage->draw->vs.vertex_shader;
|
||||
uint i;
|
||||
|
||||
/* Find which vertex shader outputs need constant interpolation, make a list */
|
||||
|
||||
/* XXX: this code is a near exact copy of the one in clip_init_state.
|
||||
* The latter also cares about perspective though.
|
||||
*/
|
||||
|
||||
/* First pick up the interpolation mode for
|
||||
* gl_Color/gl_SecondaryColor, with the correct default.
|
||||
*/
|
||||
int indexed_interp[2];
|
||||
indexed_interp[0] = indexed_interp[1] = draw->rasterizer->flatshade ?
|
||||
TGSI_INTERPOLATE_CONSTANT : TGSI_INTERPOLATE_PERSPECTIVE;
|
||||
|
||||
if (fs) {
|
||||
for (i = 0; i < fs->info.num_inputs; i++) {
|
||||
if (fs->info.input_semantic_name[i] == TGSI_SEMANTIC_COLOR) {
|
||||
if (fs->info.input_interpolate[i] != TGSI_INTERPOLATE_COLOR)
|
||||
indexed_interp[fs->info.input_semantic_index[i]] = fs->info.input_interpolate[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Then resolve the interpolation mode for every output attribute.
|
||||
*
|
||||
* Given how the rest of the code, the most efficient way is to
|
||||
* have a vector of flat-mode attributes.
|
||||
*/
|
||||
flat->num_flat_attribs = 0;
|
||||
for (i = 0; i < info->num_outputs; i++) {
|
||||
/* Find the interpolation mode for a specific attribute */
|
||||
int interp = find_interp(fs, indexed_interp,
|
||||
info->output_semantic_name[i],
|
||||
info->output_semantic_index[i]);
|
||||
/* If it's flat, add it to the flat vector. */
|
||||
|
||||
if (interp == TGSI_INTERPOLATE_CONSTANT) {
|
||||
flat->flat_attribs[flat->num_flat_attribs] = i;
|
||||
flat->num_flat_attribs++;
|
||||
}
|
||||
}
|
||||
/* Search the extra vertex attributes */
|
||||
for (j = 0; j < draw->extra_shader_outputs.num; j++) {
|
||||
/* Find the interpolation mode for a specific attribute */
|
||||
int interp = find_interp(fs, indexed_interp,
|
||||
draw->extra_shader_outputs.semantic_name[j],
|
||||
draw->extra_shader_outputs.semantic_index[j]);
|
||||
/* If it's flat, add it to the flat vector. */
|
||||
if (interp == TGSI_INTERPOLATE_CONSTANT) {
|
||||
flat->flat_attribs[flat->num_flat_attribs] = i + j;
|
||||
flat->num_flat_attribs++;
|
||||
/* Find which vertex shader outputs are colors, make a list */
|
||||
flat->num_color_attribs = 0;
|
||||
flat->num_spec_attribs = 0;
|
||||
for (i = 0; i < vs->info.num_outputs; i++) {
|
||||
if (vs->info.output_semantic_name[i] == TGSI_SEMANTIC_COLOR ||
|
||||
vs->info.output_semantic_name[i] == TGSI_SEMANTIC_BCOLOR) {
|
||||
if (vs->info.output_semantic_index[i] == 0)
|
||||
flat->color_attribs[flat->num_color_attribs++] = i;
|
||||
else
|
||||
flat->spec_attribs[flat->num_spec_attribs++] = i;
|
||||
}
|
||||
}
|
||||
|
||||
/* Choose flatshade routine according to provoking vertex:
|
||||
*/
|
||||
if (draw->rasterizer->flatshade_first) {
|
||||
if (stage->draw->rasterizer->flatshade_first) {
|
||||
stage->line = flatshade_line_0;
|
||||
stage->tri = flatshade_tri_0;
|
||||
}
|
||||
@@ -267,14 +212,14 @@ static void flatshade_init_state( struct draw_stage *stage )
|
||||
}
|
||||
|
||||
static void flatshade_first_tri( struct draw_stage *stage,
|
||||
struct prim_header *header )
|
||||
struct prim_header *header )
|
||||
{
|
||||
flatshade_init_state( stage );
|
||||
stage->tri( stage, header );
|
||||
}
|
||||
|
||||
static void flatshade_first_line( struct draw_stage *stage,
|
||||
struct prim_header *header )
|
||||
struct prim_header *header )
|
||||
{
|
||||
flatshade_init_state( stage );
|
||||
stage->line( stage, header );
|
||||
@@ -282,7 +227,7 @@ static void flatshade_first_line( struct draw_stage *stage,
|
||||
|
||||
|
||||
static void flatshade_flush( struct draw_stage *stage,
|
||||
unsigned flags )
|
||||
unsigned flags )
|
||||
{
|
||||
stage->tri = flatshade_first_tri;
|
||||
stage->line = flatshade_first_line;
|
||||
|
@@ -221,11 +221,7 @@ static struct draw_stage *validate_pipeline( struct draw_stage *stage )
|
||||
need_det = TRUE;
|
||||
}
|
||||
|
||||
if (precalc_flat) {
|
||||
/*
|
||||
* could only run the stage if either rast->flatshade is true
|
||||
* or there's constant interpolated values.
|
||||
*/
|
||||
if (rast->flatshade && precalc_flat) {
|
||||
draw->pipeline.flatshade->next = next;
|
||||
next = draw->pipeline.flatshade;
|
||||
}
|
||||
|
@@ -50,6 +50,8 @@ struct draw_assembler
|
||||
int primid_slot;
|
||||
unsigned primid;
|
||||
|
||||
boolean is_strip;
|
||||
boolean is_first_prim;
|
||||
unsigned num_prims;
|
||||
};
|
||||
|
||||
@@ -111,8 +113,8 @@ copy_verts(struct draw_assembler *asmblr,
|
||||
|
||||
static void
|
||||
inject_primid(struct draw_assembler *asmblr,
|
||||
unsigned idx,
|
||||
unsigned primid)
|
||||
unsigned idx,
|
||||
unsigned primid)
|
||||
{
|
||||
int slot = asmblr->primid_slot;
|
||||
char *input = (char*)asmblr->input_verts->verts;
|
||||
@@ -152,8 +154,16 @@ prim_line(struct draw_assembler *asmblr,
|
||||
unsigned indices[2];
|
||||
|
||||
if (asmblr->needs_primid) {
|
||||
inject_primid(asmblr, i0, asmblr->primid);
|
||||
inject_primid(asmblr, i1, asmblr->primid++);
|
||||
if (asmblr->is_strip && asmblr->is_first_prim) {
|
||||
inject_primid(asmblr, i0, asmblr->primid++);
|
||||
inject_primid(asmblr, i1, asmblr->primid++);
|
||||
asmblr->is_first_prim = FALSE;
|
||||
} else if (asmblr->is_strip) {
|
||||
inject_primid(asmblr, i1, asmblr->primid++);
|
||||
} else {
|
||||
inject_primid(asmblr, i0, asmblr->primid);
|
||||
inject_primid(asmblr, i1, asmblr->primid++);
|
||||
}
|
||||
}
|
||||
indices[0] = i0;
|
||||
indices[1] = i1;
|
||||
@@ -161,6 +171,31 @@ prim_line(struct draw_assembler *asmblr,
|
||||
copy_verts(asmblr, indices, 2);
|
||||
}
|
||||
|
||||
static void
|
||||
prim_line_adj(struct draw_assembler *asmblr,
|
||||
unsigned i0, unsigned i1, unsigned i2, unsigned i3)
|
||||
{
|
||||
unsigned indices[2];
|
||||
|
||||
if (asmblr->needs_primid) {
|
||||
if (asmblr->is_strip && asmblr->is_first_prim) {
|
||||
inject_primid(asmblr, i1, asmblr->primid++);
|
||||
inject_primid(asmblr, i2, asmblr->primid++);
|
||||
asmblr->is_first_prim = FALSE;
|
||||
} else if (asmblr->is_strip) {
|
||||
inject_primid(asmblr, i2, asmblr->primid++);
|
||||
} else {
|
||||
inject_primid(asmblr, i1, asmblr->primid);
|
||||
inject_primid(asmblr, i2, asmblr->primid++);
|
||||
}
|
||||
}
|
||||
|
||||
indices[0] = i1;
|
||||
indices[1] = i2;
|
||||
|
||||
copy_verts(asmblr, indices, 2);
|
||||
}
|
||||
|
||||
static void
|
||||
prim_tri(struct draw_assembler *asmblr,
|
||||
unsigned i0, unsigned i1, unsigned i2)
|
||||
@@ -168,9 +203,22 @@ prim_tri(struct draw_assembler *asmblr,
|
||||
unsigned indices[3];
|
||||
|
||||
if (asmblr->needs_primid) {
|
||||
inject_primid(asmblr, i0, asmblr->primid);
|
||||
inject_primid(asmblr, i1, asmblr->primid);
|
||||
inject_primid(asmblr, i2, asmblr->primid++);
|
||||
if (asmblr->is_strip && asmblr->is_first_prim) {
|
||||
inject_primid(asmblr, i0, asmblr->primid++);
|
||||
inject_primid(asmblr, i1, asmblr->primid++);
|
||||
inject_primid(asmblr, i2, asmblr->primid++);
|
||||
asmblr->is_first_prim = FALSE;
|
||||
} else if (asmblr->is_strip) {
|
||||
if (asmblr->num_prims & 1) {
|
||||
inject_primid(asmblr, i1, asmblr->primid++);
|
||||
} else {
|
||||
inject_primid(asmblr, i2, asmblr->primid++);
|
||||
}
|
||||
} else {
|
||||
inject_primid(asmblr, i0, asmblr->primid);
|
||||
inject_primid(asmblr, i1, asmblr->primid);
|
||||
inject_primid(asmblr, i2, asmblr->primid++);
|
||||
}
|
||||
}
|
||||
indices[0] = i0;
|
||||
indices[1] = i1;
|
||||
@@ -179,6 +227,39 @@ prim_tri(struct draw_assembler *asmblr,
|
||||
copy_verts(asmblr, indices, 3);
|
||||
}
|
||||
|
||||
static void
|
||||
prim_tri_adj(struct draw_assembler *asmblr,
|
||||
unsigned i0, unsigned i1, unsigned i2,
|
||||
unsigned i3, unsigned i4, unsigned i5)
|
||||
{
|
||||
unsigned indices[3];
|
||||
|
||||
if (asmblr->needs_primid) {
|
||||
if (asmblr->is_strip && asmblr->is_first_prim) {
|
||||
inject_primid(asmblr, i0, asmblr->primid++);
|
||||
inject_primid(asmblr, i2, asmblr->primid++);
|
||||
inject_primid(asmblr, i4, asmblr->primid++);
|
||||
asmblr->is_first_prim = FALSE;
|
||||
} else if (asmblr->is_strip) {
|
||||
if (asmblr->num_prims & 1) {
|
||||
inject_primid(asmblr, i2, asmblr->primid++);
|
||||
} else {
|
||||
inject_primid(asmblr, i4, asmblr->primid++);
|
||||
}
|
||||
} else {
|
||||
inject_primid(asmblr, i0, asmblr->primid);
|
||||
inject_primid(asmblr, i2, asmblr->primid);
|
||||
inject_primid(asmblr, i4, asmblr->primid);
|
||||
asmblr->primid++;
|
||||
}
|
||||
}
|
||||
indices[0] = i0;
|
||||
indices[1] = i2;
|
||||
indices[2] = i4;
|
||||
|
||||
copy_verts(asmblr, indices, 3);
|
||||
}
|
||||
|
||||
void
|
||||
draw_prim_assembler_prepare_outputs(struct draw_assembler *ia)
|
||||
{
|
||||
@@ -223,7 +304,7 @@ draw_prim_assembler_run(struct draw_context *draw,
|
||||
{
|
||||
struct draw_assembler *asmblr = draw->ia;
|
||||
unsigned start, i;
|
||||
unsigned assembled_prim = u_reduced_prim(input_prims->prim);
|
||||
unsigned assembled_prim = u_assembled_prim(input_prims->prim);
|
||||
unsigned max_primitives = u_decomposed_prims_for_vertices(
|
||||
input_prims->prim, input_prims->count);
|
||||
unsigned max_verts = u_vertices_per_prim(assembled_prim) * max_primitives;
|
||||
@@ -232,14 +313,20 @@ draw_prim_assembler_run(struct draw_context *draw,
|
||||
asmblr->output_verts = output_verts;
|
||||
asmblr->input_prims = input_prims;
|
||||
asmblr->input_verts = input_verts;
|
||||
asmblr->is_strip =
|
||||
(input_prims->prim == PIPE_PRIM_TRIANGLE_STRIP ||
|
||||
input_prims->prim == PIPE_PRIM_TRIANGLE_STRIP_ADJACENCY) ||
|
||||
(input_prims->prim == PIPE_PRIM_LINE_STRIP ||
|
||||
input_prims->prim == PIPE_PRIM_LINE_STRIP_ADJACENCY);
|
||||
asmblr->needs_primid = needs_primid(asmblr->draw);
|
||||
asmblr->is_first_prim = asmblr->is_strip;
|
||||
asmblr->primid = 0;
|
||||
asmblr->num_prims = 0;
|
||||
|
||||
output_prims->linear = TRUE;
|
||||
output_prims->elts = NULL;
|
||||
output_prims->start = 0;
|
||||
output_prims->prim = assembled_prim;
|
||||
output_prims->prim = u_assembled_prim(input_prims->prim);
|
||||
output_prims->flags = 0x0;
|
||||
output_prims->primitive_lengths = MALLOC(sizeof(unsigned));
|
||||
output_prims->primitive_lengths[0] = 0;
|
||||
|
@@ -25,5 +25,7 @@
|
||||
#define POINT(i0) prim_point(asmblr, i0)
|
||||
#define LINE(flags, i0, i1) prim_line(asmblr, i0, i1)
|
||||
#define TRIANGLE(flags, i0, i1, i2) prim_tri(asmblr, i0, i1, i2)
|
||||
#define LINE_ADJ(flags, i0, i1, i2, i3) prim_line_adj(asmblr, i0, i1, i2, i3)
|
||||
#define TRIANGLE_ADJ(flags,i0,i1,i2,i3,i4,i5) prim_tri_adj(asmblr,i0,i1,i2,i3,i4,i5)
|
||||
|
||||
#include "draw_decompose_tmp.h"
|
||||
|
@@ -252,7 +252,6 @@ struct draw_context
|
||||
|
||||
struct pipe_viewport_state viewports[PIPE_MAX_VIEWPORTS];
|
||||
boolean identity_viewport;
|
||||
boolean bypass_viewport;
|
||||
|
||||
/** Vertex shader state */
|
||||
struct {
|
||||
@@ -479,9 +478,6 @@ void
|
||||
draw_stats_clipper_primitives(struct draw_context *draw,
|
||||
const struct draw_prim_info *prim_info);
|
||||
|
||||
void draw_update_clip_flags(struct draw_context *draw);
|
||||
void draw_update_viewport_flags(struct draw_context *draw);
|
||||
|
||||
/**
|
||||
* Return index i from the index buffer.
|
||||
* If the index buffer would overflow we return the
|
||||
@@ -503,7 +499,7 @@ draw_clamp_viewport_idx(int idx)
|
||||
/**
|
||||
* Adds two unsigned integers and if the addition
|
||||
* overflows then it returns the value from
|
||||
* the overflow_value variable.
|
||||
* from the overflow_value variable.
|
||||
*/
|
||||
static INLINE unsigned
|
||||
draw_overflow_uadd(unsigned a, unsigned b,
|
||||
|
@@ -5,6 +5,5 @@
|
||||
const boolean last_vertex_last = \
|
||||
!(draw->rasterizer->flatshade && \
|
||||
draw->rasterizer->flatshade_first);
|
||||
/* FIXME: the draw->rasterizer->flatshade part is really wrong */
|
||||
|
||||
#include "draw_decompose_tmp.h"
|
||||
|
@@ -143,7 +143,7 @@ draw_pt_emit(struct pt_emit *emit,
|
||||
/* XXX: and work out some way to coordinate the render primitive
|
||||
* between vbuf.c and here...
|
||||
*/
|
||||
render->set_primitive(draw->render, prim_info->prim);
|
||||
draw->render->set_primitive(draw->render, emit->prim);
|
||||
|
||||
render->allocate_vertices(render,
|
||||
(ushort)translate->key.output_stride,
|
||||
@@ -214,7 +214,7 @@ draw_pt_emit_linear(struct pt_emit *emit,
|
||||
/* XXX: and work out some way to coordinate the render primitive
|
||||
* between vbuf.c and here...
|
||||
*/
|
||||
render->set_primitive(draw->render, prim_info->prim);
|
||||
draw->render->set_primitive(draw->render, emit->prim);
|
||||
|
||||
if (!render->allocate_vertices(render,
|
||||
(ushort)translate->key.output_stride,
|
||||
|
@@ -95,7 +95,7 @@ fse_prepare(struct draw_pt_middle_end *middle,
|
||||
fse->key.nr_elements = MAX2(fse->key.nr_outputs, /* outputs - translate to hw format */
|
||||
fse->key.nr_inputs); /* inputs - fetch from api format */
|
||||
|
||||
fse->key.viewport = !draw->bypass_viewport;
|
||||
fse->key.viewport = !draw->identity_viewport;
|
||||
fse->key.clip = draw->clip_xy || draw->clip_z || draw->clip_user;
|
||||
fse->key.const_vbuffers = 0;
|
||||
|
||||
|
@@ -117,7 +117,7 @@ fetch_pipeline_prepare(struct draw_pt_middle_end *middle,
|
||||
draw->clip_user,
|
||||
point_clip ? draw->guard_band_points_xy :
|
||||
draw->guard_band_xy,
|
||||
draw->bypass_viewport,
|
||||
draw->identity_viewport,
|
||||
draw->rasterizer->clip_halfz,
|
||||
(draw->vs.edgeflag_output ? TRUE : FALSE) );
|
||||
|
||||
|
@@ -162,14 +162,15 @@ llvm_middle_end_prepare( struct draw_pt_middle_end *middle,
|
||||
draw->clip_user,
|
||||
point_clip ? draw->guard_band_points_xy :
|
||||
draw->guard_band_xy,
|
||||
draw->bypass_viewport,
|
||||
draw->identity_viewport,
|
||||
draw->rasterizer->clip_halfz,
|
||||
(draw->vs.edgeflag_output ? TRUE : FALSE) );
|
||||
|
||||
draw_pt_so_emit_prepare( fpme->so_emit, gs == NULL );
|
||||
|
||||
if (!(opt & PT_PIPELINE)) {
|
||||
draw_pt_emit_prepare( fpme->emit, out_prim,
|
||||
draw_pt_emit_prepare( fpme->emit,
|
||||
out_prim,
|
||||
max_vertices );
|
||||
|
||||
*max_vertices = MAX2( *max_vertices, 4096 );
|
||||
@@ -293,8 +294,8 @@ llvm_middle_end_bind_parameters(struct draw_pt_middle_end *middle)
|
||||
fpme->llvm->gs_jit_context.planes =
|
||||
(float (*)[DRAW_TOTAL_CLIP_PLANES][4]) draw->pt.user.planes[0];
|
||||
|
||||
fpme->llvm->jit_context.viewports = draw->viewports;
|
||||
fpme->llvm->gs_jit_context.viewports = draw->viewports;
|
||||
fpme->llvm->jit_context.viewport = (float *) draw->viewports[0].scale;
|
||||
fpme->llvm->gs_jit_context.viewport = (float *) draw->viewports[0].scale;
|
||||
}
|
||||
|
||||
|
||||
@@ -441,8 +442,7 @@ llvm_pipeline_generic(struct draw_pt_middle_end *middle,
|
||||
* will try to access non-existent position output.
|
||||
*/
|
||||
if (draw_current_shader_position_output(draw) != -1) {
|
||||
if ((opt & PT_SHADE) && (gshader ||
|
||||
draw->vs.vertex_shader->info.writes_viewport_index)) {
|
||||
if ((opt & PT_SHADE) && gshader) {
|
||||
clipped = draw_pt_post_vs_run( fpme->post_vs, vert_info, prim_info );
|
||||
}
|
||||
if (clipped) {
|
||||
|
@@ -117,7 +117,7 @@ dot4(const float *a, const float *b)
|
||||
|
||||
|
||||
boolean draw_pt_post_vs_run( struct pt_post_vs *pvs,
|
||||
struct draw_vertex_info *info,
|
||||
struct draw_vertex_info *info,
|
||||
const struct draw_prim_info *prim_info )
|
||||
{
|
||||
return pvs->run( pvs, info, prim_info );
|
||||
|
@@ -91,7 +91,7 @@ vsplit_add_cache(struct vsplit_frontend *vsplit, unsigned fetch, unsigned ofbias
|
||||
|
||||
hash = fetch % MAP_SIZE;
|
||||
|
||||
/* If the value isn't in the cache or it's an overflow due to the
|
||||
/* If the value isn't in the cache of it's an overflow due to the
|
||||
* element bias */
|
||||
if (vsplit->cache.fetches[hash] != fetch || ofbias) {
|
||||
/* update cache */
|
||||
|
@@ -85,9 +85,7 @@ draw_create_vertex_shader(struct draw_context *draw,
|
||||
vs->info.output_semantic_index[i] == 0) {
|
||||
found_clipvertex = TRUE;
|
||||
vs->clipvertex_output = i;
|
||||
} else if (vs->info.output_semantic_name[i] == TGSI_SEMANTIC_VIEWPORT_INDEX)
|
||||
vs->viewport_index_output = i;
|
||||
else if (vs->info.output_semantic_name[i] == TGSI_SEMANTIC_CLIPDIST) {
|
||||
} else if (vs->info.output_semantic_name[i] == TGSI_SEMANTIC_CLIPDIST) {
|
||||
debug_assert(vs->info.output_semantic_index[i] <
|
||||
PIPE_MAX_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT);
|
||||
vs->clipdistance_output[vs->info.output_semantic_index[i]] = i;
|
||||
@@ -122,8 +120,6 @@ draw_bind_vertex_shader(struct draw_context *draw,
|
||||
draw->vs.clipdistance_output[0] = dvs->clipdistance_output[0];
|
||||
draw->vs.clipdistance_output[1] = dvs->clipdistance_output[1];
|
||||
dvs->prepare( dvs, draw );
|
||||
draw_update_clip_flags(draw);
|
||||
draw_update_viewport_flags(draw);
|
||||
}
|
||||
else {
|
||||
draw->vs.vertex_shader = NULL;
|
||||
|
@@ -110,7 +110,6 @@ struct draw_vertex_shader {
|
||||
|
||||
struct tgsi_shader_info info;
|
||||
unsigned position_output;
|
||||
unsigned viewport_index_output;
|
||||
unsigned edgeflag_output;
|
||||
unsigned clipvertex_output;
|
||||
unsigned clipdistance_output[PIPE_MAX_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT];
|
||||
|
@@ -129,18 +129,6 @@ vs_exec_run_linear( struct draw_vertex_shader *shader,
|
||||
unsigned vid = machine->SysSemanticToIndex[TGSI_SEMANTIC_VERTEXID];
|
||||
assert(vid < Elements(machine->SystemValue));
|
||||
machine->SystemValue[vid].i[j] = i + j;
|
||||
/* XXX this should include base vertex. Where to get it??? */
|
||||
}
|
||||
if (shader->info.uses_basevertex) {
|
||||
unsigned vid = machine->SysSemanticToIndex[TGSI_SEMANTIC_BASEVERTEX];
|
||||
assert(vid < Elements(machine->SystemValue));
|
||||
machine->SystemValue[vid].i[j] = 0;
|
||||
/* XXX Where to get it??? */
|
||||
}
|
||||
if (shader->info.uses_vertexid_nobase) {
|
||||
unsigned vid = machine->SysSemanticToIndex[TGSI_SEMANTIC_VERTEXID_NOBASE];
|
||||
assert(vid < Elements(machine->SystemValue));
|
||||
machine->SystemValue[vid].i[j] = i + j;
|
||||
}
|
||||
|
||||
for (slot = 0; slot < shader->info.num_inputs; slot++) {
|
||||
@@ -156,7 +144,7 @@ vs_exec_run_linear( struct draw_vertex_shader *shader,
|
||||
machine->Inputs[slot].xyzw[3].f[j] = input[slot][3];
|
||||
}
|
||||
|
||||
input = (const float (*)[4])((const char *)input + input_stride);
|
||||
input = (const float (*)[4])((const char *)input + input_stride);
|
||||
}
|
||||
|
||||
tgsi_set_exec_mask(machine,
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user