Compare commits
301 Commits
mesa-10.3.
...
10.1
Author | SHA1 | Date | |
---|---|---|---|
|
42f86ef025 | ||
|
5f41cae633 | ||
|
0e76bc55ed | ||
|
ce6877491f | ||
|
f9b6457986 | ||
|
04ca4cef97 | ||
|
b574944a05 | ||
|
838b0d9928 | ||
|
c2dc58fe96 | ||
|
d947156407 | ||
|
bf50129ba6 | ||
|
68af044a0c | ||
|
151e7ac3cf | ||
|
920428a30a | ||
|
77619d927b | ||
|
e7537b3410 | ||
|
39c599a666 | ||
|
8e8fab2ef6 | ||
|
283acc26e4 | ||
|
9f5eea0cc9 | ||
|
e03020abbc | ||
|
e4c65664ea | ||
|
f6bf295924 | ||
|
1d7b8bc085 | ||
|
2889608534 | ||
|
45bf29b53d | ||
|
feb4c7284c | ||
|
b614628a3c | ||
|
1f08d1bf46 | ||
|
a73894a7ed | ||
|
cf08c24750 | ||
|
4d676c5ed2 | ||
|
4942eae869 | ||
|
1776a562b4 | ||
|
d2f5638ade | ||
|
ee0207a212 | ||
|
36e0e9c5e7 | ||
|
5d8e60dcc7 | ||
|
a23e73e00d | ||
|
a02f6639f7 | ||
|
cc9b282f8a | ||
|
edab352b25 | ||
|
ec83a39e2b | ||
|
ea5839c8fe | ||
|
2d6f733979 | ||
|
507d2e523c | ||
|
07ada102cb | ||
|
13b142a420 | ||
|
1ba2298131 | ||
|
736e16288b | ||
|
7396efb19a | ||
|
c8e24aa5a9 | ||
|
16dfaf495a | ||
|
f3eb3455c8 | ||
|
9e1eb6fb93 | ||
|
0028eb1083 | ||
|
d4c7ca04c1 | ||
|
e16de70a90 | ||
|
f7b949723a | ||
|
558c20fa95 | ||
|
31462dc748 | ||
|
994203bf5e | ||
|
08da743a97 | ||
|
bde3135717 | ||
|
75049062d5 | ||
|
3d648f0f50 | ||
|
ff117336b7 | ||
|
2cd8ce4c67 | ||
|
ec70be5628 | ||
|
2d9bfe4bf4 | ||
|
efba496d03 | ||
|
853c313ce3 | ||
|
2981bc9ff8 | ||
|
18e6cd5e61 | ||
|
4ee60a14df | ||
|
2b5ad9baa1 | ||
|
87173023b2 | ||
|
51e80d1a8b | ||
|
755bf62c2e | ||
|
81f98ffb61 | ||
|
072a79b188 | ||
|
87655f1805 | ||
|
3c6c42b86d | ||
|
8792eda0eb | ||
|
0860c95d5c | ||
|
f4b0b3a402 | ||
|
f9f10f681e | ||
|
996fbd4e2b | ||
|
e19c702eac | ||
|
5d680bc082 | ||
|
e43327bdd9 | ||
|
c8ac5294eb | ||
|
d404180430 | ||
|
c7adf5d1c7 | ||
|
62ba29b236 | ||
|
8ea3790d49 | ||
|
110b6af5f4 | ||
|
5e688c0601 | ||
|
1602419b16 | ||
|
081e37b3b6 | ||
|
4f3abcfee4 | ||
|
d17b75f1e5 | ||
|
1d0e7fb691 | ||
|
468c1a2d46 | ||
|
74194a4bfc | ||
|
b3e3ba5c37 | ||
|
62b1970ccc | ||
|
6a154a4875 | ||
|
66765bb6a6 | ||
|
657a185dc0 | ||
|
b22bdb5cd2 | ||
|
90eae12ae0 | ||
|
c9ceb03147 | ||
|
488f5b4390 | ||
|
eed256688f | ||
|
58ca56ddf5 | ||
|
e16df44a85 | ||
|
b026b6bbfe | ||
|
cda6610d85 | ||
|
4cd6530885 | ||
|
780817af84 | ||
|
e31f76bf66 | ||
|
527210f15d | ||
|
a616fbd7aa | ||
|
9abd686e3f | ||
|
3a194cd77e | ||
|
a38db439df | ||
|
5f685d9925 | ||
|
b3f1ee8b18 | ||
|
c862a14676 | ||
|
23e42eeab0 | ||
|
cc0e6d87be | ||
|
dab5a7a9f9 | ||
|
358d05617a | ||
|
df9e7ee445 | ||
|
933215ac63 | ||
|
c755ebfecf | ||
|
c60b97e9ba | ||
|
37c4ba3e69 | ||
|
9f1fe12fd1 | ||
|
92c43a3a88 | ||
|
b8e0e34555 | ||
|
0c6be6e146 | ||
|
30be758fd2 | ||
|
aae5cf54a2 | ||
|
c5612ba549 | ||
|
e52117cefb | ||
|
18055f9136 | ||
|
563fd9d736 | ||
|
9aa0b296f8 | ||
|
82db52a55e | ||
|
8f4fb58dbf | ||
|
8f85bf57fc | ||
|
76c84a0f75 | ||
|
b38c141850 | ||
|
b088d4649c | ||
|
8d6eea9824 | ||
|
91543aef3b | ||
|
4d7504c0c4 | ||
|
d7df21d08b | ||
|
b853dceb4b | ||
|
71c4e4f420 | ||
|
95bba69398 | ||
|
e144e14c0a | ||
|
c1fbfa4859 | ||
|
2ea18474a6 | ||
|
740bd738a9 | ||
|
e801b8d677 | ||
|
da726d3d93 | ||
|
1d32349f70 | ||
|
b3c9041cca | ||
|
6619158873 | ||
|
6466e99aa0 | ||
|
f5fe91c087 | ||
|
cb89da2e61 | ||
|
1dba985788 | ||
|
3a4a0882cb | ||
|
352b9e8faf | ||
|
87587c6683 | ||
|
ee71a08f23 | ||
|
9cb82a0319 | ||
|
ec6be857f3 | ||
|
365975e5eb | ||
|
3b7fd0351d | ||
|
676cc8e39d | ||
|
c2c1c902f9 | ||
|
d78131f695 | ||
|
8648c2b2a0 | ||
|
9bfe1b3773 | ||
|
a77c10a1a4 | ||
|
ac14d741ee | ||
|
acfb3f7f02 | ||
|
228ad18b84 | ||
|
7c09f4bb44 | ||
|
3eb2103ce0 | ||
|
58fe564607 | ||
|
16fc050e07 | ||
|
248d82515f | ||
|
728f58c534 | ||
|
df15372b65 | ||
|
50d65b4374 | ||
|
f4e348d008 | ||
|
34e8881ac7 | ||
|
30274cf36c | ||
|
64f54cc8f4 | ||
|
4f668babc6 | ||
|
ee51c6aae7 | ||
|
3491c57bd9 | ||
|
4a86465f47 | ||
|
03d0c9fd30 | ||
|
4c0702b05c | ||
|
5fbd649451 | ||
|
05b9e6a963 | ||
|
92e8c52340 | ||
|
3f0011edfd | ||
|
6e3ce7997a | ||
|
1b6aad2234 | ||
|
b34f05f6a7 | ||
|
677fde5ca0 | ||
|
3305b9c96b | ||
|
a43b8bfa78 | ||
|
862572b205 | ||
|
037f357564 | ||
|
bef5554092 | ||
|
09b03dcee6 | ||
|
45cb6063e7 | ||
|
9cc1bbcaf4 | ||
|
24abd48ac0 | ||
|
2475db34a0 | ||
|
3efb934dee | ||
|
29876a4d28 | ||
|
00769d0322 | ||
|
e9a3a8997d | ||
|
a809de8bd9 | ||
|
19740e3085 | ||
|
a44639d826 | ||
|
03035d6074 | ||
|
ab7074e024 | ||
|
a0423a5be2 | ||
|
5abf1526d7 | ||
|
6fc2e0a942 | ||
|
6d5e27d19e | ||
|
3a32f9773a | ||
|
18a7c83765 | ||
|
98c4fe0f5a | ||
|
2e2719246a | ||
|
5f69eb6caa | ||
|
0ced104930 | ||
|
8ae30c1fc4 | ||
|
ec9aef9ac2 | ||
|
5b338d4b35 | ||
|
07d1e7f12f | ||
|
16c03a004d | ||
|
3d2979f83b | ||
|
3224f0c978 | ||
|
fc2834f5ad | ||
|
e32e2836a3 | ||
|
d8012560d5 | ||
|
8e4fec994c | ||
|
5437d38fac | ||
|
fcb4eabb5f | ||
|
7cb4dea765 | ||
|
b498fb9586 | ||
|
3731a4fae4 | ||
|
d623eeb37a | ||
|
6534d80cca | ||
|
20eb466999 | ||
|
706eef0cfe | ||
|
a889b8e9aa | ||
|
02d96b7e9f | ||
|
a1b6aa9fe2 | ||
|
150b1f0aac | ||
|
50066dc544 | ||
|
088d642b8f | ||
|
69bd4ed017 | ||
|
62a358892f | ||
|
290648b076 | ||
|
7f97f1fce4 | ||
|
33169597f7 | ||
|
966f2d3db8 | ||
|
3cefbe5cf5 | ||
|
1e6bba58d8 | ||
|
137a0fe5c8 | ||
|
70e8ec38b5 | ||
|
c79a7ef9a3 | ||
|
17aeb3fdc9 | ||
|
ecaf9259e9 | ||
|
0fb761b404 | ||
|
31911f8d37 | ||
|
142f6cc0b4 | ||
|
156ac628a8 | ||
|
7aa84761b6 | ||
|
61219adb3d | ||
|
ee632e68bd | ||
|
b5c99be4af | ||
|
165868d45e | ||
|
bbcd975881 | ||
|
6cfcc4fccf | ||
|
39a3b0313b | ||
|
9e59e41266 | ||
|
1289080c4d |
@@ -24,7 +24,7 @@
|
||||
# BOARD_GPU_DRIVERS should be defined. The valid values are
|
||||
#
|
||||
# classic drivers: i915 i965
|
||||
# gallium drivers: swrast freedreno i915g ilo nouveau r300g r600g radeonsi vmwgfx
|
||||
# gallium drivers: swrast i915g ilo nouveau r300g r600g radeonsi vmwgfx
|
||||
#
|
||||
# The main target is libGLES_mesa. For each classic driver enabled, a DRI
|
||||
# module will also be built. DRI modules will be loaded by libGLES_mesa.
|
||||
@@ -38,10 +38,11 @@ MESA_ANDROID_VERSION := $(MESA_ANDROID_MAJOR_VERSION).$(MESA_ANDROID_MINOR_VERSI
|
||||
MESA_COMMON_MK := $(MESA_TOP)/Android.common.mk
|
||||
MESA_PYTHON2 := python
|
||||
|
||||
DRM_TOP := external/drm
|
||||
DRM_GRALLOC_TOP := hardware/drm_gralloc
|
||||
|
||||
classic_drivers := i915 i965
|
||||
gallium_drivers := swrast freedreno i915g ilo nouveau r300g r600g radeonsi vmwgfx
|
||||
gallium_drivers := swrast i915g ilo nouveau r300g r600g radeonsi vmwgfx
|
||||
|
||||
MESA_GPU_DRIVERS := $(strip $(BOARD_GPU_DRIVERS))
|
||||
|
||||
@@ -81,7 +82,6 @@ SUBDIRS := \
|
||||
src/mapi \
|
||||
src/glsl \
|
||||
src/mesa \
|
||||
src/util \
|
||||
src/egl/main
|
||||
|
||||
ifeq ($(strip $(MESA_BUILD_CLASSIC)),true)
|
||||
|
@@ -1,7 +0,0 @@
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libmesa_*_intermediates)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/i9*5_dri_intermediates)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libglapi_intermediates)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libGLES_mesa_intermediates)
|
||||
$(call add-clean-step, rm -rf $(OUT_DIR)/host/$(HOST_OS)-$(HOST_ARCH)/obj/EXECUTABLES/mesa_*_intermediates)
|
||||
$(call add-clean-step, rm -rf $(OUT_DIR)/host/$(HOST_OS)-$(HOST_ARCH)/obj/EXECUTABLES/glsl_compiler_intermediates)
|
||||
$(call add-clean-step, rm -rf $(OUT_DIR)/host/$(HOST_OS)-$(HOST_ARCH)/obj/STATIC_LIBRARIES/libmesa_glsl_utils_intermediates)
|
11
Makefile.am
11
Makefile.am
@@ -64,13 +64,14 @@ IGNORE_FILES = \
|
||||
|
||||
parsers: configure
|
||||
$(MAKE) -C src/glsl glsl_parser.cpp glsl_parser.h glsl_lexer.cpp glcpp/glcpp-lex.c glcpp/glcpp-parse.c glcpp/glcpp-parse.h
|
||||
$(MAKE) -C src/mesa program/lex.yy.c program/program_parse.tab.c program/program_parse.tab.h
|
||||
|
||||
# Everything for new a Mesa release:
|
||||
ARCHIVES = $(PACKAGE_NAME).tar.gz \
|
||||
$(PACKAGE_NAME).tar.bz2 \
|
||||
$(PACKAGE_NAME).zip
|
||||
|
||||
tarballs: checksums
|
||||
tarballs: md5
|
||||
rm -f ../$(PACKAGE_DIR) $(PACKAGE_NAME).tar
|
||||
|
||||
manifest.txt: .git
|
||||
@@ -97,9 +98,9 @@ $(PACKAGE_NAME).zip: parsers ../$(PACKAGE_DIR) manifest.txt
|
||||
zip -q -@ $(PACKAGE_NAME).zip < $(PACKAGE_DIR)/manifest.txt ; \
|
||||
mv $(PACKAGE_NAME).zip $(PACKAGE_DIR)
|
||||
|
||||
checksums: $(ARCHIVES)
|
||||
@-sha256sum $(PACKAGE_NAME).tar.gz
|
||||
@-sha256sum $(PACKAGE_NAME).tar.bz2
|
||||
@-sha256sum $(PACKAGE_NAME).zip
|
||||
md5: $(ARCHIVES)
|
||||
@-md5sum $(PACKAGE_NAME).tar.gz
|
||||
@-md5sum $(PACKAGE_NAME).tar.bz2
|
||||
@-md5sum $(PACKAGE_NAME).zip
|
||||
|
||||
.PHONY: tarballs md5
|
||||
|
13
SConstruct
13
SConstruct
@@ -59,6 +59,13 @@ else:
|
||||
|
||||
Help(opts.GenerateHelpText(env))
|
||||
|
||||
# fail early for a common error on windows
|
||||
if env['gles']:
|
||||
try:
|
||||
import libxml2
|
||||
except ImportError:
|
||||
raise SCons.Errors.UserError, "GLES requires libxml2-python to build"
|
||||
|
||||
#######################################################################
|
||||
# Environment setup
|
||||
|
||||
@@ -80,6 +87,9 @@ env.Append(CPPPATH = [
|
||||
'#/src/gallium/winsys',
|
||||
])
|
||||
|
||||
if env['msvc']:
|
||||
env.Append(CPPPATH = ['#include/c99'])
|
||||
|
||||
# for debugging
|
||||
#print env.Dump()
|
||||
|
||||
@@ -112,6 +122,9 @@ if env['crosscompile'] and not env['embedded']:
|
||||
host_env['hostonly'] = True
|
||||
assert host_env['crosscompile'] == False
|
||||
|
||||
if host_env['msvc']:
|
||||
host_env.Append(CPPPATH = ['#include/c99'])
|
||||
|
||||
target_env = env
|
||||
env = host_env
|
||||
Export('env')
|
||||
|
28
bin/.cherry-ignore
Normal file
28
bin/.cherry-ignore
Normal file
@@ -0,0 +1,28 @@
|
||||
# This patch does not apply cleanly, author says it can be skipped.
|
||||
dff3eccd158d648482bb47118ef5d57a9186e5a4
|
||||
|
||||
# And this one depends on the above, author says it too can be skipped.
|
||||
ac35ded4733883037316d556af596524e5e02535
|
||||
|
||||
# This patch introduces some regressions. See:
|
||||
# https://bugs.freedesktop.org/show_bug.cgi?id=77443
|
||||
1afe3359258a9e89b62c8638761f52d78f6d1cbc
|
||||
|
||||
# Author retracted this from consideration for stable branch
|
||||
3e817e7e56806d8adb8f16c35136045c29908944
|
||||
|
||||
# And this one was simply a bug fix for the previously-retracted commit
|
||||
2bab95973d8ad3a84f62670143d6f26c230d9582
|
||||
|
||||
# Here we have a commit, and its subsequent "revert" both proposed within a
|
||||
# single window of the stable release. So we can achieve the same final effect
|
||||
# by ignoring both of the commits.
|
||||
e3cc0d90e14e62a0a787b6c07a6df0f5c84039be
|
||||
0d5ec2c615784929be095951f9269773a790a2dd
|
||||
|
||||
# The function being modified here (_eglCreateWindowSurfaceCommon) does not
|
||||
# exist in the 10.1 branch.
|
||||
91ff0d4c6510dc38f279c586ced17fba917873e7
|
||||
|
||||
# This patch is not needed (modifies work only in 10.2)
|
||||
6980cae6aeb6671b6b0245e20a2d34957c1fff0a
|
@@ -14,7 +14,7 @@ git log --reverse --grep="cherry picked from commit" origin/master..HEAD |\
|
||||
sed -e 's/^[[:space:]]*(cherry picked from commit[[:space:]]*//' -e 's/)//' > already_picked
|
||||
|
||||
# Grep for commits that were marked as a candidate for the stable tree.
|
||||
git log --reverse --pretty=%H -i --grep='^\([[:space:]]*NOTE: .*[Cc]andidate\|CC:.*10\.3.*mesa-stable\)' HEAD..origin/master |\
|
||||
git log --reverse --pretty=%H -i --grep='^\([[:space:]]*NOTE: .*[Cc]andidate\|CC:.*10\.1.*mesa-stable\)' HEAD..origin/master |\
|
||||
while read sha
|
||||
do
|
||||
# Check to see whether the patch is on the ignore list.
|
||||
|
@@ -91,7 +91,6 @@ def AddOptions(opts):
|
||||
opts.Add(EnumOption('platform', 'target platform', host_platform,
|
||||
allowed_values=('cygwin', 'darwin', 'freebsd', 'haiku', 'linux', 'sunos', 'windows')))
|
||||
opts.Add(BoolOption('embedded', 'embedded build', 'no'))
|
||||
opts.Add(BoolOption('analyze', 'enable static code analysis where available', 'no'))
|
||||
opts.Add('toolchain', 'compiler toolchain', default_toolchain)
|
||||
opts.Add(BoolOption('gles', 'EXPERIMENTAL: enable OpenGL ES support', 'no'))
|
||||
opts.Add(BoolOption('llvm', 'use LLVM', default_llvm))
|
||||
@@ -101,4 +100,4 @@ def AddOptions(opts):
|
||||
opts.Add(BoolOption('quiet', 'DEPRECATED: profile build', 'yes'))
|
||||
opts.Add(BoolOption('texture_float', 'enable floating-point textures and renderbuffers', 'no'))
|
||||
if host_platform == 'windows':
|
||||
opts.Add('MSVC_VERSION', 'Microsoft Visual C/C++ version')
|
||||
opts.Add(EnumOption('MSVC_VERSION', 'MS Visual C++ version', None, allowed_values=('7.1', '8.0', '9.0', '10.0', '11.0', '12.0')))
|
||||
|
1019
configure.ac
1019
configure.ac
File diff suppressed because it is too large
Load Diff
163
docs/GL3.txt
163
docs/GL3.txt
@@ -18,8 +18,9 @@ are exposed in the 3.0 context as extensions.
|
||||
Feature Status
|
||||
----------------------------------------------------- ------------------------
|
||||
|
||||
GL 3.0, GLSL 1.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi
|
||||
GL 3.0 --- all DONE: i965, nv50, nvc0, r600, radeonsi
|
||||
|
||||
GLSL 1.30 DONE ()
|
||||
glBindFragDataLocation, glGetFragDataLocation DONE
|
||||
Conditional rendering (GL_NV_conditional_render) DONE (r300, swrast)
|
||||
Map buffer subranges (GL_ARB_map_buffer_range) DONE (r300, swrast)
|
||||
@@ -29,7 +30,7 @@ GL 3.0, GLSL 1.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi
|
||||
GL_EXT_texture_shared_exponent DONE (swrast)
|
||||
Float depth buffers (GL_ARB_depth_buffer_float) DONE ()
|
||||
Framebuffer objects (GL_ARB_framebuffer_object) DONE (r300, swrast)
|
||||
GL_ARB_half_float_pixel DONE (all drivers)
|
||||
GL_ARB_half_float_pixel DONE (r300, swrast)
|
||||
GL_ARB_half_float_vertex DONE (r300, swrast)
|
||||
GL_EXT_texture_integer DONE ()
|
||||
GL_EXT_texture_array DONE ()
|
||||
@@ -48,8 +49,9 @@ GL 3.0, GLSL 1.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi
|
||||
Multisample anti-aliasing DONE (r300)
|
||||
|
||||
|
||||
GL 3.1, GLSL 1.40 --- all DONE: i965, nv50, nvc0, r600, radeonsi
|
||||
GL 3.1 --- all DONE: i965, nv50, nvc0, r600, radeonsi
|
||||
|
||||
GLSL 1.40 DONE ()
|
||||
Forward compatible context support/deprecations DONE ()
|
||||
Instanced drawing (GL_ARB_draw_instanced) DONE (swrast)
|
||||
Buffer copying (GL_ARB_copy_buffer) DONE (r300, swrast)
|
||||
@@ -61,78 +63,71 @@ GL 3.1, GLSL 1.40 --- all DONE: i965, nv50, nvc0, r600, radeonsi
|
||||
Signed normalized textures (GL_EXT_texture_snorm) DONE (r300)
|
||||
|
||||
|
||||
GL 3.2, GLSL 1.50 --- all DONE: i965, nv50, nvc0, r600, radeonsi
|
||||
GL 3.2 --- all DONE: i965, nv50, nvc0, radeonsi
|
||||
|
||||
Core/compatibility profiles DONE
|
||||
GLSL 1.50 DONE ()
|
||||
Geometry shaders DONE ()
|
||||
BGRA vertex order (GL_ARB_vertex_array_bgra) DONE (r300, swrast)
|
||||
Base vertex offset(GL_ARB_draw_elements_base_vertex) DONE (r300, swrast)
|
||||
Frag shader coord (GL_ARB_fragment_coord_conventions) DONE (r300, swrast)
|
||||
Provoking vertex (GL_ARB_provoking_vertex) DONE (r300, swrast)
|
||||
Seamless cubemaps (GL_ARB_seamless_cube_map) DONE ()
|
||||
Multisample textures (GL_ARB_texture_multisample) DONE ()
|
||||
Frag depth clamp (GL_ARB_depth_clamp) DONE (swrast)
|
||||
Fence objects (GL_ARB_sync) DONE (r300, swrast)
|
||||
BGRA vertex order (GL_ARB_vertex_array_bgra) DONE (r300, r600, swrast)
|
||||
Base vertex offset(GL_ARB_draw_elements_base_vertex) DONE (r300, r600, swrast)
|
||||
Frag shader coord (GL_ARB_fragment_coord_conventions) DONE (r300, r600, swrast)
|
||||
Provoking vertex (GL_ARB_provoking_vertex) DONE (r300, r600, swrast)
|
||||
Seamless cubemaps (GL_ARB_seamless_cube_map) DONE (r600)
|
||||
Multisample textures (GL_ARB_texture_multisample) DONE (r600)
|
||||
Frag depth clamp (GL_ARB_depth_clamp) DONE (r600, swrast)
|
||||
Fence objects (GL_ARB_sync) DONE (r300, r600, swrast)
|
||||
GLX_ARB_create_context_profile DONE
|
||||
|
||||
|
||||
GL 3.3, GLSL 3.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi
|
||||
GL 3.3 --- all DONE: i965, nv50, nvc0, radeonsi
|
||||
|
||||
GL_ARB_blend_func_extended DONE (softpipe)
|
||||
GLSL 3.30 DONE ()
|
||||
GL_ARB_blend_func_extended DONE (r600, softpipe)
|
||||
GL_ARB_explicit_attrib_location DONE (all drivers that support GLSL)
|
||||
GL_ARB_occlusion_query2 DONE (r300, swrast)
|
||||
GL_ARB_occlusion_query2 DONE (r300, r600, swrast)
|
||||
GL_ARB_sampler_objects DONE (all drivers)
|
||||
GL_ARB_shader_bit_encoding DONE ()
|
||||
GL_ARB_texture_rgb10_a2ui DONE ()
|
||||
GL_ARB_texture_swizzle DONE (r300, swrast)
|
||||
GL_ARB_timer_query DONE ()
|
||||
GL_ARB_instanced_arrays DONE (r300)
|
||||
GL_ARB_vertex_type_2_10_10_10_rev DONE ()
|
||||
GL_ARB_shader_bit_encoding DONE (r600)
|
||||
GL_ARB_texture_rgb10_a2ui DONE (r600)
|
||||
GL_ARB_texture_swizzle DONE (r300, r600, swrast)
|
||||
GL_ARB_timer_query DONE (r600)
|
||||
GL_ARB_instanced_arrays DONE (r300, r600)
|
||||
GL_ARB_vertex_type_2_10_10_10_rev DONE (r600)
|
||||
|
||||
|
||||
GL 4.0, GLSL 4.00:
|
||||
GL 4.0:
|
||||
|
||||
GLSL 4.0 not started
|
||||
GL_ARB_texture_query_lod DONE (i965)
|
||||
GL_ARB_draw_buffers_blend DONE (i965, nv50, nvc0, r600, radeonsi, softpipe)
|
||||
GL_ARB_draw_indirect DONE (i965, nvc0, radeonsi, softpipe, llvmpipe)
|
||||
GL_ARB_gpu_shader5 DONE (i965, nvc0)
|
||||
- 'precise' qualifier DONE
|
||||
- Dynamically uniform sampler array indices DONE ()
|
||||
- Dynamically uniform UBO array indices DONE ()
|
||||
- Implicit signed -> unsigned conversions DONE
|
||||
- Fused multiply-add DONE ()
|
||||
- Packing/bitfield/conversion functions DONE (r600)
|
||||
- Enhanced textureGather DONE (r600, radeonsi)
|
||||
- Geometry shader instancing DONE ()
|
||||
- Geometry shader multiple streams DONE ()
|
||||
- Enhanced per-sample shading DONE (r600)
|
||||
- Interpolation functions DONE ()
|
||||
- New overload resolution rules DONE
|
||||
GL_ARB_gpu_shader_fp64 started (Dave)
|
||||
GL_ARB_sample_shading DONE (i965, nv50, nvc0, radeonsi)
|
||||
GL_ARB_draw_indirect DONE (i965)
|
||||
GL_ARB_gpu_shader5 started
|
||||
GL_ARB_gpu_shader_fp64 not started
|
||||
GL_ARB_sample_shading DONE (i965)
|
||||
GL_ARB_shader_subroutine not started
|
||||
GL_ARB_tessellation_shader started (Fabian)
|
||||
GL_ARB_texture_buffer_object_rgb32 DONE (i965, nvc0, r600, radeonsi, softpipe)
|
||||
GL_ARB_texture_cube_map_array DONE (i965, nv50, nvc0, r600, radeonsi, softpipe)
|
||||
GL_ARB_texture_gather DONE (i965, nv50, nvc0, r600, radeonsi)
|
||||
GL_ARB_texture_query_lod DONE (i965, nv50, nvc0, r600, radeonsi)
|
||||
GL_ARB_tessellation_shader not started
|
||||
GL_ARB_texture_buffer_object_rgb32 DONE (i965, r600, radeonsi, softpipe)
|
||||
GL_ARB_texture_cube_map_array DONE (i965, nvc0, r600, softpipe)
|
||||
GL_ARB_texture_gather DONE (i965)
|
||||
GL_ARB_transform_feedback2 DONE (i965, nv50, nvc0, r600, radeonsi)
|
||||
GL_ARB_transform_feedback3 DONE (i965, nv50, nvc0, r600, radeonsi)
|
||||
|
||||
|
||||
GL 4.1, GLSL 4.10:
|
||||
GL 4.1:
|
||||
|
||||
GLSL 4.1 not started
|
||||
GL_ARB_ES2_compatibility DONE (i965, nv50, nvc0, r300, r600, radeonsi)
|
||||
GL_ARB_get_program_binary DONE (0 binary formats)
|
||||
GL_ARB_separate_shader_objects DONE (all drivers)
|
||||
GL_ARB_shader_precision started (Micah)
|
||||
GL_ARB_vertex_attrib_64bit started (Dave)
|
||||
GL_ARB_viewport_array DONE (i965, nv50, nvc0, r600)
|
||||
GL_ARB_separate_shader_objects started (Ian Romanick, Gregory Hainaut)
|
||||
GL_ARB_shader_precision not started
|
||||
GL_ARB_vertex_attrib_64bit not started
|
||||
GL_ARB_viewport_array DONE (i965)
|
||||
|
||||
|
||||
GL 4.2, GLSL 4.20:
|
||||
GL 4.2:
|
||||
|
||||
GL_ARB_texture_compression_bptc DONE (i965, nvc0, r600, radeonsi)
|
||||
GL_ARB_compressed_texture_pixel_storage DONE (all drivers)
|
||||
GLSL 4.2 not started
|
||||
GL_ARB_texture_compression_bptc not started
|
||||
GL_ARB_compressed_texture_pixel_storage not started
|
||||
GL_ARB_shader_atomic_counters DONE (i965)
|
||||
GL_ARB_texture_storage DONE (all drivers)
|
||||
GL_ARB_transform_feedback_instanced DONE (i965, nv50, nvc0, r600, radeonsi)
|
||||
@@ -144,75 +139,45 @@ GL 4.2, GLSL 4.20:
|
||||
GL_ARB_map_buffer_alignment DONE (all drivers)
|
||||
|
||||
|
||||
GL 4.3, GLSL 4.30:
|
||||
GL 4.3:
|
||||
|
||||
GL_ARB_arrays_of_arrays started (Timothy)
|
||||
GL_ARB_ES3_compatibility DONE (all drivers that support GLSL 3.30)
|
||||
GLSL 4.3 not started
|
||||
GL_ARB_arrays_of_arrays started
|
||||
GL_ARB_ES3_compatibility DONE (i965)
|
||||
GL_ARB_clear_buffer_object DONE (all drivers)
|
||||
GL_ARB_compute_shader started (currently stalled)
|
||||
GL_ARB_copy_image DONE (i965)
|
||||
GL_ARB_compute_shader started (Paul Berry)
|
||||
GL_ARB_copy_image not started
|
||||
GL_KHR_debug DONE (all drivers)
|
||||
GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
|
||||
GL_ARB_fragment_layer_viewport DONE (nv50, nvc0, r600)
|
||||
GL_ARB_explicit_uniform_location not started
|
||||
GL_ARB_fragment_layer_viewport not started
|
||||
GL_ARB_framebuffer_no_attachments not started
|
||||
GL_ARB_internalformat_query2 not started
|
||||
GL_ARB_invalidate_subdata DONE (all drivers)
|
||||
GL_ARB_multi_draw_indirect DONE (i965, nvc0, radeonsi, softpipe, llvmpipe)
|
||||
GL_ARB_multi_draw_indirect DONE (i965)
|
||||
GL_ARB_program_interface_query not started
|
||||
GL_ARB_robust_buffer_access_behavior not started
|
||||
GL_ARB_shader_image_size not started
|
||||
GL_ARB_shader_storage_buffer_object not started
|
||||
GL_ARB_stencil_texturing DONE (i965/gen8+, nv50, nvc0, r600, radeonsi)
|
||||
GL_ARB_stencil_texturing not started
|
||||
GL_ARB_texture_buffer_range DONE (nv50, nvc0, i965, r600, radeonsi)
|
||||
GL_ARB_texture_query_levels DONE (all drivers that support GLSL 1.30)
|
||||
GL_ARB_texture_query_levels DONE (i965)
|
||||
GL_ARB_texture_storage_multisample DONE (all drivers that support GL_ARB_texture_multisample)
|
||||
GL_ARB_texture_view DONE (i965)
|
||||
GL_ARB_texture_view started (Courtney Goeltzenleuchter, Chris Forbes)
|
||||
GL_ARB_vertex_attrib_binding DONE (all drivers)
|
||||
|
||||
|
||||
GL 4.4, GLSL 4.40:
|
||||
GL 4.4:
|
||||
|
||||
GLSL 4.4 not started
|
||||
GL_MAX_VERTEX_ATTRIB_STRIDE not started
|
||||
GL_ARB_buffer_storage DONE (i965, nv30, nv50, nvc0, r300, r600, radeonsi)
|
||||
GL_ARB_clear_texture DONE (i965)
|
||||
GL_ARB_buffer_storage not started
|
||||
GL_ARB_clear_texture not started
|
||||
GL_ARB_enhanced_layouts not started
|
||||
GL_ARB_multi_bind DONE (all drivers)
|
||||
GL_ARB_multi_bind started (Fredrik Höglund)
|
||||
GL_ARB_query_buffer_object not started
|
||||
GL_ARB_texture_mirror_clamp_to_edge DONE (i965, nv30, nv50, nvc0, r300, r600, radeonsi, swrast)
|
||||
GL_ARB_texture_stencil8 not started
|
||||
GL_ARB_vertex_type_10f_11f_11f_rev DONE (i965, nv50, nvc0, r600, radeonsi)
|
||||
|
||||
GL 4.5, GLSL 4.50:
|
||||
|
||||
GL_ARB_ES3_1_compatibility not started
|
||||
GL_ARB_clip_control not started
|
||||
GL_ARB_conditional_render_inverted DONE (i965, nvc0, softpipe, llvmpipe)
|
||||
GL_ARB_cull_distance not started
|
||||
GL_ARB_derivative_control DONE (i965, nv50, nvc0, r600)
|
||||
GL_ARB_direct_state_access not started
|
||||
GL_ARB_get_texture_sub_image started (Brian Paul)
|
||||
GL_ARB_shader_texture_image_samples not started
|
||||
GL_ARB_texture_barrier DONE (nv50, nvc0, r300, r600, radeonsi)
|
||||
GL_KHR_context_flush_control not started
|
||||
GL_KHR_robust_buffer_access_behavior not started
|
||||
GL_KHR_robustness 90% done (the ARB variant)
|
||||
|
||||
These are the extensions cherry-picked to make GLES 3.1
|
||||
GLES3.1, GLSL ES 3.1
|
||||
GL_ARB_arrays_of_arrays started (Timothy)
|
||||
GL_ARB_compute_shader started (currently stalled)
|
||||
GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
|
||||
GL_ARB_framebuffer_no_attachments not started
|
||||
GL_ARB_program_interface_query not started
|
||||
GL_ARB_shader_atomic_counters DONE (i965)
|
||||
GL_ARB_shader_image_load_store in progress (curro)
|
||||
GL_ARB_shader_storage_buffer_object not started
|
||||
GL_ARB_separate_shader_objects DONE (all drivers)
|
||||
GL_ARB_stencil_texturing DONE (i965/gen8+, nv50, nvc0, r600, radeonsi)
|
||||
GL_ARB_vertex_attrib_binding DONE (all drivers)
|
||||
GS5 Enhanced textureGather DONE (i965, nvc0, r600, radeonsi)
|
||||
GS5 Packing/bitfield/conversion functions DONE (i965, nvc0, r600)
|
||||
GL_EXT_shader_integer_mix DONE (all drivers that support GLSL)
|
||||
GL_ARB_vertex_type_10f_11f_11f_rev DONE (i965, r600)
|
||||
|
||||
|
||||
More info about these features and the work involved can be found at
|
||||
|
@@ -11,34 +11,3 @@ INFORMATION FOR PACKAGED MEDIA IS EXPRESSLY PROHIBITED WITHOUT A LICENSE
|
||||
UNDER APPLICABLE PATENTS IN THE MPEG-2 PATENT PORTFOLIO, WHICH LICENSES IS
|
||||
AVAILABLE FROM MPEG LA, LLC, 6312 S. Fiddlers Green Circle, Suite 400E,
|
||||
Greenwood Village, Colorado 80111 U.S.A.
|
||||
|
||||
WARRANTY DISCLAIMER: THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND. AMD DISCLAIMS ALL WARRANTIES, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||
PARTICULAR PURPOSE, TITLE, NON-INFRINGEMENT, THAT THE SOFTWARE WILL RUN
|
||||
UNINTERRUPTED OR ERROR-FREE OR WARRANTIES ARISING FROM CUSTOM OF TRADE OR
|
||||
COURSE OF USAGE. THE ENTIRE RISK ASSOCIATED WITH THE USE OF THE SOFTWARE IS
|
||||
ASSUMED BY YOU. Some jurisdictions do not allow the exclusion of implied
|
||||
warranties, so the above exclusion may not apply to You.
|
||||
|
||||
LIMITATION OF LIABILITY AND INDEMNIFICATION: AMD AND ITS LICENSORS WILL NOT,
|
||||
UNDER ANY CIRCUMSTANCES BE LIABLE FOR ANY PUNITIVE, DIRECT, INCIDENTAL,
|
||||
INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING FROM USE OF THE SOFTWARE OR
|
||||
THIS AGREEMENT EVEN IF AMD AND ITS LICENSORS HAVE BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES. In no event shall AMD's total liability to You
|
||||
for all damages, losses, and causes of action (whether in contract, tort
|
||||
(including negligence) or otherwise) exceed the amount of $100 USD. You agree
|
||||
to defend, indemnify and hold harmless AMD and its licensors, and any of their
|
||||
directors, officers, employees, affiliates or agents from and against any and
|
||||
all loss, damage, liability and other expenses (including reasonable
|
||||
attorneys' fees), resulting from Your use of the Software or violation of the
|
||||
terms and conditions of this Agreement.
|
||||
|
||||
U.S. GOVERNMENT RESTRICTED RIGHTS: The Software is provided with "RESTRICTED
|
||||
RIGHTS." Use, duplication, or disclosure by the Government is subject to the
|
||||
restrictions as set forth in FAR 52.227-14 and DFAR252.227-7013, et seq., or
|
||||
its successor. Use of the Software by the Government constitutes
|
||||
acknowledgement of AMD's proprietary rights in them.
|
||||
|
||||
EXPORT RESTRICTIONS: The Software may be subject to export restrictions as
|
||||
stated in the Software License Agreement.
|
||||
|
@@ -1,43 +0,0 @@
|
||||
The software may implement third party technologies (e.g. third party
|
||||
libraries) that are not licensed to you by AMD and for which you may need
|
||||
to obtain licenses from other parties. Unless explicitly stated otherwise,
|
||||
these third party technologies are not licensed hereunder. Such third
|
||||
party technologies include, but are not limited, to H.264, MPEG-2, MPEG-4,
|
||||
AVC, and VC-1.
|
||||
|
||||
For MPEG-2 Intermediate Products: ANY USE OF THIS PRODUCT IN ANY MANNER OTHER
|
||||
THAN PERSONAL USE THAT COMPLIES WITH THE MPEG-2 STANDARD IS EXPRESSLY
|
||||
PROHIBITED WITHOUT A LICENSE UNDER APPLICABLE PATENTS IN THE MPEG-2 PATENT
|
||||
PORTFOLIO, WHICH LICENSES IS AVAILABLE FROM MPEG LA, LLC, 6312 S. Fiddlers
|
||||
Green Circle, Suite 400E, Greenwood Village, Colorado 80111 U.S.A.
|
||||
|
||||
WARRANTY DISCLAIMER: THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND. AMD DISCLAIMS ALL WARRANTIES, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
|
||||
BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||
PARTICULAR PURPOSE, TITLE, NON-INFRINGEMENT, THAT THE SOFTWARE WILL RUN
|
||||
UNINTERRUPTED OR ERROR-FREE OR WARRANTIES ARISING FROM CUSTOM OF TRADE OR
|
||||
COURSE OF USAGE. THE ENTIRE RISK ASSOCIATED WITH THE USE OF THE SOFTWARE IS
|
||||
ASSUMED BY YOU. Some jurisdictions do not allow the exclusion of implied
|
||||
warranties, so the above exclusion may not apply to You.
|
||||
|
||||
LIMITATION OF LIABILITY AND INDEMNIFICATION: AMD AND ITS LICENSORS WILL NOT,
|
||||
UNDER ANY CIRCUMSTANCES BE LIABLE FOR ANY PUNITIVE, DIRECT, INCIDENTAL,
|
||||
INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING FROM USE OF THE SOFTWARE OR
|
||||
THIS AGREEMENT EVEN IF AMD AND ITS LICENSORS HAVE BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES. In no event shall AMD's total liability to You
|
||||
for all damages, losses, and causes of action (whether in contract, tort
|
||||
(including negligence) or otherwise) exceed the amount of $100 USD. You agree
|
||||
to defend, indemnify and hold harmless AMD and its licensors, and any of their
|
||||
directors, officers, employees, affiliates or agents from and against any and
|
||||
all loss, damage, liability and other expenses (including reasonable
|
||||
attorneys' fees), resulting from Your use of the Software or violation of the
|
||||
terms and conditions of this Agreement.
|
||||
|
||||
U.S. GOVERNMENT RESTRICTED RIGHTS: The Software is provided with "RESTRICTED
|
||||
RIGHTS." Use, duplication, or disclosure by the Government is subject to the
|
||||
restrictions as set forth in FAR 52.227-14 and DFAR252.227-7013, et seq., or
|
||||
its successor. Use of the Software by the Government constitutes
|
||||
acknowledgement of AMD's proprietary rights in them.
|
||||
|
||||
EXPORT RESTRICTIONS: The Software may be subject to export restrictions as
|
||||
stated in the Software License Agreement.
|
@@ -36,15 +36,17 @@ Recipe
|
||||
Building on windows requires several open-source packages. These are
|
||||
steps that work as of this writing.
|
||||
|
||||
- install python 2.7
|
||||
- install scons (latest)
|
||||
- install mingw, flex, and bison
|
||||
- install pywin32 from here: http://www.lfd.uci.edu/~gohlke/pythonlibs
|
||||
1) install python 2.7
|
||||
2) install scons (latest)
|
||||
3) install mingw, flex, and bison
|
||||
4) install libxml2 from here: http://www.lfd.uci.edu/~gohlke/pythonlibs
|
||||
get libxml2-python-2.9.1.win-amd64-py2.7.exe
|
||||
5) install pywin32 from here: http://www.lfd.uci.edu/~gohlke/pythonlibs
|
||||
get pywin32-218.4.win-amd64-py2.7.exe
|
||||
- install git
|
||||
- download mesa from git
|
||||
6) install git
|
||||
7) download mesa from git
|
||||
see http://www.mesa3d.org/repository.html
|
||||
- run scons
|
||||
8) run scons
|
||||
|
||||
General
|
||||
-------
|
||||
|
@@ -97,22 +97,20 @@ shared libraries in a single pass.</p>
|
||||
<dt><code>CC, CFLAGS, CXX, CXXFLAGS</code></dt>
|
||||
<dd><p>These environment variables
|
||||
control the C and C++ compilers used during the build. By default,
|
||||
<code>gcc</code> and <code>g++</code> are used and the debug/optimisation
|
||||
level is left unchanged.</p>
|
||||
<code>gcc</code> and <code>g++</code> are used with the options
|
||||
<code>"-g -O2"</code>.</p>
|
||||
</dd>
|
||||
|
||||
<dt><code>LDFLAGS</code></dt>
|
||||
<dd><p>An environment variable specifying flags to
|
||||
pass when linking programs. These should be empty and
|
||||
<code>PKG_CONFIG_PATH</code> is recommended to be used instead. If needed
|
||||
it can be used to direct the linker to use libraries in nonstandard
|
||||
directories. For example, <code>LDFLAGS="-L/usr/X11R6/lib"</code>.</p>
|
||||
pass when linking programs. These are normally empty, but can be used
|
||||
to direct the linker to use libraries in nonstandard directories. For
|
||||
example, <code>LDFLAGS="-L/usr/X11R6/lib"</code>.</p>
|
||||
</dd>
|
||||
|
||||
<dt><code>PKG_CONFIG_PATH</code></dt>
|
||||
<dd><p>The
|
||||
<code>pkg-config</code> utility is a hard requirement for cofiguring and
|
||||
building mesa. It is used to search for external libraries
|
||||
<dd><p>When available, the
|
||||
<code>pkg-config</code> utility is used to search for external libraries
|
||||
on the system. This environment variable is used to control the search
|
||||
path for <code>pkg-config</code>. For instance, setting
|
||||
<code>PKG_CONFIG_PATH=/usr/X11R6/lib/pkgconfig</code> will search for
|
||||
@@ -137,32 +135,14 @@ one of these architectures is detected. This option ensures that
|
||||
assembly will not be used.</p>
|
||||
</dd>
|
||||
|
||||
<dt><code>--build=</code></dt>
|
||||
<dt><code>--host=</code></dt>
|
||||
<dd><p>By default, the build will compile code for the architecture that
|
||||
it's running on. In order to build cross-compile Mesa on a x86-64 machine
|
||||
that is to run on a i686, one would need to set the options to:</p>
|
||||
|
||||
<p><code>--build=x86_64-pc-linux-gnu --host=i686-pc-linux-gnu</code></p>
|
||||
|
||||
Note that these can vary from distribution to distribution. For more
|
||||
information check with the
|
||||
<a href="https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/Specifying-Target-Triplets.html">
|
||||
autoconf manual</a>.
|
||||
Note that you will need to correctly set <code>PKG_CONFIG_PATH</code> as well.
|
||||
|
||||
|
||||
<p>In some cases a single compiler is capable of handling both architectures
|
||||
(multilib) in that case one would need to set the <code>CC,CXX</code> variables
|
||||
appending the correct machine options. Seek your compiler documentation for
|
||||
further information -
|
||||
<a href="https://gcc.gnu.org/onlinedocs/gcc/Submodel-Options.html"> gcc
|
||||
machine dependent options</a></p>
|
||||
|
||||
<p>In addition to specifying correct <code>PKG_CONFIG_PATH</code> for the target
|
||||
architecture, the following should be sufficient to configure multilib Mesa</p>
|
||||
|
||||
<code>./configure CC="gcc -m32" CXX="g++ -m32" --build=x86_64-pc-linux-gnu --host=i686-pc-linux-gnu ...</code>
|
||||
<dt><code>--enable-32-bit</code></dt>
|
||||
<dt><code>--enable-64-bit</code></dt>
|
||||
<dd><p>By default, the build will compile code as directed by the environment
|
||||
variables
|
||||
<code>CC</code>, <code>CFLAGS</code>, etc. If the compiler is
|
||||
<code>gcc</code>, these options offer a helper to add the compiler flags
|
||||
to force 32- or 64-bit code generation as used on the x86 and x86_64
|
||||
architectures. Note that these options are mutually exclusive.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
@@ -214,9 +194,7 @@ kernel DRM modules are not available.
|
||||
<dt><code>--enable-glx-tls</code> <dd><p>
|
||||
Enable Thread Local Storage (TLS) in
|
||||
GLX.
|
||||
<dt><code>--with-expat=DIR</code>
|
||||
<dd><p><strong>DEPRECATED</strong>, use <code>PKG_CONFIG_PATH</code> instead.</p>
|
||||
<p>The DRI-enabled libGL uses expat to
|
||||
<dt><code>--with-expat=DIR</code> <dd> The DRI-enabled libGL uses expat to
|
||||
parse the DRI configuration files in <code>/etc/drirc</code> and
|
||||
<code>~/.drirc</code>. This option allows a specific expat installation
|
||||
to be used. For example, <code>--with-expat=/usr/local</code> will
|
||||
|
@@ -56,11 +56,6 @@ To add a new GL extension to Mesa you have to do at least the following.
|
||||
If the new extension adds new GL state, the functions in get.c, enable.c
|
||||
and attrib.c will most likely require new code.
|
||||
</li>
|
||||
<li>
|
||||
The dispatch tests check_table.cpp and dispatch_sanity.cpp
|
||||
should be updated with details about the new extensions functions. These
|
||||
tests are run using 'make check'
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
@@ -216,11 +211,6 @@ you can send a note directly to the mesa-stable@lists.freedesktop.org where
|
||||
the Mesa stable-branch maintainers will receive it. Be sure to mention the
|
||||
commit ID of the commit of interest (as it appears in the mesa master branch).
|
||||
|
||||
The latest set of patches that have been nominated, accepted, or rejected for
|
||||
the upcoming stable release can always be seen on the
|
||||
<a href=http://cworth.org/~cworth/mesa-stable-queue/">Mesa Stable Queue</a>
|
||||
page.
|
||||
|
||||
<h2>Cherry-picking candidates for a stable branch</h2>
|
||||
|
||||
<p>
|
||||
|
@@ -232,6 +232,16 @@ The supported platforms are X11, DRM, FBDEV, and GDI.</p>
|
||||
|
||||
</dd>
|
||||
|
||||
<dt><code>egl_glx</code></dt>
|
||||
<dd>
|
||||
|
||||
<p>This driver provides a wrapper to GLX. It uses exclusively GLX to implement
|
||||
the EGL API. It supports both direct and indirect rendering when the GLX does.
|
||||
It is accelerated when the GLX is. As such, it cannot provide functions that
|
||||
is not available in GLX or GLX extensions.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<h2>Packaging</h2>
|
||||
|
||||
<p>The ABI between the main library and its drivers are not stable. Nor is
|
||||
@@ -252,6 +262,10 @@ is disabled by default.</p>
|
||||
<code>src/egl/</code>. The sources of the <code>egl</code> state tracker can
|
||||
be found at <code>src/gallium/state_trackers/egl/</code>.</p>
|
||||
|
||||
<p>The suggested way to learn to write a EGL driver is to see how other drivers
|
||||
are written. <code>egl_glx</code> should be a good reference. It works in any
|
||||
environment that has GLX support, and it is simpler than most drivers.</p>
|
||||
|
||||
<h3>Lifetime of Display Resources</h3>
|
||||
|
||||
<p>Contexts and surfaces are examples of display resources. They might live
|
||||
|
126
docs/index.html
126
docs/index.html
@@ -16,132 +16,6 @@
|
||||
|
||||
<h1>News</h1>
|
||||
|
||||
<h2>September 19, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.3.html">Mesa 10.3</a> is released. This is a new
|
||||
development release. See the release notes for more information about
|
||||
the release.
|
||||
</p>
|
||||
<p>
|
||||
Also, <a href="relnotes/10.2.8.html">Mesa 10.2.8</a> is released.
|
||||
This is a bug fix release from the 10.2 branch.
|
||||
</p>
|
||||
|
||||
<h2>August 19, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.2.6.html">Mesa 10.2.6</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>August 2, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.2.5.html">Mesa 10.2.5</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>July 18, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.2.4.html">Mesa 10.2.4</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>July 7, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.2.3.html">Mesa 10.2.3</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>July 5, 2014</h2>
|
||||
|
||||
<p>
|
||||
Mesa demos 8.2.0 is released.
|
||||
See the <a href="http://lists.freedesktop.org/archives/mesa-announce/2014-July/000100.html">announcement</a> for more information about the release.
|
||||
You can download it from <a href="ftp://ftp.freedesktop.org/pub/mesa/demos/8.2.0/">ftp.freedesktop.org/pub/mesa/demos/8.2.0/</a>.
|
||||
</p>
|
||||
|
||||
<h2>June 24, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.1.6.html">Mesa 10.1.6</a>
|
||||
and <a href="relnotes/10.2.2.html">Mesa 10.2.2</a> are released.
|
||||
|
||||
These are bug-fix releases from the 10.1 and 10.2 branches, respectively.
|
||||
</p>
|
||||
|
||||
<h2>June 6, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.2.1.html">Mesa 10.2.1</a> is released. This release
|
||||
only fixes a build error in the radeonsi driver that was introduced between
|
||||
10.2-rc5 and the 10.2 final release.
|
||||
</p>
|
||||
|
||||
<h2>June 6, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.2.html">Mesa 10.2</a> is released. This is a new
|
||||
development release. See the release notes for more information about
|
||||
the release.
|
||||
</p>
|
||||
<p>
|
||||
Also, <a href="relnotes/10.1.5.html">Mesa 10.1.5</a> is released.
|
||||
This is a bug fix release from the 10.1 branch.
|
||||
</p>
|
||||
|
||||
<h2>May 20, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.1.4.html">Mesa 10.1.4</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>May 9, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.1.3.html">Mesa 10.1.3</a> is released.
|
||||
This is a bug-fix release, and is being released sooner than
|
||||
originally scheduled to fix a performance regression (vmware
|
||||
swapbuffers falling back to software) introduced to the
|
||||
10.1.2 release.
|
||||
</p>
|
||||
|
||||
<h2>May 5, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.1.2.html">Mesa 10.1.2</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>April 18, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.1.1.html">Mesa 10.1.1</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>April 18, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.0.5.html">Mesa 10.0.5</a> is released.
|
||||
This is a bug-fix release.
|
||||
<br>
|
||||
NOTE: Since the 10.1.1 release is being released concurrently, it is
|
||||
anticipated that 10.0.5 will be the final release in the 10.0
|
||||
series. Users of 10.0 are encouraged to migrate to the 10.1 series in
|
||||
order to obtain future fixes.
|
||||
</p>
|
||||
|
||||
<h2>March 12, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.0.4.html">Mesa 10.0.4</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>March 4, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.1.html">Mesa 10.1</a> is released.
|
||||
This is a new development release.
|
||||
See the release notes for more information about the release.
|
||||
</p>
|
||||
|
||||
<h2>February 3, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.0.3.html">Mesa 10.0.3</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>January 9, 2014</h2>
|
||||
<p>
|
||||
<a href="relnotes/10.0.2.html">Mesa 10.0.2</a> is released.
|
||||
|
@@ -34,25 +34,20 @@
|
||||
|
||||
<h2>1.1 General</h2>
|
||||
<ul>
|
||||
<li><a href="http://www.python.org/">Python</a> - Python is required.
|
||||
Version 2.6.4 or later should work.
|
||||
</li>
|
||||
<br>
|
||||
<li><a href="http://www.scons.org/">SCons</a> is required for building on
|
||||
Windows and optional for Linux (it's an alternative to autoconf/automake.)
|
||||
</li>
|
||||
<br>
|
||||
<li>lex / yacc - for building the GLSL compiler.
|
||||
<br>
|
||||
<br>
|
||||
On Linux systems, flex and bison are used.
|
||||
Versions 2.5.35 and 2.4.1, respectively, (or later) should work.
|
||||
<br>
|
||||
<br>
|
||||
On Windows with MinGW, install flex and bison with:
|
||||
<pre>mingw-get install msys-flex msys-bison</pre>
|
||||
For MSVC on Windows, you can find flex/bison programs on the
|
||||
<a href="ftp://ftp.freedesktop.org/pub/mesa/windows-utils/">Mesa ftp site</a>.
|
||||
</li>
|
||||
<li>python - Python is needed for building the Gallium components.
|
||||
Version 2.6.4 or later should work.
|
||||
<br>
|
||||
<br>
|
||||
To build OpenGL ES 1.1 and 2.0 you'll also need
|
||||
<a href="http://xmlsoft.org/sources/win32/python/libxml2-python-2.7.7.win32-py2.7.exe">libxml2-python</a>.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
@@ -43,7 +43,11 @@ It's the fastest software rasterizer for Mesa.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>LLVM: version 3.4 recommended; 3.1 or later required.</p>
|
||||
<p>LLVM: version 2.9 recommended; 2.6 or later required.</p>
|
||||
<p><b>NOTE</b>: LLVM 2.8 and earlier will not work on systems that support the
|
||||
Intel AVX extensions (e.g. Sandybridge). LLVM's code generator will
|
||||
fail when trying to emit AVX instructions. This was fixed in LLVM 2.9.
|
||||
</p>
|
||||
<p>
|
||||
For Linux, on a recent Debian based distribution do:
|
||||
</p>
|
||||
@@ -97,15 +101,13 @@ but the rest of these instructions assume that scons is used.
|
||||
For Windows the procedure is similar except the target:
|
||||
|
||||
<pre>
|
||||
scons platform=windows build=debug libgl-gdi
|
||||
scons build=debug libgl-gdi
|
||||
</pre>
|
||||
|
||||
|
||||
<h1>Using</h1>
|
||||
|
||||
<h2>Linux</h2>
|
||||
|
||||
<p>On Linux, building will create a drop-in alternative for libGL.so into</p>
|
||||
On Linux, building will create a drop-in alternative for libGL.so into
|
||||
|
||||
<pre>
|
||||
build/foo/gallium/targets/libgl-xlib/libGL.so
|
||||
@@ -115,45 +117,15 @@ or
|
||||
lib/gallium/libGL.so
|
||||
</pre>
|
||||
|
||||
<p>To use it set the LD_LIBRARY_PATH environment variable accordingly.</p>
|
||||
To use it set the LD_LIBRARY_PATH environment variable accordingly.
|
||||
|
||||
<p>For performance evaluation pass build=release to scons, and use the corresponding
|
||||
lib directory without the "-debug" suffix.</p>
|
||||
For performance evaluation pass debug=no to scons, and use the corresponding
|
||||
lib directory without the "-debug" suffix.
|
||||
|
||||
|
||||
<h2>Windows</h2>
|
||||
|
||||
<p>
|
||||
On Windows, building will create
|
||||
<code>build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll</code>
|
||||
which is a drop-in alternative for system's <code>opengl32.dll</code>. To use
|
||||
it put it in the same directory as your application. It can also be used by
|
||||
On Windows, building will create a drop-in alternative for opengl32.dll. To use
|
||||
it put it in the same directory as the application. It can also be used by
|
||||
replacing the native ICD driver, but it's quite an advanced usage, so if you
|
||||
need to ask, don't even try it.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
There is however an easy way to replace the OpenGL software renderer that comes
|
||||
with Microsoft Windows 7 (or later) with llvmpipe (that is, on systems without
|
||||
any OpenGL drivers):
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><p>copy build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll to C:\Windows\SysWOW64\mesadrv.dll</p></li>
|
||||
<li><p>load this registry settings:</p>
|
||||
<pre>REGEDIT4
|
||||
|
||||
; http://technet.microsoft.com/en-us/library/cc749368.aspx
|
||||
; http://www.msfn.org/board/topic/143241-portable-windows-7-build-from-winpe-30/page-5#entry942596
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\MSOGL]
|
||||
"DLL"="mesadrv.dll"
|
||||
"DriverVersion"=dword:00000001
|
||||
"Flags"=dword:00000001
|
||||
"Version"=dword:00000002
|
||||
</pre>
|
||||
</li>
|
||||
<li>Ditto for 64 bits drivers if you need them.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h1>Profiling</h1>
|
||||
|
@@ -21,25 +21,7 @@ The release notes summarize what's new or changed in each Mesa release.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="relnotes/10.3.html">10.3 release notes</a>
|
||||
<li><a href="relnotes/10.2.8.html">10.2.8 release notes</a>
|
||||
<li><a href="relnotes/10.2.6.html">10.2.6 release notes</a>
|
||||
<li><a href="relnotes/10.2.5.html">10.2.5 release notes</a>
|
||||
<li><a href="relnotes/10.2.4.html">10.2.4 release notes</a>
|
||||
<li><a href="relnotes/10.2.3.html">10.2.3 release notes</a>
|
||||
<li><a href="relnotes/10.2.2.html">10.2.2 release notes</a>
|
||||
<li><a href="relnotes/10.2.1.html">10.2.1 release notes</a>
|
||||
<li><a href="relnotes/10.2.html">10.2 release notes</a>
|
||||
<li><a href="relnotes/10.1.6.html">10.1.6 release notes</a>
|
||||
<li><a href="relnotes/10.1.5.html">10.1.5 release notes</a>
|
||||
<li><a href="relnotes/10.1.4.html">10.1.4 release notes</a>
|
||||
<li><a href="relnotes/10.1.3.html">10.1.3 release notes</a>
|
||||
<li><a href="relnotes/10.1.2.html">10.1.2 release notes</a>
|
||||
<li><a href="relnotes/10.1.1.html">10.1.1 release notes</a>
|
||||
<li><a href="relnotes/10.1.html">10.1 release notes</a>
|
||||
<li><a href="relnotes/10.0.5.html">10.0.5 release notes</a>
|
||||
<li><a href="relnotes/10.0.4.html">10.0.4 release notes</a>
|
||||
<li><a href="relnotes/10.0.3.html">10.0.3 release notes</a>
|
||||
<li><a href="relnotes/10.0.2.html">10.0.2 release notes</a>
|
||||
<li><a href="relnotes/10.0.1.html">10.0.1 release notes</a>
|
||||
<li><a href="relnotes/10.0.html">10.0 release notes</a>
|
||||
|
@@ -1,206 +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.0.3 Release Notes / (February 3, 2014)</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.0.3 is a bug fix release which fixes bugs found since the 10.0.2 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.0.3 implements the OpenGL 3.3 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
|
||||
3.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>MD5 checksums</h2>
|
||||
<pre>
|
||||
5f9f463ef08129f6762106b434910adb MesaLib-10.0.3.tar.bz2
|
||||
fb3997b6500e153bc32370cb3fc4ca9e MesaLib-10.0.3.tar.gz
|
||||
a07b4b6b9eb449b88a6cb5061e51c331 MesaLib-10.0.3.zip
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72708">Bug 72708</a> - Master fails to build with older gcc due to -msse4.1</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72926">Bug 72926</a> - [REGRESSION,swrast] Memory-related crash with anti-aliasing enabled</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=73096">Bug 73096</a> - Query GL_RGBA_SIGNED_COMPONENTS_EXT missing</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=73100">Bug 73100</a> - Please use AC_PATH_TOOL instead of AC_PATH_PROG for llvm-config</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=73418">Bug 73418</a> - OpenCL hangs graphics on CAYMAN</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=73473">Bug 73473</a> - Potential crash bug in src/gallium/auxiliary/rtasm/rtasm_execmem.c</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=73915">Bug 73915</a> - sample shading + centroid broken since f5cfb4a</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=73956">Bug 73956</a> - SIGSEGV when passing GL_NONE to glReadBuffer</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74026">Bug 74026</a> - Compiler rejects chained assignments involving array dereferences</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>The full set of changes can be viewed by using the following git command:</p>
|
||||
|
||||
<pre>
|
||||
git log mesa-10.0.2..mesa-10.0.3
|
||||
</pre>
|
||||
|
||||
<p>Aaron Watry (2):</p>
|
||||
<ul>
|
||||
<li>radeon: Move gfx/dma cs cleanup to r600_common_context_cleanup</li>
|
||||
<li>st/dri: prevent leak of dri option default values</li>
|
||||
</ul>
|
||||
|
||||
<p>Andreas Fänger (1):</p>
|
||||
<ul>
|
||||
<li>swrast: fix delayed texel buffer allocation regression for OpenMP</li>
|
||||
</ul>
|
||||
|
||||
<p>Anuj Phogat (3):</p>
|
||||
<ul>
|
||||
<li>glsl: Disable ARB_texture_rectangle in shader version 100.</li>
|
||||
<li>i965: Use sample barycentric coordinates with per sample shading</li>
|
||||
<li>i965: Ignore 'centroid' interpolation qualifier in case of persample shading</li>
|
||||
</ul>
|
||||
|
||||
<p>Brian Paul (3):</p>
|
||||
<ul>
|
||||
<li>mesa: implement missing glGet(GL_RGBA_SIGNED_COMPONENTS_EXT) query</li>
|
||||
<li>st/mesa: fix glReadBuffer(GL_NONE) segfault</li>
|
||||
<li>draw: fix incorrect vertex size computation in LLVM drawing code</li>
|
||||
</ul>
|
||||
|
||||
<p>Carl Worth (5):</p>
|
||||
<ul>
|
||||
<li>Add md5sums for 10.0.2. release.</li>
|
||||
<li>cherry-ignore: Ignore several patches not yet ready for the stable branch</li>
|
||||
<li>Drop another couple of patches.</li>
|
||||
<li>cherry-ignore: Ignore 4 patches at teh request of the author, (Anuj).</li>
|
||||
<li>Update version to 10.0.3</li>
|
||||
</ul>
|
||||
|
||||
<p>Chad Versace (1):</p>
|
||||
<ul>
|
||||
<li>i965/gen6/blorp: Emit more flushes to workaround hangs</li>
|
||||
</ul>
|
||||
|
||||
<p>Chris Forbes (1):</p>
|
||||
<ul>
|
||||
<li>i965: fold offset into coord for textureOffset(gsampler2DRect)</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (5):</p>
|
||||
<ul>
|
||||
<li>mesa: use signed temporary variable to store _ColorDrawBufferIndexes</li>
|
||||
<li>st/mesa: use signed temporary variable to store _ColorDrawBufferIndexes</li>
|
||||
<li>nv50: access only the available amount of textures</li>
|
||||
<li>nv50: access only the available amount of constbuf</li>
|
||||
<li>gallium/rtasm: handle mmap failures appropriately</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (2):</p>
|
||||
<ul>
|
||||
<li>i965: Fix handling of MESA_pack_invert in blit (PBO) readpixels.</li>
|
||||
<li>i965: Don't do the temporary-and-blit-copy for INVALIDATE_RANGE maps.</li>
|
||||
</ul>
|
||||
|
||||
<p>Ian Romanick (2):</p>
|
||||
<ul>
|
||||
<li>mesa: Add COMPRESSED_RGBA_S3TC_DXT1_EXT to COMPRESSED_TEXTURE_FORMATS for GLES</li>
|
||||
<li>radeon / r200: Pass the API into _mesa_initialize_context</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (2):</p>
|
||||
<ul>
|
||||
<li>mesa: fix GL_COLOR_SUM enum for drivers without ARB_vertex_program</li>
|
||||
<li>st/vdpau: don't return a device if the screen doesn't support NPOT</li>
|
||||
</ul>
|
||||
|
||||
<p>José Fonseca (1):</p>
|
||||
<ul>
|
||||
<li>mesa: Use IROUND instead of roundf.</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (2):</p>
|
||||
<ul>
|
||||
<li>glsl: Rename "expr" to "lhs_expr" in vector_extract munging code.</li>
|
||||
<li>glsl: Fix chained assignments of vector channels.</li>
|
||||
</ul>
|
||||
|
||||
<p>Lauri Kasanen (1):</p>
|
||||
<ul>
|
||||
<li>mesa: Fix build to properly check for supported compiler flags</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (2):</p>
|
||||
<ul>
|
||||
<li>st/mesa: use sRGB formats for MSAA resolving if destination is sRGB</li>
|
||||
<li>gallium/util: util_format_srgb should not return FORMAT_NONE for sRGB formats</li>
|
||||
</ul>
|
||||
|
||||
<p>Matt Turner (2):</p>
|
||||
<ul>
|
||||
<li>glcpp: Define GL_EXT_shader_integer_mix in both GL and ES.</li>
|
||||
<li>glx: Update glxext.h to revision 24777.</li>
|
||||
</ul>
|
||||
|
||||
<p>Michał Górny (1):</p>
|
||||
<ul>
|
||||
<li>Use AC_PATH_TOOL instead of AC_PATH_PROG for llvm-config.</li>
|
||||
</ul>
|
||||
|
||||
<p>Paul Berry (1):</p>
|
||||
<ul>
|
||||
<li>i965: Ensure that all necessary state is re-emitted if we run out of aperture.</li>
|
||||
</ul>
|
||||
|
||||
<p>Paul Seidler (1):</p>
|
||||
<ul>
|
||||
<li>build: move ARCH_LIBS definition outside of ASM definition</li>
|
||||
</ul>
|
||||
|
||||
<p>Thomas Sondergaard (4):</p>
|
||||
<ul>
|
||||
<li>mesa: Preliminary support for MSVC_VERSION=12.0</li>
|
||||
<li>mesa: Fix compile error with MSVC 2013</li>
|
||||
<li>mesa: Work around internal compiler error</li>
|
||||
<li>mesa: Namespace qualify fma to override ambiguity with fma from math.h</li>
|
||||
</ul>
|
||||
|
||||
<p>Tom Stellard (1):</p>
|
||||
<ul>
|
||||
<li>r600g/compute: Emit DEALLOC_STATE on cayman after dispatching a compute shader.</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,191 +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.0.4 Release Notes / (March 12, 2014)</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.0.4 is a bug fix release which fixes bugs found since the 10.0.3 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.0.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 not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>MD5 checksums</h2>
|
||||
<pre>
|
||||
5a3c5b90776ec8a9fcd777c99e0607e2 MesaLib-10.0.4.tar.gz
|
||||
8b148869d2620b0720c8a8d2b7eb3e38 MesaLib-10.0.4.tar.bz2
|
||||
da2418d25bfbc273660af7e755fb367e MesaLib-10.0.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=71870">Bug 71870</a> - Metro: Last Light rendering issues</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72895">Bug 72895</a> - Missing trees in flightgear 2.12.1 with mesa 10.0.1</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74251">Bug 74251</a> - Segfault in st_finalize_texture with Texture Buffer</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74723">Bug 74723</a> - main/shaderapi.c:407: detach_shader: Assertion `shProg->Shaders[j]->Type == 0x8B31 || shProg->Shaders[j]->Type == 0x8B30' failed.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>The full set of changes can be viewed by using the following git command:</p>
|
||||
|
||||
<pre>
|
||||
git log mesa-10.0.3..mesa-10.0.4
|
||||
</pre>
|
||||
|
||||
<p>Anuj Phogat (4):</p>
|
||||
<ul>
|
||||
<li>mesa: Generate correct error code in glDrawBuffers()</li>
|
||||
<li>mesa: Add GL_TEXTURE_CUBE_MAP_ARRAY to legal_get_tex_level_parameter_target()</li>
|
||||
<li>glsl: Fix condition to generate shader link error</li>
|
||||
<li>i965: Fix the region's pitch condition to use blitter</li>
|
||||
</ul>
|
||||
|
||||
<p>Brian Paul (8):</p>
|
||||
<ul>
|
||||
<li>r200: move driContextSetFlags(ctx) call after ctx var is initialized</li>
|
||||
<li>radeon: move driContextSetFlags(ctx) call after ctx var is initialized</li>
|
||||
<li>gallium/auxiliary/indices: replace free() with FREE()</li>
|
||||
<li>draw: fix incorrect color of flat-shaded clipped lines</li>
|
||||
<li>st/mesa: avoid sw fallback for getting/decompressing textures</li>
|
||||
<li>mesa: update assertion in detach_shader() for geom shaders</li>
|
||||
<li>mesa: do depth/stencil format conversion in glGetTexImage</li>
|
||||
<li>softpipe: use 64-bit arithmetic in softpipe_resource_layout()</li>
|
||||
</ul>
|
||||
|
||||
<p>Carl Worth (4):</p>
|
||||
<ul>
|
||||
<li>docs: Add md5sums for 10.0.3 release</li>
|
||||
<li>main: Avoid double-free of shader Label</li>
|
||||
<li>get-pick-list: Update to only find patches nominated for the 10.0 branch</li>
|
||||
<li>Update version to 10.0.4</li>
|
||||
</ul>
|
||||
|
||||
<p>Chris Forbes (1):</p>
|
||||
<ul>
|
||||
<li>i965: Validate (and resolve) all the bound textures.</li>
|
||||
</ul>
|
||||
|
||||
<p>Christian König (1):</p>
|
||||
<ul>
|
||||
<li>radeon/uvd: fix feedback buffer handling v2</li>
|
||||
</ul>
|
||||
|
||||
<p>Daniel Kurtz (1):</p>
|
||||
<ul>
|
||||
<li>glsl: Add locking to builtin_builder singleton</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (3):</p>
|
||||
<ul>
|
||||
<li>dri/nouveau: Pass the API into _mesa_initialize_context</li>
|
||||
<li>nv50: correctly calculate the number of vertical blocks during transfer map</li>
|
||||
<li>dri/i9*5: correctly calculate the amount of system memory</li>
|
||||
</ul>
|
||||
|
||||
<p>Fredrik Höglund (3):</p>
|
||||
<ul>
|
||||
<li>mesa: Preserve the NewArrays state when copying a VAO</li>
|
||||
<li>glx: Fix the default values for GLXFBConfig attributes</li>
|
||||
<li>glx: Fix the GLXFBConfig attrib sort priorities</li>
|
||||
</ul>
|
||||
|
||||
<p>Hans (2):</p>
|
||||
<ul>
|
||||
<li>util: don't define isfinite(), isnan() for MSVC >= 1800</li>
|
||||
<li>mesa: don't define c99 math functions for MSVC >= 1800</li>
|
||||
</ul>
|
||||
|
||||
<p>Ian Romanick (6):</p>
|
||||
<ul>
|
||||
<li>meta: Release resources used by decompress_texture_image</li>
|
||||
<li>meta: Release resources used by _mesa_meta_DrawPixels</li>
|
||||
<li>meta: Fallback to software for GetTexImage of compressed GL_TEXTURE_CUBE_MAP_ARRAY</li>
|
||||
<li>meta: Consistenly use non-Apple VAO functions</li>
|
||||
<li>glcpp: Only warn for macro names containing __</li>
|
||||
<li>glsl: Only warn for macro names containing __</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (3):</p>
|
||||
<ul>
|
||||
<li>nv30: report 8 maximum inputs</li>
|
||||
<li>nouveau/video: make sure that firmware is present when checking caps</li>
|
||||
<li>nouveau: fix chipset checks for nv1a by using the oclass instead</li>
|
||||
</ul>
|
||||
|
||||
<p>Julien Cristau (1):</p>
|
||||
<ul>
|
||||
<li>glx/dri2: fix build failure on HURD</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (2):</p>
|
||||
<ul>
|
||||
<li>glsl: Don't lose precision qualifiers when encountering "centroid".</li>
|
||||
<li>i965: Create a hardware context before initializing state module.</li>
|
||||
</ul>
|
||||
|
||||
<p>Kusanagi Kouichi (1):</p>
|
||||
<ul>
|
||||
<li>targets/vdpau: Always use c++ to link</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (1):</p>
|
||||
<ul>
|
||||
<li>st/mesa: fix crash when a shader uses a TBO and it's not bound</li>
|
||||
</ul>
|
||||
|
||||
<p>Matt Turner (1):</p>
|
||||
<ul>
|
||||
<li>glsl: Initialize ubo_binding_mask flags to zero.</li>
|
||||
</ul>
|
||||
|
||||
<p>Paul Berry (2):</p>
|
||||
<ul>
|
||||
<li>glsl: Make condition_to_hir() callable from outside ast_iteration_statement.</li>
|
||||
<li>glsl: Fix continue statements in do-while loops.</li>
|
||||
</ul>
|
||||
|
||||
<p>Tom Stellard (1):</p>
|
||||
<ul>
|
||||
<li>r600g/compute: PIPE_CAP_COMPUTE should be false for pre-evergreen GPUs</li>
|
||||
</ul>
|
||||
|
||||
<p>Topi Pohjolainen (1):</p>
|
||||
<ul>
|
||||
<li>i965/blorp: do not use unnecessary hw-blending support</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,173 +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.0.5 Release Notes / April 18, 2014</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.0.5 is a bug fix release which fixes bugs found since the 10.0.4 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.0.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 not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>MD5 checksums</h2>
|
||||
<pre>
|
||||
db606aadd0fe321f3664099677d159bc MesaLib-10.0.5.tar.gz
|
||||
e6009ccd8898d7104bb325b6af9ec354 MesaLib-10.0.5.tar.bz2
|
||||
c8ab9e502542bf32299a4df85b0b704d MesaLib-10.0.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=58660">Bug 58660</a> - CAYMAN broken with HyperZ on</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=64471">Bug 64471</a> - Radeon HD6570 lockup in Brütal Legend with HyperZ</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=66352">Bug 66352</a> - GPU lockup in L4D2 on TURKS with HyperZ</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=68799">Bug 68799</a> - [APITRACE] Hyper-Z lockup with Falcon BMS 4.32u6 on CAYMAN</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=71547">Bug 71547</a> - compilation failure :#error "SSE4.1 instruction set not enabled"</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72685">Bug 72685</a> - [radeonsi hyperz] Artifacts in Unigine Sanctuary</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=73088">Bug 73088</a> - [HyperZ] Juniper (6770): Gone Home / Unigine Heaven 4.0 lock up system after several minutes of use</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74428">Bug 74428</a> - hyperz causes gpu hang in Counter-strike: Source</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74803">Bug 74803</a> - [r600g] HyperZ broken on RV630 (Cogs shadows are broken)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74863">Bug 74863</a> - [r600g] HyperZ broken on RV770 and CYPRESS (Left 4 Dead 2 trees corruption) bisected!</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74892">Bug 74892</a> - HyperZ GPU lockup with radeonsi 7970M PITCAIRN and Distance Alpha game</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74988">Bug 74988</a> - Buffer overrun (segfault) decompressing ETC2 texture in GLBenchmark 3.0 Manhattan</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=75279">Bug 75279</a> - XCloseDisplay() takes one minute around nouveau_dri.so, freezing Firefox startup</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77102">Bug 77102</a> - gallium nouveau has no profile in vdpau and libva</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77207">Bug 77207</a> - [ivb/hsw] batch overwritten with garbage</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>The full set of changes can be viewed by using the following git command:</p>
|
||||
|
||||
<pre>
|
||||
git log mesa-10.0.4..mesa-10.0.5
|
||||
</pre>
|
||||
|
||||
<p>Alex Deucher (1):</p>
|
||||
<ul>
|
||||
<li>radeon: reverse DBG_NO_HYPERZ logic</li>
|
||||
</ul>
|
||||
|
||||
<p>Brian Paul (9):</p>
|
||||
<ul>
|
||||
<li>mesa: add unpacking code for MESA_FORMAT_Z32_FLOAT_S8X24_UINT</li>
|
||||
<li>mesa: fix copy & paste bugs in pack_ubyte_SARGB8()</li>
|
||||
<li>mesa: fix copy & paste bugs in pack_ubyte_SRGB8()</li>
|
||||
<li>mesa: fix unpack_Z32_FLOAT_X24S8() / unpack_Z32_FLOAT() mix-up</li>
|
||||
<li>st/mesa: add null pointer checking in query object functions</li>
|
||||
<li>mesa: fix glMultiDrawArrays inside a display list</li>
|
||||
<li>cso: fix sampler view count in cso_set_sampler_views()</li>
|
||||
<li>svga: replace sampler assertion with conditional</li>
|
||||
<li>svga: move LIST_INITHEAD(dirty_buffers) earlier in svga_context_create()</li>
|
||||
</ul>
|
||||
|
||||
<p>Carl Worth (3):</p>
|
||||
<ul>
|
||||
<li>docs: Add md5sums for the 10.0.4 release.</li>
|
||||
<li>Ignore patches which don't apply.</li>
|
||||
<li>Update version to 10.0.5</li>
|
||||
</ul>
|
||||
|
||||
<p>Christian König (2):</p>
|
||||
<ul>
|
||||
<li>st/mesa: recreate sampler view on context change v3</li>
|
||||
<li>st/mesa: fix sampler view handling with shared textures v4</li>
|
||||
</ul>
|
||||
|
||||
<p>Courtney Goeltzenleuchter (1):</p>
|
||||
<ul>
|
||||
<li>mesa: add bounds checking to eliminate buffer overrun</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (2):</p>
|
||||
<ul>
|
||||
<li>mesa: return v.value_int64 when the requested type is TYPE_INT64</li>
|
||||
<li>glx: drop obsolete _XUnlock_Mutex in __glXInitialize error path</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (1):</p>
|
||||
<ul>
|
||||
<li>i965: Fix buffer overruns in MSAA MCS buffer clearing.</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (6):</p>
|
||||
<ul>
|
||||
<li>nouveau: fix fence waiting logic in screen destroy</li>
|
||||
<li>nv50: adjust blit_3d handling of ms output textures</li>
|
||||
<li>mesa/main: condition GL_DEPTH_STENCIL on ARB_depth_texture</li>
|
||||
<li>nouveau: add forgotten GL_COMPRESSED_INTENSITY to texture format list</li>
|
||||
<li>nouveau: there may not have been a texture if the fbo was incomplete</li>
|
||||
<li>nouveau: fix firmware check on nvd7/nvd9</li>
|
||||
</ul>
|
||||
|
||||
<p>Johannes Nixdorf (1):</p>
|
||||
<ul>
|
||||
<li>configure.ac: fix the detection of expat with pkg-config</li>
|
||||
</ul>
|
||||
|
||||
<p>Jonathan Gray (1):</p>
|
||||
<ul>
|
||||
<li>gallium: add endian detection for OpenBSD</li>
|
||||
</ul>
|
||||
|
||||
<p>José Fonseca (1):</p>
|
||||
<ul>
|
||||
<li>draw: Duplicate TGSI tokens in draw_pipe_pstipple module.</li>
|
||||
</ul>
|
||||
|
||||
<p>Matt Turner (1):</p>
|
||||
<ul>
|
||||
<li>mesa: Wrap SSE4.1 code in #ifdef __SSE4_1__.</li>
|
||||
</ul>
|
||||
|
||||
<p>Paul Berry (1):</p>
|
||||
<ul>
|
||||
<li>i965/gen7: Prefer vertical alignment of 4 when possible.</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -14,7 +14,7 @@
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 10.1.1 Release Notes / April 18, 2014</h1>
|
||||
<h1>Mesa 10.1.1 Release Notes / (April 18, 2014)</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.1.1 is a bug fix release which fixes bugs found since the 10.1 release.
|
||||
|
@@ -14,7 +14,7 @@
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 10.1 Release Notes / March 4, 2014</h1>
|
||||
<h1>Mesa 10.1 Release Notes / TBD</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.1 is a new development release.
|
||||
@@ -33,9 +33,7 @@ because compatibility contexts are not supported.
|
||||
|
||||
<h2>MD5 checksums</h2>
|
||||
<pre>
|
||||
3ec43f79dbcd9aa2a4a27bf1f51655b6 MesaLib-10.1.0.tar.bz2
|
||||
08e796ec7122aa299d32d4f67a254315 MesaLib-10.1.0.tar.gz
|
||||
bd365356543f4b38e57c1ddf7a317c40 MesaLib-10.1.0.zip
|
||||
TBD.
|
||||
</pre>
|
||||
|
||||
|
||||
|
@@ -1,61 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 10.2.1 Release Notes / June 6, 2014</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.2.1 is a bug fix release which fixes bugs found since the 10.2 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.2.1 implements the OpenGL 3.3 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
|
||||
3.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>MD5 checksums</h2>
|
||||
<pre>
|
||||
96f892dae2d0bb14ac9c2113f586c909 MesaLib-10.2.1.tar.gz
|
||||
093f9b5d077e5f6061dcd7b01b7aa51a MesaLib-10.2.1.tar.bz2
|
||||
6ab76c1608e5deed1eb8b54c62d7a48a MesaLib-10.2.1.zip
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>
|
||||
Mesa 10.2 had a build problem in the radeonsi driver due to an error resolving
|
||||
conflicts in a patch cherry-pick from master. The build error is fixed.
|
||||
</p>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Ian Romanick (3):</p>
|
||||
<ul>
|
||||
<li>docs: Add MD5 checksum, etc. for 10.1 release</li>
|
||||
<li>radeonsi: Fix build error introduced in 5ab9a9c</li>
|
||||
<li>Bump version to 10.2.1</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,181 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 10.2.2 Release Notes / June 24, 2014</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.2.2 is a bug fix release which fixes bugs found since the 10.2.1 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.2.2 implements the OpenGL 3.3 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
|
||||
3.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
38c4a40364000f89cddaa1694f6f3cfb444981d1110238ce603093585477399c MesaLib-10.2.2.tar.bz2
|
||||
2af2ec8b4db624c352e961eefbcce6c8d1f86d44c5542f6f378c50e1b958d453 MesaLib-10.2.2.tar.gz
|
||||
d4c0372da59367a344d62ebcdf5cf61039c9cae6925f40f2dab8f8d95cf22da9 MesaLib-10.2.2.zip
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=54372">Bug 54372</a> - GLX_INTEL_swap_event crashes driver when swapping window buffers</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=66452">Bug 66452</a> - JUNIPER UVD accelerated playback of WMV3 streams does not work</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74005">Bug 74005</a> - [i965 Bisected]Piglit/glx_glx-make-glxdrawable-current fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77865">Bug 77865</a> - [BDW] Many Ogles3conform framebuffer_blit cases fail</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78581">Bug 78581</a> - OpenCL: clBuildProgram prints error messages directly rather than storing them</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79029">Bug 79029</a> - INTEL_DEBUG=shader_time is full of lies</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79729">Bug 79729</a> - [i965] glClear on a multisample texture doesn't work</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79907">Bug 79907</a> - Mesa 10.2.1 --enable-vdpau default=auto broken</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80115">Bug 80115</a> - MESA_META_DRAW_BUFFERS induced GL_INVALID_VALUE errors</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Adrian Negreanu (8):</p>
|
||||
<ul>
|
||||
<li>add megadriver_stub_FILES</li>
|
||||
<li>android: adapt to the megadriver mechanism</li>
|
||||
<li>android: add libloader to libGLES_mesa and libmesa_egl_dri2</li>
|
||||
<li>android: add src/gallium/auxiliary as include path for libmesa_dricore</li>
|
||||
<li>android, egl: add correct drm include for libmesa_egl_dri2</li>
|
||||
<li>android, egl: typo dri2_fallback_pixmap_surface -> dri2_fallback_create_pixmap_surface</li>
|
||||
<li>android, mesa_gen_matypes: pull in timespec POSIX definition</li>
|
||||
<li>android, dricore: undefined reference to _mesa_streaming_load_memcpy</li>
|
||||
</ul>
|
||||
|
||||
<p>Carl Worth (1):</p>
|
||||
<ul>
|
||||
<li>Update VERSION to 10.2.2</li>
|
||||
</ul>
|
||||
|
||||
<p>Daniel Manjarres (1):</p>
|
||||
<ul>
|
||||
<li>glx: Don't crash on swap event for a Window (non-GLXWindow)</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (3):</p>
|
||||
<ul>
|
||||
<li>targets/xa: limit the amount of exported symbols</li>
|
||||
<li>configure: error out when building opencl without LLVM</li>
|
||||
<li>configure: correctly autodetect xvmc/vdpau/omx</li>
|
||||
</ul>
|
||||
|
||||
<p>Grigori Goronzy (1):</p>
|
||||
<ul>
|
||||
<li>radeon/uvd: disable VC-1 simple/main on UVD 2.x</li>
|
||||
</ul>
|
||||
|
||||
<p>Iago Toral Quiroga (1):</p>
|
||||
<ul>
|
||||
<li>mesa: Copy Geom.UsesEndPrimitive when cloning a geometry program.</li>
|
||||
</ul>
|
||||
|
||||
<p>Ian Romanick (3):</p>
|
||||
<ul>
|
||||
<li>docs: Add initial 10.2.1 release notes</li>
|
||||
<li>docs: Add MD5 checksum, etc. for 10.2.1 release</li>
|
||||
<li>meta: Respect the driver's maximum number of draw buffers</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (7):</p>
|
||||
<ul>
|
||||
<li>gk110/ir: emit saturate flag on fadd when needed</li>
|
||||
<li>gk110/ir: fix emitting constbuf file index</li>
|
||||
<li>gk110/ir: fix bfind emission</li>
|
||||
<li>nv50: make sure to mark first scissor dirty after blit</li>
|
||||
<li>nv30: plug some memory leaks on screen destroy and shader compile</li>
|
||||
<li>nv30: avoid dangling references to deleted contexts</li>
|
||||
<li>nv30: hack to avoid errors on unexpected color/zeta combinations</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (1):</p>
|
||||
<ul>
|
||||
<li>meta_blit: properly compute texture width for the CopyTexSubImage fallback</li>
|
||||
</ul>
|
||||
|
||||
<p>José Fonseca (1):</p>
|
||||
<ul>
|
||||
<li>mesa/main: Prevent sefgault on glGetIntegerv(GL_ATOMIC_COUNTER_BUFFER_BINDING).</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (9):</p>
|
||||
<ul>
|
||||
<li>i965: Don't use the head sentinel as an fs_inst in Gen4 workaround code.</li>
|
||||
<li>i965: Invalidate live intervals when inserting Gen4 SEND workarounds.</li>
|
||||
<li>i965/vec4: Fix dead code elimination for VGRFs of size > 1.</li>
|
||||
<li>i965: Add missing MOCS setup for 3DSTATE_INDEX_BUFFER on Broadwell.</li>
|
||||
<li>i965: Drop Broadwell perf_debugs about missing MOCS that aren't missing.</li>
|
||||
<li>i965: Add missing newlines to a few perf_debug messages.</li>
|
||||
<li>i965/vec4: Use the sampler for pull constant loads on Broadwell.</li>
|
||||
<li>i965: Use 8x4 aligned rectangles for HiZ operations on Broadwell.</li>
|
||||
<li>i965: Save meta stencil blit programs in the context.</li>
|
||||
</ul>
|
||||
|
||||
<p>Kristian Høgsberg (1):</p>
|
||||
<ul>
|
||||
<li>mesa: Remove glClear optimization based on drawable size</li>
|
||||
</ul>
|
||||
|
||||
<p>Michel Dänzer (1):</p>
|
||||
<ul>
|
||||
<li>configure: Only check for OpenCL without LLVM when the latter is certain</li>
|
||||
</ul>
|
||||
|
||||
<p>Neil Roberts (1):</p>
|
||||
<ul>
|
||||
<li>i965: Set the fast clear color value for texture surfaces</li>
|
||||
</ul>
|
||||
|
||||
<p>Tom Stellard (2):</p>
|
||||
<ul>
|
||||
<li>clover: Prevent Clang from printing number of errors and warnings to stderr.</li>
|
||||
<li>clover: Don't use llvm's global context</li>
|
||||
</ul>
|
||||
|
||||
<p>Ville Syrjälä (1):</p>
|
||||
<ul>
|
||||
<li>i915: Fix gen2 texblend setup</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,130 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 10.2.3 Release Notes / July 7, 2014</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.2.3 is a bug fix release which fixes bugs found since the 10.2.2 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.2.3 implements the OpenGL 3.3 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
|
||||
3.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
e482a96170c98b17d6aba0d6e4dda4b9a2e61c39587bb64ac38cadfa4aba4aeb MesaLib-10.2.3.tar.bz2
|
||||
96cffacaa1c52ae659b3b0f91be2eebf5528b748934256751261fb79ea3d6636 MesaLib-10.2.3.tar.gz
|
||||
82cab6ff14c8038ee39842dbdea0d447a78d119efd8d702d1497bc7c246434e9 MesaLib-10.2.3.zip
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=76223">Bug 76223</a> - </li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79823">Bug 79823</a> - </li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80015">Bug 80015</a> - </li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Aaron Watry (1):</p>
|
||||
<ul>
|
||||
<li>radeon/llvm: Allocate space for kernel metadata operands</li>
|
||||
</ul>
|
||||
|
||||
<p>Carl Worth (2):</p>
|
||||
<ul>
|
||||
<li>docs: Add sha256 sums for the 10.2.2 release</li>
|
||||
<li>cherry-ignore: Add a patch that's been rejected</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (4):</p>
|
||||
<ul>
|
||||
<li>nouveau: dup fd before passing it to device</li>
|
||||
<li>nv50: disable dedicated ubo upload method</li>
|
||||
<li>nv50: do an explicit flush on draw when there are persistent buffers</li>
|
||||
<li>nvc0: add a memory barrier when there are persistent UBOs</li>
|
||||
</ul>
|
||||
|
||||
<p>Jasper St. Pierre (1):</p>
|
||||
<ul>
|
||||
<li>glxext: Send the Drawable's ID in the GLX_BufferSwapComplete event</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (3):</p>
|
||||
<ul>
|
||||
<li>i965: Don't emit SURFACE_STATEs for gather workarounds on Broadwell.</li>
|
||||
<li>i965: Include marketing names for Broadwell GPUs.</li>
|
||||
<li>i965/disasm: Fix INTEL_DEBUG=fs on Broadwell for ARB_fp applications.</li>
|
||||
</ul>
|
||||
|
||||
<p>Michel Dänzer (1):</p>
|
||||
<ul>
|
||||
<li>radeon/llvm: Use the llvm.rsq.clamped intrinsic for RSQ</li>
|
||||
</ul>
|
||||
|
||||
<p>Rob Clark (9):</p>
|
||||
<ul>
|
||||
<li>xa: fix segfault</li>
|
||||
<li>freedreno: use OUT_RELOCW when buffer is written</li>
|
||||
<li>freedreno/a3xx: fix depth/stencil GMEM positioning</li>
|
||||
<li>freedreno/a3xx: fix depth/stencil gmem restore</li>
|
||||
<li>freedreno/a3xx: fix blend opcode</li>
|
||||
<li>freedreno: few caps fixes</li>
|
||||
<li>freedreno/a3xx: texture fixes</li>
|
||||
<li>freedreno: fix for null textures</li>
|
||||
<li>freedreno/a3xx: vtx formats</li>
|
||||
</ul>
|
||||
|
||||
<p>Roland Scheidegger (1):</p>
|
||||
<ul>
|
||||
<li>draw: (trivial) fix clamping of viewport index</li>
|
||||
</ul>
|
||||
|
||||
<p>Takashi Iwai (1):</p>
|
||||
<ul>
|
||||
<li>llvmpipe: Fix zero-division in llvmpipe_texture_layout()</li>
|
||||
</ul>
|
||||
|
||||
<p>Thomas Hellstrom (1):</p>
|
||||
<ul>
|
||||
<li>st/xa: Don't close the drm fd on failure v2</li>
|
||||
</ul>
|
||||
|
||||
<p>Tobias Klausmann (1):</p>
|
||||
<ul>
|
||||
<li>nv50/ir: allow gl_ViewportIndex to work on non-provoking vertices</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,127 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 10.2.4 Release Notes / July 18, 2014</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.2.4 is a bug fix release which fixes bugs found since the 10.2.3 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.2.4 implements the OpenGL 3.3 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
|
||||
3.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
06a2341244eb85c283f59f70161e06ded106f835ed9b6be1ef0243bd9344811a MesaLib-10.2.4.tar.bz2
|
||||
33e3c8b4343503e7d7d17416c670438860a2fd99ec93ea3327f73c3abe33b5e4 MesaLib-10.2.4.tar.gz
|
||||
e26791a4a62a61b82e506e6ba031812d09697d1a831e8239af67e5722a8ee538 MesaLib-10.2.4.zip
|
||||
</pre>
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=81157">Bug 81157</a> - [BDW]Piglit some spec_glsl-1.50_execution_built-in-functions* cases fail</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Abdiel Janulgue (3):</p>
|
||||
<ul>
|
||||
<li>i965/fs: Refactor check for potential copy propagated instructions.</li>
|
||||
<li>i965/fs: skip copy-propate for logical instructions with negated src entries</li>
|
||||
<li>i965/vec4: skip copy-propate for logical instructions with negated src entries</li>
|
||||
</ul>
|
||||
|
||||
<p>Brian Paul (3):</p>
|
||||
<ul>
|
||||
<li>mesa: fix geometry shader memory leaks</li>
|
||||
<li>st/mesa: fix geometry shader memory leak</li>
|
||||
<li>gallium/u_blitter: fix some shader memory leaks</li>
|
||||
</ul>
|
||||
|
||||
<p>Carl Worth (2):</p>
|
||||
<ul>
|
||||
<li>docs: Add sha256 checksums for the 10.2.3 release</li>
|
||||
<li>Update VERSION to 10.2.4</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (1):</p>
|
||||
<ul>
|
||||
<li>i965: Generalize the pixel_x/y workaround for all UW types.</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (4):</p>
|
||||
<ul>
|
||||
<li>nv50/ir: retrieve shadow compare from first arg</li>
|
||||
<li>nv50/ir: ignore bias for samplerCubeShadow on nv50</li>
|
||||
<li>nvc0/ir: do quadops on the right texture coordinates for TXD</li>
|
||||
<li>nvc0/ir: use manual TXD when offsets are involved</li>
|
||||
</ul>
|
||||
|
||||
<p>Jordan Justen (1):</p>
|
||||
<ul>
|
||||
<li>i965: Add auxiliary surface field #defines for Broadwell.</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (9):</p>
|
||||
<ul>
|
||||
<li>i965: Don't copy propagate abs into Broadwell logic instructions.</li>
|
||||
<li>i965: Set execution size to 8 for instructions with force_sechalf set.</li>
|
||||
<li>i965/fs: Set force_uncompressed and force_sechalf on samplepos setup.</li>
|
||||
<li>i965/fs: Use WE_all for gl_SampleID header register munging.</li>
|
||||
<li>i965: Add plumbing for Broadwell's auxiliary surface support.</li>
|
||||
<li>i965: Drop SINT workaround for CMS layout on Broadwell.</li>
|
||||
<li>i965: Hook up the MCS buffers in SURFACE_STATE on Broadwell.</li>
|
||||
<li>i965: Add 2x MSAA support to the MCS allocation function.</li>
|
||||
<li>i965: Enable compressed multisample support (CMS) on Broadwell.</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (4):</p>
|
||||
<ul>
|
||||
<li>gallium: fix u_default_transfer_inline_write for textures</li>
|
||||
<li>st/mesa: fix samplerCubeShadow with bias</li>
|
||||
<li>radeonsi: fix samplerCubeShadow with bias</li>
|
||||
<li>radeonsi: add support for TXB2</li>
|
||||
</ul>
|
||||
|
||||
<p>Matt Turner (8):</p>
|
||||
<ul>
|
||||
<li>i965/vec4: Don't return void from a void function.</li>
|
||||
<li>i965/vec4: Don't fix_math_operand() on Gen >= 8.</li>
|
||||
<li>i965/fs: Don't fix_math_operand() on Gen >= 8.</li>
|
||||
<li>i965/fs: Make try_constant_propagate() static.</li>
|
||||
<li>i965/fs: Constant propagate into 2-src math instructions on Gen8.</li>
|
||||
<li>i965/vec4: Constant propagate into 2-src math instructions on Gen8.</li>
|
||||
<li>i965/fs: Don't use brw_imm_* unnecessarily.</li>
|
||||
<li>i965/fs: Set correct number of regs_written for MCS fetches.</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,188 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 10.2.5 Release Notes / August 2, 2014</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.2.5 is a bug fix release which fixes bugs found since the 10.2.4 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.2.5 implements the OpenGL 3.3 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
|
||||
3.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
b4459f0bf7f4a3c8fb78ece3c9d2eac3d0e5bf38cb470f2a72705e744bd0310d MesaLib-10.2.5.tar.bz2
|
||||
7b4dd0cb683f8c7dc48a3e7a315742bed58ddcd7b756c462aca4177bd1acdc79 MesaLib-10.2.5.tar.gz
|
||||
6180565914fb238dd77ccdaff96b6155d9a6e1b3e981ebbf6a6851301b384fed MesaLib-10.2.5.zip
|
||||
</pre>
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80991">Bug 80991</a> - [BDW]Piglit spec_ARB_sample_shading_builtin-gl-sample-mask_2 fails</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Abdiel Janulgue (3):</p>
|
||||
<ul>
|
||||
<li>i965/fs: Refactor check for potential copy propagated instructions.</li>
|
||||
<li>i965/fs: skip copy-propate for logical instructions with negated src entries</li>
|
||||
<li>i965/vec4: skip copy-propate for logical instructions with negated src entries</li>
|
||||
</ul>
|
||||
|
||||
<p>Adel Gadllah (1):</p>
|
||||
<ul>
|
||||
<li>i915: Fix up intelInitScreen2 for DRI3</li>
|
||||
</ul>
|
||||
|
||||
<p>Anuj Phogat (2):</p>
|
||||
<ul>
|
||||
<li>i965: Fix z_offset computation in intel_miptree_unmap_depthstencil()</li>
|
||||
<li>mesa: Don't use memcpy() in _mesa_texstore() for float depth texture data</li>
|
||||
</ul>
|
||||
|
||||
<p>Brian Paul (3):</p>
|
||||
<ul>
|
||||
<li>mesa: fix geometry shader memory leaks</li>
|
||||
<li>st/mesa: fix geometry shader memory leak</li>
|
||||
<li>gallium/u_blitter: fix some shader memory leaks</li>
|
||||
</ul>
|
||||
|
||||
<p>Carl Worth (6):</p>
|
||||
<ul>
|
||||
<li>docs: Add sha256 checksums for the 10.2.3 release</li>
|
||||
<li>Update VERSION to 10.2.4</li>
|
||||
<li>Add release notes for 10.2.4</li>
|
||||
<li>docs: Add SHA256 checksums for the 10.2.4 release</li>
|
||||
<li>cherry-ignore: Ignore a few patches picked in the previous stable release</li>
|
||||
<li>Update version to 10.2.5</li>
|
||||
</ul>
|
||||
|
||||
<p>Christian König (1):</p>
|
||||
<ul>
|
||||
<li>radeonsi: fix order of r600_need_dma_space and r600_context_bo_reloc</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (1):</p>
|
||||
<ul>
|
||||
<li>i965: Generalize the pixel_x/y workaround for all UW types.</li>
|
||||
</ul>
|
||||
|
||||
<p>Ian Romanick (2):</p>
|
||||
<ul>
|
||||
<li>mesa: Don't allow GL_TEXTURE_BORDER queries outside compat profile</li>
|
||||
<li>mesa: Don't allow GL_TEXTURE_{LUMINANCE,INTENSITY}_* queries outside compat profile</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (5):</p>
|
||||
<ul>
|
||||
<li>nv50/ir: retrieve shadow compare from first arg</li>
|
||||
<li>nv50/ir: ignore bias for samplerCubeShadow on nv50</li>
|
||||
<li>nvc0/ir: do quadops on the right texture coordinates for TXD</li>
|
||||
<li>nvc0/ir: use manual TXD when offsets are involved</li>
|
||||
<li>nvc0: make sure that the local memory allocation is aligned to 0x10</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (2):</p>
|
||||
<ul>
|
||||
<li>main/format_pack: Fix a wrong datatype in pack_ubyte_R8G8_UNORM</li>
|
||||
<li>main/get_hash_params: Add GL_SAMPLE_SHADING_ARB</li>
|
||||
</ul>
|
||||
|
||||
<p>Jordan Justen (1):</p>
|
||||
<ul>
|
||||
<li>i965: Add auxiliary surface field #defines for Broadwell.</li>
|
||||
</ul>
|
||||
|
||||
<p>José Fonseca (1):</p>
|
||||
<ul>
|
||||
<li>st/wgl: Clamp wglChoosePixelFormatARB's output nNumFormats to nMaxFormats.</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (13):</p>
|
||||
<ul>
|
||||
<li>i965: Don't copy propagate abs into Broadwell logic instructions.</li>
|
||||
<li>i965: Set execution size to 8 for instructions with force_sechalf set.</li>
|
||||
<li>i965/fs: Set force_uncompressed and force_sechalf on samplepos setup.</li>
|
||||
<li>i965/fs: Use WE_all for gl_SampleID header register munging.</li>
|
||||
<li>i965: Add plumbing for Broadwell's auxiliary surface support.</li>
|
||||
<li>i965: Drop SINT workaround for CMS layout on Broadwell.</li>
|
||||
<li>i965: Hook up the MCS buffers in SURFACE_STATE on Broadwell.</li>
|
||||
<li>i965: Add 2x MSAA support to the MCS allocation function.</li>
|
||||
<li>i965: Enable compressed multisample support (CMS) on Broadwell.</li>
|
||||
<li>i965: Add missing persample_shading field to brw_wm_debug_recompile.</li>
|
||||
<li>i965/fs: Fix gl_SampleID for 2x MSAA and SIMD16 mode.</li>
|
||||
<li>i965/fs: Fix gl_SampleMask handling for SIMD16 on Gen8+.</li>
|
||||
<li>i965/fs: Set LastRT on the final FB write on Broadwell.</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (14):</p>
|
||||
<ul>
|
||||
<li>gallium: fix u_default_transfer_inline_write for textures</li>
|
||||
<li>st/mesa: fix samplerCubeShadow with bias</li>
|
||||
<li>radeonsi: fix samplerCubeShadow with bias</li>
|
||||
<li>radeonsi: add support for TXB2</li>
|
||||
<li>r600g: switch SNORM conversion to DX and GLES behavior</li>
|
||||
<li>radeonsi: fix CMASK and HTILE calculations for Hawaii</li>
|
||||
<li>gallium/util: add a helper for calculating primitive count from vertex count</li>
|
||||
<li>radeonsi: fix a hang with instancing on Hawaii</li>
|
||||
<li>radeonsi: fix a hang with streamout on Hawaii</li>
|
||||
<li>winsys/radeon: fix vram_size overflow with Hawaii</li>
|
||||
<li>radeonsi: fix occlusion queries on Hawaii</li>
|
||||
<li>r600g,radeonsi: switch all occurences of array_size to util_max_layer</li>
|
||||
<li>radeonsi: fix build because of lack of draw_indirect infrastructure in 10.2</li>
|
||||
<li>radeonsi: use DRAW_PREAMBLE on CIK</li>
|
||||
</ul>
|
||||
|
||||
<p>Matt Turner (8):</p>
|
||||
<ul>
|
||||
<li>i965/vec4: Don't return void from a void function.</li>
|
||||
<li>i965/vec4: Don't fix_math_operand() on Gen >= 8.</li>
|
||||
<li>i965/fs: Don't fix_math_operand() on Gen >= 8.</li>
|
||||
<li>i965/fs: Make try_constant_propagate() static.</li>
|
||||
<li>i965/fs: Constant propagate into 2-src math instructions on Gen8.</li>
|
||||
<li>i965/vec4: Constant propagate into 2-src math instructions on Gen8.</li>
|
||||
<li>i965/fs: Don't use brw_imm_* unnecessarily.</li>
|
||||
<li>i965/fs: Set correct number of regs_written for MCS fetches.</li>
|
||||
</ul>
|
||||
|
||||
<p>Thorsten Glaser (1):</p>
|
||||
<ul>
|
||||
<li>nv50: fix build failure on m68k due to invalid struct alignment assumptions</li>
|
||||
</ul>
|
||||
|
||||
<p>Tom Stellard (1):</p>
|
||||
<ul>
|
||||
<li>clover: Call end_query before getting timestamp result v2</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,118 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 10.2.6 Release Notes / August 19, 2014</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.2.6 is a bug fix release which fixes bugs found since the 10.2.5 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.2.6 implements the OpenGL 3.3 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
|
||||
3.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
193314d2adba98e43697d726739ac46b4299aae324fa1821aa226890c28ac806 MesaLib-10.2.6.tar.bz2
|
||||
f7a45a5977b485eb95ac024205c584a0c112fe3951c2313c797579bb16a7a448 MesaLib-10.2.6.tar.gz
|
||||
6d086d6fcda8f317adfaaae40011decf2f2e2dc80819c4a7a77c76f73512e8d8 MesaLib-10.2.6.zip
|
||||
</pre>
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=81450">Bug 81450</a> - [BDW]Piglit spec_glsl-1.30_execution_tex-miplevel-selection_textureGrad_1DArray cases intel_do_flush_locked failed</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Anuj Phogat (15):</p>
|
||||
<ul>
|
||||
<li>mesa: Fix error condition for valid texture targets in glTexStorage* functions</li>
|
||||
<li>mesa: Turn target_can_be_compressed() in to a utility function</li>
|
||||
<li>mesa: Add error condition for using compressed internalformat in glTexStorage3D()</li>
|
||||
<li>mesa: Fix condition for using compressed internalformat in glCompressedTexImage3D()</li>
|
||||
<li>mesa: Add utility function _mesa_is_enum_format_snorm()</li>
|
||||
<li>mesa: Don't allow snorm internal formats in glCopyTexImage*() in GLES3</li>
|
||||
<li>mesa: Add a helper function _mesa_is_enum_format_unsized()</li>
|
||||
<li>mesa: Add a gles3 error condition for sized internalformat in glCopyTexImage*()</li>
|
||||
<li>mesa: Add gles3 error condition for GL_RGBA10_A2 buffer format in glCopyTexImage*()</li>
|
||||
<li>mesa: Add utility function _mesa_is_enum_format_unorm()</li>
|
||||
<li>mesa: Add gles3 condition for normalized internal formats in glCopyTexImage*()</li>
|
||||
<li>mesa: Allow GL_TEXTURE_CUBE_MAP target with compressed internal formats</li>
|
||||
<li>meta: Use _mesa_get_format_bits() to get the GL_RED_BITS</li>
|
||||
<li>egl: Fix OpenGL ES version checks in _eglParseContextAttribList()</li>
|
||||
<li>meta: Fix datatype computation in get_temp_image_type()</li>
|
||||
</ul>
|
||||
|
||||
<p>Brian Paul (1):</p>
|
||||
<ul>
|
||||
<li>mesa: fix assertion in _mesa_drawbuffers()</li>
|
||||
</ul>
|
||||
|
||||
<p>Carl Worth (2):</p>
|
||||
<ul>
|
||||
<li>docs: Add sha256 sums to the 10.2.5 release notes</li>
|
||||
<li>Update VERSION to 10.2.6</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (1):</p>
|
||||
<ul>
|
||||
<li>mesa/st: only convert AND(a, NOT(b)) into MAD when not using native integers</li>
|
||||
</ul>
|
||||
|
||||
<p>Jordan Justen (1):</p>
|
||||
<ul>
|
||||
<li>i965/miptree: Layout 1D Array as 2D Array with height of 1</li>
|
||||
</ul>
|
||||
|
||||
<p>Maarten Lankhorst (1):</p>
|
||||
<ul>
|
||||
<li>configure.ac: Do not require llvm on x32</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (4):</p>
|
||||
<ul>
|
||||
<li>st/mesa: fix blit-based partial TexSubImage for 1D arrays</li>
|
||||
<li>radeon,r200: fix buffer validation after CS flush</li>
|
||||
<li>radeonsi: fix a hang with instancing in Unigine Heaven/Valley on Hawaii</li>
|
||||
<li>radeonsi: fix CMASK and HTILE allocation on Tahiti</li>
|
||||
</ul>
|
||||
|
||||
<p>Pali Rohár (1):</p>
|
||||
<ul>
|
||||
<li>configure: check for dladdr via AC_CHECK_FUNC/AC_CHECK_LIB</li>
|
||||
</ul>
|
||||
|
||||
<p>Roland Scheidegger (1):</p>
|
||||
<ul>
|
||||
<li>gallivm: fix up out-of-bounds level when using conformant out-of-bound behavior</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,95 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 10.2 Release Notes / June 6, 2014</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.2 is a new development release.
|
||||
People who are concerned with stability and reliability should stick
|
||||
with a previous release or wait for Mesa 10.2.1.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.2 implements the OpenGL 3.3 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
|
||||
3.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>MD5 checksums</h2>
|
||||
<pre>
|
||||
c87bfb6dd5cbcf1fdef42e5ccd972581 MesaLib-10.2.0.tar.gz
|
||||
7aaba90bd7169a94ae2fe83febdec963 MesaLib-10.2.0.tar.bz2
|
||||
58b203aca15dadc25ab4d1126db1052b MesaLib-10.2.0.zip
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
|
||||
<p>
|
||||
Note: some of the new features are only available with certain drivers.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>GL_ARB_buffer_storage on i965, nv30, nv50, nvc0, r300, r600, and radeonsi</li>
|
||||
<li>GL_ARB_multi_bind on all drivers</li>
|
||||
<li>GL_ARB_sample_shading on nv50 (GT21x only), nvc0</li>
|
||||
<li>GL_ARB_separate_shader_objects (desktop OpenGL) and
|
||||
GL_EXT_separate_shader_objects (OpenGL ES 2.0 and 3.0) on all drivers</li>
|
||||
<li>GL_ARB_stencil_texturing on i965/gen8+</li>
|
||||
<li>GL_ARB_texture_cube_map_array on nv50 (GT21x only)</li>
|
||||
<li>GL_ARB_texture_gather on nv50 (GT21x only), nvc0</li>
|
||||
<li>GL_ARB_texture_query_lod on nv50 (GT21x only), nvc0</li>
|
||||
<li>GL_ARB_texture_view on i965/gen7</li>
|
||||
<li>GL_ARB_vertex_type_10f_11f_11f_rev on nv50, nvc0, radeonsi</li>
|
||||
<li>GL_ARB_viewport_array on nv50, r600</li>
|
||||
<li>GL_INTEL_performance_query on i965/gen5+</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
TBD.
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<ul>
|
||||
<li>Renamed <i>--with-llvm-shared-libs</i> to <i>--enable-llvm-shared-libs</i></li>
|
||||
<p>
|
||||
The option is used to control how mesa is linked against LLVM, and now
|
||||
defaults to enabled (shared linking).
|
||||
</p>
|
||||
|
||||
<li>Split <i>libxatracker.so</i> into a standalone library which can be used
|
||||
with any gallium driver.</li>
|
||||
<p>
|
||||
Previously the library was linked statically against vmware's virtual gpu
|
||||
driver(svga), whereas now it loads a shared pipe_*.so driver. Provide the
|
||||
following options during configure, if you would like support for svga driver
|
||||
<i>--enable-xa --with-gallium-drivers=svga</i>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Note: The files are installed in $(libdir)/gallium-pipe/ and the interface
|
||||
between them and libxatracker.so is <strong>not</strong> stable.
|
||||
</p>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,158 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 10.3.1 Release Notes / October 12, 2014</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.3.1 is a bug fix release which fixes bugs found since the 10.3 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.3.1 implements the OpenGL 3.3 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
|
||||
3.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
155afcbad17be8bb80282c761b957d5cc716c14a1fa16c4f5ee04e76df729c6d MesaLib-10.3.1.tar.gz
|
||||
b081d077d717e5d56f2d59677490856052c41573e50378ff86d6c72456714add MesaLib-10.3.1.tar.bz2
|
||||
07a14febfed06412d519e091a62d24513fee6745f1a6f8a8f1956bfe04b77d15 MesaLib-10.3.1.zip
|
||||
</pre>
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79462">Bug 79462</a> - [NVC0/Codegen] Shader compilation falis in spill logic</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82932">Bug 82932</a> - [SNB+ Bisected]Ogles3conform ES3-CTS.shaders.indexing.vector_subscript.vec3_static_loop_subscript_write_direct_read_vertex fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83506">Bug 83506</a> - [UBO] row_major layout ignored inside structures</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83533">Bug 83533</a> - [UBO] nested structures don't get appropriate padding</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83570">Bug 83570</a> - Glyphy demo throws unhandled Integer division by zero exception</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83741">Bug 83741</a> - [UBO] row_major layout partially ignored for arrays of structures</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=84178">Bug 84178</a> - Big glamor regression in Xorg server 1.6.99.1 GIT: x11perf 1.5 Test: PutImage XY 500x500 Square</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Andreas Pokorny (2):</p>
|
||||
<ul>
|
||||
<li>egl/drm: expose KHR_image_pixmap extension</li>
|
||||
<li>i915: Fix black buffers when importing prime fds</li>
|
||||
</ul>
|
||||
|
||||
<p>Brian Paul (1):</p>
|
||||
<ul>
|
||||
<li>mesa: fix prog_optimize.c assertions triggered by SWZ opcode</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (2):</p>
|
||||
<ul>
|
||||
<li>docs: Add 10.3 sha256 sums, news item and link release notes</li>
|
||||
<li>Update VERSION to 10.3.1</li>
|
||||
</ul>
|
||||
|
||||
<p>Ian Romanick (4):</p>
|
||||
<ul>
|
||||
<li>glsl: Make sure fields after small structs have correct padding</li>
|
||||
<li>glsl: Make sure row-major array-of-structure get correct layout</li>
|
||||
<li>glsl: Round struct size up to at least 16 bytes</li>
|
||||
<li>glsl: Strip arrayness from ir_type_dereference_variable too</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (5):</p>
|
||||
<ul>
|
||||
<li>nv50/ir: avoid deleting pseudo instructions too early</li>
|
||||
<li>gm107/ir: fix manual TXD for array targets</li>
|
||||
<li>gm107/ir: fix texture argument order</li>
|
||||
<li>gm107/ir: add support for indirect const buffer selection</li>
|
||||
<li>gm107/ir: take relative pfetch offset into account</li>
|
||||
</ul>
|
||||
|
||||
<p>Keith Packard (1):</p>
|
||||
<ul>
|
||||
<li>glx/dri3: Provide error diagnostics when DRI3 allocation fails</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (2):</p>
|
||||
<ul>
|
||||
<li>mesa: Use proper structure for glGet*(GL_TEXTURE_COORD_ARRAY*).</li>
|
||||
<li>mesa: Set correct array element in vbo_exec_vtx_init.</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (3):</p>
|
||||
<ul>
|
||||
<li>radeonsi: release GS rings at context destruction</li>
|
||||
<li>radeonsi: properly destroy the GS copy shader and scratch_bo for compute</li>
|
||||
<li>st/dri: remove GALLIUM_MSAA and __GL_FSAA_MODE environment variables</li>
|
||||
</ul>
|
||||
|
||||
<p>Michel Dänzer (1):</p>
|
||||
<ul>
|
||||
<li>st/mesa: Use PIPE_USAGE_STAGING for GL_STATIC/DYNAMIC/STREAM_READ buffers</li>
|
||||
</ul>
|
||||
|
||||
<p>Richard Sandiford (2):</p>
|
||||
<ul>
|
||||
<li>mesa: Fix alpha component in unpack_R8G8B8X8_SRGB.</li>
|
||||
<li>swrast: Fix handling of MESA_FORMAT_L8A8_SRGB for big-endian</li>
|
||||
</ul>
|
||||
|
||||
<p>Roland Scheidegger (1):</p>
|
||||
<ul>
|
||||
<li>gallivm: fix idiv</li>
|
||||
</ul>
|
||||
|
||||
<p>Thomas Hellstrom (1):</p>
|
||||
<ul>
|
||||
<li>st/xa: Fix regression in xa_yuv_planar_blit()</li>
|
||||
</ul>
|
||||
|
||||
<p>Tom Stellard (2):</p>
|
||||
<ul>
|
||||
<li>clover: Add support to mem objects for multiple destructor callbacks v2</li>
|
||||
<li>configure.ac: Compute LLVM_VERSION_PATCH using llvm-config</li>
|
||||
</ul>
|
||||
|
||||
<p>Tomasz Figa (3):</p>
|
||||
<ul>
|
||||
<li>util: Include in Android builds</li>
|
||||
<li>st/mesa: Generate format_info.c in Android builds</li>
|
||||
<li>st/mesa: Fix paths used in Android builds</li>
|
||||
</ul>
|
||||
|
||||
<p>rconde (1):</p>
|
||||
<ul>
|
||||
<li>gallivm,tgsi: fix idiv by zero crash</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,115 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 10.3.2 Release Notes / October 24, 2014</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.3.2 is a bug fix release which fixes bugs found since the 10.3 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.3.2 implements the OpenGL 3.3 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
|
||||
3.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
e65f8e691f06f111c1aeb3a376b13c9cc88cb162bee2709e0e7e6b0e6628ca75 MesaLib-10.3.2.tar.gz
|
||||
e9849bcb9aa9acd98a753d6d46d2e7d7238d3367036e11357a60efd16de8bea3 MesaLib-10.3.2.tar.bz2
|
||||
427dc0d670d38e713ebff2675665ec2fe4ff7d04ce227bd54de946999fc1d234 MesaLib-10.3.2.zip
|
||||
</pre>
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=54372">Bug 54372</a> - GLX_INTEL_swap_event crashes driver when swapping window buffers</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=81680">Bug 81680</a> - [r600g] Firefox crashes with hardware acceleration turned on</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=84140">Bug 84140</a> - mplayer crashes playing some files using vdpau output</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=84662">Bug 84662</a> - Long pauses with Unreal demo Elemental on R9270X since : Always flush the HDP cache before submitting a CS to the GPU</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=85267">Bug 85267</a> - vlc crashes with vdpau (Radeon 3850HD) [r600]</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Brian Paul (3):</p>
|
||||
<ul>
|
||||
<li>mesa: fix spurious wglGetProcAddress / GL_INVALID_OPERATION error</li>
|
||||
<li>st/wgl: add WINAPI qualifiers on wgl function typedefs</li>
|
||||
<li>glsl: fix several use-after-free bugs</li>
|
||||
</ul>
|
||||
|
||||
<p>Daniel Manjarres (1):</p>
|
||||
<ul>
|
||||
<li>glx: Fix glxUseXFont for glxWindow and glxPixmaps</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (1):</p>
|
||||
<ul>
|
||||
<li>mesa: fix GetTexImage for 1D array depth textures</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (2):</p>
|
||||
<ul>
|
||||
<li>docs: Add sha256 sums for the 10.3.1 release</li>
|
||||
<li>Update VERSION to 10.3.2</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (4):</p>
|
||||
<ul>
|
||||
<li>gm107/ir: add dnz emission for fmul</li>
|
||||
<li>gk110/ir: add dnz flag emission for fmul/fmad</li>
|
||||
<li>nouveau: 3d textures are unsupported, limit 3d levels to 1</li>
|
||||
<li>st/gbm: fix order of arguments passed to is_format_supported</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (3):</p>
|
||||
<ul>
|
||||
<li>i965: Add a BRW_MOCS_PTE #define.</li>
|
||||
<li>i965: Use BDW_MOCS_PTE for renderbuffers.</li>
|
||||
<li>i965: Fix register write checks.</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (2):</p>
|
||||
<ul>
|
||||
<li>st/mesa: use pipe_sampler_view_release for releasing sampler views</li>
|
||||
<li>glsl_to_tgsi: fix the value of gl_FrontFacing with native integers</li>
|
||||
</ul>
|
||||
|
||||
<p>Michel Dänzer (4):</p>
|
||||
<ul>
|
||||
<li>radeonsi: Clear sampler view flags when binding a buffer</li>
|
||||
<li>r600g,radeonsi: Always use GTT again for PIPE_USAGE_STREAM buffers</li>
|
||||
<li>winsys/radeon: Use separate caching buffer manager for each set of flags</li>
|
||||
<li>r600g: Drop references to destroyed blend state</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,209 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 10.3.3 Release Notes / November 8, 2014</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.3.3 is a bug fix release which fixes bugs found since the 10.3.2 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.3.3 implements the OpenGL 3.3 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
|
||||
3.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
23a0c36d88cd5d8968ae6454160de2878192fd1d37b5d606adca1f1b7e788b79 MesaLib-10.3.3.tar.gz
|
||||
0e4eee4a2ddf86456eed2fc44da367f95471f74249636710491e85cc256c4753 MesaLib-10.3.3.tar.bz2
|
||||
a83648f17d776b7cf6c813fbb15782d2644b937dc6a7c53d8c0d1b35411f4840 MesaLib-10.3.3.zip
|
||||
</pre>
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<p>This list is likely incomplete.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70410">Bug 70410</a> - egl-static/Makefile: linking fails with llvm >= 3.4</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82921">Bug 82921</a> - layout(location=0) emits error >= MAX_UNIFORM_LOCATIONS due to integer underflow</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83574">Bug 83574</a> - [llvmpipe] [softpipe] piglit arb_explicit_uniform_location-use-of-unused-loc regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=85454">Bug 85454</a> - Unigine Sanctuary with Wine crashes on Mesa Git</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=85918">Bug 85918</a> - Mesa: MSVC 2010/2012 Compile error</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Anuj Phogat (2):</p>
|
||||
<ul>
|
||||
<li>glsl: Fix crash due to negative array index</li>
|
||||
<li>glsl: Use signed array index in update_max_array_access()</li>
|
||||
</ul>
|
||||
|
||||
<p>Brian Paul (1):</p>
|
||||
<ul>
|
||||
<li>mesa: fix UNCLAMPED_FLOAT_TO_UBYTE() macro for MSVC</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (2):</p>
|
||||
<ul>
|
||||
<li>docs: Add sha256 sums for the 10.3.2 release</li>
|
||||
<li>Update version to 10.3.3</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (27):</p>
|
||||
<ul>
|
||||
<li>freedreno/ir3: fix FSLT/etc handling to return 0/-1 instead of 0/1.0</li>
|
||||
<li>freedreno/ir3: INEG operates on src0, not src1</li>
|
||||
<li>freedreno/ir3: add UARL support</li>
|
||||
<li>freedreno/ir3: negate result of USLT/etc</li>
|
||||
<li>freedreno/ir3: use unsigned comparison for UIF</li>
|
||||
<li>freedreno/ir3: add TXL support</li>
|
||||
<li>freedreno/ir3: fix UCMP handling</li>
|
||||
<li>freedreno/ir3: implement UMUL correctly</li>
|
||||
<li>freedreno: add default .dir-locals.el for emacs settings</li>
|
||||
<li>freedreno/ir3: make texture instruction construction more dynamic</li>
|
||||
<li>freedreno/ir3: fix TXB/TXL to actually pull the bias/lod argument</li>
|
||||
<li>freedreno/ir3: add TXQ support</li>
|
||||
<li>freedreno/ir3: add TXB2 support</li>
|
||||
<li>freedreno: dual-source render targets are not supported</li>
|
||||
<li>freedreno: instanced drawing/compute not yet supported</li>
|
||||
<li>freedreno/ir3: avoid fan-in sources referring to same instruction</li>
|
||||
<li>freedreno/ir3: add IDIV/UDIV support</li>
|
||||
<li>freedreno/ir3: add UMOD support, based on UDIV</li>
|
||||
<li>freedreno/ir3: add MOD support</li>
|
||||
<li>freedreno/ir3: add ISSG support</li>
|
||||
<li>freedreno/ir3: add UMAD support</li>
|
||||
<li>freedreno/ir3: make TXQ return integers, not floats</li>
|
||||
<li>freedreno/ir3: shadow comes before array</li>
|
||||
<li>freedreno/ir3: add texture offset support</li>
|
||||
<li>freedreno/ir3: add TXD support and expose ARB_shader_texture_lod</li>
|
||||
<li>freedreno/ir3: add TXF support</li>
|
||||
<li>freedreno: positions come out as integers, not half-integers</li>
|
||||
</ul>
|
||||
|
||||
<p>Jan Vesely (1):</p>
|
||||
<ul>
|
||||
<li>configure: include llvm systemlibs when using static llvm</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (5):</p>
|
||||
<ul>
|
||||
<li>r600g: fix polygon mode for points and lines and point/line fill modes</li>
|
||||
<li>radeonsi: fix polygon mode for points and lines and point/line fill modes</li>
|
||||
<li>radeonsi: fix incorrect index buffer max size for lowered 8-bit indices</li>
|
||||
<li>Revert "st/mesa: set MaxUnrollIterations = 255"</li>
|
||||
<li>r300g: remove enabled/disabled hyperz and AA compression messages</li>
|
||||
</ul>
|
||||
|
||||
<p>Mauro Rossi (1):</p>
|
||||
<ul>
|
||||
<li>gallium/nouveau: fully build the driver under android</li>
|
||||
</ul>
|
||||
|
||||
<p>Michel Dänzer (1):</p>
|
||||
<ul>
|
||||
<li>radeon/llvm: Dynamically allocate branch/loop stack arrays</li>
|
||||
</ul>
|
||||
|
||||
<p>Rob Clark (62):</p>
|
||||
<ul>
|
||||
<li>freedreno/ir3: detect scheduler fail</li>
|
||||
<li>freedreno/ir3: add TXB</li>
|
||||
<li>freedreno/ir3: add DDX/DDY</li>
|
||||
<li>freedreno/ir3: bit of debug</li>
|
||||
<li>freedreno/ir3: fix error in bail logic</li>
|
||||
<li>freedreno/ir3: fix constlen with relative addressing</li>
|
||||
<li>freedreno/ir3: add no-copy-propagate fallback step</li>
|
||||
<li>freedreno: don't overflow cmdstream buffer so much</li>
|
||||
<li>freedreno/ir3: fix potential segfault in RA</li>
|
||||
<li>freedreno: update generated headers</li>
|
||||
<li>freedreno/a3xx: enable hw primitive-restart</li>
|
||||
<li>freedreno/a3xx: handle rendering to layer != 0</li>
|
||||
<li>freedreno: update generated headers</li>
|
||||
<li>freedreno/a3xx: format fixes</li>
|
||||
<li>util/u_format: add _is_alpha()</li>
|
||||
<li>freedreno/a3xx: alpha render-target shenanigans</li>
|
||||
<li>freedreno/ir3: catch incorrect usage of tmp-dst</li>
|
||||
<li>freedreno/ir3: add missing put_dst</li>
|
||||
<li>freedreno: "fix" problems with excessive flushes</li>
|
||||
<li>freedreno: update generated headers</li>
|
||||
<li>freedreno/a3xx: 3d/array textures</li>
|
||||
<li>freedreno: add DRM_CONF_SHARE_FD</li>
|
||||
<li>freedreno/a3xx: more texture array fixes</li>
|
||||
<li>freedreno/a3xx: initial texture border-color</li>
|
||||
<li>freedreno: fix compiler warning</li>
|
||||
<li>freedreno: don't advertise mirror-clamp support</li>
|
||||
<li>freedreno: update generated headers</li>
|
||||
<li>freedreno: we have more than 0 viewports!</li>
|
||||
<li>freedreno: turn missing caps into compile warnings</li>
|
||||
<li>freedreno/a3xx: add LOD_BIAS</li>
|
||||
<li>freedreno/a3xx: add flat interpolation mode</li>
|
||||
<li>freedreno/a3xx: add 32bit integer vtx formats</li>
|
||||
<li>freedreno/a3xx: fix border color order</li>
|
||||
<li>freedreno: move bind_sampler_states to per-generation</li>
|
||||
<li>freedreno: add texcoord clamp support to lowering</li>
|
||||
<li>freedreno/a3xx: add support to emulate GL_CLAMP</li>
|
||||
<li>freedreno/a3xx: re-emit shaders on variant change</li>
|
||||
<li>freedreno/lowering: fix token calculation for lowering</li>
|
||||
<li>freedreno: destroy transfer pool after blitter</li>
|
||||
<li>freedreno: max-texture-lod-bias should be 15.0f</li>
|
||||
<li>freedreno: update generated headers</li>
|
||||
<li>freedreno/a3xx: handle large shader program sizes</li>
|
||||
<li>freedreno/a3xx: emit all immediates in one shot</li>
|
||||
<li>freedreno/ir3: fix lockups with lame FRAG shaders</li>
|
||||
<li>freedreno/a3xx: handle VS only outputting BCOLOR</li>
|
||||
<li>freedreno: query fixes</li>
|
||||
<li>freedreno/a3xx: refactor vertex state emit</li>
|
||||
<li>freedreno/a3xx: refactor/optimize emit</li>
|
||||
<li>freedreno/ir3: optimize shader key comparision</li>
|
||||
<li>freedreno: inline fd_draw_emit()</li>
|
||||
<li>freedreno: fix layer_stride</li>
|
||||
<li>freedreno: update generated headers</li>
|
||||
<li>freedreno/ir3: large const support</li>
|
||||
<li>freedreno/a3xx: more layer/level fixes</li>
|
||||
<li>freedreno/ir3: comment + better fxn name</li>
|
||||
<li>freedreno/ir3: fix potential gpu lockup with kill</li>
|
||||
<li>freedreno/a3xx: disable early-z when we have kill's</li>
|
||||
<li>freedreno/ir3: add debug flag to disable cp</li>
|
||||
<li>freedreno: clear vs scissor</li>
|
||||
<li>freedreno: mark scissor state dirty when enable bit changes</li>
|
||||
<li>freedreno/a3xx: fix viewport state during clear</li>
|
||||
<li>freedreno/a3xx: fix depth/stencil restore format</li>
|
||||
</ul>
|
||||
|
||||
<p>Tapani Pälli (2):</p>
|
||||
<ul>
|
||||
<li>glsl: fix uniform location count used for glsl types</li>
|
||||
<li>mesa: check that uniform exists in glUniform* functions</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,104 +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>
|
||||
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=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,334 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 10.3 Release Notes / September 19, 2014</h1>
|
||||
|
||||
<p>
|
||||
Mesa 10.3 is a new development release.
|
||||
People who are concerned with stability and reliability should stick
|
||||
with a previous release or wait for Mesa 10.3.1.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 10.3 implements the OpenGL 3.3 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 3.3. OpenGL
|
||||
3.3 is <strong>only</strong> available if requested at context creation
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
9a1bf52040fc3dda81e83a35f944f1c3f532847dbe9fdf57161265cf71ea1bae MesaLib-10.3.0.tar.gz
|
||||
0283bfe710fa449ed82e465cfa09612a269e19abb7e0382082608062ce7960b5 MesaLib-10.3.0.tar.bz2
|
||||
221420763c2c3a244836a736e735612c4a6a0377b4e5223fca1e612f49906789 MesaLib-10.3.0.zip
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
|
||||
<p>
|
||||
Note: some of the new features are only available with certain drivers.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>GL_ARB_ES3_compatibility on nv50, nvc0, r600, radeonsi, softpipe, llvmpipe</li>
|
||||
<li>GL_ARB_clear_texture on i965</li>
|
||||
<li>GL_ARB_compressed_texture_pixel_storage on all drivers</li>
|
||||
<li>GL_ARB_conditional_render_inverted on i965, nvc0, softpipe, llvmpipe</li>
|
||||
<li>GL_ARB_derivative_control on i965, nv50, nvc0, r600</li>
|
||||
<li>GL_ARB_draw_indirect on nvc0, radeonsi</li>
|
||||
<li>GL_ARB_explicit_uniform_location (all drivers that support GLSL)</li>
|
||||
<li>GL_ARB_fragment_layer_viewport on nv50, nvc0, llvmpipe, r600</li>
|
||||
<li>GL_ARB_gpu_shader5 on i965/gen7, nvc0</li>
|
||||
<li>GL_ARB_multi_draw_indirect on nvc0, radeonsi</li>
|
||||
<li>GL_ARB_sample_shading on radeonsi</li>
|
||||
<li>GL_ARB_seamless_cubemap_per_texture on i965, llvmpipe, nvc0, r600, radeonsi, softpipe</li>
|
||||
<li>GL_ARB_stencil_texturing on nv50, nvc0, r600, and radeonsi</li>
|
||||
<li>GL_ARB_texture_barrier on nv50, nvc0, r300, r600, radeonsi</li>
|
||||
<li>GL_ARB_texture_compression_bptc on i965/gen7+, nvc0, r600/evergreen+, radeonsi</li>
|
||||
<li>GL_ARB_texture_cube_map_array on radeonsi</li>
|
||||
<li>GL_ARB_texture_gather on r600, radeonsi</li>
|
||||
<li>GL_ARB_texture_query_levels on nv50, nvc0, llvmpipe, r600, radeonsi, softpipe</li>
|
||||
<li>GL_ARB_texture_query_lod on r600, radeonsi</li>
|
||||
<li>GL_ARB_viewport_array on nvc0</li>
|
||||
<li>GL_AMD_vertex_shader_viewport_index on i965/gen7+, r600</li>
|
||||
<li>GL_OES_compressed_ETC1_RGB8_texture on nv30, nv50, nvc0, r300, r600, radeonsi, softpipe, llvmpipe</li>
|
||||
<li>GLX_MESA_query_renderer on nv30, nv50, nvc0, r300, r600, radeonsi, softpipe, llvmpipe</li>
|
||||
<li>A new software rasterizer driver (kms_swrast_dri.so) that works with
|
||||
DRM drivers that don't have a full-fledged GEM (such as qxl or simpledrm)</li>
|
||||
<li>Distribute the Khronos GL/glcorearb.h header file.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=50754">Bug 50754</a> - Building 32 bit mesa on 64 bit OS fails since change for automake</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=53617">Bug 53617</a> - [llvmpipe] piglit fbo-depthtex regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=54372">Bug 54372</a> - GLX_INTEL_swap_event crashes driver when swapping window buffers</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=56127">Bug 56127</a> - [ILK bisected]unigine-sanctruary performance reduced by 98%</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=66184">Bug 66184</a> - src/mesa/state_tracker/st_glsl_to_tgsi.cpp:3216:simplify_cmp: Assertion `inst->dst.index < 4096' failed.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=66452">Bug 66452</a> - JUNIPER UVD accelerated playback of WMV3 streams does not work</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=68365">Bug 68365</a> - [SNB Bisected]Piglit spec_ARB_framebuffer_object_fbo-blit-stretch fail</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70441">Bug 70441</a> - [Gen4-5 clip] Piglit spec_OpenGL_1.1_polygon-offset hits (execsize >= width) assertion</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=73846">Bug 73846</a> - [llvmpipe] lp_test_format fails with llvm-3.5svn >= r199602</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74005">Bug 74005</a> - [i965 Bisected]Piglit/glx_glx-make-glxdrawable-current fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74863">Bug 74863</a> - [r600g] HyperZ broken on RV770 and CYPRESS (Left 4 Dead 2 trees corruption) bisected!</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=75010">Bug 75010</a> - clang: error: unknown argument: '-fstack-protector-strong'</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=75478">Bug 75478</a> - [BDW]Some Piglit and Ogles2conform cases cause GPU hang</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=75664">Bug 75664</a> - Unigine Valley & Heaven "error: syntax error, unexpected EXTENSION, expecting $end" IVB HD4000</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=75878">Bug 75878</a> - [BDW] GPU hang running Raytracer WebGL demo</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=76188">Bug 76188</a> - EGL_EXT_image_dma_buf_import fd ownership is incorrect</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=76223">Bug 76223</a> - [radeonsi] luxmark segfault</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=76939">Bug 76939</a> - [BDW] GPU hang when running “Metro:Last Light “ /“Crusader Kings II”</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77245">Bug 77245</a> - Bogus GL_ARB_explicit_attrib_location layout identifier warnings</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77493">Bug 77493</a> - lp_test_arit fails with llvm >= llvm-3.5svn r206094</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77703">Bug 77703</a> - [ILK Bisected]Piglit glean_texCombine4 fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77704">Bug 77704</a> - [IVB/HSW Bisected]Ogles3conform GL3Tests_shadow_shadow_execution_frag.test fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77705">Bug 77705</a> - [SNB/IVB/HSW/BYT/BDW Bisected]Ogles3conform GL3Tests/packed_pixels/packed_pixels_pixelstore.test segfault</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77707">Bug 77707</a> - [ILK Bisected]Ogles2conform GL_sin_sin_float_frag_xvary.test fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77740">Bug 77740</a> - i965: Relax accumulator dependency scheduling on Gen < 6</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77852">Bug 77852</a> - [BDW]Piglit spec_ARB_framebuffer_object_fbo-drawbuffers-none_glBlitFramebuffer fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77856">Bug 77856</a> - [BDW]Piglit spec_OpenGL_3.0_clearbuffer-mixed-format fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77865">Bug 77865</a> - [BDW] Many Ogles3conform framebuffer_blit cases fail</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78225">Bug 78225</a> - Compile error due to undefined reference to `gbm_dri_backend', fix attached</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78258">Bug 78258</a> - make check link_varyings.gl_ClipDistance failure</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78403">Bug 78403</a> - query_renderer_implementation_unittest.cpp:144:4: error: expected primary-expression before ‘.’ token</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78468">Bug 78468</a> - Compiling of shader gets stuck in infinite loop</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78537">Bug 78537</a> - no anisotropic filtering in a native Half-Life 2</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78546">Bug 78546</a> - [swrast] piglit copyteximage-border regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78581">Bug 78581</a> - OpenCL: clBuildProgram prints error messages directly rather than storing them</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78648">Bug 78648</a> - Texture artifacts in Kerbal Space Program</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78665">Bug 78665</a> - macros in builtin_functions.cpp make invalid assumptions about M_PI definitions</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78679">Bug 78679</a> - Gen4-5 code lost: runtime_check_aads_emit</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78691">Bug 78691</a> - [G45 - Tesseract] Mesa 10.1.2 implementation error: Unsupported opcode 169872468 in FS</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78692">Bug 78692</a> - Football Manager 2014, gameplay rendered black & white</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78716">Bug 78716</a> - Fix Mesa bugs for running Unreal Engine 4.1 Cave effects demo compiled for Linux</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78803">Bug 78803</a> - gallivm/lp_bld_debug.cpp:42:28: fatal error: llvm/IR/Module.h: No such file or directory</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78842">Bug 78842</a> - [swrast] piglit fcc-read-after-clear copy rb regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78843">Bug 78843</a> - [swrast] piglit copyteximage 1D regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78872">Bug 78872</a> - [ILK Bisected]Piglit spec_ARB_depth_buffer_float_fbo-depthstencil-GL_DEPTH32F_STENCIL8-blit Aborted</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78875">Bug 78875</a> - [ILK Bisected]Webglc conformance/uniforms/uniform-default-values.html fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78888">Bug 78888</a> - test_eu_compact.c:54:3: error: implicit declaration of function ‘brw_disasm’ [-Werror=implicit-function-declaration]</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79029">Bug 79029</a> - INTEL_DEBUG=shader_time is full of lies</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79095">Bug 79095</a> - x86/common_x86.c:348:14: error: use of undeclared identifier 'bit_SSE4_1'</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79115">Bug 79115</a> - glFramebufferRenderbuffer(GL_DRAW_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, GL_RENDERBUFFER, 0) doesn't unbind stencil buffer</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79263">Bug 79263</a> - Linking error in egl_gallium.la when compiling 32 bit on multiarch</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79294">Bug 79294</a> - Xlib-based build broken on non x86/x86-64 architectures</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79373">Bug 79373</a> - Non-const initializers for matrix and vector constructors</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79382">Bug 79382</a> - build error: multiple definition of `loader_get_pci_id_for_fd'</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79421">Bug 79421</a> - [llvmpipe] SIGSEGV src/gallium/drivers/llvmpipe/lp_rast_priv.h:218</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79440">Bug 79440</a> - prog_hash_table.c:146: undefined reference to `_mesa_error_no_memory'</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79469">Bug 79469</a> - Commit e3cc0d90e14e62a0a787b6c07a6df0f5c84039be breaks unigine heaven</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79534">Bug 79534</a> - gen<7 renders garbage</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79616">Bug 79616</a> - L4D2 crash on startup</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79724">Bug 79724</a> - switch statement type check</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79729">Bug 79729</a> - [i965] glClear on a multisample texture doesn't work</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79809">Bug 79809</a> - radeonsi: mouse cursor corruption using weston on AMD Kaveri</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79823">Bug 79823</a> - [NV30/gallium] Mozilla apps freeze on startup with nouveau-dri-10.2.1 libs on dual-screen</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79885">Bug 79885</a> - commit b52a530 (gallium/egl: st_profiles are build time decision, treat them as such) broke egl</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79903">Bug 79903</a> - [HSW Bisected]Some Piglit and Ogles2conform cases fail</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79907">Bug 79907</a> - Mesa 10.2.1 --enable-vdpau default=auto broken</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79948">Bug 79948</a> - [i965] Incorrect pixels when using discard and uniform loads</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80015">Bug 80015</a> - Transparency glitches in native Civilization 5 (Civ5) port</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80115">Bug 80115</a> - MESA_META_DRAW_BUFFERS induced GL_INVALID_VALUE errors</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80211">Bug 80211</a> - [ILK/SNB Bisected]Piglit shaders_glsl-fs-copy-propagation-texcoords-1 fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80247">Bug 80247</a> - Khronos conformance test ES3-CTS.gtf.GL3Tests.transform_feedback.transform_feedback_vertex_id fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80254">Bug 80254</a> - pipe_loader_sw.c:90: undefined reference to `dri_create_sw_winsys'</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80541">Bug 80541</a> - [softpipe] piglit levelclamp regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80561">Bug 80561</a> - Incorrect implementation of some VDPAU APIs.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80614">Bug 80614</a> - [regression] Error in `omxregister-bellagio': munmap_chunk(): invalid pointer: 0x00007f5f76626dab</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80778">Bug 80778</a> - [bisected regression] piglit spec/glsl-1.50/compiler/incorrect-in-layout-qualifier-repeated-prim.geom</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80827">Bug 80827</a> - [radeonsi,R9 270X] Corruptions in window menus in KDE</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80880">Bug 80880</a> - Unreal Engine 4 demos fail GLSL compiler assertion</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80991">Bug 80991</a> - [BDW]Piglit spec_ARB_sample_shading_builtin-gl-sample-mask_2 fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=81020">Bug 81020</a> - [radeonsi][regresssion] Wireframe of background rendered through objects in Half-Life 2: Episode 2 with MSAA enabled</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=81150">Bug 81150</a> - [SNB]Piglit spec_arb_shading_language_packing_execution_built-in-functions_fs-packSnorm4x8 fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=81157">Bug 81157</a> - [BDW]Piglit some spec_glsl-1.50_execution_built-in-functions* cases fail</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=81450">Bug 81450</a> - [BDW]Piglit spec_glsl-1.30_execution_tex-miplevel-selection_textureGrad_1DArray cases intel_do_flush_locked failed</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=81828">Bug 81828</a> - [BDW Bisected]Ogles3conform GL3Tests_packed_pixels_packed_pixels_pbo.test fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=81834">Bug 81834</a> - TGSI constant buffer overrun causes assertion failure</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=81857">Bug 81857</a> - [SNB+]Piglit spec_glsl-1.30_execution_switch_fs-default_last sporadically fail</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=81967">Bug 81967</a> - [regression] Selections in Blender renders wrong</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82139">Bug 82139</a> - [r600g, bisected] multiple ubo piglit regressions</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82159">Bug 82159</a> - No rule to make target `../../../../src/mesa/libmesa.la', needed by `collision'.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82255">Bug 82255</a> - [VP2] Chroma planes are vertically stretched during VDPAU playback</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82268">Bug 82268</a> - Add support for the OpenRISC architecture (or1k)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82428">Bug 82428</a> - [radeonsi,R9 270X] System lockup when using mplayer/mpv with VDPAU</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82472">Bug 82472</a> - piglit 16385-consecutive-chars regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82483">Bug 82483</a> - format_srgb.h:145: undefined reference to `util_format_srgb_to_linear_8unorm_table'</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82517">Bug 82517</a> - [RADEONSI,VDPAU] SIGSEGV in map_msg_fb_buf called from ruvd_destroy, when closing a Tab with accelerated video player</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82534">Bug 82534</a> - src\egl\main\eglapi.h : fatal error LNK1107: invalid or corrupt file: cannot read at 0x2E02</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82536">Bug 82536</a> - u_current.h:72: undefined reference to `__imp__glapi_Dispatch'</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82538">Bug 82538</a> - Super Maryo Chronicles fails with st/mesa assertion failure</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82539">Bug 82539</a> - vmw_screen_dri.lo In file included from vmw_screen_dri.c:41: vmwgfx_drm.h:32:17: error: drm.h: No such file or directory</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82546">Bug 82546</a> - [regression] libOSMesa build failure</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82574">Bug 82574</a> - GLSL: opt_vectorize goes wrong on texture lookups</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82628">Bug 82628</a> - bisected: GALLIUM_HUD hangs radeon 7970M (PRIME)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82671">Bug 82671</a> - [r600g-evergreen][compute]Empty kernel execution causes crash</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82709">Bug 82709</a> - OpenCL not working on radeon hainan</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82796">Bug 82796</a> - [IVB/BYT-M/HSW/BDW Bisected]Synmark2_v6.0_OglTerrainFlyInst/OglTerrainPanInst cannot run as image validation failed</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82804">Bug 82804</a> - unreal engine 4 rendering errors</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82814">Bug 82814</a> - glDrawBuffers(0, NULL) segfaults in _mesa_drawbuffers</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82828">Bug 82828</a> - Regression: Crash in 3Dmark2001</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82846">Bug 82846</a> - [BDW Bisected] Gpu hang when running Lightsmark v2008/Warsow v1.0/Xonotic v0.7/unigine-demos</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82881">Bug 82881</a> - test_vec4_register_coalesce regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82882">Bug 82882</a> - [swrast] piglit glsl-fs-uniform-bool-1 regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82929">Bug 82929</a> - [BDW Bisected]glxgears causes X hang</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82932">Bug 82932</a> - [SNB+ Bisected]Ogles3conform ES3-CTS.shaders.indexing.vector_subscript.vec3_static_loop_subscript_write_direct_read_vertex fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83046">Bug 83046</a> - [BDW bisected]] Warsow v1.0/Xonotic v0.7/Gputest v0.5_triangle_fullscreen/synmark2_v6/GLBenchmark v2.5.0/GLBenchmark v2.7.0/Ungine-demos performance reduced 30%~60%</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83079">Bug 83079</a> - [NVC0] Dota 2 (Linux native and Wine) crash with Nouveau Drivers</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83081">Bug 83081</a> - [BDW Bisected]Piglit spec_ARB_sample_shading_builtin-gl-sample-mask_2 is core dumped</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83127">Bug 83127</a> - [ILK Bisected]Piglit glean_texCombine fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83355">Bug 83355</a> - FTBFS: src/mesa/program/program_lexer.l:122:64: error: unknown type name 'YYSTYPE'</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83432">Bug 83432</a> - r600_query.c:269:r600_emit_query_end: Assertion `ctx->num_pipelinestat_queries > 0' failed [Gallium HUD]</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83468">Bug 83468</a> - [UBO] Using bool from UBO as if-statement condition asserts</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<ul>
|
||||
<li>Removed support for the GL_ATI_envmap_bumpmap extension</li>
|
||||
<li>The hacky --enable-32/64-bit is no longer available in configure. To build
|
||||
32/64 bit mesa refer to the default method recommended by your distribution</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,125 +0,0 @@
|
||||
Name
|
||||
|
||||
MESA_configless_context
|
||||
|
||||
Name Strings
|
||||
|
||||
EGL_MESA_configless_context
|
||||
|
||||
Contact
|
||||
|
||||
Neil Roberts <neil.s.roberts@intel.com>
|
||||
|
||||
Status
|
||||
|
||||
Proposal
|
||||
|
||||
Version
|
||||
|
||||
Version 1, February 28, 2014
|
||||
|
||||
Number
|
||||
|
||||
EGL Extension #not assigned
|
||||
|
||||
Dependencies
|
||||
|
||||
Requires EGL 1.4 or later. This extension is written against the
|
||||
wording of the EGL 1.4 specification.
|
||||
|
||||
Overview
|
||||
|
||||
This extension provides a means to use a single context to render to
|
||||
multiple surfaces which have different EGLConfigs. Without this extension
|
||||
the EGLConfig for every surface used by the context must be compatible
|
||||
with the one used by the context. The only way to render to surfaces with
|
||||
different formats would be to create multiple contexts but this is
|
||||
inefficient with modern GPUs where this restriction is unnecessary.
|
||||
|
||||
IP Status
|
||||
|
||||
Open-source; freely implementable.
|
||||
|
||||
New Procedures and Functions
|
||||
|
||||
None.
|
||||
|
||||
New Tokens
|
||||
|
||||
Accepted as <config> in eglCreateContext
|
||||
|
||||
EGL_NO_CONFIG_MESA ((EGLConfig)0)
|
||||
|
||||
Additions to the EGL Specification section "2.2 Rendering Contexts and Drawing
|
||||
Surfaces"
|
||||
|
||||
Add the following to the 3rd paragraph:
|
||||
|
||||
"EGLContexts can also optionally be created with respect to an EGLConfig
|
||||
depending on the parameters used at creation time. If a config is provided
|
||||
then additional restrictions apply on what surfaces can be used with the
|
||||
context."
|
||||
|
||||
Replace the last sentence of the 6th paragraph with:
|
||||
|
||||
"In order for a context to be compatible with a surface they both must have
|
||||
been created with respect to the same EGLDisplay. If the context was
|
||||
created without respect to an EGLConfig then there are no further
|
||||
constraints. Otherwise they are only compatible if:"
|
||||
|
||||
Remove the last bullet point in the list of constraints.
|
||||
|
||||
Additions to the EGL Specification section "3.7.1 Creating Rendering Contexts"
|
||||
|
||||
Replace the paragraph starting "If config is not a valid EGLConfig..."
|
||||
with
|
||||
|
||||
"The config argument can either be a valid EGLConfig or EGL_NO_CONFIG_MESA.
|
||||
If it is neither of these then an EGL_BAD_CONFIG error is generated. If a
|
||||
valid config is passed then the error will also be generated if the config
|
||||
does not support the requested client API (this includes requesting
|
||||
creation of an OpenGL ES 1.x context when the EGL_RENDERABLE_TYPE
|
||||
attribute of config does not contain EGL_OPENGL_ES_BIT, or creation of an
|
||||
OpenGL ES 2.x context when the attribute does not contain
|
||||
EGL_OPENGL_ES2_BIT).
|
||||
|
||||
Passing EGL_NO_CONFIG_MESA will create a configless context. When a
|
||||
configless context is used with the OpenGL API it can be assumed that the
|
||||
initial values of the context's state will be decided when the context is
|
||||
first made current. In particular this means that the decision of whether
|
||||
to use GL_BACK or GL_FRONT for the initial value of the first output in
|
||||
glDrawBuffers will be decided based on the config of the draw surface when
|
||||
it is first bound."
|
||||
|
||||
Additions to the EGL Specification section "3.7.3 Binding Contexts and
|
||||
Drawables"
|
||||
|
||||
Replace the first bullet point with the following:
|
||||
|
||||
"* If draw or read are not compatible with ctx as described in section 2.2,
|
||||
then an EGL_BAD_MATCH error is generated."
|
||||
|
||||
Add a second bullet point after that:
|
||||
|
||||
"* If draw and read are not compatible with each other as described in
|
||||
section 2.2, then an EGL_BAD_MATCH error is generated."
|
||||
|
||||
Issues
|
||||
|
||||
1. What happens when an OpenGL context with a double-buffered surface and
|
||||
draw buffer set to GL_BACK is made current with a single-buffered
|
||||
surface?
|
||||
|
||||
NOT RESOLVED: There are a few options here. An implementation can
|
||||
raise an error, change the drawbuffer state to GL_FRONT or just do
|
||||
nothing, expecting the application to set GL_FRONT drawbuffer before
|
||||
drawing. However, this extension deliberately does not specify any
|
||||
required behavior in this corner case and applications should avoid
|
||||
mixing single- and double-buffered surfaces with configless contexts.
|
||||
|
||||
Future extensions may specify required behavior in this case.
|
||||
|
||||
Revision History
|
||||
|
||||
Version 1, February 28, 2014
|
||||
Initial draft (Neil Roberts)
|
@@ -16,11 +16,11 @@ IP Status
|
||||
|
||||
Status
|
||||
|
||||
Shipping as of Mesa 10.0
|
||||
Incomplete. DO NOT SHIP.
|
||||
|
||||
Version
|
||||
|
||||
Version 8, 14-February-2014
|
||||
Version 6, 7-November-2013
|
||||
|
||||
Number
|
||||
|
||||
@@ -211,7 +211,7 @@ Additions to the GLX 1.4 Specification
|
||||
|
||||
The attribute name GLX_RENDERER_ID_MESA specified the index of the render
|
||||
against which the context should be created. The default value of
|
||||
GLX_RENDERER_ID_MESA is 0.
|
||||
GLX_RENDER_ID_MESA is 0.
|
||||
|
||||
|
||||
[Add to list of errors for glXCreateContextAttribsARB in section section
|
||||
@@ -373,7 +373,7 @@ Issues
|
||||
should make every attempt to return as much information as is
|
||||
possible. For example, if the implementation is running on a non-PCI
|
||||
SoC with a Qualcomm GPU, GLX_RENDERER_VENDOR_ID_MESA should return
|
||||
0x5143, but GLX_RENDERER_DEVICE_ID_MESA will return 0xFFFFFFFF.
|
||||
0x168C, but GLX_RENDERER_DEVICE_ID_MESA will return 0x0000.
|
||||
|
||||
Revision History
|
||||
|
||||
@@ -403,8 +403,3 @@ Revision History
|
||||
|
||||
Version 7, 2013/11/07 - Fix a couple more typos. Add issue #17 regarding
|
||||
the PCI queries on systems that don't have PCI.
|
||||
|
||||
Version 8, 2014/02/14 - Fix a couple typos. GLX_RENDER_ID_MESA should
|
||||
read GLX_RENDERER_ID_MESA. The VENDOR/DEVICE_ID
|
||||
example given in issue #17 should be 0x5143 and
|
||||
0xFFFFFFFF respectively.
|
||||
|
@@ -73,6 +73,7 @@ FILE_PATTERNS = \
|
||||
fog.h \
|
||||
get.h \
|
||||
glheader.h \
|
||||
glthread.h \
|
||||
hash.[ch] \
|
||||
hint.h \
|
||||
histogram.h \
|
||||
|
@@ -34,7 +34,7 @@ SEARCH_INCLUDES = YES
|
||||
INCLUDE_PATH = ../include/
|
||||
INCLUDE_FILE_PATTERNS =
|
||||
PREDEFINED =
|
||||
EXPAND_AS_DEFINED =
|
||||
EXPAND_AS_DEFINED = _glthread_DECLARE_STATIC_MUTEX
|
||||
SKIP_FUNCTION_MACROS = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to external references
|
||||
|
364
include/CL/cl.h
364
include/CL/cl.h
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2008 - 2012 The Khronos Group Inc.
|
||||
* Copyright (c) 2008-2010 The Khronos Group Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and/or associated documentation files (the
|
||||
@@ -21,6 +21,8 @@
|
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
******************************************************************************/
|
||||
|
||||
/* $Revision: 11985 $ on $Date: 2010-07-15 11:16:06 -0700 (Thu, 15 Jul 2010) $ */
|
||||
|
||||
#ifndef __OPENCL_CL_H
|
||||
#define __OPENCL_CL_H
|
||||
|
||||
@@ -56,10 +58,8 @@ typedef cl_uint cl_device_mem_cache_type;
|
||||
typedef cl_uint cl_device_local_mem_type;
|
||||
typedef cl_bitfield cl_device_exec_capabilities;
|
||||
typedef cl_bitfield cl_command_queue_properties;
|
||||
typedef intptr_t cl_device_partition_property;
|
||||
typedef cl_bitfield cl_device_affinity_domain;
|
||||
|
||||
typedef intptr_t cl_context_properties;
|
||||
typedef intptr_t cl_context_properties;
|
||||
typedef cl_uint cl_context_info;
|
||||
typedef cl_uint cl_command_queue_info;
|
||||
typedef cl_uint cl_channel_order;
|
||||
@@ -67,7 +67,6 @@ typedef cl_uint cl_channel_type;
|
||||
typedef cl_bitfield cl_mem_flags;
|
||||
typedef cl_uint cl_mem_object_type;
|
||||
typedef cl_uint cl_mem_info;
|
||||
typedef cl_bitfield cl_mem_migration_flags;
|
||||
typedef cl_uint cl_image_info;
|
||||
typedef cl_uint cl_buffer_create_type;
|
||||
typedef cl_uint cl_addressing_mode;
|
||||
@@ -76,43 +75,24 @@ typedef cl_uint cl_sampler_info;
|
||||
typedef cl_bitfield cl_map_flags;
|
||||
typedef cl_uint cl_program_info;
|
||||
typedef cl_uint cl_program_build_info;
|
||||
typedef cl_uint cl_program_binary_type;
|
||||
typedef cl_int cl_build_status;
|
||||
typedef cl_uint cl_kernel_info;
|
||||
typedef cl_uint cl_kernel_arg_info;
|
||||
typedef cl_uint cl_kernel_arg_address_qualifier;
|
||||
typedef cl_uint cl_kernel_arg_access_qualifier;
|
||||
typedef cl_bitfield cl_kernel_arg_type_qualifier;
|
||||
typedef cl_uint cl_kernel_work_group_info;
|
||||
typedef cl_uint cl_event_info;
|
||||
typedef cl_uint cl_command_type;
|
||||
typedef cl_uint cl_profiling_info;
|
||||
|
||||
|
||||
typedef struct _cl_image_format {
|
||||
cl_channel_order image_channel_order;
|
||||
cl_channel_type image_channel_data_type;
|
||||
} cl_image_format;
|
||||
|
||||
typedef struct _cl_image_desc {
|
||||
cl_mem_object_type image_type;
|
||||
size_t image_width;
|
||||
size_t image_height;
|
||||
size_t image_depth;
|
||||
size_t image_array_size;
|
||||
size_t image_row_pitch;
|
||||
size_t image_slice_pitch;
|
||||
cl_uint num_mip_levels;
|
||||
cl_uint num_samples;
|
||||
cl_mem buffer;
|
||||
} cl_image_desc;
|
||||
|
||||
typedef struct _cl_buffer_region {
|
||||
size_t origin;
|
||||
size_t size;
|
||||
} cl_buffer_region;
|
||||
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
/* Error Codes */
|
||||
@@ -131,11 +111,6 @@ typedef struct _cl_buffer_region {
|
||||
#define CL_MAP_FAILURE -12
|
||||
#define CL_MISALIGNED_SUB_BUFFER_OFFSET -13
|
||||
#define CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST -14
|
||||
#define CL_COMPILE_PROGRAM_FAILURE -15
|
||||
#define CL_LINKER_NOT_AVAILABLE -16
|
||||
#define CL_LINK_PROGRAM_FAILURE -17
|
||||
#define CL_DEVICE_PARTITION_FAILED -18
|
||||
#define CL_KERNEL_ARG_INFO_NOT_AVAILABLE -19
|
||||
|
||||
#define CL_INVALID_VALUE -30
|
||||
#define CL_INVALID_DEVICE_TYPE -31
|
||||
@@ -172,21 +147,14 @@ typedef struct _cl_buffer_region {
|
||||
#define CL_INVALID_MIP_LEVEL -62
|
||||
#define CL_INVALID_GLOBAL_WORK_SIZE -63
|
||||
#define CL_INVALID_PROPERTY -64
|
||||
#define CL_INVALID_IMAGE_DESCRIPTOR -65
|
||||
#define CL_INVALID_COMPILER_OPTIONS -66
|
||||
#define CL_INVALID_LINKER_OPTIONS -67
|
||||
#define CL_INVALID_DEVICE_PARTITION_COUNT -68
|
||||
|
||||
/* OpenCL Version */
|
||||
#define CL_VERSION_1_0 1
|
||||
#define CL_VERSION_1_1 1
|
||||
#define CL_VERSION_1_2 1
|
||||
|
||||
/* cl_bool */
|
||||
#define CL_FALSE 0
|
||||
#define CL_TRUE 1
|
||||
#define CL_BLOCKING CL_TRUE
|
||||
#define CL_NON_BLOCKING CL_FALSE
|
||||
|
||||
/* cl_platform_info */
|
||||
#define CL_PLATFORM_PROFILE 0x0900
|
||||
@@ -200,7 +168,6 @@ typedef struct _cl_buffer_region {
|
||||
#define CL_DEVICE_TYPE_CPU (1 << 1)
|
||||
#define CL_DEVICE_TYPE_GPU (1 << 2)
|
||||
#define CL_DEVICE_TYPE_ACCELERATOR (1 << 3)
|
||||
#define CL_DEVICE_TYPE_CUSTOM (1 << 4)
|
||||
#define CL_DEVICE_TYPE_ALL 0xFFFFFFFF
|
||||
|
||||
/* cl_device_info */
|
||||
@@ -254,7 +221,7 @@ typedef struct _cl_buffer_region {
|
||||
#define CL_DEVICE_VERSION 0x102F
|
||||
#define CL_DEVICE_EXTENSIONS 0x1030
|
||||
#define CL_DEVICE_PLATFORM 0x1031
|
||||
#define CL_DEVICE_DOUBLE_FP_CONFIG 0x1032
|
||||
/* 0x1032 reserved for CL_DEVICE_DOUBLE_FP_CONFIG */
|
||||
/* 0x1033 reserved for CL_DEVICE_HALF_FP_CONFIG */
|
||||
#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF 0x1034
|
||||
#define CL_DEVICE_HOST_UNIFIED_MEMORY 0x1035
|
||||
@@ -266,20 +233,6 @@ typedef struct _cl_buffer_region {
|
||||
#define CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE 0x103B
|
||||
#define CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF 0x103C
|
||||
#define CL_DEVICE_OPENCL_C_VERSION 0x103D
|
||||
#define CL_DEVICE_LINKER_AVAILABLE 0x103E
|
||||
#define CL_DEVICE_BUILT_IN_KERNELS 0x103F
|
||||
#define CL_DEVICE_IMAGE_MAX_BUFFER_SIZE 0x1040
|
||||
#define CL_DEVICE_IMAGE_MAX_ARRAY_SIZE 0x1041
|
||||
#define CL_DEVICE_PARENT_DEVICE 0x1042
|
||||
#define CL_DEVICE_PARTITION_MAX_SUB_DEVICES 0x1043
|
||||
#define CL_DEVICE_PARTITION_PROPERTIES 0x1044
|
||||
#define CL_DEVICE_PARTITION_AFFINITY_DOMAIN 0x1045
|
||||
#define CL_DEVICE_PARTITION_TYPE 0x1046
|
||||
#define CL_DEVICE_REFERENCE_COUNT 0x1047
|
||||
#define CL_DEVICE_PREFERRED_INTEROP_USER_SYNC 0x1048
|
||||
#define CL_DEVICE_PRINTF_BUFFER_SIZE 0x1049
|
||||
#define CL_DEVICE_IMAGE_PITCH_ALIGNMENT 0x104A
|
||||
#define CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT 0x104B
|
||||
|
||||
/* cl_device_fp_config - bitfield */
|
||||
#define CL_FP_DENORM (1 << 0)
|
||||
@@ -289,7 +242,6 @@ typedef struct _cl_buffer_region {
|
||||
#define CL_FP_ROUND_TO_INF (1 << 4)
|
||||
#define CL_FP_FMA (1 << 5)
|
||||
#define CL_FP_SOFT_FLOAT (1 << 6)
|
||||
#define CL_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT (1 << 7)
|
||||
|
||||
/* cl_device_mem_cache_type */
|
||||
#define CL_NONE 0x0
|
||||
@@ -314,23 +266,8 @@ typedef struct _cl_buffer_region {
|
||||
#define CL_CONTEXT_PROPERTIES 0x1082
|
||||
#define CL_CONTEXT_NUM_DEVICES 0x1083
|
||||
|
||||
/* cl_context_properties */
|
||||
/* cl_context_info + cl_context_properties */
|
||||
#define CL_CONTEXT_PLATFORM 0x1084
|
||||
#define CL_CONTEXT_INTEROP_USER_SYNC 0x1085
|
||||
|
||||
/* cl_device_partition_property */
|
||||
#define CL_DEVICE_PARTITION_EQUALLY 0x1086
|
||||
#define CL_DEVICE_PARTITION_BY_COUNTS 0x1087
|
||||
#define CL_DEVICE_PARTITION_BY_COUNTS_LIST_END 0x0
|
||||
#define CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN 0x1088
|
||||
|
||||
/* cl_device_affinity_domain */
|
||||
#define CL_DEVICE_AFFINITY_DOMAIN_NUMA (1 << 0)
|
||||
#define CL_DEVICE_AFFINITY_DOMAIN_L4_CACHE (1 << 1)
|
||||
#define CL_DEVICE_AFFINITY_DOMAIN_L3_CACHE (1 << 2)
|
||||
#define CL_DEVICE_AFFINITY_DOMAIN_L2_CACHE (1 << 3)
|
||||
#define CL_DEVICE_AFFINITY_DOMAIN_L1_CACHE (1 << 4)
|
||||
#define CL_DEVICE_AFFINITY_DOMAIN_NEXT_PARTITIONABLE (1 << 5)
|
||||
|
||||
/* cl_command_queue_info */
|
||||
#define CL_QUEUE_CONTEXT 0x1090
|
||||
@@ -345,14 +282,6 @@ typedef struct _cl_buffer_region {
|
||||
#define CL_MEM_USE_HOST_PTR (1 << 3)
|
||||
#define CL_MEM_ALLOC_HOST_PTR (1 << 4)
|
||||
#define CL_MEM_COPY_HOST_PTR (1 << 5)
|
||||
/* reserved (1 << 6) */
|
||||
#define CL_MEM_HOST_WRITE_ONLY (1 << 7)
|
||||
#define CL_MEM_HOST_READ_ONLY (1 << 8)
|
||||
#define CL_MEM_HOST_NO_ACCESS (1 << 9)
|
||||
|
||||
/* cl_mem_migration_flags - bitfield */
|
||||
#define CL_MIGRATE_MEM_OBJECT_HOST (1 << 0)
|
||||
#define CL_MIGRATE_MEM_OBJECT_CONTENT_UNDEFINED (1 << 1)
|
||||
|
||||
/* cl_channel_order */
|
||||
#define CL_R 0x10B0
|
||||
@@ -368,8 +297,6 @@ typedef struct _cl_buffer_region {
|
||||
#define CL_Rx 0x10BA
|
||||
#define CL_RGx 0x10BB
|
||||
#define CL_RGBx 0x10BC
|
||||
#define CL_DEPTH 0x10BD
|
||||
#define CL_DEPTH_STENCIL 0x10BE
|
||||
|
||||
/* cl_channel_type */
|
||||
#define CL_SNORM_INT8 0x10D0
|
||||
@@ -387,16 +314,11 @@ typedef struct _cl_buffer_region {
|
||||
#define CL_UNSIGNED_INT32 0x10DC
|
||||
#define CL_HALF_FLOAT 0x10DD
|
||||
#define CL_FLOAT 0x10DE
|
||||
#define CL_UNORM_INT24 0x10DF
|
||||
|
||||
/* cl_mem_object_type */
|
||||
#define CL_MEM_OBJECT_BUFFER 0x10F0
|
||||
#define CL_MEM_OBJECT_IMAGE2D 0x10F1
|
||||
#define CL_MEM_OBJECT_IMAGE3D 0x10F2
|
||||
#define CL_MEM_OBJECT_IMAGE2D_ARRAY 0x10F3
|
||||
#define CL_MEM_OBJECT_IMAGE1D 0x10F4
|
||||
#define CL_MEM_OBJECT_IMAGE1D_ARRAY 0x10F5
|
||||
#define CL_MEM_OBJECT_IMAGE1D_BUFFER 0x10F6
|
||||
|
||||
/* cl_mem_info */
|
||||
#define CL_MEM_TYPE 0x1100
|
||||
@@ -417,10 +339,6 @@ typedef struct _cl_buffer_region {
|
||||
#define CL_IMAGE_WIDTH 0x1114
|
||||
#define CL_IMAGE_HEIGHT 0x1115
|
||||
#define CL_IMAGE_DEPTH 0x1116
|
||||
#define CL_IMAGE_ARRAY_SIZE 0x1117
|
||||
#define CL_IMAGE_BUFFER 0x1118
|
||||
#define CL_IMAGE_NUM_MIP_LEVELS 0x1119
|
||||
#define CL_IMAGE_NUM_SAMPLES 0x111A
|
||||
|
||||
/* cl_addressing_mode */
|
||||
#define CL_ADDRESS_NONE 0x1130
|
||||
@@ -443,7 +361,6 @@ typedef struct _cl_buffer_region {
|
||||
/* cl_map_flags - bitfield */
|
||||
#define CL_MAP_READ (1 << 0)
|
||||
#define CL_MAP_WRITE (1 << 1)
|
||||
#define CL_MAP_WRITE_INVALIDATE_REGION (1 << 2)
|
||||
|
||||
/* cl_program_info */
|
||||
#define CL_PROGRAM_REFERENCE_COUNT 0x1160
|
||||
@@ -453,20 +370,11 @@ typedef struct _cl_buffer_region {
|
||||
#define CL_PROGRAM_SOURCE 0x1164
|
||||
#define CL_PROGRAM_BINARY_SIZES 0x1165
|
||||
#define CL_PROGRAM_BINARIES 0x1166
|
||||
#define CL_PROGRAM_NUM_KERNELS 0x1167
|
||||
#define CL_PROGRAM_KERNEL_NAMES 0x1168
|
||||
|
||||
/* cl_program_build_info */
|
||||
#define CL_PROGRAM_BUILD_STATUS 0x1181
|
||||
#define CL_PROGRAM_BUILD_OPTIONS 0x1182
|
||||
#define CL_PROGRAM_BUILD_LOG 0x1183
|
||||
#define CL_PROGRAM_BINARY_TYPE 0x1184
|
||||
|
||||
/* cl_program_binary_type */
|
||||
#define CL_PROGRAM_BINARY_TYPE_NONE 0x0
|
||||
#define CL_PROGRAM_BINARY_TYPE_COMPILED_OBJECT 0x1
|
||||
#define CL_PROGRAM_BINARY_TYPE_LIBRARY 0x2
|
||||
#define CL_PROGRAM_BINARY_TYPE_EXECUTABLE 0x4
|
||||
|
||||
/* cl_build_status */
|
||||
#define CL_BUILD_SUCCESS 0
|
||||
@@ -480,32 +388,6 @@ typedef struct _cl_buffer_region {
|
||||
#define CL_KERNEL_REFERENCE_COUNT 0x1192
|
||||
#define CL_KERNEL_CONTEXT 0x1193
|
||||
#define CL_KERNEL_PROGRAM 0x1194
|
||||
#define CL_KERNEL_ATTRIBUTES 0x1195
|
||||
|
||||
/* cl_kernel_arg_info */
|
||||
#define CL_KERNEL_ARG_ADDRESS_QUALIFIER 0x1196
|
||||
#define CL_KERNEL_ARG_ACCESS_QUALIFIER 0x1197
|
||||
#define CL_KERNEL_ARG_TYPE_NAME 0x1198
|
||||
#define CL_KERNEL_ARG_TYPE_QUALIFIER 0x1199
|
||||
#define CL_KERNEL_ARG_NAME 0x119A
|
||||
|
||||
/* cl_kernel_arg_address_qualifier */
|
||||
#define CL_KERNEL_ARG_ADDRESS_GLOBAL 0x119B
|
||||
#define CL_KERNEL_ARG_ADDRESS_LOCAL 0x119C
|
||||
#define CL_KERNEL_ARG_ADDRESS_CONSTANT 0x119D
|
||||
#define CL_KERNEL_ARG_ADDRESS_PRIVATE 0x119E
|
||||
|
||||
/* cl_kernel_arg_access_qualifier */
|
||||
#define CL_KERNEL_ARG_ACCESS_READ_ONLY 0x11A0
|
||||
#define CL_KERNEL_ARG_ACCESS_WRITE_ONLY 0x11A1
|
||||
#define CL_KERNEL_ARG_ACCESS_READ_WRITE 0x11A2
|
||||
#define CL_KERNEL_ARG_ACCESS_NONE 0x11A3
|
||||
|
||||
/* cl_kernel_arg_type_qualifer */
|
||||
#define CL_KERNEL_ARG_TYPE_NONE 0
|
||||
#define CL_KERNEL_ARG_TYPE_CONST (1 << 0)
|
||||
#define CL_KERNEL_ARG_TYPE_RESTRICT (1 << 1)
|
||||
#define CL_KERNEL_ARG_TYPE_VOLATILE (1 << 2)
|
||||
|
||||
/* cl_kernel_work_group_info */
|
||||
#define CL_KERNEL_WORK_GROUP_SIZE 0x11B0
|
||||
@@ -513,7 +395,6 @@ typedef struct _cl_buffer_region {
|
||||
#define CL_KERNEL_LOCAL_MEM_SIZE 0x11B2
|
||||
#define CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE 0x11B3
|
||||
#define CL_KERNEL_PRIVATE_MEM_SIZE 0x11B4
|
||||
#define CL_KERNEL_GLOBAL_WORK_SIZE 0x11B5
|
||||
|
||||
/* cl_event_info */
|
||||
#define CL_EVENT_COMMAND_QUEUE 0x11D0
|
||||
@@ -544,17 +425,13 @@ typedef struct _cl_buffer_region {
|
||||
#define CL_COMMAND_WRITE_BUFFER_RECT 0x1202
|
||||
#define CL_COMMAND_COPY_BUFFER_RECT 0x1203
|
||||
#define CL_COMMAND_USER 0x1204
|
||||
#define CL_COMMAND_BARRIER 0x1205
|
||||
#define CL_COMMAND_MIGRATE_MEM_OBJECTS 0x1206
|
||||
#define CL_COMMAND_FILL_BUFFER 0x1207
|
||||
#define CL_COMMAND_FILL_IMAGE 0x1208
|
||||
|
||||
/* command execution status */
|
||||
#define CL_COMPLETE 0x0
|
||||
#define CL_RUNNING 0x1
|
||||
#define CL_SUBMITTED 0x2
|
||||
#define CL_QUEUED 0x3
|
||||
|
||||
|
||||
/* cl_buffer_create_type */
|
||||
#define CL_BUFFER_CREATE_TYPE_REGION 0x1220
|
||||
|
||||
@@ -593,35 +470,22 @@ clGetDeviceInfo(cl_device_id /* device */,
|
||||
size_t /* param_value_size */,
|
||||
void * /* param_value */,
|
||||
size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clCreateSubDevices(cl_device_id /* in_device */,
|
||||
const cl_device_partition_property * /* properties */,
|
||||
cl_uint /* num_devices */,
|
||||
cl_device_id * /* out_devices */,
|
||||
cl_uint * /* num_devices_ret */) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clRetainDevice(cl_device_id /* device */) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clReleaseDevice(cl_device_id /* device */) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
/* Context APIs */
|
||||
extern CL_API_ENTRY cl_context CL_API_CALL
|
||||
clCreateContext(const cl_context_properties * /* properties */,
|
||||
cl_uint /* num_devices */,
|
||||
const cl_device_id * /* devices */,
|
||||
cl_uint /* num_devices */,
|
||||
const cl_device_id * /* devices */,
|
||||
void (CL_CALLBACK * /* pfn_notify */)(const char *, const void *, size_t, void *),
|
||||
void * /* user_data */,
|
||||
cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
|
||||
void * /* user_data */,
|
||||
cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_context CL_API_CALL
|
||||
clCreateContextFromType(const cl_context_properties * /* properties */,
|
||||
cl_device_type /* device_type */,
|
||||
cl_device_type /* device_type */,
|
||||
void (CL_CALLBACK * /* pfn_notify*/ )(const char *, const void *, size_t, void *),
|
||||
void * /* user_data */,
|
||||
cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
|
||||
void * /* user_data */,
|
||||
cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clRetainContext(cl_context /* context */) CL_API_SUFFIX__VERSION_1_0;
|
||||
@@ -656,6 +520,25 @@ clGetCommandQueueInfo(cl_command_queue /* command_queue */,
|
||||
void * /* param_value */,
|
||||
size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
#ifdef CL_USE_DEPRECATED_OPENCL_1_0_APIS
|
||||
#warning CL_USE_DEPRECATED_OPENCL_1_0_APIS is defined. These APIs are unsupported and untested in OpenCL 1.1!
|
||||
/*
|
||||
* WARNING:
|
||||
* This API introduces mutable state into the OpenCL implementation. It has been REMOVED
|
||||
* to better facilitate thread safety. The 1.0 API is not thread safe. It is not tested by the
|
||||
* OpenCL 1.1 conformance test, and consequently may not work or may not work dependably.
|
||||
* It is likely to be non-performant. Use of this API is not advised. Use at your own risk.
|
||||
*
|
||||
* Software developers previously relying on this API are instructed to set the command queue
|
||||
* properties when creating the queue, instead.
|
||||
*/
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clSetCommandQueueProperty(cl_command_queue /* command_queue */,
|
||||
cl_command_queue_properties /* properties */,
|
||||
cl_bool /* enable */,
|
||||
cl_command_queue_properties * /* old_properties */) CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED;
|
||||
#endif /* CL_USE_DEPRECATED_OPENCL_1_0_APIS */
|
||||
|
||||
/* Memory Object APIs */
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||||
clCreateBuffer(cl_context /* context */,
|
||||
@@ -672,12 +555,26 @@ clCreateSubBuffer(cl_mem /* buffer */,
|
||||
cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_1;
|
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||||
clCreateImage(cl_context /* context */,
|
||||
cl_mem_flags /* flags */,
|
||||
const cl_image_format * /* image_format */,
|
||||
const cl_image_desc * /* image_desc */,
|
||||
void * /* host_ptr */,
|
||||
cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_2;
|
||||
clCreateImage2D(cl_context /* context */,
|
||||
cl_mem_flags /* flags */,
|
||||
const cl_image_format * /* image_format */,
|
||||
size_t /* image_width */,
|
||||
size_t /* image_height */,
|
||||
size_t /* image_row_pitch */,
|
||||
void * /* host_ptr */,
|
||||
cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||||
clCreateImage3D(cl_context /* context */,
|
||||
cl_mem_flags /* flags */,
|
||||
const cl_image_format * /* image_format */,
|
||||
size_t /* image_width */,
|
||||
size_t /* image_height */,
|
||||
size_t /* image_depth */,
|
||||
size_t /* image_row_pitch */,
|
||||
size_t /* image_slice_pitch */,
|
||||
void * /* host_ptr */,
|
||||
cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clRetainMemObject(cl_mem /* memobj */) CL_API_SUFFIX__VERSION_1_0;
|
||||
@@ -712,7 +609,7 @@ clSetMemObjectDestructorCallback( cl_mem /* memobj */,
|
||||
void (CL_CALLBACK * /*pfn_notify*/)( cl_mem /* memobj */, void* /*user_data*/),
|
||||
void * /*user_data */ ) CL_API_SUFFIX__VERSION_1_1;
|
||||
|
||||
/* Sampler APIs */
|
||||
/* Sampler APIs */
|
||||
extern CL_API_ENTRY cl_sampler CL_API_CALL
|
||||
clCreateSampler(cl_context /* context */,
|
||||
cl_bool /* normalized_coords */,
|
||||
@@ -750,13 +647,6 @@ clCreateProgramWithBinary(cl_context /* context */,
|
||||
cl_int * /* binary_status */,
|
||||
cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_program CL_API_CALL
|
||||
clCreateProgramWithBuiltInKernels(cl_context /* context */,
|
||||
cl_uint /* num_devices */,
|
||||
const cl_device_id * /* device_list */,
|
||||
const char * /* kernel_names */,
|
||||
cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clRetainProgram(cl_program /* program */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
@@ -772,30 +662,7 @@ clBuildProgram(cl_program /* program */,
|
||||
void * /* user_data */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clCompileProgram(cl_program /* program */,
|
||||
cl_uint /* num_devices */,
|
||||
const cl_device_id * /* device_list */,
|
||||
const char * /* options */,
|
||||
cl_uint /* num_input_headers */,
|
||||
const cl_program * /* input_headers */,
|
||||
const char ** /* header_include_names */,
|
||||
void (CL_CALLBACK * /* pfn_notify */)(cl_program /* program */, void * /* user_data */),
|
||||
void * /* user_data */) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
extern CL_API_ENTRY cl_program CL_API_CALL
|
||||
clLinkProgram(cl_context /* context */,
|
||||
cl_uint /* num_devices */,
|
||||
const cl_device_id * /* device_list */,
|
||||
const char * /* options */,
|
||||
cl_uint /* num_input_programs */,
|
||||
const cl_program * /* input_programs */,
|
||||
void (CL_CALLBACK * /* pfn_notify */)(cl_program /* program */, void * /* user_data */),
|
||||
void * /* user_data */,
|
||||
cl_int * /* errcode_ret */ ) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clUnloadPlatformCompiler(cl_platform_id /* platform */) CL_API_SUFFIX__VERSION_1_2;
|
||||
clUnloadCompiler(void) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetProgramInfo(cl_program /* program */,
|
||||
@@ -843,14 +710,6 @@ clGetKernelInfo(cl_kernel /* kernel */,
|
||||
void * /* param_value */,
|
||||
size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetKernelArgInfo(cl_kernel /* kernel */,
|
||||
cl_uint /* arg_indx */,
|
||||
cl_kernel_arg_info /* param_name */,
|
||||
size_t /* param_value_size */,
|
||||
void * /* param_value */,
|
||||
size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetKernelWorkGroupInfo(cl_kernel /* kernel */,
|
||||
cl_device_id /* device */,
|
||||
@@ -859,7 +718,7 @@ clGetKernelWorkGroupInfo(cl_kernel /* kernel */,
|
||||
void * /* param_value */,
|
||||
size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
/* Event Object APIs */
|
||||
/* Event Object APIs */
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clWaitForEvents(cl_uint /* num_events */,
|
||||
const cl_event * /* event_list */) CL_API_SUFFIX__VERSION_1_0;
|
||||
@@ -891,7 +750,7 @@ clSetEventCallback( cl_event /* event */,
|
||||
void (CL_CALLBACK * /* pfn_notify */)(cl_event, cl_int, void *),
|
||||
void * /* user_data */) CL_API_SUFFIX__VERSION_1_1;
|
||||
|
||||
/* Profiling APIs */
|
||||
/* Profiling APIs */
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetEventProfilingInfo(cl_event /* event */,
|
||||
cl_profiling_info /* param_name */,
|
||||
@@ -912,7 +771,7 @@ clEnqueueReadBuffer(cl_command_queue /* command_queue */,
|
||||
cl_mem /* buffer */,
|
||||
cl_bool /* blocking_read */,
|
||||
size_t /* offset */,
|
||||
size_t /* size */,
|
||||
size_t /* cb */,
|
||||
void * /* ptr */,
|
||||
cl_uint /* num_events_in_wait_list */,
|
||||
const cl_event * /* event_wait_list */,
|
||||
@@ -922,8 +781,8 @@ extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueReadBufferRect(cl_command_queue /* command_queue */,
|
||||
cl_mem /* buffer */,
|
||||
cl_bool /* blocking_read */,
|
||||
const size_t * /* buffer_offset */,
|
||||
const size_t * /* host_offset */,
|
||||
const size_t * /* buffer_origin */,
|
||||
const size_t * /* host_origin */,
|
||||
const size_t * /* region */,
|
||||
size_t /* buffer_row_pitch */,
|
||||
size_t /* buffer_slice_pitch */,
|
||||
@@ -939,7 +798,7 @@ clEnqueueWriteBuffer(cl_command_queue /* command_queue */,
|
||||
cl_mem /* buffer */,
|
||||
cl_bool /* blocking_write */,
|
||||
size_t /* offset */,
|
||||
size_t /* size */,
|
||||
size_t /* cb */,
|
||||
const void * /* ptr */,
|
||||
cl_uint /* num_events_in_wait_list */,
|
||||
const cl_event * /* event_wait_list */,
|
||||
@@ -949,8 +808,8 @@ extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueWriteBufferRect(cl_command_queue /* command_queue */,
|
||||
cl_mem /* buffer */,
|
||||
cl_bool /* blocking_write */,
|
||||
const size_t * /* buffer_offset */,
|
||||
const size_t * /* host_offset */,
|
||||
const size_t * /* buffer_origin */,
|
||||
const size_t * /* host_origin */,
|
||||
const size_t * /* region */,
|
||||
size_t /* buffer_row_pitch */,
|
||||
size_t /* buffer_slice_pitch */,
|
||||
@@ -961,24 +820,13 @@ clEnqueueWriteBufferRect(cl_command_queue /* command_queue */,
|
||||
const cl_event * /* event_wait_list */,
|
||||
cl_event * /* event */) CL_API_SUFFIX__VERSION_1_1;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueFillBuffer(cl_command_queue /* command_queue */,
|
||||
cl_mem /* buffer */,
|
||||
const void * /* pattern */,
|
||||
size_t /* pattern_size */,
|
||||
size_t /* offset */,
|
||||
size_t /* size */,
|
||||
cl_uint /* num_events_in_wait_list */,
|
||||
const cl_event * /* event_wait_list */,
|
||||
cl_event * /* event */) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueCopyBuffer(cl_command_queue /* command_queue */,
|
||||
cl_mem /* src_buffer */,
|
||||
cl_mem /* dst_buffer */,
|
||||
size_t /* src_offset */,
|
||||
size_t /* dst_offset */,
|
||||
size_t /* size */,
|
||||
size_t /* cb */,
|
||||
cl_uint /* num_events_in_wait_list */,
|
||||
const cl_event * /* event_wait_list */,
|
||||
cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
|
||||
@@ -1024,16 +872,6 @@ clEnqueueWriteImage(cl_command_queue /* command_queue */,
|
||||
const cl_event * /* event_wait_list */,
|
||||
cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueFillImage(cl_command_queue /* command_queue */,
|
||||
cl_mem /* image */,
|
||||
const void * /* fill_color */,
|
||||
const size_t * /* origin[3] */,
|
||||
const size_t * /* region[3] */,
|
||||
cl_uint /* num_events_in_wait_list */,
|
||||
const cl_event * /* event_wait_list */,
|
||||
cl_event * /* event */) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueCopyImage(cl_command_queue /* command_queue */,
|
||||
cl_mem /* src_image */,
|
||||
@@ -1073,7 +911,7 @@ clEnqueueMapBuffer(cl_command_queue /* command_queue */,
|
||||
cl_bool /* blocking_map */,
|
||||
cl_map_flags /* map_flags */,
|
||||
size_t /* offset */,
|
||||
size_t /* size */,
|
||||
size_t /* cb */,
|
||||
cl_uint /* num_events_in_wait_list */,
|
||||
const cl_event * /* event_wait_list */,
|
||||
cl_event * /* event */,
|
||||
@@ -1101,15 +939,6 @@ clEnqueueUnmapMemObject(cl_command_queue /* command_queue */,
|
||||
const cl_event * /* event_wait_list */,
|
||||
cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueMigrateMemObjects(cl_command_queue /* command_queue */,
|
||||
cl_uint /* num_mem_objects */,
|
||||
const cl_mem * /* mem_objects */,
|
||||
cl_mem_migration_flags /* flags */,
|
||||
cl_uint /* num_events_in_wait_list */,
|
||||
const cl_event * /* event_wait_list */,
|
||||
cl_event * /* event */) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueNDRangeKernel(cl_command_queue /* command_queue */,
|
||||
cl_kernel /* kernel */,
|
||||
@@ -1130,7 +959,7 @@ clEnqueueTask(cl_command_queue /* command_queue */,
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueNativeKernel(cl_command_queue /* command_queue */,
|
||||
void (CL_CALLBACK * /*user_func*/)(void *),
|
||||
void (*user_func)(void *),
|
||||
void * /* args */,
|
||||
size_t /* cb_args */,
|
||||
cl_uint /* num_mem_objects */,
|
||||
@@ -1141,17 +970,16 @@ clEnqueueNativeKernel(cl_command_queue /* command_queue */,
|
||||
cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueMarkerWithWaitList(cl_command_queue /* command_queue */,
|
||||
cl_uint /* num_events_in_wait_list */,
|
||||
const cl_event * /* event_wait_list */,
|
||||
cl_event * /* event */) CL_API_SUFFIX__VERSION_1_2;
|
||||
clEnqueueMarker(cl_command_queue /* command_queue */,
|
||||
cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueBarrierWithWaitList(cl_command_queue /* command_queue */,
|
||||
cl_uint /* num_events_in_wait_list */,
|
||||
const cl_event * /* event_wait_list */,
|
||||
cl_event * /* event */) CL_API_SUFFIX__VERSION_1_2;
|
||||
clEnqueueWaitForEvents(cl_command_queue /* command_queue */,
|
||||
cl_uint /* num_events */,
|
||||
const cl_event * /* event_list */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueBarrier(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
/* Extension function access
|
||||
*
|
||||
@@ -1160,51 +988,7 @@ clEnqueueBarrierWithWaitList(cl_command_queue /* command_queue */,
|
||||
* check to make sure the address is not NULL, before using or
|
||||
* calling the returned function address.
|
||||
*/
|
||||
extern CL_API_ENTRY void * CL_API_CALL
|
||||
clGetExtensionFunctionAddressForPlatform(cl_platform_id /* platform */,
|
||||
const char * /* func_name */) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
|
||||
/* Deprecated OpenCL 1.1 APIs */
|
||||
extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL
|
||||
clCreateImage2D(cl_context /* context */,
|
||||
cl_mem_flags /* flags */,
|
||||
const cl_image_format * /* image_format */,
|
||||
size_t /* image_width */,
|
||||
size_t /* image_height */,
|
||||
size_t /* image_row_pitch */,
|
||||
void * /* host_ptr */,
|
||||
cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
|
||||
|
||||
extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL
|
||||
clCreateImage3D(cl_context /* context */,
|
||||
cl_mem_flags /* flags */,
|
||||
const cl_image_format * /* image_format */,
|
||||
size_t /* image_width */,
|
||||
size_t /* image_height */,
|
||||
size_t /* image_depth */,
|
||||
size_t /* image_row_pitch */,
|
||||
size_t /* image_slice_pitch */,
|
||||
void * /* host_ptr */,
|
||||
cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
|
||||
|
||||
extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL
|
||||
clEnqueueMarker(cl_command_queue /* command_queue */,
|
||||
cl_event * /* event */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
|
||||
|
||||
extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL
|
||||
clEnqueueWaitForEvents(cl_command_queue /* command_queue */,
|
||||
cl_uint /* num_events */,
|
||||
const cl_event * /* event_list */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
|
||||
|
||||
extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL
|
||||
clEnqueueBarrier(cl_command_queue /* command_queue */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
|
||||
|
||||
extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL
|
||||
clUnloadCompiler(void) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
|
||||
|
||||
extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED void * CL_API_CALL
|
||||
clGetExtensionFunctionAddress(const char * /* func_name */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
|
||||
extern CL_API_ENTRY void * CL_API_CALL clGetExtensionFunctionAddress(const char * /* func_name */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@@ -1,126 +0,0 @@
|
||||
/**********************************************************************************
|
||||
* Copyright (c) 2008-2012 The Khronos Group Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and/or associated documentation files (the
|
||||
* "Materials"), to deal in the Materials without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Materials, and to
|
||||
* permit persons to whom the Materials are 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 Materials.
|
||||
*
|
||||
* THE MATERIALS ARE 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
|
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
**********************************************************************************/
|
||||
|
||||
/* $Revision: 11708 $ on $Date: 2010-06-13 23:36:24 -0700 (Sun, 13 Jun 2010) $ */
|
||||
|
||||
#ifndef __OPENCL_CL_D3D10_H
|
||||
#define __OPENCL_CL_D3D10_H
|
||||
|
||||
#include <d3d10.h>
|
||||
#include <CL/cl.h>
|
||||
#include <CL/cl_platform.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/******************************************************************************
|
||||
* cl_khr_d3d10_sharing */
|
||||
#define cl_khr_d3d10_sharing 1
|
||||
|
||||
typedef cl_uint cl_d3d10_device_source_khr;
|
||||
typedef cl_uint cl_d3d10_device_set_khr;
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
/* Error Codes */
|
||||
#define CL_INVALID_D3D10_DEVICE_KHR -1002
|
||||
#define CL_INVALID_D3D10_RESOURCE_KHR -1003
|
||||
#define CL_D3D10_RESOURCE_ALREADY_ACQUIRED_KHR -1004
|
||||
#define CL_D3D10_RESOURCE_NOT_ACQUIRED_KHR -1005
|
||||
|
||||
/* cl_d3d10_device_source_nv */
|
||||
#define CL_D3D10_DEVICE_KHR 0x4010
|
||||
#define CL_D3D10_DXGI_ADAPTER_KHR 0x4011
|
||||
|
||||
/* cl_d3d10_device_set_nv */
|
||||
#define CL_PREFERRED_DEVICES_FOR_D3D10_KHR 0x4012
|
||||
#define CL_ALL_DEVICES_FOR_D3D10_KHR 0x4013
|
||||
|
||||
/* cl_context_info */
|
||||
#define CL_CONTEXT_D3D10_DEVICE_KHR 0x4014
|
||||
#define CL_CONTEXT_D3D10_PREFER_SHARED_RESOURCES_KHR 0x402C
|
||||
|
||||
/* cl_mem_info */
|
||||
#define CL_MEM_D3D10_RESOURCE_KHR 0x4015
|
||||
|
||||
/* cl_image_info */
|
||||
#define CL_IMAGE_D3D10_SUBRESOURCE_KHR 0x4016
|
||||
|
||||
/* cl_command_type */
|
||||
#define CL_COMMAND_ACQUIRE_D3D10_OBJECTS_KHR 0x4017
|
||||
#define CL_COMMAND_RELEASE_D3D10_OBJECTS_KHR 0x4018
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetDeviceIDsFromD3D10KHR_fn)(
|
||||
cl_platform_id platform,
|
||||
cl_d3d10_device_source_khr d3d_device_source,
|
||||
void * d3d_object,
|
||||
cl_d3d10_device_set_khr d3d_device_set,
|
||||
cl_uint num_entries,
|
||||
cl_device_id * devices,
|
||||
cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D10BufferKHR_fn)(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
ID3D10Buffer * resource,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D10Texture2DKHR_fn)(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
ID3D10Texture2D * resource,
|
||||
UINT subresource,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D10Texture3DKHR_fn)(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
ID3D10Texture3D * resource,
|
||||
UINT subresource,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireD3D10ObjectsKHR_fn)(
|
||||
cl_command_queue command_queue,
|
||||
cl_uint num_objects,
|
||||
const cl_mem * mem_objects,
|
||||
cl_uint num_events_in_wait_list,
|
||||
const cl_event * event_wait_list,
|
||||
cl_event * event) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseD3D10ObjectsKHR_fn)(
|
||||
cl_command_queue command_queue,
|
||||
cl_uint num_objects,
|
||||
const cl_mem * mem_objects,
|
||||
cl_uint num_events_in_wait_list,
|
||||
const cl_event * event_wait_list,
|
||||
cl_event * event) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __OPENCL_CL_D3D10_H */
|
||||
|
@@ -1,126 +0,0 @@
|
||||
/**********************************************************************************
|
||||
* Copyright (c) 2008-2012 The Khronos Group Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and/or associated documentation files (the
|
||||
* "Materials"), to deal in the Materials without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Materials, and to
|
||||
* permit persons to whom the Materials are 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 Materials.
|
||||
*
|
||||
* THE MATERIALS ARE 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
|
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
**********************************************************************************/
|
||||
|
||||
/* $Revision: 11708 $ on $Date: 2010-06-13 23:36:24 -0700 (Sun, 13 Jun 2010) $ */
|
||||
|
||||
#ifndef __OPENCL_CL_D3D11_H
|
||||
#define __OPENCL_CL_D3D11_H
|
||||
|
||||
#include <d3d11.h>
|
||||
#include <CL/cl.h>
|
||||
#include <CL/cl_platform.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/******************************************************************************
|
||||
* cl_khr_d3d11_sharing */
|
||||
#define cl_khr_d3d11_sharing 1
|
||||
|
||||
typedef cl_uint cl_d3d11_device_source_khr;
|
||||
typedef cl_uint cl_d3d11_device_set_khr;
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
/* Error Codes */
|
||||
#define CL_INVALID_D3D11_DEVICE_KHR -1006
|
||||
#define CL_INVALID_D3D11_RESOURCE_KHR -1007
|
||||
#define CL_D3D11_RESOURCE_ALREADY_ACQUIRED_KHR -1008
|
||||
#define CL_D3D11_RESOURCE_NOT_ACQUIRED_KHR -1009
|
||||
|
||||
/* cl_d3d11_device_source */
|
||||
#define CL_D3D11_DEVICE_KHR 0x4019
|
||||
#define CL_D3D11_DXGI_ADAPTER_KHR 0x401A
|
||||
|
||||
/* cl_d3d11_device_set */
|
||||
#define CL_PREFERRED_DEVICES_FOR_D3D11_KHR 0x401B
|
||||
#define CL_ALL_DEVICES_FOR_D3D11_KHR 0x401C
|
||||
|
||||
/* cl_context_info */
|
||||
#define CL_CONTEXT_D3D11_DEVICE_KHR 0x401D
|
||||
#define CL_CONTEXT_D3D11_PREFER_SHARED_RESOURCES_KHR 0x402D
|
||||
|
||||
/* cl_mem_info */
|
||||
#define CL_MEM_D3D11_RESOURCE_KHR 0x401E
|
||||
|
||||
/* cl_image_info */
|
||||
#define CL_IMAGE_D3D11_SUBRESOURCE_KHR 0x401F
|
||||
|
||||
/* cl_command_type */
|
||||
#define CL_COMMAND_ACQUIRE_D3D11_OBJECTS_KHR 0x4020
|
||||
#define CL_COMMAND_RELEASE_D3D11_OBJECTS_KHR 0x4021
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetDeviceIDsFromD3D11KHR_fn)(
|
||||
cl_platform_id platform,
|
||||
cl_d3d11_device_source_khr d3d_device_source,
|
||||
void * d3d_object,
|
||||
cl_d3d11_device_set_khr d3d_device_set,
|
||||
cl_uint num_entries,
|
||||
cl_device_id * devices,
|
||||
cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D11BufferKHR_fn)(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
ID3D11Buffer * resource,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D11Texture2DKHR_fn)(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
ID3D11Texture2D * resource,
|
||||
UINT subresource,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D11Texture3DKHR_fn)(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
ID3D11Texture3D * resource,
|
||||
UINT subresource,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireD3D11ObjectsKHR_fn)(
|
||||
cl_command_queue command_queue,
|
||||
cl_uint num_objects,
|
||||
const cl_mem * mem_objects,
|
||||
cl_uint num_events_in_wait_list,
|
||||
const cl_event * event_wait_list,
|
||||
cl_event * event) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseD3D11ObjectsKHR_fn)(
|
||||
cl_command_queue command_queue,
|
||||
cl_uint num_objects,
|
||||
const cl_mem * mem_objects,
|
||||
cl_uint num_events_in_wait_list,
|
||||
const cl_event * event_wait_list,
|
||||
cl_event * event) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __OPENCL_CL_D3D11_H */
|
||||
|
@@ -1,127 +0,0 @@
|
||||
/**********************************************************************************
|
||||
* Copyright (c) 2008-2012 The Khronos Group Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and/or associated documentation files (the
|
||||
* "Materials"), to deal in the Materials without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Materials, and to
|
||||
* permit persons to whom the Materials are 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 Materials.
|
||||
*
|
||||
* THE MATERIALS ARE 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
|
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
**********************************************************************************/
|
||||
|
||||
/* $Revision: 11708 $ on $Date: 2010-06-13 23:36:24 -0700 (Sun, 13 Jun 2010) $ */
|
||||
|
||||
#ifndef __OPENCL_CL_DX9_MEDIA_SHARING_H
|
||||
#define __OPENCL_CL_DX9_MEDIA_SHARING_H
|
||||
|
||||
#include <CL/cl.h>
|
||||
#include <CL/cl_platform.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/******************************************************************************
|
||||
/* cl_khr_dx9_media_sharing */
|
||||
#define cl_khr_dx9_media_sharing 1
|
||||
|
||||
typedef cl_uint cl_dx9_media_adapter_type_khr;
|
||||
typedef cl_uint cl_dx9_media_adapter_set_khr;
|
||||
|
||||
#if defined(_WIN32)
|
||||
#include <d3d9.h>
|
||||
typedef struct _cl_dx9_surface_info_khr
|
||||
{
|
||||
IDirect3DSurface9 *resource;
|
||||
HANDLE shared_handle;
|
||||
} cl_dx9_surface_info_khr;
|
||||
#endif
|
||||
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
/* Error Codes */
|
||||
#define CL_INVALID_DX9_MEDIA_ADAPTER_KHR -1010
|
||||
#define CL_INVALID_DX9_MEDIA_SURFACE_KHR -1011
|
||||
#define CL_DX9_MEDIA_SURFACE_ALREADY_ACQUIRED_KHR -1012
|
||||
#define CL_DX9_MEDIA_SURFACE_NOT_ACQUIRED_KHR -1013
|
||||
|
||||
/* cl_media_adapter_type_khr */
|
||||
#define CL_ADAPTER_D3D9_KHR 0x2020
|
||||
#define CL_ADAPTER_D3D9EX_KHR 0x2021
|
||||
#define CL_ADAPTER_DXVA_KHR 0x2022
|
||||
|
||||
/* cl_media_adapter_set_khr */
|
||||
#define CL_PREFERRED_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR 0x2023
|
||||
#define CL_ALL_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR 0x2024
|
||||
|
||||
/* cl_context_info */
|
||||
#define CL_CONTEXT_ADAPTER_D3D9_KHR 0x2025
|
||||
#define CL_CONTEXT_ADAPTER_D3D9EX_KHR 0x2026
|
||||
#define CL_CONTEXT_ADAPTER_DXVA_KHR 0x2027
|
||||
|
||||
/* cl_mem_info */
|
||||
#define CL_MEM_DX9_MEDIA_ADAPTER_TYPE_KHR 0x2028
|
||||
#define CL_MEM_DX9_MEDIA_SURFACE_INFO_KHR 0x2029
|
||||
|
||||
/* cl_image_info */
|
||||
#define CL_IMAGE_DX9_MEDIA_PLANE_KHR 0x202A
|
||||
|
||||
/* cl_command_type */
|
||||
#define CL_COMMAND_ACQUIRE_DX9_MEDIA_SURFACES_KHR 0x202B
|
||||
#define CL_COMMAND_RELEASE_DX9_MEDIA_SURFACES_KHR 0x202C
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetDeviceIDsFromDX9MediaAdapterKHR_fn)(
|
||||
cl_platform_id platform,
|
||||
cl_uint num_media_adapters,
|
||||
cl_dx9_media_adapter_type_khr * media_adapter_type,
|
||||
void * media_adapters,
|
||||
cl_dx9_media_adapter_set_khr media_adapter_set,
|
||||
cl_uint num_entries,
|
||||
cl_device_id * devices,
|
||||
cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromDX9MediaSurfaceKHR_fn)(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
cl_dx9_media_adapter_type_khr adapter_type,
|
||||
void * surface_info,
|
||||
cl_uint plane,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireDX9MediaSurfacesKHR_fn)(
|
||||
cl_command_queue command_queue,
|
||||
cl_uint num_objects,
|
||||
const cl_mem * mem_objects,
|
||||
cl_uint num_events_in_wait_list,
|
||||
const cl_event * event_wait_list,
|
||||
cl_event * event) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseDX9MediaSurfacesKHR_fn)(
|
||||
cl_command_queue command_queue,
|
||||
cl_uint num_objects,
|
||||
const cl_mem * mem_objects,
|
||||
cl_uint num_events_in_wait_list,
|
||||
const cl_event * event_wait_list,
|
||||
cl_event * event) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __OPENCL_CL_DX9_MEDIA_SHARING_H */
|
||||
|
@@ -1,133 +0,0 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2008-2010 The Khronos Group Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and/or associated documentation files (the
|
||||
* "Materials"), to deal in the Materials without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Materials, and to
|
||||
* permit persons to whom the Materials are 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 Materials.
|
||||
*
|
||||
* THE MATERIALS ARE 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
|
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef __OPENCL_CL_EGL_H
|
||||
#define __OPENCL_CL_EGL_H
|
||||
|
||||
#ifdef __APPLE__
|
||||
|
||||
#else
|
||||
#include <CL/cl.h>
|
||||
#include <EGL/egl.h>
|
||||
#include <EGL/eglext.h>
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/* Command type for events created with clEnqueueAcquireEGLObjectsKHR */
|
||||
#define CL_COMMAND_EGL_FENCE_SYNC_OBJECT_KHR 0x202F
|
||||
#define CL_COMMAND_ACQUIRE_EGL_OBJECTS_KHR 0x202D
|
||||
#define CL_COMMAND_RELEASE_EGL_OBJECTS_KHR 0x202E
|
||||
|
||||
/* Error type for clCreateFromEGLImageKHR */
|
||||
#define CL_INVALID_EGL_OBJECT_KHR -1093
|
||||
#define CL_EGL_RESOURCE_NOT_ACQUIRED_KHR -1092
|
||||
|
||||
/* CLeglImageKHR is an opaque handle to an EGLImage */
|
||||
typedef void* CLeglImageKHR;
|
||||
|
||||
/* CLeglDisplayKHR is an opaque handle to an EGLDisplay */
|
||||
typedef void* CLeglDisplayKHR;
|
||||
|
||||
/* CLeglSyncKHR is an opaque handle to an EGLSync object */
|
||||
typedef void* CLeglSyncKHR;
|
||||
|
||||
/* properties passed to clCreateFromEGLImageKHR */
|
||||
typedef intptr_t cl_egl_image_properties_khr;
|
||||
|
||||
|
||||
#define cl_khr_egl_image 1
|
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||||
clCreateFromEGLImageKHR(cl_context /* context */,
|
||||
CLeglDisplayKHR /* egldisplay */,
|
||||
CLeglImageKHR /* eglimage */,
|
||||
cl_mem_flags /* flags */,
|
||||
const cl_egl_image_properties_khr * /* properties */,
|
||||
cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromEGLImageKHR_fn)(
|
||||
cl_context context,
|
||||
CLeglDisplayKHR egldisplay,
|
||||
CLeglImageKHR eglimage,
|
||||
cl_mem_flags flags,
|
||||
const cl_egl_image_properties_khr * properties,
|
||||
cl_int * errcode_ret);
|
||||
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueAcquireEGLObjectsKHR(cl_command_queue /* command_queue */,
|
||||
cl_uint /* num_objects */,
|
||||
const cl_mem * /* mem_objects */,
|
||||
cl_uint /* num_events_in_wait_list */,
|
||||
const cl_event * /* event_wait_list */,
|
||||
cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireEGLObjectsKHR_fn)(
|
||||
cl_command_queue command_queue,
|
||||
cl_uint num_objects,
|
||||
const cl_mem * mem_objects,
|
||||
cl_uint num_events_in_wait_list,
|
||||
const cl_event * event_wait_list,
|
||||
cl_event * event);
|
||||
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueReleaseEGLObjectsKHR(cl_command_queue /* command_queue */,
|
||||
cl_uint /* num_objects */,
|
||||
const cl_mem * /* mem_objects */,
|
||||
cl_uint /* num_events_in_wait_list */,
|
||||
const cl_event * /* event_wait_list */,
|
||||
cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseEGLObjectsKHR_fn)(
|
||||
cl_command_queue command_queue,
|
||||
cl_uint num_objects,
|
||||
const cl_mem * mem_objects,
|
||||
cl_uint num_events_in_wait_list,
|
||||
const cl_event * event_wait_list,
|
||||
cl_event * event);
|
||||
|
||||
|
||||
#define cl_khr_egl_event 1
|
||||
|
||||
extern CL_API_ENTRY cl_event CL_API_CALL
|
||||
clCreateEventFromEGLSyncKHR(cl_context /* context */,
|
||||
CLeglSyncKHR /* sync */,
|
||||
CLeglDisplayKHR /* display */,
|
||||
cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef CL_API_ENTRY cl_event (CL_API_CALL *clCreateEventFromEGLSyncKHR_fn)(
|
||||
cl_context context,
|
||||
CLeglSyncKHR sync,
|
||||
CLeglDisplayKHR display,
|
||||
cl_int * errcode_ret);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __OPENCL_CL_EGL_H */
|
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2008-2013 The Khronos Group Inc.
|
||||
* Copyright (c) 2008-2010 The Khronos Group Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and/or associated documentation files (the
|
||||
@@ -34,12 +34,15 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
#ifdef __APPLE__
|
||||
#include <OpenCL/cl.h>
|
||||
#include <OpenCL/cl.h>
|
||||
#include <AvailabilityMacros.h>
|
||||
#else
|
||||
#include <CL/cl.h>
|
||||
#include <CL/cl.h>
|
||||
#endif
|
||||
|
||||
/* cl_khr_fp64 extension - no extension #define since it has no functions */
|
||||
#define CL_DEVICE_DOUBLE_FP_CONFIG 0x1032
|
||||
|
||||
/* cl_khr_fp16 extension - no extension #define since it has no functions */
|
||||
#define CL_DEVICE_HALF_FP_CONFIG 0x1033
|
||||
|
||||
@@ -61,7 +64,7 @@ extern "C" {
|
||||
* before using.
|
||||
*/
|
||||
#define cl_APPLE_SetMemObjectDestructor 1
|
||||
cl_int CL_API_ENTRY clSetMemObjectDestructorAPPLE( cl_mem /* memobj */,
|
||||
cl_int CL_API_ENTRY clSetMemObjectDestructorAPPLE( cl_mem /* memobj */,
|
||||
void (* /*pfn_notify*/)( cl_mem /* memobj */, void* /*user_data*/),
|
||||
void * /*user_data */ ) CL_EXT_SUFFIX__VERSION_1_0;
|
||||
|
||||
@@ -115,52 +118,6 @@ typedef CL_API_ENTRY cl_int (CL_API_CALL *clIcdGetPlatformIDsKHR_fn)(
|
||||
cl_uint * /* num_platforms */);
|
||||
|
||||
|
||||
/* Extension: cl_khr_image2D_buffer
|
||||
*
|
||||
* This extension allows a 2D image to be created from a cl_mem buffer without a copy.
|
||||
* The type associated with a 2D image created from a buffer in an OpenCL program is image2d_t.
|
||||
* Both the sampler and sampler-less read_image built-in functions are supported for 2D images
|
||||
* and 2D images created from a buffer. Similarly, the write_image built-ins are also supported
|
||||
* for 2D images created from a buffer.
|
||||
*
|
||||
* When the 2D image from buffer is created, the client must specify the width,
|
||||
* height, image format (i.e. channel order and channel data type) and optionally the row pitch
|
||||
*
|
||||
* The pitch specified must be a multiple of CL_DEVICE_IMAGE_PITCH_ALIGNMENT pixels.
|
||||
* The base address of the buffer must be aligned to CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT pixels.
|
||||
*/
|
||||
|
||||
/*************************************
|
||||
* cl_khr_initalize_memory extension *
|
||||
*************************************/
|
||||
|
||||
#define CL_CONTEXT_MEMORY_INITIALIZE_KHR 0x200E
|
||||
|
||||
|
||||
/**************************************
|
||||
* cl_khr_terminate_context extension *
|
||||
**************************************/
|
||||
|
||||
#define CL_DEVICE_TERMINATE_CAPABILITY_KHR 0x200F
|
||||
#define CL_CONTEXT_TERMINATE_KHR 0x2010
|
||||
|
||||
#define cl_khr_terminate_context 1
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL clTerminateContextKHR(cl_context /* context */) CL_EXT_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clTerminateContextKHR_fn)(cl_context /* context */) CL_EXT_SUFFIX__VERSION_1_2;
|
||||
|
||||
|
||||
/*
|
||||
* Extension: cl_khr_spir
|
||||
*
|
||||
* This extension adds support to create an OpenCL program object from a
|
||||
* Standard Portable Intermediate Representation (SPIR) instance
|
||||
*/
|
||||
|
||||
#define CL_DEVICE_SPIR_VERSIONS 0x40E0
|
||||
#define CL_PROGRAM_BINARY_TYPE_INTERMEDIATE 0x40E1
|
||||
|
||||
|
||||
/******************************************
|
||||
* cl_nv_device_attribute_query extension *
|
||||
******************************************/
|
||||
@@ -173,16 +130,12 @@ typedef CL_API_ENTRY cl_int (CL_API_CALL *clTerminateContextKHR_fn)(cl_context /
|
||||
#define CL_DEVICE_KERNEL_EXEC_TIMEOUT_NV 0x4005
|
||||
#define CL_DEVICE_INTEGRATED_MEMORY_NV 0x4006
|
||||
|
||||
|
||||
/*********************************
|
||||
* cl_amd_device_attribute_query *
|
||||
*********************************/
|
||||
#define CL_DEVICE_PROFILING_TIMER_OFFSET_AMD 0x4036
|
||||
|
||||
/*********************************
|
||||
* cl_arm_printf extension
|
||||
*********************************/
|
||||
#define CL_PRINTF_CALLBACK_ARM 0x40B0
|
||||
#define CL_PRINTF_BUFFERSIZE_ARM 0x40B1
|
||||
|
||||
#ifdef CL_VERSION_1_1
|
||||
/***********************************
|
||||
@@ -248,63 +201,7 @@ typedef CL_API_ENTRY cl_int (CL_API_CALL *clTerminateContextKHR_fn)(cl_context /
|
||||
#define CL_PARTITION_BY_COUNTS_LIST_END_EXT ((cl_device_partition_property_ext) 0)
|
||||
#define CL_PARTITION_BY_NAMES_LIST_END_EXT ((cl_device_partition_property_ext) 0 - 1)
|
||||
|
||||
/*********************************
|
||||
* cl_qcom_ext_host_ptr extension
|
||||
*********************************/
|
||||
|
||||
#define CL_MEM_EXT_HOST_PTR_QCOM (1 << 29)
|
||||
|
||||
#define CL_DEVICE_EXT_MEM_PADDING_IN_BYTES_QCOM 0x40A0
|
||||
#define CL_DEVICE_PAGE_SIZE_QCOM 0x40A1
|
||||
#define CL_IMAGE_ROW_ALIGNMENT_QCOM 0x40A2
|
||||
#define CL_IMAGE_SLICE_ALIGNMENT_QCOM 0x40A3
|
||||
#define CL_MEM_HOST_UNCACHED_QCOM 0x40A4
|
||||
#define CL_MEM_HOST_WRITEBACK_QCOM 0x40A5
|
||||
#define CL_MEM_HOST_WRITETHROUGH_QCOM 0x40A6
|
||||
#define CL_MEM_HOST_WRITE_COMBINING_QCOM 0x40A7
|
||||
|
||||
typedef cl_uint cl_image_pitch_info_qcom;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetDeviceImageInfoQCOM(cl_device_id device,
|
||||
size_t image_width,
|
||||
size_t image_height,
|
||||
const cl_image_format *image_format,
|
||||
cl_image_pitch_info_qcom param_name,
|
||||
size_t param_value_size,
|
||||
void *param_value,
|
||||
size_t *param_value_size_ret);
|
||||
|
||||
typedef struct _cl_mem_ext_host_ptr
|
||||
{
|
||||
/* Type of external memory allocation. */
|
||||
/* Legal values will be defined in layered extensions. */
|
||||
cl_uint allocation_type;
|
||||
|
||||
/* Host cache policy for this external memory allocation. */
|
||||
cl_uint host_cache_policy;
|
||||
|
||||
} cl_mem_ext_host_ptr;
|
||||
|
||||
/*********************************
|
||||
* cl_qcom_ion_host_ptr extension
|
||||
*********************************/
|
||||
|
||||
#define CL_MEM_ION_HOST_PTR_QCOM 0x40A8
|
||||
|
||||
typedef struct _cl_mem_ion_host_ptr
|
||||
{
|
||||
/* Type of external memory allocation. */
|
||||
/* Must be CL_MEM_ION_HOST_PTR_QCOM for ION allocations. */
|
||||
cl_mem_ext_host_ptr ext_host_ptr;
|
||||
|
||||
/* ION file descriptor */
|
||||
int ion_filedesc;
|
||||
|
||||
/* Host pointer to the ION allocated memory */
|
||||
void* ion_hostptr;
|
||||
|
||||
} cl_mem_ion_host_ptr;
|
||||
|
||||
#endif /* CL_VERSION_1_1 */
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/**********************************************************************************
|
||||
* Copyright (c) 2008 - 2012 The Khronos Group Inc.
|
||||
* Copyright (c) 2008-2010 The Khronos Group Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and/or associated documentation files (the
|
||||
@@ -21,11 +21,20 @@
|
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
**********************************************************************************/
|
||||
|
||||
/* $Revision: 11708 $ on $Date: 2010-06-13 23:36:24 -0700 (Sun, 13 Jun 2010) $ */
|
||||
|
||||
/*
|
||||
* cl_gl.h contains Khronos-approved (KHR) OpenCL extensions which have
|
||||
* OpenGL dependencies. The application is responsible for #including
|
||||
* OpenGL or OpenGL ES headers before #including cl_gl.h.
|
||||
*/
|
||||
|
||||
#ifndef __OPENCL_CL_GL_H
|
||||
#define __OPENCL_CL_GL_H
|
||||
|
||||
#ifdef __APPLE__
|
||||
#include <OpenCL/cl.h>
|
||||
#include <OpenGL/CGLDevice.h>
|
||||
#else
|
||||
#include <CL/cl.h>
|
||||
#endif
|
||||
@@ -39,21 +48,15 @@ typedef cl_uint cl_gl_texture_info;
|
||||
typedef cl_uint cl_gl_platform_info;
|
||||
typedef struct __GLsync *cl_GLsync;
|
||||
|
||||
/* cl_gl_object_type = 0x2000 - 0x200F enum values are currently taken */
|
||||
#define CL_GL_OBJECT_BUFFER 0x2000
|
||||
#define CL_GL_OBJECT_TEXTURE2D 0x2001
|
||||
#define CL_GL_OBJECT_TEXTURE3D 0x2002
|
||||
#define CL_GL_OBJECT_RENDERBUFFER 0x2003
|
||||
#define CL_GL_OBJECT_TEXTURE2D_ARRAY 0x200E
|
||||
#define CL_GL_OBJECT_TEXTURE1D 0x200F
|
||||
#define CL_GL_OBJECT_TEXTURE1D_ARRAY 0x2010
|
||||
#define CL_GL_OBJECT_TEXTURE_BUFFER 0x2011
|
||||
|
||||
/* cl_gl_texture_info */
|
||||
#define CL_GL_TEXTURE_TARGET 0x2004
|
||||
#define CL_GL_MIPMAP_LEVEL 0x2005
|
||||
#define CL_GL_NUM_SAMPLES 0x2012
|
||||
/* cl_gl_object_type */
|
||||
#define CL_GL_OBJECT_BUFFER 0x2000
|
||||
#define CL_GL_OBJECT_TEXTURE2D 0x2001
|
||||
#define CL_GL_OBJECT_TEXTURE3D 0x2002
|
||||
#define CL_GL_OBJECT_RENDERBUFFER 0x2003
|
||||
|
||||
/* cl_gl_texture_info */
|
||||
#define CL_GL_TEXTURE_TARGET 0x2004
|
||||
#define CL_GL_MIPMAP_LEVEL 0x2005
|
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||||
clCreateFromGLBuffer(cl_context /* context */,
|
||||
@@ -62,13 +65,21 @@ clCreateFromGLBuffer(cl_context /* context */,
|
||||
int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||||
clCreateFromGLTexture(cl_context /* context */,
|
||||
cl_mem_flags /* flags */,
|
||||
cl_GLenum /* target */,
|
||||
cl_GLint /* miplevel */,
|
||||
cl_GLuint /* texture */,
|
||||
cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
clCreateFromGLTexture2D(cl_context /* context */,
|
||||
cl_mem_flags /* flags */,
|
||||
cl_GLenum /* target */,
|
||||
cl_GLint /* miplevel */,
|
||||
cl_GLuint /* texture */,
|
||||
cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||||
clCreateFromGLTexture3D(cl_context /* context */,
|
||||
cl_mem_flags /* flags */,
|
||||
cl_GLenum /* target */,
|
||||
cl_GLint /* miplevel */,
|
||||
cl_GLuint /* texture */,
|
||||
cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||||
clCreateFromGLRenderbuffer(cl_context /* context */,
|
||||
cl_mem_flags /* flags */,
|
||||
@@ -78,7 +89,7 @@ clCreateFromGLRenderbuffer(cl_context /* context */,
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetGLObjectInfo(cl_mem /* memobj */,
|
||||
cl_gl_object_type * /* gl_object_type */,
|
||||
cl_GLuint * /* gl_object_name */) CL_API_SUFFIX__VERSION_1_0;
|
||||
cl_GLuint * /* gl_object_name */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetGLTextureInfo(cl_mem /* memobj */,
|
||||
@@ -103,51 +114,33 @@ clEnqueueReleaseGLObjects(cl_command_queue /* command_queue */,
|
||||
const cl_event * /* event_wait_list */,
|
||||
cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
|
||||
/* Deprecated OpenCL 1.1 APIs */
|
||||
extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL
|
||||
clCreateFromGLTexture2D(cl_context /* context */,
|
||||
cl_mem_flags /* flags */,
|
||||
cl_GLenum /* target */,
|
||||
cl_GLint /* miplevel */,
|
||||
cl_GLuint /* texture */,
|
||||
cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
|
||||
|
||||
extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL
|
||||
clCreateFromGLTexture3D(cl_context /* context */,
|
||||
cl_mem_flags /* flags */,
|
||||
cl_GLenum /* target */,
|
||||
cl_GLint /* miplevel */,
|
||||
cl_GLuint /* texture */,
|
||||
cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
|
||||
|
||||
/* cl_khr_gl_sharing extension */
|
||||
|
||||
|
||||
#define cl_khr_gl_sharing 1
|
||||
|
||||
|
||||
typedef cl_uint cl_gl_context_info;
|
||||
|
||||
|
||||
/* Additional Error Codes */
|
||||
#define CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR -1000
|
||||
|
||||
|
||||
/* cl_gl_context_info */
|
||||
#define CL_CURRENT_DEVICE_FOR_GL_CONTEXT_KHR 0x2006
|
||||
#define CL_DEVICES_FOR_GL_CONTEXT_KHR 0x2007
|
||||
|
||||
|
||||
/* Additional cl_context_properties */
|
||||
#define CL_GL_CONTEXT_KHR 0x2008
|
||||
#define CL_EGL_DISPLAY_KHR 0x2009
|
||||
#define CL_GLX_DISPLAY_KHR 0x200A
|
||||
#define CL_WGL_HDC_KHR 0x200B
|
||||
#define CL_CGL_SHAREGROUP_KHR 0x200C
|
||||
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetGLContextInfoKHR(const cl_context_properties * /* properties */,
|
||||
cl_gl_context_info /* param_name */,
|
||||
size_t /* param_value_size */,
|
||||
void * /* param_value */,
|
||||
size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetGLContextInfoKHR_fn)(
|
||||
const cl_context_properties * properties,
|
||||
cl_gl_context_info param_name,
|
||||
@@ -159,4 +152,4 @@ typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetGLContextInfoKHR_fn)(
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __OPENCL_CL_GL_H */
|
||||
#endif /* __OPENCL_CL_GL_H */
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/**********************************************************************************
|
||||
* Copyright (c) 2008-2012 The Khronos Group Inc.
|
||||
* Copyright (c) 2008-2010 The Khronos Group Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and/or associated documentation files (the
|
||||
@@ -41,7 +41,7 @@ extern "C" {
|
||||
|
||||
/*
|
||||
* For each extension, follow this template
|
||||
* cl_VEN_extname extension */
|
||||
* /* cl_VEN_extname extension */
|
||||
/* #define cl_VEN_extname 1
|
||||
* ... define new types, if any
|
||||
* ... define new tokens, if any
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/**********************************************************************************
|
||||
* Copyright (c) 2008-2012 The Khronos Group Inc.
|
||||
* Copyright (c) 2008-2010 The Khronos Group Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and/or associated documentation files (the
|
||||
@@ -46,75 +46,19 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
#ifdef __APPLE__
|
||||
#define CL_EXTENSION_WEAK_LINK __attribute__((weak_import))
|
||||
#define CL_API_SUFFIX__VERSION_1_0 AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
|
||||
#define CL_EXT_SUFFIX__VERSION_1_0 CL_EXTENSION_WEAK_LINK AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
|
||||
#define CL_API_SUFFIX__VERSION_1_1 AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
|
||||
#define GCL_API_SUFFIX__VERSION_1_1 AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
|
||||
#define CL_EXT_SUFFIX__VERSION_1_1 CL_EXTENSION_WEAK_LINK AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
|
||||
#define CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED CL_EXTENSION_WEAK_LINK AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7
|
||||
|
||||
#ifdef AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
|
||||
#define CL_API_SUFFIX__VERSION_1_2 AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
|
||||
#define GCL_API_SUFFIX__VERSION_1_2 AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
|
||||
#define CL_EXT_SUFFIX__VERSION_1_2 CL_EXTENSION_WEAK_LINK AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
|
||||
#define CL_EXT_PREFIX__VERSION_1_1_DEPRECATED
|
||||
#define CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED CL_EXTENSION_WEAK_LINK AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8
|
||||
#else
|
||||
#warning This path should never happen outside of internal operating system development. AvailabilityMacros do not function correctly here!
|
||||
#define CL_API_SUFFIX__VERSION_1_2 AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
|
||||
#define GCL_API_SUFFIX__VERSION_1_2 AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
|
||||
#define CL_EXT_SUFFIX__VERSION_1_2 CL_EXTENSION_WEAK_LINK AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
|
||||
#define CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED CL_EXTENSION_WEAK_LINK AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
|
||||
#endif
|
||||
#define CL_EXTENSION_WEAK_LINK __attribute__((weak_import))
|
||||
#define CL_API_SUFFIX__VERSION_1_0 AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
|
||||
#define CL_EXT_SUFFIX__VERSION_1_0 CL_EXTENSION_WEAK_LINK AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
|
||||
#define CL_API_SUFFIX__VERSION_1_1 CL_EXTENSION_WEAK_LINK
|
||||
#define CL_EXT_SUFFIX__VERSION_1_1 CL_EXTENSION_WEAK_LINK
|
||||
#define CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED CL_EXTENSION_WEAK_LINK AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
|
||||
#else
|
||||
#define CL_EXTENSION_WEAK_LINK
|
||||
#define CL_EXTENSION_WEAK_LINK
|
||||
#define CL_API_SUFFIX__VERSION_1_0
|
||||
#define CL_EXT_SUFFIX__VERSION_1_0
|
||||
#define CL_API_SUFFIX__VERSION_1_1
|
||||
#define CL_EXT_SUFFIX__VERSION_1_1
|
||||
#define CL_API_SUFFIX__VERSION_1_2
|
||||
#define CL_EXT_SUFFIX__VERSION_1_2
|
||||
|
||||
#ifdef __GNUC__
|
||||
#ifdef CL_USE_DEPRECATED_OPENCL_1_0_APIS
|
||||
#define CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED
|
||||
#define CL_EXT_PREFIX__VERSION_1_0_DEPRECATED
|
||||
#else
|
||||
#define CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED __attribute__((deprecated))
|
||||
#define CL_EXT_PREFIX__VERSION_1_0_DEPRECATED
|
||||
#endif
|
||||
|
||||
#ifdef CL_USE_DEPRECATED_OPENCL_1_1_APIS
|
||||
#define CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED
|
||||
#define CL_EXT_PREFIX__VERSION_1_1_DEPRECATED
|
||||
#else
|
||||
#define CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED __attribute__((deprecated))
|
||||
#define CL_EXT_PREFIX__VERSION_1_1_DEPRECATED
|
||||
#endif
|
||||
#elif _WIN32
|
||||
#ifdef CL_USE_DEPRECATED_OPENCL_1_0_APIS
|
||||
#define CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED
|
||||
#define CL_EXT_PREFIX__VERSION_1_0_DEPRECATED
|
||||
#else
|
||||
#define CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED
|
||||
#define CL_EXT_PREFIX__VERSION_1_0_DEPRECATED __declspec(deprecated)
|
||||
#endif
|
||||
|
||||
#ifdef CL_USE_DEPRECATED_OPENCL_1_1_APIS
|
||||
#define CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED
|
||||
#define CL_EXT_PREFIX__VERSION_1_1_DEPRECATED
|
||||
#else
|
||||
#define CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED
|
||||
#define CL_EXT_PREFIX__VERSION_1_1_DEPRECATED __declspec(deprecated)
|
||||
#endif
|
||||
#else
|
||||
#define CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED
|
||||
#define CL_EXT_PREFIX__VERSION_1_0_DEPRECATED
|
||||
|
||||
#define CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED
|
||||
#define CL_EXT_PREFIX__VERSION_1_1_DEPRECATED
|
||||
#endif
|
||||
#define CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED
|
||||
#endif
|
||||
|
||||
#if (defined (_WIN32) && defined(_MSC_VER))
|
||||
@@ -308,7 +252,7 @@ typedef double cl_double __attribute__((aligned(8)));
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
/* Mirror types to GL types. Mirror types allow us to avoid deciding which 87s to load based on whether we are using GL or GLES here. */
|
||||
/* Mirror types to GL types. Mirror types allow us to avoid deciding which headers to load based on whether we are using GL or GLES here. */
|
||||
typedef unsigned int cl_GLuint;
|
||||
typedef int cl_GLint;
|
||||
typedef unsigned int cl_GLenum;
|
||||
@@ -451,24 +395,6 @@ typedef unsigned int cl_GLenum;
|
||||
#define __CL_DOUBLE4__ 1
|
||||
#endif
|
||||
|
||||
/* Define capabilities for anonymous struct members. */
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
#define __CL_HAS_ANON_STRUCT__ 1
|
||||
#define __CL_ANON_STRUCT__ __extension__
|
||||
#elif defined( _WIN32) && (_MSC_VER >= 1500)
|
||||
/* Microsoft Developer Studio 2008 supports anonymous structs, but
|
||||
* complains by default. */
|
||||
#define __CL_HAS_ANON_STRUCT__ 1
|
||||
#define __CL_ANON_STRUCT__
|
||||
/* Disable warning C4201: nonstandard extension used : nameless
|
||||
* struct/union */
|
||||
#pragma warning( push )
|
||||
#pragma warning( disable : 4201 )
|
||||
#else
|
||||
#define __CL_HAS_ANON_STRUCT__ 0
|
||||
#define __CL_ANON_STRUCT__
|
||||
#endif
|
||||
|
||||
/* Define alignment keys */
|
||||
#if defined( __GNUC__ )
|
||||
#define CL_ALIGNED(_x) __attribute__ ((aligned(_x)))
|
||||
@@ -484,7 +410,7 @@ typedef unsigned int cl_GLenum;
|
||||
#endif
|
||||
|
||||
/* Indicate whether .xyzw, .s0123 and .hi.lo are supported */
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
/* .xyzw and .s0123...{f|F} are supported */
|
||||
#define CL_HAS_NAMED_VECTOR_FIELDS 1
|
||||
/* .hi and .lo are supported */
|
||||
@@ -497,10 +423,10 @@ typedef unsigned int cl_GLenum;
|
||||
typedef union
|
||||
{
|
||||
cl_char CL_ALIGNED(2) s[2];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_char x, y; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_char s0, s1; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_char lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_char x, y; };
|
||||
__extension__ struct{ cl_char s0, s1; };
|
||||
__extension__ struct{ cl_char lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_CHAR2__)
|
||||
__cl_char2 v2;
|
||||
@@ -510,10 +436,10 @@ typedef union
|
||||
typedef union
|
||||
{
|
||||
cl_char CL_ALIGNED(4) s[4];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_char x, y, z, w; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_char s0, s1, s2, s3; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_char2 lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_char x, y, z, w; };
|
||||
__extension__ struct{ cl_char s0, s1, s2, s3; };
|
||||
__extension__ struct{ cl_char2 lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_CHAR2__)
|
||||
__cl_char2 v2[2];
|
||||
@@ -529,10 +455,10 @@ typedef cl_char4 cl_char3;
|
||||
typedef union
|
||||
{
|
||||
cl_char CL_ALIGNED(8) s[8];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_char x, y, z, w; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_char s0, s1, s2, s3, s4, s5, s6, s7; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_char4 lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_char x, y, z, w; };
|
||||
__extension__ struct{ cl_char s0, s1, s2, s3, s4, s5, s6, s7; };
|
||||
__extension__ struct{ cl_char4 lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_CHAR2__)
|
||||
__cl_char2 v2[4];
|
||||
@@ -548,10 +474,10 @@ typedef union
|
||||
typedef union
|
||||
{
|
||||
cl_char CL_ALIGNED(16) s[16];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_char x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_char s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_char8 lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_char x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
|
||||
__extension__ struct{ cl_char s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
|
||||
__extension__ struct{ cl_char8 lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_CHAR2__)
|
||||
__cl_char2 v2[8];
|
||||
@@ -572,10 +498,10 @@ typedef union
|
||||
typedef union
|
||||
{
|
||||
cl_uchar CL_ALIGNED(2) s[2];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_uchar x, y; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_uchar s0, s1; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_uchar lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_uchar x, y; };
|
||||
__extension__ struct{ cl_uchar s0, s1; };
|
||||
__extension__ struct{ cl_uchar lo, hi; };
|
||||
#endif
|
||||
#if defined( __cl_uchar2__)
|
||||
__cl_uchar2 v2;
|
||||
@@ -585,10 +511,10 @@ typedef union
|
||||
typedef union
|
||||
{
|
||||
cl_uchar CL_ALIGNED(4) s[4];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_uchar x, y, z, w; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_uchar s0, s1, s2, s3; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_uchar2 lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_uchar x, y, z, w; };
|
||||
__extension__ struct{ cl_uchar s0, s1, s2, s3; };
|
||||
__extension__ struct{ cl_uchar2 lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_UCHAR2__)
|
||||
__cl_uchar2 v2[2];
|
||||
@@ -604,10 +530,10 @@ typedef cl_uchar4 cl_uchar3;
|
||||
typedef union
|
||||
{
|
||||
cl_uchar CL_ALIGNED(8) s[8];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_uchar x, y, z, w; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_uchar s0, s1, s2, s3, s4, s5, s6, s7; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_uchar4 lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_uchar x, y, z, w; };
|
||||
__extension__ struct{ cl_uchar s0, s1, s2, s3, s4, s5, s6, s7; };
|
||||
__extension__ struct{ cl_uchar4 lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_UCHAR2__)
|
||||
__cl_uchar2 v2[4];
|
||||
@@ -623,10 +549,10 @@ typedef union
|
||||
typedef union
|
||||
{
|
||||
cl_uchar CL_ALIGNED(16) s[16];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_uchar x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_uchar s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_uchar8 lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_uchar x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
|
||||
__extension__ struct{ cl_uchar s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
|
||||
__extension__ struct{ cl_uchar8 lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_UCHAR2__)
|
||||
__cl_uchar2 v2[8];
|
||||
@@ -647,10 +573,10 @@ typedef union
|
||||
typedef union
|
||||
{
|
||||
cl_short CL_ALIGNED(4) s[2];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_short x, y; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_short s0, s1; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_short lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_short x, y; };
|
||||
__extension__ struct{ cl_short s0, s1; };
|
||||
__extension__ struct{ cl_short lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_SHORT2__)
|
||||
__cl_short2 v2;
|
||||
@@ -660,10 +586,10 @@ typedef union
|
||||
typedef union
|
||||
{
|
||||
cl_short CL_ALIGNED(8) s[4];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_short x, y, z, w; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_short s0, s1, s2, s3; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_short2 lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_short x, y, z, w; };
|
||||
__extension__ struct{ cl_short s0, s1, s2, s3; };
|
||||
__extension__ struct{ cl_short2 lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_SHORT2__)
|
||||
__cl_short2 v2[2];
|
||||
@@ -679,10 +605,10 @@ typedef cl_short4 cl_short3;
|
||||
typedef union
|
||||
{
|
||||
cl_short CL_ALIGNED(16) s[8];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_short x, y, z, w; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_short s0, s1, s2, s3, s4, s5, s6, s7; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_short4 lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_short x, y, z, w; };
|
||||
__extension__ struct{ cl_short s0, s1, s2, s3, s4, s5, s6, s7; };
|
||||
__extension__ struct{ cl_short4 lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_SHORT2__)
|
||||
__cl_short2 v2[4];
|
||||
@@ -698,10 +624,10 @@ typedef union
|
||||
typedef union
|
||||
{
|
||||
cl_short CL_ALIGNED(32) s[16];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_short x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_short s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_short8 lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_short x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
|
||||
__extension__ struct{ cl_short s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
|
||||
__extension__ struct{ cl_short8 lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_SHORT2__)
|
||||
__cl_short2 v2[8];
|
||||
@@ -722,10 +648,10 @@ typedef union
|
||||
typedef union
|
||||
{
|
||||
cl_ushort CL_ALIGNED(4) s[2];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_ushort x, y; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_ushort s0, s1; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_ushort lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_ushort x, y; };
|
||||
__extension__ struct{ cl_ushort s0, s1; };
|
||||
__extension__ struct{ cl_ushort lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_USHORT2__)
|
||||
__cl_ushort2 v2;
|
||||
@@ -735,10 +661,10 @@ typedef union
|
||||
typedef union
|
||||
{
|
||||
cl_ushort CL_ALIGNED(8) s[4];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_ushort x, y, z, w; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_ushort s0, s1, s2, s3; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_ushort2 lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_ushort x, y, z, w; };
|
||||
__extension__ struct{ cl_ushort s0, s1, s2, s3; };
|
||||
__extension__ struct{ cl_ushort2 lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_USHORT2__)
|
||||
__cl_ushort2 v2[2];
|
||||
@@ -754,10 +680,10 @@ typedef cl_ushort4 cl_ushort3;
|
||||
typedef union
|
||||
{
|
||||
cl_ushort CL_ALIGNED(16) s[8];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_ushort x, y, z, w; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_ushort s0, s1, s2, s3, s4, s5, s6, s7; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_ushort4 lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_ushort x, y, z, w; };
|
||||
__extension__ struct{ cl_ushort s0, s1, s2, s3, s4, s5, s6, s7; };
|
||||
__extension__ struct{ cl_ushort4 lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_USHORT2__)
|
||||
__cl_ushort2 v2[4];
|
||||
@@ -773,10 +699,10 @@ typedef union
|
||||
typedef union
|
||||
{
|
||||
cl_ushort CL_ALIGNED(32) s[16];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_ushort x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_ushort s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_ushort8 lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_ushort x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
|
||||
__extension__ struct{ cl_ushort s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
|
||||
__extension__ struct{ cl_ushort8 lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_USHORT2__)
|
||||
__cl_ushort2 v2[8];
|
||||
@@ -796,10 +722,10 @@ typedef union
|
||||
typedef union
|
||||
{
|
||||
cl_int CL_ALIGNED(8) s[2];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_int x, y; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_int s0, s1; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_int lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_int x, y; };
|
||||
__extension__ struct{ cl_int s0, s1; };
|
||||
__extension__ struct{ cl_int lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_INT2__)
|
||||
__cl_int2 v2;
|
||||
@@ -809,10 +735,10 @@ typedef union
|
||||
typedef union
|
||||
{
|
||||
cl_int CL_ALIGNED(16) s[4];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_int x, y, z, w; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_int s0, s1, s2, s3; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_int2 lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_int x, y, z, w; };
|
||||
__extension__ struct{ cl_int s0, s1, s2, s3; };
|
||||
__extension__ struct{ cl_int2 lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_INT2__)
|
||||
__cl_int2 v2[2];
|
||||
@@ -828,10 +754,10 @@ typedef cl_int4 cl_int3;
|
||||
typedef union
|
||||
{
|
||||
cl_int CL_ALIGNED(32) s[8];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_int x, y, z, w; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_int s0, s1, s2, s3, s4, s5, s6, s7; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_int4 lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_int x, y, z, w; };
|
||||
__extension__ struct{ cl_int s0, s1, s2, s3, s4, s5, s6, s7; };
|
||||
__extension__ struct{ cl_int4 lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_INT2__)
|
||||
__cl_int2 v2[4];
|
||||
@@ -847,10 +773,10 @@ typedef union
|
||||
typedef union
|
||||
{
|
||||
cl_int CL_ALIGNED(64) s[16];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_int x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_int s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_int8 lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_int x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
|
||||
__extension__ struct{ cl_int s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
|
||||
__extension__ struct{ cl_int8 lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_INT2__)
|
||||
__cl_int2 v2[8];
|
||||
@@ -871,10 +797,10 @@ typedef union
|
||||
typedef union
|
||||
{
|
||||
cl_uint CL_ALIGNED(8) s[2];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_uint x, y; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_uint s0, s1; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_uint lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_uint x, y; };
|
||||
__extension__ struct{ cl_uint s0, s1; };
|
||||
__extension__ struct{ cl_uint lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_UINT2__)
|
||||
__cl_uint2 v2;
|
||||
@@ -884,10 +810,10 @@ typedef union
|
||||
typedef union
|
||||
{
|
||||
cl_uint CL_ALIGNED(16) s[4];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_uint x, y, z, w; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_uint s0, s1, s2, s3; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_uint2 lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_uint x, y, z, w; };
|
||||
__extension__ struct{ cl_uint s0, s1, s2, s3; };
|
||||
__extension__ struct{ cl_uint2 lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_UINT2__)
|
||||
__cl_uint2 v2[2];
|
||||
@@ -903,10 +829,10 @@ typedef cl_uint4 cl_uint3;
|
||||
typedef union
|
||||
{
|
||||
cl_uint CL_ALIGNED(32) s[8];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_uint x, y, z, w; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_uint s0, s1, s2, s3, s4, s5, s6, s7; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_uint4 lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_uint x, y, z, w; };
|
||||
__extension__ struct{ cl_uint s0, s1, s2, s3, s4, s5, s6, s7; };
|
||||
__extension__ struct{ cl_uint4 lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_UINT2__)
|
||||
__cl_uint2 v2[4];
|
||||
@@ -922,10 +848,10 @@ typedef union
|
||||
typedef union
|
||||
{
|
||||
cl_uint CL_ALIGNED(64) s[16];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_uint x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_uint s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_uint8 lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_uint x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
|
||||
__extension__ struct{ cl_uint s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
|
||||
__extension__ struct{ cl_uint8 lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_UINT2__)
|
||||
__cl_uint2 v2[8];
|
||||
@@ -945,10 +871,10 @@ typedef union
|
||||
typedef union
|
||||
{
|
||||
cl_long CL_ALIGNED(16) s[2];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_long x, y; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_long s0, s1; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_long lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_long x, y; };
|
||||
__extension__ struct{ cl_long s0, s1; };
|
||||
__extension__ struct{ cl_long lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_LONG2__)
|
||||
__cl_long2 v2;
|
||||
@@ -958,10 +884,10 @@ typedef union
|
||||
typedef union
|
||||
{
|
||||
cl_long CL_ALIGNED(32) s[4];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_long x, y, z, w; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_long s0, s1, s2, s3; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_long2 lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_long x, y, z, w; };
|
||||
__extension__ struct{ cl_long s0, s1, s2, s3; };
|
||||
__extension__ struct{ cl_long2 lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_LONG2__)
|
||||
__cl_long2 v2[2];
|
||||
@@ -977,10 +903,10 @@ typedef cl_long4 cl_long3;
|
||||
typedef union
|
||||
{
|
||||
cl_long CL_ALIGNED(64) s[8];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_long x, y, z, w; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_long s0, s1, s2, s3, s4, s5, s6, s7; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_long4 lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_long x, y, z, w; };
|
||||
__extension__ struct{ cl_long s0, s1, s2, s3, s4, s5, s6, s7; };
|
||||
__extension__ struct{ cl_long4 lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_LONG2__)
|
||||
__cl_long2 v2[4];
|
||||
@@ -996,10 +922,10 @@ typedef union
|
||||
typedef union
|
||||
{
|
||||
cl_long CL_ALIGNED(128) s[16];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_long x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_long s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_long8 lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_long x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
|
||||
__extension__ struct{ cl_long s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
|
||||
__extension__ struct{ cl_long8 lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_LONG2__)
|
||||
__cl_long2 v2[8];
|
||||
@@ -1020,10 +946,10 @@ typedef union
|
||||
typedef union
|
||||
{
|
||||
cl_ulong CL_ALIGNED(16) s[2];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_ulong x, y; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_ulong s0, s1; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_ulong lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_ulong x, y; };
|
||||
__extension__ struct{ cl_ulong s0, s1; };
|
||||
__extension__ struct{ cl_ulong lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_ULONG2__)
|
||||
__cl_ulong2 v2;
|
||||
@@ -1033,10 +959,10 @@ typedef union
|
||||
typedef union
|
||||
{
|
||||
cl_ulong CL_ALIGNED(32) s[4];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_ulong x, y, z, w; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_ulong s0, s1, s2, s3; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_ulong2 lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_ulong x, y, z, w; };
|
||||
__extension__ struct{ cl_ulong s0, s1, s2, s3; };
|
||||
__extension__ struct{ cl_ulong2 lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_ULONG2__)
|
||||
__cl_ulong2 v2[2];
|
||||
@@ -1052,10 +978,10 @@ typedef cl_ulong4 cl_ulong3;
|
||||
typedef union
|
||||
{
|
||||
cl_ulong CL_ALIGNED(64) s[8];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_ulong x, y, z, w; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_ulong s0, s1, s2, s3, s4, s5, s6, s7; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_ulong4 lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_ulong x, y, z, w; };
|
||||
__extension__ struct{ cl_ulong s0, s1, s2, s3, s4, s5, s6, s7; };
|
||||
__extension__ struct{ cl_ulong4 lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_ULONG2__)
|
||||
__cl_ulong2 v2[4];
|
||||
@@ -1071,10 +997,10 @@ typedef union
|
||||
typedef union
|
||||
{
|
||||
cl_ulong CL_ALIGNED(128) s[16];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_ulong x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_ulong s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_ulong8 lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_ulong x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
|
||||
__extension__ struct{ cl_ulong s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
|
||||
__extension__ struct{ cl_ulong8 lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_ULONG2__)
|
||||
__cl_ulong2 v2[8];
|
||||
@@ -1096,10 +1022,10 @@ typedef union
|
||||
typedef union
|
||||
{
|
||||
cl_float CL_ALIGNED(8) s[2];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_float x, y; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_float s0, s1; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_float lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_float x, y; };
|
||||
__extension__ struct{ cl_float s0, s1; };
|
||||
__extension__ struct{ cl_float lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_FLOAT2__)
|
||||
__cl_float2 v2;
|
||||
@@ -1109,10 +1035,10 @@ typedef union
|
||||
typedef union
|
||||
{
|
||||
cl_float CL_ALIGNED(16) s[4];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_float x, y, z, w; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_float s0, s1, s2, s3; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_float2 lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_float x, y, z, w; };
|
||||
__extension__ struct{ cl_float s0, s1, s2, s3; };
|
||||
__extension__ struct{ cl_float2 lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_FLOAT2__)
|
||||
__cl_float2 v2[2];
|
||||
@@ -1128,10 +1054,10 @@ typedef cl_float4 cl_float3;
|
||||
typedef union
|
||||
{
|
||||
cl_float CL_ALIGNED(32) s[8];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_float x, y, z, w; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_float s0, s1, s2, s3, s4, s5, s6, s7; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_float4 lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_float x, y, z, w; };
|
||||
__extension__ struct{ cl_float s0, s1, s2, s3, s4, s5, s6, s7; };
|
||||
__extension__ struct{ cl_float4 lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_FLOAT2__)
|
||||
__cl_float2 v2[4];
|
||||
@@ -1147,10 +1073,10 @@ typedef union
|
||||
typedef union
|
||||
{
|
||||
cl_float CL_ALIGNED(64) s[16];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_float x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_float s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_float8 lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_float x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
|
||||
__extension__ struct{ cl_float s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
|
||||
__extension__ struct{ cl_float8 lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_FLOAT2__)
|
||||
__cl_float2 v2[8];
|
||||
@@ -1171,10 +1097,10 @@ typedef union
|
||||
typedef union
|
||||
{
|
||||
cl_double CL_ALIGNED(16) s[2];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_double x, y; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_double s0, s1; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_double lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_double x, y; };
|
||||
__extension__ struct{ cl_double s0, s1; };
|
||||
__extension__ struct{ cl_double lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_DOUBLE2__)
|
||||
__cl_double2 v2;
|
||||
@@ -1184,10 +1110,10 @@ typedef union
|
||||
typedef union
|
||||
{
|
||||
cl_double CL_ALIGNED(32) s[4];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_double x, y, z, w; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_double s0, s1, s2, s3; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_double2 lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_double x, y, z, w; };
|
||||
__extension__ struct{ cl_double s0, s1, s2, s3; };
|
||||
__extension__ struct{ cl_double2 lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_DOUBLE2__)
|
||||
__cl_double2 v2[2];
|
||||
@@ -1203,10 +1129,10 @@ typedef cl_double4 cl_double3;
|
||||
typedef union
|
||||
{
|
||||
cl_double CL_ALIGNED(64) s[8];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_double x, y, z, w; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_double s0, s1, s2, s3, s4, s5, s6, s7; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_double4 lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_double x, y, z, w; };
|
||||
__extension__ struct{ cl_double s0, s1, s2, s3, s4, s5, s6, s7; };
|
||||
__extension__ struct{ cl_double4 lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_DOUBLE2__)
|
||||
__cl_double2 v2[4];
|
||||
@@ -1222,10 +1148,10 @@ typedef union
|
||||
typedef union
|
||||
{
|
||||
cl_double CL_ALIGNED(128) s[16];
|
||||
#if __CL_HAS_ANON_STRUCT__
|
||||
__CL_ANON_STRUCT__ struct{ cl_double x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_double s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
|
||||
__CL_ANON_STRUCT__ struct{ cl_double8 lo, hi; };
|
||||
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
|
||||
__extension__ struct{ cl_double x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
|
||||
__extension__ struct{ cl_double s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
|
||||
__extension__ struct{ cl_double8 lo, hi; };
|
||||
#endif
|
||||
#if defined( __CL_DOUBLE2__)
|
||||
__cl_double2 v2[8];
|
||||
@@ -1244,13 +1170,13 @@ typedef union
|
||||
/* Macro to facilitate debugging
|
||||
* Usage:
|
||||
* Place CL_PROGRAM_STRING_DEBUG_INFO on the line before the first line of your source.
|
||||
* The first line ends with: CL_PROGRAM_STRING_DEBUG_INFO \"
|
||||
* The first line ends with: CL_PROGRAM_STRING_BEGIN \"
|
||||
* Each line thereafter of OpenCL C source must end with: \n\
|
||||
* The last line ends in ";
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* const char *my_program = CL_PROGRAM_STRING_DEBUG_INFO "\
|
||||
* const char *my_program = CL_PROGRAM_STRING_BEGIN "\
|
||||
* kernel void foo( int a, float * b ) \n\
|
||||
* { \n\
|
||||
* // my comment \n\
|
||||
@@ -1269,10 +1195,4 @@ typedef union
|
||||
}
|
||||
#endif
|
||||
|
||||
#undef __CL_HAS_ANON_STRUCT__
|
||||
#undef __CL_ANON_STRUCT__
|
||||
#if defined( _WIN32) && (_MSC_VER >= 1500)
|
||||
#pragma warning( pop )
|
||||
#endif
|
||||
|
||||
#endif /* __CL_PLATFORM_H */
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2008-2012 The Khronos Group Inc.
|
||||
* Copyright (c) 2008-2010 The Khronos Group Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and/or associated documentation files (the
|
||||
|
1043
include/EGL/eglext.h
1043
include/EGL/eglext.h
File diff suppressed because it is too large
Load Diff
@@ -1,60 +0,0 @@
|
||||
// Copyright (c) 2013 The Chromium Authors. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from
|
||||
// this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
// This file contains Chromium-specific EGL extensions declarations.
|
||||
|
||||
#ifndef GPU_EGL_EGLEXTCHROMIUM_H_
|
||||
#define GPU_EGL_EGLEXTCHROMIUM_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <EGL/eglplatform.h>
|
||||
|
||||
/* EGLSyncControlCHROMIUM requires 64-bit uint support */
|
||||
#if KHRONOS_SUPPORT_INT64
|
||||
#ifndef EGL_CHROMIUM_sync_control
|
||||
#define EGL_CHROMIUM_sync_control 1
|
||||
typedef khronos_uint64_t EGLuint64CHROMIUM;
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncValuesCHROMIUM(
|
||||
EGLDisplay dpy, EGLSurface surface, EGLuint64CHROMIUM *ust,
|
||||
EGLuint64CHROMIUM *msc, EGLuint64CHROMIUM *sbc);
|
||||
#endif /* EGL_EGLEXT_PROTOTYPES */
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCVALUESCHROMIUMPROC)
|
||||
(EGLDisplay dpy, EGLSurface surface, EGLuint64CHROMIUM *ust,
|
||||
EGLuint64CHROMIUM *msc, EGLuint64CHROMIUM *sbc);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // GPU_EGL_EGLEXTCHROMIUM_H_
|
@@ -165,11 +165,6 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGIONNOK) (EGLDisplay dpy, EG
|
||||
#define EGL_NATIVE_BUFFER_ANDROID 0x3140 /* eglCreateImageKHR target */
|
||||
#endif
|
||||
|
||||
#ifndef EGL_MESA_configless_context
|
||||
#define EGL_MESA_configless_context 1
|
||||
#define EGL_NO_CONFIG_MESA ((EGLConfig)0)
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -97,6 +97,10 @@
|
||||
#define GLAPIENTRYP GLAPIENTRY *
|
||||
#endif
|
||||
|
||||
#if defined(PRAGMA_EXPORT_SUPPORTED)
|
||||
#pragma export on
|
||||
#endif
|
||||
|
||||
/*
|
||||
* End system-specific stuff.
|
||||
**********************************************************************/
|
||||
@@ -690,7 +694,7 @@ typedef double GLclampd; /* double precision float in [0,1] */
|
||||
#define GL_LIST_BIT 0x00020000
|
||||
#define GL_TEXTURE_BIT 0x00040000
|
||||
#define GL_SCISSOR_BIT 0x00080000
|
||||
#define GL_ALL_ATTRIB_BITS 0xFFFFFFFF
|
||||
#define GL_ALL_ATTRIB_BITS 0x000FFFFF
|
||||
|
||||
|
||||
/* OpenGL 1.1 */
|
||||
@@ -2108,6 +2112,19 @@ typedef void (APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum t
|
||||
**/
|
||||
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* Begin system-specific stuff
|
||||
*/
|
||||
#if defined(PRAGMA_EXPORT_SUPPORTED)
|
||||
#pragma export off
|
||||
#endif
|
||||
|
||||
/*
|
||||
* End system-specific stuff
|
||||
**********************************************************************/
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -518,7 +518,7 @@ typedef struct {
|
||||
unsigned long serial; /* # of last request processed by server */
|
||||
Bool send_event; /* true if this came from a SendEvent request */
|
||||
Display *display; /* Display the event was read from */
|
||||
Drawable drawable; /* drawable on which event was requested in event mask */
|
||||
GLXDrawable drawable; /* drawable on which event was requested in event mask */
|
||||
int event_type;
|
||||
int64_t ust;
|
||||
int64_t msc;
|
||||
|
@@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2013-2014 The Khronos Group Inc.
|
||||
** Copyright (c) 2013 The Khronos Group Inc.
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||
** copy of this software and/or associated documentation files (the
|
||||
@@ -33,10 +33,10 @@ extern "C" {
|
||||
** used to make the header, and the header can be found at
|
||||
** http://www.opengl.org/registry/
|
||||
**
|
||||
** Khronos $Revision: 27684 $ on $Date: 2014-08-11 01:21:35 -0700 (Mon, 11 Aug 2014) $
|
||||
** Khronos $Revision: 24777 $ on $Date: 2014-01-14 14:02:32 -0800 (Tue, 14 Jan 2014) $
|
||||
*/
|
||||
|
||||
#define GLX_GLXEXT_VERSION 20140810
|
||||
#define GLX_GLXEXT_VERSION 20140114
|
||||
|
||||
/* Generated C header for:
|
||||
* API: glx
|
||||
@@ -158,13 +158,6 @@ __GLXextFuncPtr glXGetProcAddress (const GLubyte *procName);
|
||||
#endif
|
||||
#endif /* GLX_VERSION_1_4 */
|
||||
|
||||
#ifndef GLX_ARB_context_flush_control
|
||||
#define GLX_ARB_context_flush_control 1
|
||||
#define GLX_CONTEXT_RELEASE_BEHAVIOR_ARB 0x2097
|
||||
#define GLX_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB 0
|
||||
#define GLX_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB 0x2098
|
||||
#endif /* GLX_ARB_context_flush_control */
|
||||
|
||||
#ifndef GLX_ARB_create_context
|
||||
#define GLX_ARB_create_context 1
|
||||
#define GLX_CONTEXT_DEBUG_BIT_ARB 0x00000001
|
||||
@@ -297,23 +290,6 @@ void glXFreeContextEXT (Display *dpy, GLXContext context);
|
||||
#endif
|
||||
#endif /* GLX_EXT_import_context */
|
||||
|
||||
#ifndef GLX_EXT_stereo_tree
|
||||
#define GLX_EXT_stereo_tree 1
|
||||
typedef struct {
|
||||
int type;
|
||||
unsigned long serial;
|
||||
Bool send_event;
|
||||
Display *display;
|
||||
int extension;
|
||||
int evtype;
|
||||
GLXDrawable window;
|
||||
Bool stereo_tree;
|
||||
} GLXStereoNotifyEventEXT;
|
||||
#define GLX_STEREO_TREE_EXT 0x20F5
|
||||
#define GLX_STEREO_NOTIFY_MASK_EXT 0x00000001
|
||||
#define GLX_STEREO_NOTIFY_EXT 0x00000000
|
||||
#endif /* GLX_EXT_stereo_tree */
|
||||
|
||||
#ifndef GLX_EXT_swap_control
|
||||
#define GLX_EXT_swap_control 1
|
||||
#define GLX_SWAP_INTERVAL_EXT 0x20F1
|
||||
@@ -431,32 +407,6 @@ GLXPixmap glXCreateGLXPixmapMESA (Display *dpy, XVisualInfo *visual, Pixmap pixm
|
||||
#endif
|
||||
#endif /* GLX_MESA_pixmap_colormap */
|
||||
|
||||
#ifndef GLX_MESA_query_renderer
|
||||
#define GLX_MESA_query_renderer 1
|
||||
#define GLX_RENDERER_VENDOR_ID_MESA 0x8183
|
||||
#define GLX_RENDERER_DEVICE_ID_MESA 0x8184
|
||||
#define GLX_RENDERER_VERSION_MESA 0x8185
|
||||
#define GLX_RENDERER_ACCELERATED_MESA 0x8186
|
||||
#define GLX_RENDERER_VIDEO_MEMORY_MESA 0x8187
|
||||
#define GLX_RENDERER_UNIFIED_MEMORY_ARCHITECTURE_MESA 0x8188
|
||||
#define GLX_RENDERER_PREFERRED_PROFILE_MESA 0x8189
|
||||
#define GLX_RENDERER_OPENGL_CORE_PROFILE_VERSION_MESA 0x818A
|
||||
#define GLX_RENDERER_OPENGL_COMPATIBILITY_PROFILE_VERSION_MESA 0x818B
|
||||
#define GLX_RENDERER_OPENGL_ES_PROFILE_VERSION_MESA 0x818C
|
||||
#define GLX_RENDERER_OPENGL_ES2_PROFILE_VERSION_MESA 0x818D
|
||||
#define GLX_RENDERER_ID_MESA 0x818E
|
||||
typedef Bool ( *PFNGLXQUERYCURRENTRENDERERINTEGERMESAPROC) (int attribute, unsigned int *value);
|
||||
typedef const char *( *PFNGLXQUERYCURRENTRENDERERSTRINGMESAPROC) (int attribute);
|
||||
typedef Bool ( *PFNGLXQUERYRENDERERINTEGERMESAPROC) (Display *dpy, int screen, int renderer, int attribute, unsigned int *value);
|
||||
typedef const char *( *PFNGLXQUERYRENDERERSTRINGMESAPROC) (Display *dpy, int screen, int renderer, int attribute);
|
||||
#ifdef GLX_GLXEXT_PROTOTYPES
|
||||
Bool glXQueryCurrentRendererIntegerMESA (int attribute, unsigned int *value);
|
||||
const char *glXQueryCurrentRendererStringMESA (int attribute);
|
||||
Bool glXQueryRendererIntegerMESA (Display *dpy, int screen, int renderer, int attribute, unsigned int *value);
|
||||
const char *glXQueryRendererStringMESA (Display *dpy, int screen, int renderer, int attribute);
|
||||
#endif
|
||||
#endif /* GLX_MESA_query_renderer */
|
||||
|
||||
#ifndef GLX_MESA_release_buffers
|
||||
#define GLX_MESA_release_buffers 1
|
||||
typedef Bool ( *PFNGLXRELEASEBUFFERSMESAPROC) (Display *dpy, GLXDrawable drawable);
|
||||
@@ -475,16 +425,6 @@ Bool glXSet3DfxModeMESA (int mode);
|
||||
#endif
|
||||
#endif /* GLX_MESA_set_3dfx_mode */
|
||||
|
||||
#ifndef GLX_NV_copy_buffer
|
||||
#define GLX_NV_copy_buffer 1
|
||||
typedef void ( *PFNGLXCOPYBUFFERSUBDATANVPROC) (Display *dpy, GLXContext readCtx, GLXContext writeCtx, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
|
||||
typedef void ( *PFNGLXNAMEDCOPYBUFFERSUBDATANVPROC) (Display *dpy, GLXContext readCtx, GLXContext writeCtx, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
|
||||
#ifdef GLX_GLXEXT_PROTOTYPES
|
||||
void glXCopyBufferSubDataNV (Display *dpy, GLXContext readCtx, GLXContext writeCtx, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
|
||||
void glXNamedCopyBufferSubDataNV (Display *dpy, GLXContext readCtx, GLXContext writeCtx, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
|
||||
#endif
|
||||
#endif /* GLX_NV_copy_buffer */
|
||||
|
||||
#ifndef GLX_NV_copy_image
|
||||
#define GLX_NV_copy_image 1
|
||||
typedef void ( *PFNGLXCOPYIMAGESUBDATANVPROC) (Display *dpy, GLXContext srcCtx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLXContext dstCtx, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
|
||||
@@ -561,8 +501,8 @@ void glXReleaseVideoCaptureDeviceNV (Display *dpy, GLXVideoCaptureDeviceNV devic
|
||||
#endif
|
||||
#endif /* GLX_NV_video_capture */
|
||||
|
||||
#ifndef GLX_NV_video_out
|
||||
#define GLX_NV_video_out 1
|
||||
#ifndef GLX_NV_video_output
|
||||
#define GLX_NV_video_output 1
|
||||
typedef unsigned int GLXVideoDeviceNV;
|
||||
#define GLX_VIDEO_OUT_COLOR_NV 0x20C3
|
||||
#define GLX_VIDEO_OUT_ALPHA_NV 0x20C4
|
||||
@@ -588,7 +528,7 @@ int glXReleaseVideoImageNV (Display *dpy, GLXPbuffer pbuf);
|
||||
int glXSendPbufferToVideoNV (Display *dpy, GLXPbuffer pbuf, int iBufferType, unsigned long *pulCounterPbuffer, GLboolean bBlock);
|
||||
int glXGetVideoInfoNV (Display *dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo);
|
||||
#endif
|
||||
#endif /* GLX_NV_video_out */
|
||||
#endif /* GLX_NV_video_output */
|
||||
|
||||
#ifndef GLX_OML_swap_method
|
||||
#define GLX_OML_swap_method 1
|
||||
|
@@ -231,7 +231,7 @@ struct __DRItexOffsetExtensionRec {
|
||||
#define __DRI_TEXTURE_FORMAT_RGBA 0x20DA
|
||||
|
||||
#define __DRI_TEX_BUFFER "DRI_TexBuffer"
|
||||
#define __DRI_TEX_BUFFER_VERSION 3
|
||||
#define __DRI_TEX_BUFFER_VERSION 2
|
||||
struct __DRItexBufferExtensionRec {
|
||||
__DRIextension base;
|
||||
|
||||
@@ -251,8 +251,6 @@ struct __DRItexBufferExtensionRec {
|
||||
* __DRIdrawable, including the required texture format attribute.
|
||||
*
|
||||
* For GLX_EXT_texture_from_pixmap with AIGLX.
|
||||
*
|
||||
* \since 2
|
||||
*/
|
||||
void (*setTexBuffer2)(__DRIcontext *pDRICtx,
|
||||
GLint target,
|
||||
@@ -263,8 +261,6 @@ struct __DRItexBufferExtensionRec {
|
||||
* need this.
|
||||
*
|
||||
* For GLX_EXT_texture_from_pixmap with AIGLX.
|
||||
*
|
||||
* \since 3
|
||||
*/
|
||||
void (*releaseTexBuffer)(__DRIcontext *pDRICtx,
|
||||
GLint target,
|
||||
@@ -468,8 +464,6 @@ struct __DRIswrastLoaderExtensionRec {
|
||||
|
||||
/**
|
||||
* Put image to drawable
|
||||
*
|
||||
* \since 2
|
||||
*/
|
||||
void (*putImage2)(__DRIdrawable *drawable, int op,
|
||||
int x, int y, int width, int height, int stride,
|
||||
@@ -854,8 +848,6 @@ struct __DRIdri2LoaderExtensionRec {
|
||||
* \param driDrawable Drawable whose front-buffer is to be flushed
|
||||
* \param loaderPrivate Loader's private data that was previously passed
|
||||
* into __DRIdri2ExtensionRec::createNewDrawable
|
||||
*
|
||||
* \since 2
|
||||
*/
|
||||
void (*flushFrontBuffer)(__DRIdrawable *driDrawable, void *loaderPrivate);
|
||||
|
||||
@@ -878,8 +870,6 @@ struct __DRIdri2LoaderExtensionRec {
|
||||
* \c attachments.
|
||||
* \param loaderPrivate Loader's private data that was previously passed
|
||||
* into __DRIdri2ExtensionRec::createNewDrawable.
|
||||
*
|
||||
* \since 3
|
||||
*/
|
||||
__DRIbuffer *(*getBuffersWithFormat)(__DRIdrawable *driDrawable,
|
||||
int *width, int *height,
|
||||
@@ -1005,7 +995,7 @@ struct __DRIdri2ExtensionRec {
|
||||
* extensions.
|
||||
*/
|
||||
#define __DRI_IMAGE "DRI_IMAGE"
|
||||
#define __DRI_IMAGE_VERSION 10
|
||||
#define __DRI_IMAGE_VERSION 8
|
||||
|
||||
/**
|
||||
* These formats correspond to the similarly named MESA_FORMAT_*
|
||||
@@ -1133,20 +1123,6 @@ enum __DRIChromaSiting {
|
||||
#define __DRI_IMAGE_ERROR_BAD_PARAMETER 3
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
* \name Capabilities that might be returned by __DRIimageExtensionRec::getCapabilities
|
||||
*/
|
||||
/*@{*/
|
||||
#define __DRI_IMAGE_CAP_GLOBAL_NAMES 1
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
* blitImage flags
|
||||
*/
|
||||
|
||||
#define __BLIT_FLAG_FLUSH 0x0001
|
||||
#define __BLIT_FLAG_FINISH 0x0002
|
||||
|
||||
typedef struct __DRIimageRec __DRIimage;
|
||||
typedef struct __DRIimageExtensionRec __DRIimageExtension;
|
||||
struct __DRIimageExtensionRec {
|
||||
@@ -1253,29 +1229,6 @@ struct __DRIimageExtensionRec {
|
||||
enum __DRIChromaSiting vert_siting,
|
||||
unsigned *error,
|
||||
void *loaderPrivate);
|
||||
|
||||
/**
|
||||
* Blit a part of a __DRIimage to another and flushes
|
||||
*
|
||||
* flush_flag:
|
||||
* 0: no flush
|
||||
* __BLIT_FLAG_FLUSH: flush after the blit operation
|
||||
* __BLIT_FLAG_FINISH: flush and wait the blit finished
|
||||
*
|
||||
* \since 9
|
||||
*/
|
||||
void (*blitImage)(__DRIcontext *context, __DRIimage *dst, __DRIimage *src,
|
||||
int dstx0, int dsty0, int dstwidth, int dstheight,
|
||||
int srcx0, int srcy0, int srcwidth, int srcheight,
|
||||
int flush_flag);
|
||||
|
||||
/**
|
||||
* Query for general capabilities of the driver that concern
|
||||
* buffer sharing and image importing.
|
||||
*
|
||||
* \since 10
|
||||
*/
|
||||
int (*getCapabilities)(__DRIscreen *screen);
|
||||
};
|
||||
|
||||
|
||||
@@ -1309,9 +1262,9 @@ typedef struct __DRI2configQueryExtensionRec __DRI2configQueryExtension;
|
||||
struct __DRI2configQueryExtensionRec {
|
||||
__DRIextension base;
|
||||
|
||||
int (*configQueryb)(__DRIscreen *screen, const char *var, unsigned char *val);
|
||||
int (*configQueryi)(__DRIscreen *screen, const char *var, int *val);
|
||||
int (*configQueryf)(__DRIscreen *screen, const char *var, float *val);
|
||||
int (*configQueryb)(__DRIscreen *screen, const char *var, GLboolean *val);
|
||||
int (*configQueryi)(__DRIscreen *screen, const char *var, GLint *val);
|
||||
int (*configQueryf)(__DRIscreen *screen, const char *var, GLfloat *val);
|
||||
};
|
||||
|
||||
/**
|
||||
|
1363
include/GL/wglext.h
1363
include/GL/wglext.h
File diff suppressed because it is too large
Load Diff
@@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2013-2014 The Khronos Group Inc.
|
||||
** Copyright (c) 2013 The Khronos Group Inc.
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||
** copy of this software and/or associated documentation files (the
|
||||
@@ -33,14 +33,14 @@ extern "C" {
|
||||
** used to make the header, and the header can be found at
|
||||
** http://www.opengl.org/registry/
|
||||
**
|
||||
** Khronos $Revision: 25922 $ on $Date: 2014-03-17 03:54:32 -0700 (Mon, 17 Mar 2014) $
|
||||
** Khronos $Revision: 24614 $ on $Date: 2013-12-30 04:44:46 -0800 (Mon, 30 Dec 2013) $
|
||||
*/
|
||||
|
||||
#ifndef GL_APIENTRYP
|
||||
#define GL_APIENTRYP GL_APIENTRY*
|
||||
#endif
|
||||
|
||||
/* Generated on date 20140317 */
|
||||
/* Generated on date 20131230 */
|
||||
|
||||
/* Generated C header for:
|
||||
* API: gles2
|
||||
@@ -52,30 +52,6 @@ extern "C" {
|
||||
* Extensions removed: _nomatch_^
|
||||
*/
|
||||
|
||||
#ifndef GL_KHR_blend_equation_advanced
|
||||
#define GL_KHR_blend_equation_advanced 1
|
||||
#define GL_BLEND_ADVANCED_COHERENT_KHR 0x9285
|
||||
#define GL_MULTIPLY_KHR 0x9294
|
||||
#define GL_SCREEN_KHR 0x9295
|
||||
#define GL_OVERLAY_KHR 0x9296
|
||||
#define GL_DARKEN_KHR 0x9297
|
||||
#define GL_LIGHTEN_KHR 0x9298
|
||||
#define GL_COLORDODGE_KHR 0x9299
|
||||
#define GL_COLORBURN_KHR 0x929A
|
||||
#define GL_HARDLIGHT_KHR 0x929B
|
||||
#define GL_SOFTLIGHT_KHR 0x929C
|
||||
#define GL_DIFFERENCE_KHR 0x929E
|
||||
#define GL_EXCLUSION_KHR 0x92A0
|
||||
#define GL_HSL_HUE_KHR 0x92AD
|
||||
#define GL_HSL_SATURATION_KHR 0x92AE
|
||||
#define GL_HSL_COLOR_KHR 0x92AF
|
||||
#define GL_HSL_LUMINOSITY_KHR 0x92B0
|
||||
typedef void (GL_APIENTRYP PFNGLBLENDBARRIERKHRPROC) (void);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GL_APICALL void GL_APIENTRY glBlendBarrierKHR (void);
|
||||
#endif
|
||||
#endif /* GL_KHR_blend_equation_advanced */
|
||||
|
||||
#ifndef GL_KHR_debug
|
||||
#define GL_KHR_debug 1
|
||||
typedef void (GL_APIENTRY *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
|
||||
@@ -301,31 +277,6 @@ GL_APICALL void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname,
|
||||
#define GL_OES_rgb8_rgba8 1
|
||||
#endif /* GL_OES_rgb8_rgba8 */
|
||||
|
||||
#ifndef GL_OES_sample_shading
|
||||
#define GL_OES_sample_shading 1
|
||||
#define GL_SAMPLE_SHADING_OES 0x8C36
|
||||
#define GL_MIN_SAMPLE_SHADING_VALUE_OES 0x8C37
|
||||
typedef void (GL_APIENTRYP PFNGLMINSAMPLESHADINGOESPROC) (GLfloat value);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GL_APICALL void GL_APIENTRY glMinSampleShadingOES (GLfloat value);
|
||||
#endif
|
||||
#endif /* GL_OES_sample_shading */
|
||||
|
||||
#ifndef GL_OES_sample_variables
|
||||
#define GL_OES_sample_variables 1
|
||||
#endif /* GL_OES_sample_variables */
|
||||
|
||||
#ifndef GL_OES_shader_image_atomic
|
||||
#define GL_OES_shader_image_atomic 1
|
||||
#endif /* GL_OES_shader_image_atomic */
|
||||
|
||||
#ifndef GL_OES_shader_multisample_interpolation
|
||||
#define GL_OES_shader_multisample_interpolation 1
|
||||
#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES 0x8E5B
|
||||
#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES 0x8E5C
|
||||
#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES 0x8E5D
|
||||
#endif /* GL_OES_shader_multisample_interpolation */
|
||||
|
||||
#ifndef GL_OES_standard_derivatives
|
||||
#define GL_OES_standard_derivatives 1
|
||||
#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES 0x8B8B
|
||||
@@ -415,25 +366,6 @@ GL_APICALL void GL_APIENTRY glFramebufferTexture3DOES (GLenum target, GLenum att
|
||||
#define GL_OES_texture_npot 1
|
||||
#endif /* GL_OES_texture_npot */
|
||||
|
||||
#ifndef GL_OES_texture_stencil8
|
||||
#define GL_OES_texture_stencil8 1
|
||||
#define GL_STENCIL_INDEX_OES 0x1901
|
||||
#define GL_STENCIL_INDEX8_OES 0x8D48
|
||||
#endif /* GL_OES_texture_stencil8 */
|
||||
|
||||
#ifndef GL_OES_texture_storage_multisample_2d_array
|
||||
#define GL_OES_texture_storage_multisample_2d_array 1
|
||||
#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES 0x9102
|
||||
#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES 0x9105
|
||||
#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910B
|
||||
#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910C
|
||||
#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910D
|
||||
typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DMULTISAMPLEOESPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GL_APICALL void GL_APIENTRY glTexStorage3DMultisampleOES (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
|
||||
#endif
|
||||
#endif /* GL_OES_texture_storage_multisample_2d_array */
|
||||
|
||||
#ifndef GL_OES_vertex_array_object
|
||||
#define GL_OES_vertex_array_object 1
|
||||
#define GL_VERTEX_ARRAY_BINDING_OES 0x85B5
|
||||
@@ -681,16 +613,6 @@ GL_APICALL void GL_APIENTRY glGetSyncivAPPLE (GLsync sync, GLenum pname, GLsizei
|
||||
#define GL_ARM_rgba8 1
|
||||
#endif /* GL_ARM_rgba8 */
|
||||
|
||||
#ifndef GL_ARM_shader_framebuffer_fetch
|
||||
#define GL_ARM_shader_framebuffer_fetch 1
|
||||
#define GL_FETCH_PER_SAMPLE_ARM 0x8F65
|
||||
#define GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM 0x8F66
|
||||
#endif /* GL_ARM_shader_framebuffer_fetch */
|
||||
|
||||
#ifndef GL_ARM_shader_framebuffer_fetch_depth_stencil
|
||||
#define GL_ARM_shader_framebuffer_fetch_depth_stencil 1
|
||||
#endif /* GL_ARM_shader_framebuffer_fetch_depth_stencil */
|
||||
|
||||
#ifndef GL_DMP_shader_binary
|
||||
#define GL_DMP_shader_binary 1
|
||||
#define GL_SHADER_BINARY_DMP 0x9250
|
||||
@@ -1068,13 +990,6 @@ GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x3fvEXT (GLuint program, GLin
|
||||
#define GL_EXT_shader_integer_mix 1
|
||||
#endif /* GL_EXT_shader_integer_mix */
|
||||
|
||||
#ifndef GL_EXT_shader_pixel_local_storage
|
||||
#define GL_EXT_shader_pixel_local_storage 1
|
||||
#define GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT 0x8F63
|
||||
#define GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT 0x8F67
|
||||
#define GL_SHADER_PIXEL_LOCAL_STORAGE_EXT 0x8F64
|
||||
#endif /* GL_EXT_shader_pixel_local_storage */
|
||||
|
||||
#ifndef GL_EXT_shader_texture_lod
|
||||
#define GL_EXT_shader_texture_lod 1
|
||||
#endif /* GL_EXT_shader_texture_lod */
|
||||
|
1184
include/GLES3/gl31.h
1184
include/GLES3/gl31.h
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
||||
#ifndef __gl3platform_h_
|
||||
#define __gl3platform_h_
|
||||
|
||||
/* $Revision: 23328 $ on $Date:: 2013-10-02 02:28:28 -0700 #$ */
|
||||
/* $Revision: 18437 $ on $Date:: 2012-07-08 23:31:39 -0700 #$ */
|
||||
|
||||
/*
|
||||
* This document is licensed under the SGI Free Software B License Version
|
||||
|
@@ -296,7 +296,7 @@ static void impl_tss_dtor_invoke()
|
||||
static inline void
|
||||
call_once(once_flag *flag, void (*func)(void))
|
||||
{
|
||||
assert(flag && func);
|
||||
assert(!flag && !func);
|
||||
#ifdef EMULATED_THREADS_USE_NATIVE_CALL_ONCE
|
||||
{
|
||||
struct impl_call_once_param param;
|
||||
|
@@ -91,25 +91,23 @@ CHIPSET(0x0F32, byt, "Intel(R) Bay Trail")
|
||||
CHIPSET(0x0F33, byt, "Intel(R) Bay Trail")
|
||||
CHIPSET(0x0157, byt, "Intel(R) Bay Trail")
|
||||
CHIPSET(0x0155, byt, "Intel(R) Bay Trail")
|
||||
CHIPSET(0x1602, bdw_gt1, "Intel(R) Broadwell GT1")
|
||||
CHIPSET(0x1606, bdw_gt1, "Intel(R) Broadwell GT1")
|
||||
CHIPSET(0x160A, bdw_gt1, "Intel(R) Broadwell GT1")
|
||||
CHIPSET(0x160B, bdw_gt1, "Intel(R) Broadwell GT1")
|
||||
CHIPSET(0x160D, bdw_gt1, "Intel(R) Broadwell GT1")
|
||||
CHIPSET(0x160E, bdw_gt1, "Intel(R) Broadwell GT1")
|
||||
CHIPSET(0x1612, bdw_gt2, "Intel(R) HD Graphics 5600 (Broadwell GT2)")
|
||||
CHIPSET(0x1616, bdw_gt2, "Intel(R) HD Graphics 5500 (Broadwell GT2)")
|
||||
CHIPSET(0x161A, bdw_gt2, "Intel(R) Broadwell GT2")
|
||||
CHIPSET(0x161B, bdw_gt2, "Intel(R) Broadwell GT2")
|
||||
CHIPSET(0x161D, bdw_gt2, "Intel(R) Broadwell GT2")
|
||||
CHIPSET(0x161E, bdw_gt2, "Intel(R) HD Graphics 5300 (Broadwell GT2)")
|
||||
CHIPSET(0x1622, bdw_gt3, "Intel(R) Iris Pro 6200 (Broadwell GT3e)")
|
||||
CHIPSET(0x1626, bdw_gt3, "Intel(R) HD Graphics 6000 (Broadwell GT3)")
|
||||
CHIPSET(0x162A, bdw_gt3, "Intel(R) Iris Pro P6300 (Broadwell GT3e)")
|
||||
CHIPSET(0x162B, bdw_gt3, "Intel(R) Iris 6100 (Broadwell GT3)")
|
||||
CHIPSET(0x162D, bdw_gt3, "Intel(R) Broadwell GT3")
|
||||
CHIPSET(0x162E, bdw_gt3, "Intel(R) Broadwell GT3")
|
||||
CHIPSET(0x22B0, chv, "Intel(R) Cherryview")
|
||||
CHIPSET(0x22B1, chv, "Intel(R) Cherryview")
|
||||
CHIPSET(0x22B2, chv, "Intel(R) Cherryview")
|
||||
CHIPSET(0x22B3, chv, "Intel(R) Cherryview")
|
||||
#ifdef INTEL_PRELIMINARY_HW_SUPPORT
|
||||
CHIPSET(0x1602, bdw_gt1, "Intel(R) Broadwell")
|
||||
CHIPSET(0x1606, bdw_gt1, "Intel(R) Broadwell")
|
||||
CHIPSET(0x160A, bdw_gt1, "Intel(R) Broadwell")
|
||||
CHIPSET(0x160B, bdw_gt1, "Intel(R) Broadwell")
|
||||
CHIPSET(0x160D, bdw_gt1, "Intel(R) Broadwell")
|
||||
CHIPSET(0x160E, bdw_gt1, "Intel(R) Broadwell")
|
||||
CHIPSET(0x1612, bdw_gt2, "Intel(R) Broadwell")
|
||||
CHIPSET(0x1616, bdw_gt2, "Intel(R) Broadwell")
|
||||
CHIPSET(0x161A, bdw_gt2, "Intel(R) Broadwell")
|
||||
CHIPSET(0x161B, bdw_gt2, "Intel(R) Broadwell")
|
||||
CHIPSET(0x161D, bdw_gt2, "Intel(R) Broadwell")
|
||||
CHIPSET(0x161E, bdw_gt2, "Intel(R) Broadwell")
|
||||
CHIPSET(0x1622, bdw_gt3, "Intel(R) Broadwell")
|
||||
CHIPSET(0x1626, bdw_gt3, "Intel(R) Broadwell")
|
||||
CHIPSET(0x162A, bdw_gt3, "Intel(R) Broadwell")
|
||||
CHIPSET(0x162B, bdw_gt3, "Intel(R) Broadwell")
|
||||
CHIPSET(0x162D, bdw_gt3, "Intel(R) Broadwell")
|
||||
CHIPSET(0x162E, bdw_gt3, "Intel(R) Broadwell")
|
||||
#endif
|
||||
|
@@ -38,7 +38,6 @@ CHIPSET(0x6828, VERDE_6828, VERDE)
|
||||
CHIPSET(0x6829, VERDE_6829, VERDE)
|
||||
CHIPSET(0x682A, VERDE_682A, VERDE)
|
||||
CHIPSET(0x682B, VERDE_682B, VERDE)
|
||||
CHIPSET(0x682C, VERDE_682C, VERDE)
|
||||
CHIPSET(0x682D, VERDE_682D, VERDE)
|
||||
CHIPSET(0x682F, VERDE_682F, VERDE)
|
||||
CHIPSET(0x6830, VERDE_6830, VERDE)
|
||||
@@ -55,11 +54,8 @@ CHIPSET(0x6600, OLAND_6600, OLAND)
|
||||
CHIPSET(0x6601, OLAND_6601, OLAND)
|
||||
CHIPSET(0x6602, OLAND_6602, OLAND)
|
||||
CHIPSET(0x6603, OLAND_6603, OLAND)
|
||||
CHIPSET(0x6604, OLAND_6604, OLAND)
|
||||
CHIPSET(0x6605, OLAND_6605, OLAND)
|
||||
CHIPSET(0x6606, OLAND_6606, OLAND)
|
||||
CHIPSET(0x6607, OLAND_6607, OLAND)
|
||||
CHIPSET(0x6608, OLAND_6608, OLAND)
|
||||
CHIPSET(0x6610, OLAND_6610, OLAND)
|
||||
CHIPSET(0x6611, OLAND_6611, OLAND)
|
||||
CHIPSET(0x6613, OLAND_6613, OLAND)
|
||||
@@ -77,8 +73,6 @@ CHIPSET(0x666F, HAINAN_666F, HAINAN)
|
||||
|
||||
CHIPSET(0x6640, BONAIRE_6640, BONAIRE)
|
||||
CHIPSET(0x6641, BONAIRE_6641, BONAIRE)
|
||||
CHIPSET(0x6646, BONAIRE_6646, BONAIRE)
|
||||
CHIPSET(0x6647, BONAIRE_6647, BONAIRE)
|
||||
CHIPSET(0x6649, BONAIRE_6649, BONAIRE)
|
||||
CHIPSET(0x6650, BONAIRE_6650, BONAIRE)
|
||||
CHIPSET(0x6651, BONAIRE_6651, BONAIRE)
|
||||
@@ -103,23 +97,6 @@ CHIPSET(0x983D, KABINI_983D, KABINI)
|
||||
CHIPSET(0x983E, KABINI_983E, KABINI)
|
||||
CHIPSET(0x983F, KABINI_983F, KABINI)
|
||||
|
||||
CHIPSET(0x9850, MULLINS_9850, MULLINS)
|
||||
CHIPSET(0x9851, MULLINS_9851, MULLINS)
|
||||
CHIPSET(0x9852, MULLINS_9852, MULLINS)
|
||||
CHIPSET(0x9853, MULLINS_9853, MULLINS)
|
||||
CHIPSET(0x9854, MULLINS_9854, MULLINS)
|
||||
CHIPSET(0x9855, MULLINS_9855, MULLINS)
|
||||
CHIPSET(0x9856, MULLINS_9856, MULLINS)
|
||||
CHIPSET(0x9857, MULLINS_9857, MULLINS)
|
||||
CHIPSET(0x9858, MULLINS_9858, MULLINS)
|
||||
CHIPSET(0x9859, MULLINS_9859, MULLINS)
|
||||
CHIPSET(0x985A, MULLINS_985A, MULLINS)
|
||||
CHIPSET(0x985B, MULLINS_985B, MULLINS)
|
||||
CHIPSET(0x985C, MULLINS_985C, MULLINS)
|
||||
CHIPSET(0x985D, MULLINS_985D, MULLINS)
|
||||
CHIPSET(0x985E, MULLINS_985E, MULLINS)
|
||||
CHIPSET(0x985F, MULLINS_985F, MULLINS)
|
||||
|
||||
CHIPSET(0x1304, KAVERI_1304, KAVERI)
|
||||
CHIPSET(0x1305, KAVERI_1305, KAVERI)
|
||||
CHIPSET(0x1306, KAVERI_1306, KAVERI)
|
||||
@@ -138,7 +115,6 @@ CHIPSET(0x1313, KAVERI_1313, KAVERI)
|
||||
CHIPSET(0x1315, KAVERI_1315, KAVERI)
|
||||
CHIPSET(0x1316, KAVERI_1316, KAVERI)
|
||||
CHIPSET(0x1317, KAVERI_1317, KAVERI)
|
||||
CHIPSET(0x1318, KAVERI_1318, KAVERI)
|
||||
CHIPSET(0x131B, KAVERI_131B, KAVERI)
|
||||
CHIPSET(0x131C, KAVERI_131C, KAVERI)
|
||||
CHIPSET(0x131D, KAVERI_131D, KAVERI)
|
||||
|
@@ -1,26 +0,0 @@
|
||||
# Provide compatibility with scripts for the old Mesa build system for
|
||||
# a while by putting a link to the driver into /lib of the build tree.
|
||||
|
||||
if BUILD_SHARED
|
||||
if HAVE_COMPAT_SYMLINKS
|
||||
all-local : .libs/install-gallium-links
|
||||
|
||||
.libs/install-gallium-links : $(dri_LTLIBRARIES) $(egl_LTLIBRARIES) $(lib_LTLIBRARIES)
|
||||
$(AM_V_GEN)$(MKDIR_P) $(top_builddir)/$(LIB_DIR); \
|
||||
link_dir=$(top_builddir)/$(LIB_DIR)/gallium; \
|
||||
if test x$(egl_LTLIBRARIES) != x; then \
|
||||
link_dir=$(top_builddir)/$(LIB_DIR)/egl; \
|
||||
fi; \
|
||||
$(MKDIR_P) $$link_dir; \
|
||||
file_list=$(dri_LTLIBRARIES:%.la=.libs/%.so); \
|
||||
file_list+=$(egl_LTLIBRARIES:%.la=.libs/%.$(LIB_EXT)*); \
|
||||
file_list+=$(lib_LTLIBRARIES:%.la=.libs/%.$(LIB_EXT)*); \
|
||||
for f in $$file_list; do \
|
||||
if test -h .libs/$$f; then \
|
||||
cp -d $$f $$link_dir; \
|
||||
else \
|
||||
ln -f $$f $$link_dir; \
|
||||
fi; \
|
||||
done && touch $@
|
||||
endif
|
||||
endif
|
@@ -1,18 +1,14 @@
|
||||
# Provide compatibility with scripts for the old Mesa build system for
|
||||
# a while by putting a link to the driver into /lib of the build tree.
|
||||
|
||||
if BUILD_SHARED
|
||||
if HAVE_COMPAT_SYMLINKS
|
||||
all-local : .libs/install-mesa-links
|
||||
|
||||
.libs/install-mesa-links : $(lib_LTLIBRARIES)
|
||||
$(AM_V_GEN)$(MKDIR_P) $(top_builddir)/$(LIB_DIR); \
|
||||
for f in $(join $(addsuffix .libs/,$(dir $(lib_LTLIBRARIES))),$(notdir $(lib_LTLIBRARIES:%.la=%.$(LIB_EXT)*))); do \
|
||||
$(MKDIR_P) $(top_builddir)/$(LIB_DIR)
|
||||
for f in $(lib_LTLIBRARIES:%.la=.libs/%.so*); do \
|
||||
if test -h .libs/$$f; then \
|
||||
cp -d $$f $(top_builddir)/$(LIB_DIR); \
|
||||
else \
|
||||
ln -f $$f $(top_builddir)/$(LIB_DIR); \
|
||||
fi; \
|
||||
done && touch $@
|
||||
endif
|
||||
endif
|
||||
|
@@ -1,168 +0,0 @@
|
||||
# ===========================================================================
|
||||
# http://www.gnu.org/software/autoconf-archive/ax_gcc_builtin.html
|
||||
# ===========================================================================
|
||||
#
|
||||
# SYNOPSIS
|
||||
#
|
||||
# AX_GCC_BUILTIN(BUILTIN)
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
# This macro checks if the compiler supports one of GCC's built-in
|
||||
# functions; many other compilers also provide those same built-ins.
|
||||
#
|
||||
# The BUILTIN parameter is the name of the built-in function.
|
||||
#
|
||||
# If BUILTIN is supported define HAVE_<BUILTIN>. Keep in mind that since
|
||||
# builtins usually start with two underscores they will be copied over
|
||||
# into the HAVE_<BUILTIN> definition (e.g. HAVE___BUILTIN_EXPECT for
|
||||
# __builtin_expect()).
|
||||
#
|
||||
# The macro caches its result in the ax_cv_have_<BUILTIN> variable (e.g.
|
||||
# ax_cv_have___builtin_expect).
|
||||
#
|
||||
# The macro currently supports the following built-in functions:
|
||||
#
|
||||
# __builtin_assume_aligned
|
||||
# __builtin_bswap32
|
||||
# __builtin_bswap64
|
||||
# __builtin_choose_expr
|
||||
# __builtin___clear_cache
|
||||
# __builtin_clrsb
|
||||
# __builtin_clrsbl
|
||||
# __builtin_clrsbll
|
||||
# __builtin_clz
|
||||
# __builtin_clzl
|
||||
# __builtin_clzll
|
||||
# __builtin_complex
|
||||
# __builtin_constant_p
|
||||
# __builtin_ctz
|
||||
# __builtin_ctzl
|
||||
# __builtin_ctzll
|
||||
# __builtin_expect
|
||||
# __builtin_ffs
|
||||
# __builtin_ffsl
|
||||
# __builtin_ffsll
|
||||
# __builtin_fpclassify
|
||||
# __builtin_huge_val
|
||||
# __builtin_huge_valf
|
||||
# __builtin_huge_vall
|
||||
# __builtin_inf
|
||||
# __builtin_infd128
|
||||
# __builtin_infd32
|
||||
# __builtin_infd64
|
||||
# __builtin_inff
|
||||
# __builtin_infl
|
||||
# __builtin_isinf_sign
|
||||
# __builtin_nan
|
||||
# __builtin_nand128
|
||||
# __builtin_nand32
|
||||
# __builtin_nand64
|
||||
# __builtin_nanf
|
||||
# __builtin_nanl
|
||||
# __builtin_nans
|
||||
# __builtin_nansf
|
||||
# __builtin_nansl
|
||||
# __builtin_object_size
|
||||
# __builtin_parity
|
||||
# __builtin_parityl
|
||||
# __builtin_parityll
|
||||
# __builtin_popcount
|
||||
# __builtin_popcountl
|
||||
# __builtin_popcountll
|
||||
# __builtin_powi
|
||||
# __builtin_powif
|
||||
# __builtin_powil
|
||||
# __builtin_prefetch
|
||||
# __builtin_trap
|
||||
# __builtin_types_compatible_p
|
||||
# __builtin_unreachable
|
||||
#
|
||||
# Unsuppored built-ins will be tested with an empty parameter set and the
|
||||
# result of the check might be wrong or meaningless so use with care.
|
||||
#
|
||||
# LICENSE
|
||||
#
|
||||
# Copyright (c) 2013 Gabriele Svelto <gabriele.svelto@gmail.com>
|
||||
#
|
||||
# Copying and distribution of this file, with or without modification, are
|
||||
# permitted in any medium without royalty provided the copyright notice
|
||||
# and this notice are preserved. This file is offered as-is, without any
|
||||
# warranty.
|
||||
|
||||
#serial 2
|
||||
|
||||
AC_DEFUN([AX_GCC_BUILTIN], [
|
||||
AS_VAR_PUSHDEF([ac_var], [ax_cv_have_$1])
|
||||
|
||||
AC_CACHE_CHECK([for $1], [ac_var], [
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([], [
|
||||
m4_case([$1],
|
||||
[__builtin_assume_aligned], [$1("", 0)],
|
||||
[__builtin_bswap32], [$1(0)],
|
||||
[__builtin_bswap64], [$1(0)],
|
||||
[__builtin_choose_expr], [$1(0, 0, 0)],
|
||||
[__builtin___clear_cache], [$1("", "")],
|
||||
[__builtin_clrsb], [$1(0)],
|
||||
[__builtin_clrsbl], [$1(0)],
|
||||
[__builtin_clrsbll], [$1(0)],
|
||||
[__builtin_clz], [$1(0)],
|
||||
[__builtin_clzl], [$1(0)],
|
||||
[__builtin_clzll], [$1(0)],
|
||||
[__builtin_complex], [$1(0.0, 0.0)],
|
||||
[__builtin_constant_p], [$1(0)],
|
||||
[__builtin_ctz], [$1(0)],
|
||||
[__builtin_ctzl], [$1(0)],
|
||||
[__builtin_ctzll], [$1(0)],
|
||||
[__builtin_expect], [$1(0, 0)],
|
||||
[__builtin_ffs], [$1(0)],
|
||||
[__builtin_ffsl], [$1(0)],
|
||||
[__builtin_ffsll], [$1(0)],
|
||||
[__builtin_fpclassify], [$1(0, 1, 2, 3, 4, 0.0)],
|
||||
[__builtin_huge_val], [$1()],
|
||||
[__builtin_huge_valf], [$1()],
|
||||
[__builtin_huge_vall], [$1()],
|
||||
[__builtin_inf], [$1()],
|
||||
[__builtin_infd128], [$1()],
|
||||
[__builtin_infd32], [$1()],
|
||||
[__builtin_infd64], [$1()],
|
||||
[__builtin_inff], [$1()],
|
||||
[__builtin_infl], [$1()],
|
||||
[__builtin_isinf_sign], [$1(0.0)],
|
||||
[__builtin_nan], [$1("")],
|
||||
[__builtin_nand128], [$1("")],
|
||||
[__builtin_nand32], [$1("")],
|
||||
[__builtin_nand64], [$1("")],
|
||||
[__builtin_nanf], [$1("")],
|
||||
[__builtin_nanl], [$1("")],
|
||||
[__builtin_nans], [$1("")],
|
||||
[__builtin_nansf], [$1("")],
|
||||
[__builtin_nansl], [$1("")],
|
||||
[__builtin_object_size], [$1("", 0)],
|
||||
[__builtin_parity], [$1(0)],
|
||||
[__builtin_parityl], [$1(0)],
|
||||
[__builtin_parityll], [$1(0)],
|
||||
[__builtin_popcount], [$1(0)],
|
||||
[__builtin_popcountl], [$1(0)],
|
||||
[__builtin_popcountll], [$1(0)],
|
||||
[__builtin_powi], [$1(0, 0)],
|
||||
[__builtin_powif], [$1(0, 0)],
|
||||
[__builtin_powil], [$1(0, 0)],
|
||||
[__builtin_prefetch], [$1("")],
|
||||
[__builtin_trap], [$1()],
|
||||
[__builtin_types_compatible_p], [$1(int, int)],
|
||||
[__builtin_unreachable], [$1()],
|
||||
[m4_warn([syntax], [Unsupported built-in $1, the test may fail])
|
||||
$1()]
|
||||
)
|
||||
])],
|
||||
[AS_VAR_SET([ac_var], [yes])],
|
||||
[AS_VAR_SET([ac_var], [no])])
|
||||
])
|
||||
|
||||
AS_IF([test yes = AS_VAR_GET([ac_var])],
|
||||
[AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_$1), 1,
|
||||
[Define to 1 if the system has the `$1' built-in function])], [])
|
||||
|
||||
AS_VAR_POPDEF([ac_var])
|
||||
])
|
49
m4/ax_python_module.m4
Normal file
49
m4/ax_python_module.m4
Normal file
@@ -0,0 +1,49 @@
|
||||
# ===========================================================================
|
||||
# http://www.gnu.org/software/autoconf-archive/ax_python_module.html
|
||||
# ===========================================================================
|
||||
#
|
||||
# SYNOPSIS
|
||||
#
|
||||
# AX_PYTHON_MODULE(modname[, fatal])
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
# Checks for Python module.
|
||||
#
|
||||
# If fatal is non-empty then absence of a module will trigger an error.
|
||||
#
|
||||
# LICENSE
|
||||
#
|
||||
# Copyright (c) 2008 Andrew Collier
|
||||
#
|
||||
# Copying and distribution of this file, with or without modification, are
|
||||
# permitted in any medium without royalty provided the copyright notice
|
||||
# and this notice are preserved. This file is offered as-is, without any
|
||||
# warranty.
|
||||
|
||||
#serial 6
|
||||
|
||||
AU_ALIAS([AC_PYTHON_MODULE], [AX_PYTHON_MODULE])
|
||||
AC_DEFUN([AX_PYTHON_MODULE],[
|
||||
if test -z $PYTHON2;
|
||||
then
|
||||
PYTHON2="python"
|
||||
fi
|
||||
PYTHON_NAME=`basename $PYTHON2`
|
||||
AC_MSG_CHECKING($PYTHON_NAME module: $1)
|
||||
$PYTHON2 -c "import $1" 2>/dev/null
|
||||
if test $? -eq 0;
|
||||
then
|
||||
AC_MSG_RESULT(yes)
|
||||
eval AS_TR_CPP(HAVE_PYMOD_$1)=yes
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
eval AS_TR_CPP(HAVE_PYMOD_$1)=no
|
||||
#
|
||||
if test -n "$2"
|
||||
then
|
||||
AC_MSG_ERROR(failed to find required module $1)
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
])
|
@@ -41,13 +41,26 @@ import SCons.Builder
|
||||
import SCons.Tool
|
||||
import SCons.Util
|
||||
|
||||
# These are the mingw toolchain prefixes we search for:
|
||||
# (We only search for the mingw-w64 toolchain, and not the mingw.org one.)
|
||||
# This is what we search for to find mingw:
|
||||
prefixes32 = SCons.Util.Split("""
|
||||
mingw32-
|
||||
mingw32msvc-
|
||||
i386-mingw32-
|
||||
i486-mingw32-
|
||||
i586-mingw32-
|
||||
i686-mingw32-
|
||||
i386-mingw32msvc-
|
||||
i486-mingw32msvc-
|
||||
i586-mingw32msvc-
|
||||
i686-mingw32msvc-
|
||||
i686-pc-mingw32-
|
||||
i686-w64-mingw32-
|
||||
""")
|
||||
prefixes64 = SCons.Util.Split("""
|
||||
x86_64-w64-mingw32-
|
||||
amd64-mingw32-
|
||||
amd64-mingw32msvc-
|
||||
amd64-pc-mingw32-
|
||||
""")
|
||||
|
||||
def find(env):
|
||||
|
@@ -276,9 +276,6 @@ def parse_source_list(env, filename, names=None):
|
||||
# Prefer relative source paths, as absolute files tend to
|
||||
# cause duplicate actions.
|
||||
f = f[len(cur_srcdir + '/'):]
|
||||
# do not include any headers
|
||||
if f.endswith('.h'):
|
||||
continue
|
||||
srcs.append(f)
|
||||
|
||||
src_lists[sym] = srcs
|
||||
|
@@ -36,8 +36,6 @@ import os.path
|
||||
import re
|
||||
import subprocess
|
||||
import platform as _platform
|
||||
import sys
|
||||
import tempfile
|
||||
|
||||
import SCons.Action
|
||||
import SCons.Builder
|
||||
@@ -106,28 +104,6 @@ def num_jobs():
|
||||
return 1
|
||||
|
||||
|
||||
def check_cc(env, cc, expr, cpp_opt = '-E'):
|
||||
# Invoke C-preprocessor to determine whether the specified expression is
|
||||
# true or not.
|
||||
|
||||
sys.stdout.write('Checking for %s ... ' % cc)
|
||||
|
||||
source = tempfile.NamedTemporaryFile(suffix='.c', delete=False)
|
||||
source.write('#if !(%s)\n#error\n#endif\n' % expr)
|
||||
source.close()
|
||||
|
||||
pipe = SCons.Action._subproc(env, [env['CC'], cpp_opt, source.name],
|
||||
stdin = 'devnull',
|
||||
stderr = 'devnull',
|
||||
stdout = 'devnull')
|
||||
result = pipe.wait() == 0
|
||||
|
||||
os.unlink(source.name)
|
||||
|
||||
sys.stdout.write(' %s\n' % ['no', 'yes'][int(bool(result))])
|
||||
return result
|
||||
|
||||
|
||||
def generate(env):
|
||||
"""Common environment generation code"""
|
||||
|
||||
@@ -161,18 +137,10 @@ def generate(env):
|
||||
if os.environ.has_key('LDFLAGS'):
|
||||
env['LINKFLAGS'] += SCons.Util.CLVar(os.environ['LDFLAGS'])
|
||||
|
||||
# Detect gcc/clang not by executable name, but through pre-defined macros
|
||||
# as autoconf does, to avoid drawing wrong conclusions when using tools
|
||||
# that overrice CC/CXX like scan-build.
|
||||
env['gcc'] = 0
|
||||
env['clang'] = 0
|
||||
env['msvc'] = 0
|
||||
if _platform.system() == 'Windows':
|
||||
env['msvc'] = check_cc(env, 'MSVC', 'defined(_MSC_VER)', '/E')
|
||||
if not env['msvc']:
|
||||
env['gcc'] = check_cc(env, 'GCC', 'defined(__GNUC__) && !defined(__clang__)')
|
||||
env['clang'] = check_cc(env, 'Clang', '__clang__')
|
||||
env['gcc'] = 'gcc' in os.path.basename(env['CC']).split('-')
|
||||
env['msvc'] = env['CC'] == 'cl'
|
||||
env['suncc'] = env['platform'] == 'sunos' and os.path.basename(env['CC']) == 'cc'
|
||||
env['clang'] = env['CC'] == 'clang'
|
||||
env['icc'] = 'icc' == os.path.basename(env['CC'])
|
||||
|
||||
if env['msvc'] and env['toolchain'] == 'default' and env['machine'] == 'x86_64':
|
||||
@@ -433,12 +401,6 @@ def generate(env):
|
||||
# See also:
|
||||
# - http://msdn.microsoft.com/en-us/library/19z1t1wy.aspx
|
||||
# - cl /?
|
||||
if 'MSVC_VERSION' not in env or distutils.version.LooseVersion(env['MSVC_VERSION']) < distutils.version.LooseVersion('12.0'):
|
||||
# Use bundled stdbool.h and stdint.h headers for older MSVC
|
||||
# versions. stdint.h was introduced in MSVC 2010, but stdbool.h
|
||||
# was only introduced in MSVC 2013.
|
||||
top_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
|
||||
env.Append(CPPPATH = [os.path.join(top_dir, 'include/c99')])
|
||||
if env['build'] == 'debug':
|
||||
ccflags += [
|
||||
'/Od', # disable optimizations
|
||||
@@ -461,9 +423,7 @@ def generate(env):
|
||||
]
|
||||
ccflags += [
|
||||
'/W3', # warning level
|
||||
'/wd4244', # conversion from 'type1' to 'type2', possible loss of data
|
||||
'/wd4305', # truncation from 'type1' to 'type2'
|
||||
'/wd4800', # forcing value to bool 'true' or 'false' (performance warning)
|
||||
#'/Wp64', # enable 64 bit porting warnings
|
||||
'/wd4996', # disable deprecated POSIX name warnings
|
||||
]
|
||||
if env['machine'] == 'x86':
|
||||
@@ -492,18 +452,6 @@ def generate(env):
|
||||
env.Append(CCFLAGS = ['/MT'])
|
||||
env.Append(SHCCFLAGS = ['/LD'])
|
||||
|
||||
# Static code analysis
|
||||
if env['analyze']:
|
||||
if env['msvc']:
|
||||
# http://msdn.microsoft.com/en-us/library/ms173498.aspx
|
||||
env.Append(CCFLAGS = [
|
||||
'/analyze',
|
||||
#'/analyze:log', '${TARGET.base}.xml',
|
||||
])
|
||||
if env['clang']:
|
||||
# scan-build will produce more comprehensive output
|
||||
env.Append(CCFLAGS = ['--analyze'])
|
||||
|
||||
# Assembler options
|
||||
if gcc_compat:
|
||||
if env['machine'] == 'x86':
|
||||
@@ -588,10 +536,13 @@ def generate(env):
|
||||
createInstallMethods(env)
|
||||
|
||||
env.PkgCheckModules('X11', ['x11', 'xext', 'xdamage', 'xfixes'])
|
||||
env.PkgCheckModules('XCB', ['x11-xcb', 'xcb-glx >= 1.8.1', 'xcb-dri2 >= 1.8'])
|
||||
env.PkgCheckModules('XCB', ['x11-xcb', 'xcb-glx >= 1.8.1'])
|
||||
env.PkgCheckModules('XF86VIDMODE', ['xxf86vm'])
|
||||
env.PkgCheckModules('DRM', ['libdrm >= 2.4.38'])
|
||||
env.PkgCheckModules('UDEV', ['libudev >= 151'])
|
||||
env.PkgCheckModules('DRM', ['libdrm >= 2.4.24'])
|
||||
env.PkgCheckModules('DRM_INTEL', ['libdrm_intel >= 2.4.30'])
|
||||
env.PkgCheckModules('XORG', ['xorg-server >= 1.6.0'])
|
||||
env.PkgCheckModules('KMS', ['libkms >= 2.4.24'])
|
||||
env.PkgCheckModules('UDEV', ['libudev > 150'])
|
||||
|
||||
env['dri'] = env['x11'] and env['drm']
|
||||
|
||||
|
@@ -37,9 +37,6 @@ import SCons.Errors
|
||||
import SCons.Util
|
||||
|
||||
|
||||
required_llvm_version = '3.1'
|
||||
|
||||
|
||||
def generate(env):
|
||||
env['llvm'] = False
|
||||
|
||||
@@ -87,9 +84,6 @@ def generate(env):
|
||||
if llvm_version is None:
|
||||
print 'scons: could not determine the LLVM version from %s' % llvm_config
|
||||
return
|
||||
if llvm_version < distutils.version.LooseVersion(required_llvm_version):
|
||||
print 'scons: LLVM version %s found, but %s is required' % (llvm_version, required_llvm_version)
|
||||
return
|
||||
|
||||
env.Prepend(CPPPATH = [os.path.join(llvm_dir, 'include')])
|
||||
env.AppendUnique(CPPDEFINES = [
|
||||
@@ -104,24 +98,64 @@ def generate(env):
|
||||
'LLVMBitWriter', 'LLVMX86Disassembler', 'LLVMX86AsmParser',
|
||||
'LLVMX86CodeGen', 'LLVMX86Desc', 'LLVMSelectionDAG',
|
||||
'LLVMAsmPrinter', 'LLVMMCParser', 'LLVMX86AsmPrinter',
|
||||
'LLVMX86Utils', 'LLVMX86Info', 'LLVMMCJIT', 'LLVMJIT',
|
||||
'LLVMX86Utils', 'LLVMX86Info', 'LLVMJIT',
|
||||
'LLVMExecutionEngine', 'LLVMCodeGen', 'LLVMScalarOpts',
|
||||
'LLVMInstCombine', 'LLVMTransformUtils', 'LLVMipa',
|
||||
'LLVMAnalysis', 'LLVMTarget', 'LLVMMC', 'LLVMCore',
|
||||
'LLVMSupport', 'LLVMRuntimeDyld', 'LLVMObject'
|
||||
])
|
||||
else:
|
||||
# 3.1
|
||||
elif llvm_version >= distutils.version.LooseVersion('3.0'):
|
||||
# 3.0
|
||||
env.Prepend(LIBS = [
|
||||
'LLVMBitWriter', 'LLVMX86Disassembler', 'LLVMX86AsmParser',
|
||||
'LLVMX86CodeGen', 'LLVMX86Desc', 'LLVMSelectionDAG',
|
||||
'LLVMAsmPrinter', 'LLVMMCParser', 'LLVMX86AsmPrinter',
|
||||
'LLVMX86Utils', 'LLVMX86Info', 'LLVMMCJIT', 'LLVMJIT',
|
||||
'LLVMX86Utils', 'LLVMX86Info', 'LLVMJIT',
|
||||
'LLVMExecutionEngine', 'LLVMCodeGen', 'LLVMScalarOpts',
|
||||
'LLVMInstCombine', 'LLVMTransformUtils', 'LLVMipa',
|
||||
'LLVMAnalysis', 'LLVMTarget', 'LLVMMC', 'LLVMCore',
|
||||
'LLVMSupport'
|
||||
])
|
||||
elif llvm_version >= distutils.version.LooseVersion('2.9'):
|
||||
# 2.9
|
||||
env.Prepend(LIBS = [
|
||||
'LLVMObject', 'LLVMMCJIT', 'LLVMMCDisassembler',
|
||||
'LLVMLinker', 'LLVMipo', 'LLVMInterpreter',
|
||||
'LLVMInstrumentation', 'LLVMJIT', 'LLVMExecutionEngine',
|
||||
'LLVMBitWriter', 'LLVMX86Disassembler', 'LLVMX86AsmParser',
|
||||
'LLVMMCParser', 'LLVMX86AsmPrinter', 'LLVMX86CodeGen',
|
||||
'LLVMSelectionDAG', 'LLVMX86Utils', 'LLVMX86Info', 'LLVMAsmPrinter',
|
||||
'LLVMCodeGen', 'LLVMScalarOpts', 'LLVMInstCombine',
|
||||
'LLVMTransformUtils', 'LLVMipa', 'LLVMAsmParser',
|
||||
'LLVMArchive', 'LLVMBitReader', 'LLVMAnalysis', 'LLVMTarget',
|
||||
'LLVMCore', 'LLVMMC', 'LLVMSupport',
|
||||
])
|
||||
elif llvm_version >= distutils.version.LooseVersion('2.7'):
|
||||
# 2.7
|
||||
env.Prepend(LIBS = [
|
||||
'LLVMLinker', 'LLVMipo', 'LLVMInterpreter',
|
||||
'LLVMInstrumentation', 'LLVMJIT', 'LLVMExecutionEngine',
|
||||
'LLVMBitWriter', 'LLVMX86Disassembler', 'LLVMX86AsmParser',
|
||||
'LLVMMCParser', 'LLVMX86AsmPrinter', 'LLVMX86CodeGen',
|
||||
'LLVMSelectionDAG', 'LLVMX86Info', 'LLVMAsmPrinter',
|
||||
'LLVMCodeGen', 'LLVMScalarOpts', 'LLVMInstCombine',
|
||||
'LLVMTransformUtils', 'LLVMipa', 'LLVMAsmParser',
|
||||
'LLVMArchive', 'LLVMBitReader', 'LLVMAnalysis', 'LLVMTarget',
|
||||
'LLVMMC', 'LLVMCore', 'LLVMSupport', 'LLVMSystem',
|
||||
])
|
||||
else:
|
||||
# 2.6
|
||||
env.Prepend(LIBS = [
|
||||
'LLVMX86AsmParser', 'LLVMX86AsmPrinter', 'LLVMX86CodeGen',
|
||||
'LLVMX86Info', 'LLVMLinker', 'LLVMipo', 'LLVMInterpreter',
|
||||
'LLVMInstrumentation', 'LLVMJIT', 'LLVMExecutionEngine',
|
||||
'LLVMDebugger', 'LLVMBitWriter', 'LLVMAsmParser',
|
||||
'LLVMArchive', 'LLVMBitReader', 'LLVMSelectionDAG',
|
||||
'LLVMAsmPrinter', 'LLVMCodeGen', 'LLVMScalarOpts',
|
||||
'LLVMTransformUtils', 'LLVMipa', 'LLVMAnalysis',
|
||||
'LLVMTarget', 'LLVMMC', 'LLVMCore', 'LLVMSupport',
|
||||
'LLVMSystem',
|
||||
])
|
||||
env.Append(LIBS = [
|
||||
'imagehlp',
|
||||
'psapi',
|
||||
@@ -146,10 +180,6 @@ def generate(env):
|
||||
llvm_version = env.backtick('llvm-config --version').rstrip()
|
||||
llvm_version = distutils.version.LooseVersion(llvm_version)
|
||||
|
||||
if llvm_version < distutils.version.LooseVersion(required_llvm_version):
|
||||
print 'scons: LLVM version %s found, but %s is required' % (llvm_version, required_llvm_version)
|
||||
return
|
||||
|
||||
try:
|
||||
# Treat --cppflags specially to prevent NDEBUG from disabling
|
||||
# assertion failures in debug builds.
|
||||
@@ -165,13 +195,15 @@ def generate(env):
|
||||
if '-fno-rtti' in cxxflags:
|
||||
env.Append(CXXFLAGS = ['-fno-rtti'])
|
||||
|
||||
components = ['engine', 'mcjit', 'bitwriter', 'x86asmprinter']
|
||||
components = ['engine', 'bitwriter', 'x86asmprinter']
|
||||
|
||||
if llvm_version >= distutils.version.LooseVersion('3.1'):
|
||||
components.append('mcjit')
|
||||
|
||||
env.ParseConfig('llvm-config --libs ' + ' '.join(components))
|
||||
env.ParseConfig('llvm-config --ldflags')
|
||||
if llvm_version >= distutils.version.LooseVersion('3.5'):
|
||||
env.ParseConfig('llvm-config --system-libs')
|
||||
env.Append(CXXFLAGS = ['-std=c++11'])
|
||||
except OSError:
|
||||
print 'scons: llvm-config version %s failed' % llvm_version
|
||||
return
|
||||
|
@@ -19,14 +19,12 @@
|
||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
# IN THE SOFTWARE.
|
||||
|
||||
SUBDIRS = gtest util mapi
|
||||
SUBDIRS = gtest loader mapi
|
||||
|
||||
if NEED_OPENGL_COMMON
|
||||
SUBDIRS += glsl mesa
|
||||
endif
|
||||
|
||||
SUBDIRS += loader
|
||||
|
||||
if HAVE_DRI_GLX
|
||||
SUBDIRS += glx
|
||||
endif
|
||||
@@ -35,20 +33,25 @@ if HAVE_EGL_PLATFORM_WAYLAND
|
||||
SUBDIRS += egl/wayland
|
||||
endif
|
||||
|
||||
if HAVE_EGL_DRIVER_DRI2
|
||||
SUBDIRS += egl/drivers/dri2
|
||||
endif
|
||||
|
||||
if HAVE_GBM
|
||||
SUBDIRS += gbm
|
||||
endif
|
||||
|
||||
if HAVE_EGL
|
||||
SUBDIRS += egl/main
|
||||
SUBDIRS += egl
|
||||
endif
|
||||
|
||||
if HAVE_GALLIUM
|
||||
SUBDIRS += gallium
|
||||
endif
|
||||
SUBDIRS += \
|
||||
gallium/auxiliary \
|
||||
gallium/drivers \
|
||||
gallium/state_trackers \
|
||||
gallium/winsys \
|
||||
gallium/targets
|
||||
|
||||
EXTRA_DIST = getopt
|
||||
if HAVE_GALLIUM_TESTS
|
||||
SUBDIRS += \
|
||||
gallium/tests/trivial \
|
||||
gallium/tests/unit
|
||||
endif
|
||||
endif
|
||||
|
@@ -4,7 +4,6 @@ Import('*')
|
||||
if env['platform'] == 'windows':
|
||||
SConscript('getopt/SConscript')
|
||||
|
||||
SConscript('util/SConscript')
|
||||
SConscript('glsl/SConscript')
|
||||
|
||||
if env['hostonly']:
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# Copyright (C) 2014 Emil Velikov <emil.l.velikov@gmail.com>
|
||||
# Copyright © 2012 Intel Corporation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||
# copy of this software and associated documentation files (the "Software"),
|
||||
@@ -7,31 +7,18 @@
|
||||
# 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 above copyright notice and this permission notice (including the next
|
||||
# paragraph) shall be included in all copies or substantial portions of the
|
||||
# Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
# DEALINGS IN THE SOFTWARE.
|
||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
# IN THE SOFTWARE.
|
||||
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
SUBDIRS=
|
||||
|
||||
# get C_SOURCES
|
||||
include $(LOCAL_PATH)/Makefile.sources
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_SRC_FILES := $(C_SOURCES)
|
||||
|
||||
LOCAL_C_INCLUDES := \
|
||||
$(TARGET_OUT_HEADERS)/libdrm \
|
||||
$(TARGET_OUT_HEADERS)/freedreno
|
||||
|
||||
LOCAL_MODULE := libmesa_winsys_freedreno
|
||||
|
||||
include $(GALLIUM_COMMON_MK)
|
||||
include $(BUILD_STATIC_LIBRARY)
|
||||
SUBDIRS += drivers main
|
@@ -1,4 +1,4 @@
|
||||
# Copyright © 2014 Broadcom
|
||||
# Copyright © 2012 Intel Corporation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||
# copy of this software and associated documentation files (the "Software"),
|
||||
@@ -19,13 +19,12 @@
|
||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
# IN THE SOFTWARE.
|
||||
|
||||
include Makefile.sources
|
||||
include $(top_srcdir)/src/gallium/Automake.inc
|
||||
SUBDIRS =
|
||||
|
||||
AM_CFLAGS = \
|
||||
-I$(top_srcdir)/src/gallium/drivers \
|
||||
$(GALLIUM_WINSYS_CFLAGS)
|
||||
if HAVE_EGL_DRIVER_GLX
|
||||
SUBDIRS += glx
|
||||
endif
|
||||
|
||||
noinst_LTLIBRARIES = libvc4drm.la
|
||||
|
||||
libvc4drm_la_SOURCES = $(C_SOURCES)
|
||||
if HAVE_EGL_DRIVER_DRI2
|
||||
SUBDIRS += dri2
|
||||
endif
|
@@ -40,11 +40,11 @@ LOCAL_C_INCLUDES := \
|
||||
$(MESA_TOP)/src/mapi \
|
||||
$(MESA_TOP)/src/egl/main \
|
||||
$(MESA_TOP)/src/loader \
|
||||
$(TARGET_OUT_HEADERS)/libdrm \
|
||||
$(DRM_TOP)/include/drm \
|
||||
$(DRM_GRALLOC_TOP)
|
||||
|
||||
LOCAL_STATIC_LIBRARIES := \
|
||||
libmesa_loader
|
||||
libloader
|
||||
|
||||
LOCAL_MODULE := libmesa_egl_dri2
|
||||
|
||||
|
@@ -31,12 +31,13 @@ AM_CFLAGS = \
|
||||
$(DEFINES) \
|
||||
$(VISIBILITY_CFLAGS) \
|
||||
$(LIBDRM_CFLAGS) \
|
||||
$(LIBUDEV_CFLAGS) \
|
||||
$(LIBKMS_CFLAGS) \
|
||||
-DDEFAULT_DRIVER_DIR=\"$(DRI_DRIVER_SEARCH_DIR)\"
|
||||
|
||||
noinst_LTLIBRARIES = libegl_dri2.la
|
||||
|
||||
libegl_dri2_la_SOURCES = \
|
||||
egl_dri2.h \
|
||||
egl_dri2.c
|
||||
|
||||
libegl_dri2_la_LIBADD = \
|
||||
|
@@ -25,8 +25,6 @@
|
||||
* Kristian Høgsberg <krh@bitplanet.net>
|
||||
*/
|
||||
|
||||
#define WL_HIDE_DEPRECATED
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
@@ -35,7 +33,7 @@
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
#ifdef HAVE_LIBDRM
|
||||
#ifdef HAVE_DRM_PLATFORM
|
||||
#include <xf86drm.h>
|
||||
#include <drm_fourcc.h>
|
||||
#endif
|
||||
@@ -44,15 +42,14 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#ifdef HAVE_WAYLAND_PLATFORM
|
||||
#include "wayland-drm.h"
|
||||
#include "wayland-drm-client-protocol.h"
|
||||
#endif
|
||||
|
||||
#include "egl_dri2.h"
|
||||
|
||||
#ifdef HAVE_WAYLAND_PLATFORM
|
||||
#include "wayland-drm.h"
|
||||
#endif
|
||||
|
||||
const __DRIuseInvalidateExtension use_invalidate = {
|
||||
.base = { __DRI_USE_INVALIDATE, 1 }
|
||||
{ __DRI_USE_INVALIDATE, 1 }
|
||||
};
|
||||
|
||||
EGLint dri2_to_egl_attribute_map[] = {
|
||||
@@ -299,11 +296,12 @@ dri2_lookup_egl_image(__DRIscreen *screen, void *image, void *data)
|
||||
}
|
||||
|
||||
const __DRIimageLookupExtension image_lookup_extension = {
|
||||
.base = { __DRI_IMAGE_LOOKUP, 1 },
|
||||
|
||||
.lookupEGLImage = dri2_lookup_egl_image
|
||||
{ __DRI_IMAGE_LOOKUP, 1 },
|
||||
dri2_lookup_egl_image
|
||||
};
|
||||
|
||||
static const char dri_driver_path[] = DEFAULT_DRIVER_DIR;
|
||||
|
||||
struct dri2_extension_match {
|
||||
const char *name;
|
||||
int version;
|
||||
@@ -358,7 +356,7 @@ dri2_bind_extensions(struct dri2_egl_display *dri2_dpy,
|
||||
for (j = 0; matches[j].name; j++) {
|
||||
field = ((char *) dri2_dpy + matches[j].offset);
|
||||
if (*(const __DRIextension **) field == NULL) {
|
||||
_eglLog(_EGL_WARNING, "DRI2: did not find extension %s version %d",
|
||||
_eglLog(_EGL_FATAL, "DRI2: did not find extension %s version %d",
|
||||
matches[j].name, matches[j].version);
|
||||
ret = EGL_FALSE;
|
||||
}
|
||||
@@ -467,7 +465,9 @@ dri2_load_driver_swrast(_EGLDisplay *disp)
|
||||
struct dri2_egl_display *dri2_dpy = disp->DriverData;
|
||||
const __DRIextension **extensions;
|
||||
|
||||
dri2_dpy->driver_name = "swrast";
|
||||
extensions = dri2_open_driver(disp);
|
||||
|
||||
if (!extensions)
|
||||
return EGL_FALSE;
|
||||
|
||||
@@ -508,7 +508,6 @@ dri2_setup_screen(_EGLDisplay *disp)
|
||||
|
||||
assert(dri2_dpy->dri2 || dri2_dpy->swrast);
|
||||
disp->Extensions.KHR_surfaceless_context = EGL_TRUE;
|
||||
disp->Extensions.MESA_configless_context = EGL_TRUE;
|
||||
|
||||
if (dri2_dpy->dri2 && dri2_dpy->dri2->base.version >= 3) {
|
||||
disp->Extensions.KHR_create_context = EGL_TRUE;
|
||||
@@ -518,15 +517,7 @@ dri2_setup_screen(_EGLDisplay *disp)
|
||||
}
|
||||
|
||||
if (dri2_dpy->image) {
|
||||
if (dri2_dpy->image->base.version >= 10 &&
|
||||
dri2_dpy->image->getCapabilities != NULL) {
|
||||
int capabilities;
|
||||
|
||||
capabilities = dri2_dpy->image->getCapabilities(dri2_dpy->dri_screen);
|
||||
disp->Extensions.MESA_drm_image = (capabilities & __DRI_IMAGE_CAP_GLOBAL_NAMES) != 0;
|
||||
} else
|
||||
disp->Extensions.MESA_drm_image = EGL_TRUE;
|
||||
|
||||
disp->Extensions.MESA_drm_image = EGL_TRUE;
|
||||
disp->Extensions.KHR_image_base = EGL_TRUE;
|
||||
disp->Extensions.KHR_gl_renderbuffer_image = EGL_TRUE;
|
||||
if (dri2_dpy->image->base.version >= 5 &&
|
||||
@@ -677,33 +668,24 @@ dri2_terminate(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
if (dri2_dpy->driver)
|
||||
dlclose(dri2_dpy->driver);
|
||||
free(dri2_dpy->device_name);
|
||||
free(dri2_dpy->driver_name);
|
||||
|
||||
switch (disp->Platform) {
|
||||
if (disp->PlatformDisplay == NULL) {
|
||||
switch (disp->Platform) {
|
||||
#ifdef HAVE_X11_PLATFORM
|
||||
case _EGL_PLATFORM_X11:
|
||||
if (dri2_dpy->own_device) {
|
||||
case _EGL_PLATFORM_X11:
|
||||
xcb_disconnect(dri2_dpy->conn);
|
||||
}
|
||||
break;
|
||||
break;
|
||||
#endif
|
||||
#ifdef HAVE_DRM_PLATFORM
|
||||
case _EGL_PLATFORM_DRM:
|
||||
if (dri2_dpy->own_device) {
|
||||
gbm_device_destroy(&dri2_dpy->gbm_dri->base.base);
|
||||
}
|
||||
break;
|
||||
case _EGL_PLATFORM_DRM:
|
||||
if (dri2_dpy->own_device) {
|
||||
gbm_device_destroy(&dri2_dpy->gbm_dri->base.base);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
#ifdef HAVE_WAYLAND_PLATFORM
|
||||
case _EGL_PLATFORM_WAYLAND:
|
||||
wl_drm_destroy(dri2_dpy->wl_drm);
|
||||
if (dri2_dpy->own_device) {
|
||||
wl_display_disconnect(dri2_dpy->wl_dpy);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
free(dri2_dpy);
|
||||
@@ -816,9 +798,8 @@ dri2_create_context(_EGLDriver *drv, _EGLDisplay *disp, _EGLConfig *conf,
|
||||
api = __DRI_API_GLES3;
|
||||
break;
|
||||
default:
|
||||
_eglError(EGL_BAD_PARAMETER, "eglCreateContext");
|
||||
free(dri2_ctx);
|
||||
return NULL;
|
||||
_eglError(EGL_BAD_PARAMETER, "eglCreateContext");
|
||||
return NULL;
|
||||
}
|
||||
break;
|
||||
case EGL_OPENGL_API:
|
||||
@@ -1029,97 +1010,6 @@ dri2_get_proc_address(_EGLDriver *drv, const char *procname)
|
||||
return dri2_drv->get_proc_address(procname);
|
||||
}
|
||||
|
||||
static _EGLSurface*
|
||||
dri2_create_window_surface(_EGLDriver *drv, _EGLDisplay *dpy,
|
||||
_EGLConfig *conf, void *native_window,
|
||||
const EGLint *attrib_list)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(dpy);
|
||||
return dri2_dpy->vtbl->create_window_surface(drv, dpy, conf, native_window,
|
||||
attrib_list);
|
||||
}
|
||||
|
||||
static _EGLSurface*
|
||||
dri2_create_pixmap_surface(_EGLDriver *drv, _EGLDisplay *dpy,
|
||||
_EGLConfig *conf, void *native_pixmap,
|
||||
const EGLint *attrib_list)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(dpy);
|
||||
return dri2_dpy->vtbl->create_pixmap_surface(drv, dpy, conf, native_pixmap,
|
||||
attrib_list);
|
||||
}
|
||||
|
||||
static _EGLSurface*
|
||||
dri2_create_pbuffer_surface(_EGLDriver *drv, _EGLDisplay *dpy,
|
||||
_EGLConfig *conf, const EGLint *attrib_list)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(dpy);
|
||||
return dri2_dpy->vtbl->create_pbuffer_surface(drv, dpy, conf, attrib_list);
|
||||
}
|
||||
|
||||
static EGLBoolean
|
||||
dri2_destroy_surface(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surf)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(dpy);
|
||||
return dri2_dpy->vtbl->destroy_surface(drv, dpy, surf);
|
||||
}
|
||||
|
||||
static EGLBoolean
|
||||
dri2_swap_interval(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surf,
|
||||
EGLint interval)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(dpy);
|
||||
return dri2_dpy->vtbl->swap_interval(drv, dpy, surf, interval);
|
||||
}
|
||||
|
||||
static EGLBoolean
|
||||
dri2_swap_buffers(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surf)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(dpy);
|
||||
return dri2_dpy->vtbl->swap_buffers(drv, dpy, surf);
|
||||
}
|
||||
|
||||
static EGLBoolean
|
||||
dri2_swap_buffers_with_damage(_EGLDriver *drv, _EGLDisplay *dpy,
|
||||
_EGLSurface *surf,
|
||||
const EGLint *rects, EGLint n_rects)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(dpy);
|
||||
return dri2_dpy->vtbl->swap_buffers_with_damage(drv, dpy, surf,
|
||||
rects, n_rects);
|
||||
}
|
||||
|
||||
static EGLBoolean
|
||||
dri2_swap_buffers_region(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surf,
|
||||
EGLint numRects, const EGLint *rects)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(dpy);
|
||||
return dri2_dpy->vtbl->swap_buffers_region(drv, dpy, surf, numRects, rects);
|
||||
}
|
||||
|
||||
static EGLBoolean
|
||||
dri2_post_sub_buffer(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surf,
|
||||
EGLint x, EGLint y, EGLint width, EGLint height)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(dpy);
|
||||
return dri2_dpy->vtbl->post_sub_buffer(drv, dpy, surf, x, y, width, height);
|
||||
}
|
||||
|
||||
static EGLBoolean
|
||||
dri2_copy_buffers(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surf,
|
||||
void *native_pixmap_target)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(dpy);
|
||||
return dri2_dpy->vtbl->copy_buffers(drv, dpy, surf, native_pixmap_target);
|
||||
}
|
||||
|
||||
static EGLint
|
||||
dri2_query_buffer_age(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surf)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(dpy);
|
||||
return dri2_dpy->vtbl->query_buffer_age(drv, dpy, surf);
|
||||
}
|
||||
|
||||
static EGLBoolean
|
||||
dri2_wait_client(_EGLDriver *drv, _EGLDisplay *disp, _EGLContext *ctx)
|
||||
{
|
||||
@@ -1196,6 +1086,7 @@ static EGLBoolean
|
||||
dri2_release_tex_image(_EGLDriver *drv,
|
||||
_EGLDisplay *disp, _EGLSurface *surf, EGLint buffer)
|
||||
{
|
||||
#if __DRI_TEX_BUFFER_VERSION >= 3
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||
struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surf);
|
||||
struct dri2_egl_context *dri2_ctx;
|
||||
@@ -1215,29 +1106,17 @@ dri2_release_tex_image(_EGLDriver *drv,
|
||||
default:
|
||||
assert(0);
|
||||
}
|
||||
|
||||
if (dri2_dpy->tex_buffer->base.version >= 3 &&
|
||||
dri2_dpy->tex_buffer->releaseTexBuffer != NULL) {
|
||||
(*dri2_dpy->tex_buffer->releaseTexBuffer)(dri2_ctx->dri_context,
|
||||
target,
|
||||
dri2_surf->dri_drawable);
|
||||
}
|
||||
if (dri2_dpy->tex_buffer->releaseTexBuffer!=NULL)
|
||||
(*dri2_dpy->tex_buffer->releaseTexBuffer)(dri2_ctx->dri_context,
|
||||
target,
|
||||
dri2_surf->dri_drawable);
|
||||
#endif
|
||||
|
||||
return EGL_TRUE;
|
||||
}
|
||||
|
||||
static _EGLImage*
|
||||
dri2_create_image(_EGLDriver *drv, _EGLDisplay *dpy, _EGLContext *ctx,
|
||||
EGLenum target, EGLClientBuffer buffer,
|
||||
const EGLint *attr_list)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(dpy);
|
||||
return dri2_dpy->vtbl->create_image(drv, dpy, ctx, target, buffer,
|
||||
attr_list);
|
||||
}
|
||||
|
||||
static _EGLImage *
|
||||
dri2_create_image_from_dri(_EGLDisplay *disp, __DRIimage *dri_image)
|
||||
dri2_create_image(_EGLDisplay *disp, __DRIimage *dri_image)
|
||||
{
|
||||
struct dri2_egl_image *dri2_img;
|
||||
|
||||
@@ -1281,7 +1160,7 @@ dri2_create_image_khr_renderbuffer(_EGLDisplay *disp, _EGLContext *ctx,
|
||||
dri2_dpy->image->createImageFromRenderbuffer(dri2_ctx->dri_context,
|
||||
renderbuffer, NULL);
|
||||
|
||||
return dri2_create_image_from_dri(disp, dri_image);
|
||||
return dri2_create_image(disp, dri_image);
|
||||
}
|
||||
|
||||
#ifdef HAVE_DRM_PLATFORM
|
||||
@@ -1327,7 +1206,7 @@ dri2_create_image_mesa_drm_buffer(_EGLDisplay *disp, _EGLContext *ctx,
|
||||
pitch,
|
||||
NULL);
|
||||
|
||||
return dri2_create_image_from_dri(disp, dri_image);
|
||||
return dri2_create_image(disp, dri_image);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1390,19 +1269,10 @@ dri2_create_image_wayland_wl_buffer(_EGLDisplay *disp, _EGLContext *ctx,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return dri2_create_image_from_dri(disp, dri_image);
|
||||
return dri2_create_image(disp, dri_image);
|
||||
}
|
||||
#endif
|
||||
|
||||
static EGLBoolean
|
||||
dri2_get_sync_values_chromium(_EGLDisplay *dpy, _EGLSurface *surf,
|
||||
EGLuint64KHR *ust, EGLuint64KHR *msc,
|
||||
EGLuint64KHR *sbc)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(dpy);
|
||||
return dri2_dpy->vtbl->get_sync_values(dpy, surf, ust, msc, sbc);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the error code after a call to
|
||||
* dri2_egl_image::dri_image::createImageFromTexture.
|
||||
@@ -1512,14 +1382,6 @@ dri2_create_image_khr_texture(_EGLDisplay *disp, _EGLContext *ctx,
|
||||
return &dri2_img->base;
|
||||
}
|
||||
|
||||
static struct wl_buffer*
|
||||
dri2_create_wayland_buffer_from_image(_EGLDriver *drv, _EGLDisplay *dpy,
|
||||
_EGLImage *img)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(dpy);
|
||||
return dri2_dpy->vtbl->create_wayland_buffer_from_image(drv, dpy, img);
|
||||
}
|
||||
|
||||
#ifdef HAVE_DRM_PLATFORM
|
||||
static EGLBoolean
|
||||
dri2_check_dma_buf_attribs(const _EGLImageAttribs *attrs)
|
||||
@@ -1678,13 +1540,36 @@ dri2_check_dma_buf_format(const _EGLImageAttribs *attrs)
|
||||
/**
|
||||
* The spec says:
|
||||
*
|
||||
* "If eglCreateImageKHR is successful for a EGL_LINUX_DMA_BUF_EXT target, the
|
||||
* EGL will take a reference to the dma_buf(s) which it will release at any
|
||||
* time while the EGLDisplay is initialized. It is the responsibility of the
|
||||
* application to close the dma_buf file descriptors."
|
||||
*
|
||||
* Therefore we must never close or otherwise modify the file descriptors.
|
||||
* "If eglCreateImageKHR is successful for a EGL_LINUX_DMA_BUF_EXT target,
|
||||
* the EGL takes ownership of the file descriptor and is responsible for
|
||||
* closing it, which it may do at any time while the EGLDisplay is
|
||||
* initialized."
|
||||
*/
|
||||
static void
|
||||
dri2_take_dma_buf_ownership(const int *fds, unsigned num_fds)
|
||||
{
|
||||
int already_closed[num_fds];
|
||||
unsigned num_closed = 0;
|
||||
unsigned i, j;
|
||||
|
||||
for (i = 0; i < num_fds; ++i) {
|
||||
/**
|
||||
* The same file descriptor can be referenced multiple times in case more
|
||||
* than one plane is found in the same buffer, just with a different
|
||||
* offset.
|
||||
*/
|
||||
for (j = 0; j < num_closed; ++j) {
|
||||
if (already_closed[j] == fds[i])
|
||||
break;
|
||||
}
|
||||
|
||||
if (j == num_closed) {
|
||||
close(fds[i]);
|
||||
already_closed[num_closed++] = fds[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static _EGLImage *
|
||||
dri2_create_image_dma_buf(_EGLDisplay *disp, _EGLContext *ctx,
|
||||
EGLClientBuffer buffer, const EGLint *attr_list)
|
||||
@@ -1746,7 +1631,9 @@ dri2_create_image_dma_buf(_EGLDisplay *disp, _EGLContext *ctx,
|
||||
if (!dri_image)
|
||||
return EGL_NO_IMAGE_KHR;
|
||||
|
||||
res = dri2_create_image_from_dri(disp, dri_image);
|
||||
res = dri2_create_image(disp, dri_image);
|
||||
if (res)
|
||||
dri2_take_dma_buf_ownership(fds, num_fds);
|
||||
|
||||
return res;
|
||||
}
|
||||
@@ -1981,7 +1868,7 @@ dri2_bind_wayland_display_wl(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
struct wl_display *wl_dpy)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||
int flags = 0;
|
||||
int ret, flags = 0;
|
||||
uint64_t cap;
|
||||
|
||||
(void) drv;
|
||||
@@ -1990,15 +1877,13 @@ dri2_bind_wayland_display_wl(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
return EGL_FALSE;
|
||||
|
||||
wl_drm_callbacks.authenticate =
|
||||
(int(*)(void *, uint32_t)) dri2_dpy->vtbl->authenticate;
|
||||
(int(*)(void *, uint32_t)) dri2_dpy->authenticate;
|
||||
|
||||
#ifdef HAVE_LIBDRM
|
||||
if (drmGetCap(dri2_dpy->fd, DRM_CAP_PRIME, &cap) == 0 &&
|
||||
cap == (DRM_PRIME_CAP_IMPORT | DRM_PRIME_CAP_EXPORT) &&
|
||||
ret = drmGetCap(dri2_dpy->fd, DRM_CAP_PRIME, &cap);
|
||||
if (ret == 0 && cap == (DRM_PRIME_CAP_IMPORT | DRM_PRIME_CAP_EXPORT) &&
|
||||
dri2_dpy->image->base.version >= 7 &&
|
||||
dri2_dpy->image->createImageFromFds != NULL)
|
||||
flags |= WAYLAND_DRM_PRIME;
|
||||
#endif
|
||||
|
||||
dri2_dpy->wl_server_drm =
|
||||
wayland_drm_init(wl_dpy, dri2_dpy->device_name,
|
||||
@@ -2145,25 +2030,13 @@ _eglBuiltInDriverDRI2(const char *args)
|
||||
dri2_drv->base.API.CreateContext = dri2_create_context;
|
||||
dri2_drv->base.API.DestroyContext = dri2_destroy_context;
|
||||
dri2_drv->base.API.MakeCurrent = dri2_make_current;
|
||||
dri2_drv->base.API.CreateWindowSurface = dri2_create_window_surface;
|
||||
dri2_drv->base.API.CreatePixmapSurface = dri2_create_pixmap_surface;
|
||||
dri2_drv->base.API.CreatePbufferSurface = dri2_create_pbuffer_surface;
|
||||
dri2_drv->base.API.DestroySurface = dri2_destroy_surface;
|
||||
dri2_drv->base.API.GetProcAddress = dri2_get_proc_address;
|
||||
dri2_drv->base.API.WaitClient = dri2_wait_client;
|
||||
dri2_drv->base.API.WaitNative = dri2_wait_native;
|
||||
dri2_drv->base.API.BindTexImage = dri2_bind_tex_image;
|
||||
dri2_drv->base.API.ReleaseTexImage = dri2_release_tex_image;
|
||||
dri2_drv->base.API.SwapInterval = dri2_swap_interval;
|
||||
dri2_drv->base.API.SwapBuffers = dri2_swap_buffers;
|
||||
dri2_drv->base.API.SwapBuffersWithDamageEXT = dri2_swap_buffers_with_damage;
|
||||
dri2_drv->base.API.SwapBuffersRegionNOK = dri2_swap_buffers_region;
|
||||
dri2_drv->base.API.PostSubBufferNV = dri2_post_sub_buffer;
|
||||
dri2_drv->base.API.CopyBuffers = dri2_copy_buffers,
|
||||
dri2_drv->base.API.QueryBufferAge = dri2_query_buffer_age;
|
||||
dri2_drv->base.API.CreateImageKHR = dri2_create_image;
|
||||
dri2_drv->base.API.CreateImageKHR = dri2_create_image_khr;
|
||||
dri2_drv->base.API.DestroyImageKHR = dri2_destroy_image_khr;
|
||||
dri2_drv->base.API.CreateWaylandBufferFromImageWL = dri2_create_wayland_buffer_from_image;
|
||||
#ifdef HAVE_DRM_PLATFORM
|
||||
dri2_drv->base.API.CreateDRMImageMESA = dri2_create_drm_image_mesa;
|
||||
dri2_drv->base.API.ExportDRMImageMESA = dri2_export_drm_image_mesa;
|
||||
@@ -2173,7 +2046,6 @@ _eglBuiltInDriverDRI2(const char *args)
|
||||
dri2_drv->base.API.UnbindWaylandDisplayWL = dri2_unbind_wayland_display_wl;
|
||||
dri2_drv->base.API.QueryWaylandBufferWL = dri2_query_wayland_buffer_wl;
|
||||
#endif
|
||||
dri2_drv->base.API.GetSyncValuesCHROMIUM = dri2_get_sync_values_chromium;
|
||||
|
||||
dri2_drv->base.Name = "DRI2";
|
||||
dri2_drv->base.Unload = dri2_unload;
|
||||
|
@@ -75,8 +75,6 @@
|
||||
|
||||
#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
|
||||
|
||||
struct wl_buffer;
|
||||
|
||||
struct dri2_egl_driver
|
||||
{
|
||||
_EGLDriver base;
|
||||
@@ -86,82 +84,22 @@ struct dri2_egl_driver
|
||||
void (*glFlush)(void);
|
||||
};
|
||||
|
||||
struct dri2_egl_display_vtbl {
|
||||
int (*authenticate)(_EGLDisplay *disp, uint32_t id);
|
||||
|
||||
_EGLSurface* (*create_window_surface)(_EGLDriver *drv, _EGLDisplay *dpy,
|
||||
_EGLConfig *config,
|
||||
void *native_window,
|
||||
const EGLint *attrib_list);
|
||||
|
||||
_EGLSurface* (*create_pixmap_surface)(_EGLDriver *drv, _EGLDisplay *dpy,
|
||||
_EGLConfig *config,
|
||||
void *native_pixmap,
|
||||
const EGLint *attrib_list);
|
||||
|
||||
_EGLSurface* (*create_pbuffer_surface)(_EGLDriver *drv, _EGLDisplay *dpy,
|
||||
_EGLConfig *config,
|
||||
const EGLint *attrib_list);
|
||||
|
||||
EGLBoolean (*destroy_surface)(_EGLDriver *drv, _EGLDisplay *dpy,
|
||||
_EGLSurface *surface);
|
||||
|
||||
EGLBoolean (*swap_interval)(_EGLDriver *drv, _EGLDisplay *dpy,
|
||||
_EGLSurface *surf, EGLint interval);
|
||||
|
||||
_EGLImage* (*create_image)(_EGLDriver *drv, _EGLDisplay *dpy,
|
||||
_EGLContext *ctx, EGLenum target,
|
||||
EGLClientBuffer buffer,
|
||||
const EGLint *attr_list);
|
||||
|
||||
EGLBoolean (*swap_buffers)(_EGLDriver *drv, _EGLDisplay *dpy,
|
||||
_EGLSurface *surf);
|
||||
|
||||
EGLBoolean (*swap_buffers_with_damage)(_EGLDriver *drv, _EGLDisplay *dpy,
|
||||
_EGLSurface *surface,
|
||||
const EGLint *rects, EGLint n_rects);
|
||||
|
||||
EGLBoolean (*swap_buffers_region)(_EGLDriver *drv, _EGLDisplay *dpy,
|
||||
_EGLSurface *surf, EGLint numRects,
|
||||
const EGLint *rects);
|
||||
|
||||
EGLBoolean (*post_sub_buffer)(_EGLDriver *drv, _EGLDisplay *dpy,
|
||||
_EGLSurface *surf,
|
||||
EGLint x, EGLint y,
|
||||
EGLint width, EGLint height);
|
||||
|
||||
EGLBoolean (*copy_buffers)(_EGLDriver *drv, _EGLDisplay *dpy,
|
||||
_EGLSurface *surf, void *native_pixmap_target);
|
||||
|
||||
EGLint (*query_buffer_age)(_EGLDriver *drv, _EGLDisplay *dpy,
|
||||
_EGLSurface *surf);
|
||||
|
||||
struct wl_buffer* (*create_wayland_buffer_from_image)(
|
||||
_EGLDriver *drv, _EGLDisplay *dpy, _EGLImage *img);
|
||||
|
||||
EGLBoolean (*get_sync_values)(_EGLDisplay *display, _EGLSurface *surface,
|
||||
EGLuint64KHR *ust, EGLuint64KHR *msc,
|
||||
EGLuint64KHR *sbc);
|
||||
};
|
||||
|
||||
struct dri2_egl_display
|
||||
{
|
||||
const struct dri2_egl_display_vtbl *vtbl;
|
||||
|
||||
int dri2_major;
|
||||
int dri2_minor;
|
||||
__DRIscreen *dri_screen;
|
||||
int own_dri_screen;
|
||||
const __DRIconfig **driver_configs;
|
||||
void *driver;
|
||||
const __DRIcoreExtension *core;
|
||||
const __DRIdri2Extension *dri2;
|
||||
const __DRIswrastExtension *swrast;
|
||||
const __DRI2flushExtension *flush;
|
||||
const __DRItexBufferExtension *tex_buffer;
|
||||
const __DRIimageExtension *image;
|
||||
const __DRIrobustnessExtension *robustness;
|
||||
const __DRI2configQueryExtension *config;
|
||||
__DRIcoreExtension *core;
|
||||
__DRIdri2Extension *dri2;
|
||||
__DRIswrastExtension *swrast;
|
||||
__DRI2flushExtension *flush;
|
||||
__DRItexBufferExtension *tex_buffer;
|
||||
__DRIimageExtension *image;
|
||||
__DRIrobustnessExtension *robustness;
|
||||
__DRI2configQueryExtension *config;
|
||||
int fd;
|
||||
|
||||
int own_device;
|
||||
@@ -196,6 +134,8 @@ struct dri2_egl_display
|
||||
int formats;
|
||||
uint32_t capabilities;
|
||||
#endif
|
||||
|
||||
int (*authenticate) (_EGLDisplay *disp, uint32_t id);
|
||||
};
|
||||
|
||||
struct dri2_egl_context
|
||||
|
@@ -1,108 +0,0 @@
|
||||
/*
|
||||
* Copyright 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 (including the next
|
||||
* paragraph) shall be included in all copies or substantial portions of the
|
||||
* Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "egltypedefs.h"
|
||||
|
||||
struct wl_buffer;
|
||||
|
||||
static inline _EGLSurface *
|
||||
dri2_fallback_create_pixmap_surface(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
_EGLConfig *conf,
|
||||
void *native_pixmap,
|
||||
const EGLint *attrib_list)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline _EGLSurface *
|
||||
dri2_fallback_create_pbuffer_surface(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
_EGLConfig *conf,
|
||||
const EGLint *attrib_list)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline EGLBoolean
|
||||
dri2_fallback_swap_interval(_EGLDriver *drv, _EGLDisplay *dpy,
|
||||
_EGLSurface *surf, EGLint interval)
|
||||
{
|
||||
return EGL_FALSE;
|
||||
}
|
||||
|
||||
static inline EGLBoolean
|
||||
dri2_fallback_swap_buffers_with_damage(_EGLDriver *drv, _EGLDisplay *dpy,
|
||||
_EGLSurface *surf,
|
||||
const EGLint *rects, EGLint n_rects)
|
||||
{
|
||||
return EGL_FALSE;
|
||||
}
|
||||
|
||||
static inline EGLBoolean
|
||||
dri2_fallback_swap_buffers_region(_EGLDriver *drv, _EGLDisplay *dpy,
|
||||
_EGLSurface *surf,
|
||||
EGLint numRects, const EGLint *rects)
|
||||
{
|
||||
return EGL_FALSE;
|
||||
}
|
||||
|
||||
static inline EGLBoolean
|
||||
dri2_fallback_post_sub_buffer(_EGLDriver *drv, _EGLDisplay *dpy,
|
||||
_EGLSurface *draw,
|
||||
EGLint x, EGLint y, EGLint width, EGLint height)
|
||||
{
|
||||
return EGL_FALSE;
|
||||
}
|
||||
|
||||
static inline EGLBoolean
|
||||
dri2_fallback_copy_buffers(_EGLDriver *drv, _EGLDisplay *dpy,
|
||||
_EGLSurface *surf,
|
||||
void *native_pixmap_target)
|
||||
{
|
||||
return EGL_FALSE;
|
||||
}
|
||||
|
||||
static inline EGLint
|
||||
dri2_fallback_query_buffer_age(_EGLDriver *drv, _EGLDisplay *dpy,
|
||||
_EGLSurface *surf)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline struct wl_buffer*
|
||||
dri2_fallback_create_wayland_buffer_from_image(_EGLDriver *drv,
|
||||
_EGLDisplay *dpy,
|
||||
_EGLImage *img)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline EGLBoolean
|
||||
dri2_fallback_get_sync_values(_EGLDisplay *dpy, _EGLSurface *surf,
|
||||
EGLuint64KHR *ust, EGLuint64KHR *msc,
|
||||
EGLuint64KHR *sbc)
|
||||
{
|
||||
return EGL_FALSE;
|
||||
}
|
@@ -36,7 +36,6 @@
|
||||
|
||||
#include "loader.h"
|
||||
#include "egl_dri2.h"
|
||||
#include "egl_dri2_fallbacks.h"
|
||||
#include "gralloc_drm.h"
|
||||
|
||||
static int
|
||||
@@ -54,6 +53,8 @@ get_format_bpp(int native)
|
||||
bpp = 3;
|
||||
break;
|
||||
case HAL_PIXEL_FORMAT_RGB_565:
|
||||
case HAL_PIXEL_FORMAT_RGBA_5551:
|
||||
case HAL_PIXEL_FORMAT_RGBA_4444:
|
||||
bpp = 2;
|
||||
break;
|
||||
default:
|
||||
@@ -192,14 +193,12 @@ droid_free_local_buffers(struct dri2_egl_surface *dri2_surf)
|
||||
|
||||
static _EGLSurface *
|
||||
droid_create_surface(_EGLDriver *drv, _EGLDisplay *disp, EGLint type,
|
||||
_EGLConfig *conf, void *native_window,
|
||||
_EGLConfig *conf, EGLNativeWindowType window,
|
||||
const EGLint *attrib_list)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||
struct dri2_egl_config *dri2_conf = dri2_egl_config(conf);
|
||||
struct dri2_egl_surface *dri2_surf;
|
||||
struct ANativeWindow *window = native_window;
|
||||
|
||||
dri2_surf = calloc(1, sizeof *dri2_surf);
|
||||
if (!dri2_surf) {
|
||||
_eglError(EGL_BAD_ALLOC, "droid_create_surface");
|
||||
@@ -254,11 +253,19 @@ cleanup_surface:
|
||||
|
||||
static _EGLSurface *
|
||||
droid_create_window_surface(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
_EGLConfig *conf, void *native_window,
|
||||
const EGLint *attrib_list)
|
||||
_EGLConfig *conf, EGLNativeWindowType window,
|
||||
const EGLint *attrib_list)
|
||||
{
|
||||
return droid_create_surface(drv, disp, EGL_WINDOW_BIT, conf,
|
||||
native_window, attrib_list);
|
||||
window, attrib_list);
|
||||
}
|
||||
|
||||
static _EGLSurface *
|
||||
droid_create_pixmap_surface(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
_EGLConfig *conf, EGLNativePixmapType pixmap,
|
||||
const EGLint *attrib_list)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static _EGLSurface *
|
||||
@@ -369,6 +376,8 @@ dri2_create_image_android_native_buffer(_EGLDisplay *disp, _EGLContext *ctx,
|
||||
format = __DRI_IMAGE_FORMAT_XBGR8888;
|
||||
break;
|
||||
case HAL_PIXEL_FORMAT_RGB_888:
|
||||
case HAL_PIXEL_FORMAT_RGBA_5551:
|
||||
case HAL_PIXEL_FORMAT_RGBA_4444:
|
||||
/* unsupported */
|
||||
default:
|
||||
_eglLog(_EGL_WARNING, "unsupported native buffer format 0x%x", buf->format);
|
||||
@@ -418,6 +427,18 @@ droid_create_image_khr(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
droid_init_driver_functions(_EGLDriver *drv)
|
||||
{
|
||||
drv->API.CreateWindowSurface = droid_create_window_surface;
|
||||
drv->API.CreatePixmapSurface = droid_create_pixmap_surface;
|
||||
drv->API.CreatePbufferSurface = droid_create_pbuffer_surface;
|
||||
drv->API.DestroySurface = droid_destroy_surface;
|
||||
drv->API.SwapBuffers = droid_swap_buffers;
|
||||
|
||||
drv->API.CreateImageKHR = droid_create_image_khr;
|
||||
}
|
||||
|
||||
static void
|
||||
droid_flush_front_buffer(__DRIdrawable * driDrawable, void *loaderPrivate)
|
||||
{
|
||||
@@ -631,24 +652,6 @@ droid_log(EGLint level, const char *msg)
|
||||
}
|
||||
}
|
||||
|
||||
static struct dri2_egl_display_vtbl droid_display_vtbl = {
|
||||
.authenticate = NULL,
|
||||
.create_window_surface = droid_create_window_surface,
|
||||
.create_pixmap_surface = dri2_fallback_create_pixmap_surface,
|
||||
.create_pbuffer_surface = droid_create_pbuffer_surface,
|
||||
.destroy_surface = droid_destroy_surface,
|
||||
.create_image = droid_create_image_khr,
|
||||
.swap_interval = dri2_fallback_swap_interval,
|
||||
.swap_buffers = droid_swap_buffers,
|
||||
.swap_buffers_with_damage = dri2_fallback_swap_buffers_with_damage,
|
||||
.swap_buffers_region = dri2_fallback_swap_buffers_region,
|
||||
.post_sub_buffer = dri2_fallback_post_sub_buffer,
|
||||
.copy_buffers = dri2_fallback_copy_buffers,
|
||||
.query_buffer_age = dri2_fallback_query_buffer_age,
|
||||
.create_wayland_buffer_from_image = dri2_fallback_create_wayland_buffer_from_image,
|
||||
.get_sync_values = dri2_fallback_get_sync_values,
|
||||
};
|
||||
|
||||
EGLBoolean
|
||||
dri2_initialize_android(_EGLDriver *drv, _EGLDisplay *dpy)
|
||||
{
|
||||
@@ -679,7 +682,7 @@ dri2_initialize_android(_EGLDriver *drv, _EGLDisplay *dpy)
|
||||
|
||||
if (!dri2_load_driver(dpy)) {
|
||||
err = "DRI2: failed to load driver";
|
||||
goto cleanup_driver_name;
|
||||
goto cleanup_device;
|
||||
}
|
||||
|
||||
dri2_dpy->dri2_loader_extension.base.name = __DRI_DRI2_LOADER;
|
||||
@@ -711,10 +714,7 @@ dri2_initialize_android(_EGLDriver *drv, _EGLDisplay *dpy)
|
||||
dpy->VersionMajor = 1;
|
||||
dpy->VersionMinor = 4;
|
||||
|
||||
/* Fill vtbl last to prevent accidentally calling virtual function during
|
||||
* initialization.
|
||||
*/
|
||||
dri2_dpy->vtbl = &droid_display_vtbl;
|
||||
droid_init_driver_functions(drv);
|
||||
|
||||
return EGL_TRUE;
|
||||
|
||||
@@ -722,8 +722,6 @@ cleanup_screen:
|
||||
dri2_dpy->core->destroyScreen(dri2_dpy->dri_screen);
|
||||
cleanup_driver:
|
||||
dlclose(dri2_dpy->driver);
|
||||
cleanup_driver_name:
|
||||
free(dri2_dpy->driver_name);
|
||||
cleanup_device:
|
||||
close(dri2_dpy->fd);
|
||||
cleanup_display:
|
||||
|
@@ -36,7 +36,6 @@
|
||||
#include <unistd.h>
|
||||
|
||||
#include "egl_dri2.h"
|
||||
#include "egl_dri2_fallbacks.h"
|
||||
#include "loader.h"
|
||||
|
||||
static struct gbm_bo *
|
||||
@@ -44,7 +43,6 @@ lock_front_buffer(struct gbm_surface *_surf)
|
||||
{
|
||||
struct gbm_dri_surface *surf = (struct gbm_dri_surface *) _surf;
|
||||
struct dri2_egl_surface *dri2_surf = surf->dri_private;
|
||||
struct gbm_dri_device *device = (struct gbm_dri_device *) _surf->gbm;
|
||||
struct gbm_bo *bo;
|
||||
|
||||
if (dri2_surf->current == NULL) {
|
||||
@@ -53,11 +51,8 @@ lock_front_buffer(struct gbm_surface *_surf)
|
||||
}
|
||||
|
||||
bo = dri2_surf->current->bo;
|
||||
|
||||
if (device->dri2) {
|
||||
dri2_surf->current->locked = 1;
|
||||
dri2_surf->current = NULL;
|
||||
}
|
||||
dri2_surf->current->locked = 1;
|
||||
dri2_surf->current = NULL;
|
||||
|
||||
return bo;
|
||||
}
|
||||
@@ -91,14 +86,13 @@ has_free_buffers(struct gbm_surface *_surf)
|
||||
}
|
||||
|
||||
static _EGLSurface *
|
||||
dri2_drm_create_surface(_EGLDriver *drv, _EGLDisplay *disp, EGLint type,
|
||||
_EGLConfig *conf, void *native_window,
|
||||
const EGLint *attrib_list)
|
||||
dri2_create_surface(_EGLDriver *drv, _EGLDisplay *disp, EGLint type,
|
||||
_EGLConfig *conf, EGLNativeWindowType window,
|
||||
const EGLint *attrib_list)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||
struct dri2_egl_config *dri2_conf = dri2_egl_config(conf);
|
||||
struct dri2_egl_surface *dri2_surf;
|
||||
struct gbm_surface *window = native_window;
|
||||
struct gbm_dri_surface *surf;
|
||||
|
||||
(void) drv;
|
||||
@@ -116,7 +110,7 @@ dri2_drm_create_surface(_EGLDriver *drv, _EGLDisplay *disp, EGLint type,
|
||||
case EGL_WINDOW_BIT:
|
||||
if (!window)
|
||||
return NULL;
|
||||
surf = gbm_dri_surface(window);
|
||||
surf = gbm_dri_surface((struct gbm_surface *) window);
|
||||
dri2_surf->gbm_surf = surf;
|
||||
dri2_surf->base.Width = surf->base.width;
|
||||
dri2_surf->base.Height = surf->base.height;
|
||||
@@ -126,22 +120,13 @@ dri2_drm_create_surface(_EGLDriver *drv, _EGLDisplay *disp, EGLint type,
|
||||
goto cleanup_surf;
|
||||
}
|
||||
|
||||
if (dri2_dpy->dri2) {
|
||||
dri2_surf->dri_drawable =
|
||||
(*dri2_dpy->dri2->createNewDrawable) (dri2_dpy->dri_screen,
|
||||
dri2_conf->dri_double_config,
|
||||
dri2_surf->gbm_surf);
|
||||
dri2_surf->dri_drawable =
|
||||
(*dri2_dpy->dri2->createNewDrawable) (dri2_dpy->dri_screen,
|
||||
dri2_conf->dri_double_config,
|
||||
dri2_surf->gbm_surf);
|
||||
|
||||
} else {
|
||||
assert(dri2_dpy->swrast != NULL);
|
||||
dri2_surf->dri_drawable =
|
||||
(*dri2_dpy->swrast->createNewDrawable) (dri2_dpy->dri_screen,
|
||||
dri2_conf->dri_double_config,
|
||||
dri2_surf->gbm_surf);
|
||||
|
||||
}
|
||||
if (dri2_surf->dri_drawable == NULL) {
|
||||
_eglError(EGL_BAD_ALLOC, "createNewDrawable()");
|
||||
_eglError(EGL_BAD_ALLOC, "dri2->createNewDrawable");
|
||||
goto cleanup_surf;
|
||||
}
|
||||
|
||||
@@ -154,31 +139,16 @@ dri2_drm_create_surface(_EGLDriver *drv, _EGLDisplay *disp, EGLint type,
|
||||
}
|
||||
|
||||
static _EGLSurface *
|
||||
dri2_drm_create_window_surface(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
_EGLConfig *conf, void *native_window,
|
||||
const EGLint *attrib_list)
|
||||
dri2_create_window_surface(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
_EGLConfig *conf, EGLNativeWindowType window,
|
||||
const EGLint *attrib_list)
|
||||
{
|
||||
return dri2_drm_create_surface(drv, disp, EGL_WINDOW_BIT, conf,
|
||||
native_window, attrib_list);
|
||||
}
|
||||
|
||||
static _EGLSurface *
|
||||
dri2_drm_create_pixmap_surface(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
_EGLConfig *conf, void *native_window,
|
||||
const EGLint *attrib_list)
|
||||
{
|
||||
/* From the EGL_MESA_platform_gbm spec, version 5:
|
||||
*
|
||||
* It is not valid to call eglCreatePlatformPixmapSurfaceEXT with a <dpy>
|
||||
* that belongs to the GBM platform. Any such call fails and generates
|
||||
* EGL_BAD_PARAMETER.
|
||||
*/
|
||||
_eglError(EGL_BAD_PARAMETER, "cannot create EGL pixmap surfaces on GBM");
|
||||
return NULL;
|
||||
return dri2_create_surface(drv, disp, EGL_WINDOW_BIT, conf,
|
||||
window, attrib_list);
|
||||
}
|
||||
|
||||
static EGLBoolean
|
||||
dri2_drm_destroy_surface(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf)
|
||||
dri2_destroy_surface(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||
struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surf);
|
||||
@@ -234,28 +204,6 @@ get_back_bo(struct dri2_egl_surface *dri2_surf)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
get_swrast_front_bo(struct dri2_egl_surface *dri2_surf)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy =
|
||||
dri2_egl_display(dri2_surf->base.Resource.Display);
|
||||
struct gbm_dri_surface *surf = dri2_surf->gbm_surf;
|
||||
|
||||
if (dri2_surf->current == NULL) {
|
||||
assert(!dri2_surf->color_buffers[0].locked);
|
||||
dri2_surf->current = &dri2_surf->color_buffers[0];
|
||||
}
|
||||
|
||||
if (dri2_surf->current->bo == NULL)
|
||||
dri2_surf->current->bo = gbm_bo_create(&dri2_dpy->gbm_dri->base.base,
|
||||
surf->base.width, surf->base.height,
|
||||
surf->base.format, surf->base.flags);
|
||||
if (dri2_surf->current->bo == NULL)
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
back_bo_to_dri_buffer(struct dri2_egl_surface *dri2_surf, __DRIbuffer *buffer)
|
||||
{
|
||||
@@ -300,7 +248,7 @@ get_aux_bo(struct dri2_egl_surface *dri2_surf,
|
||||
}
|
||||
|
||||
static __DRIbuffer *
|
||||
dri2_drm_get_buffers_with_format(__DRIdrawable *driDrawable,
|
||||
dri2_get_buffers_with_format(__DRIdrawable *driDrawable,
|
||||
int *width, int *height,
|
||||
unsigned int *attachments, int count,
|
||||
int *out_count, void *loaderPrivate)
|
||||
@@ -342,10 +290,10 @@ dri2_drm_get_buffers_with_format(__DRIdrawable *driDrawable,
|
||||
}
|
||||
|
||||
static __DRIbuffer *
|
||||
dri2_drm_get_buffers(__DRIdrawable * driDrawable,
|
||||
int *width, int *height,
|
||||
unsigned int *attachments, int count,
|
||||
int *out_count, void *loaderPrivate)
|
||||
dri2_get_buffers(__DRIdrawable * driDrawable,
|
||||
int *width, int *height,
|
||||
unsigned int *attachments, int count,
|
||||
int *out_count, void *loaderPrivate)
|
||||
{
|
||||
unsigned int *attachments_with_format;
|
||||
__DRIbuffer *buffer;
|
||||
@@ -364,10 +312,10 @@ dri2_drm_get_buffers(__DRIdrawable * driDrawable,
|
||||
}
|
||||
|
||||
buffer =
|
||||
dri2_drm_get_buffers_with_format(driDrawable,
|
||||
width, height,
|
||||
attachments_with_format, count,
|
||||
out_count, loaderPrivate);
|
||||
dri2_get_buffers_with_format(driDrawable,
|
||||
width, height,
|
||||
attachments_with_format, count,
|
||||
out_count, loaderPrivate);
|
||||
|
||||
free(attachments_with_format);
|
||||
|
||||
@@ -375,12 +323,12 @@ dri2_drm_get_buffers(__DRIdrawable * driDrawable,
|
||||
}
|
||||
|
||||
static int
|
||||
dri2_drm_image_get_buffers(__DRIdrawable *driDrawable,
|
||||
unsigned int format,
|
||||
uint32_t *stamp,
|
||||
void *loaderPrivate,
|
||||
uint32_t buffer_mask,
|
||||
struct __DRIimageList *buffers)
|
||||
dri_image_get_buffers(__DRIdrawable *driDrawable,
|
||||
unsigned int format,
|
||||
uint32_t *stamp,
|
||||
void *loaderPrivate,
|
||||
uint32_t buffer_mask,
|
||||
struct __DRIimageList *buffers)
|
||||
{
|
||||
struct dri2_egl_surface *dri2_surf = loaderPrivate;
|
||||
struct gbm_dri_bo *bo;
|
||||
@@ -396,43 +344,39 @@ dri2_drm_image_get_buffers(__DRIdrawable *driDrawable,
|
||||
}
|
||||
|
||||
static void
|
||||
dri2_drm_flush_front_buffer(__DRIdrawable * driDrawable, void *loaderPrivate)
|
||||
dri2_flush_front_buffer(__DRIdrawable * driDrawable, void *loaderPrivate)
|
||||
{
|
||||
(void) driDrawable;
|
||||
(void) loaderPrivate;
|
||||
}
|
||||
|
||||
static EGLBoolean
|
||||
dri2_drm_swap_buffers(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *draw)
|
||||
dri2_swap_buffers(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *draw)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||
struct dri2_egl_surface *dri2_surf = dri2_egl_surface(draw);
|
||||
int i;
|
||||
|
||||
if (dri2_dpy->swrast) {
|
||||
(*dri2_dpy->core->swapBuffers)(dri2_surf->dri_drawable);
|
||||
} else {
|
||||
if (dri2_surf->base.Type == EGL_WINDOW_BIT) {
|
||||
if (dri2_surf->current)
|
||||
_eglError(EGL_BAD_SURFACE, "dri2_swap_buffers");
|
||||
for (i = 0; i < ARRAY_SIZE(dri2_surf->color_buffers); i++)
|
||||
if (dri2_surf->color_buffers[i].age > 0)
|
||||
dri2_surf->color_buffers[i].age++;
|
||||
dri2_surf->current = dri2_surf->back;
|
||||
dri2_surf->current->age = 1;
|
||||
dri2_surf->back = NULL;
|
||||
}
|
||||
|
||||
(*dri2_dpy->flush->flush)(dri2_surf->dri_drawable);
|
||||
(*dri2_dpy->flush->invalidate)(dri2_surf->dri_drawable);
|
||||
if (dri2_surf->base.Type == EGL_WINDOW_BIT) {
|
||||
if (dri2_surf->current)
|
||||
_eglError(EGL_BAD_SURFACE, "dri2_swap_buffers");
|
||||
for (i = 0; i < ARRAY_SIZE(dri2_surf->color_buffers); i++)
|
||||
if (dri2_surf->color_buffers[i].age > 0)
|
||||
dri2_surf->color_buffers[i].age++;
|
||||
dri2_surf->current = dri2_surf->back;
|
||||
dri2_surf->current->age = 1;
|
||||
dri2_surf->back = NULL;
|
||||
}
|
||||
|
||||
(*dri2_dpy->flush->flush)(dri2_surf->dri_drawable);
|
||||
(*dri2_dpy->flush->invalidate)(dri2_surf->dri_drawable);
|
||||
|
||||
return EGL_TRUE;
|
||||
}
|
||||
|
||||
static EGLint
|
||||
dri2_drm_query_buffer_age(_EGLDriver *drv,
|
||||
_EGLDisplay *disp, _EGLSurface *surface)
|
||||
dri2_query_buffer_age(_EGLDriver *drv,
|
||||
_EGLDisplay *disp, _EGLSurface *surface)
|
||||
{
|
||||
struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surface);
|
||||
|
||||
@@ -445,8 +389,8 @@ dri2_drm_query_buffer_age(_EGLDriver *drv,
|
||||
}
|
||||
|
||||
static _EGLImage *
|
||||
dri2_drm_create_image_khr_pixmap(_EGLDisplay *disp, _EGLContext *ctx,
|
||||
EGLClientBuffer buffer, const EGLint *attr_list)
|
||||
dri2_create_image_khr_pixmap(_EGLDisplay *disp, _EGLContext *ctx,
|
||||
EGLClientBuffer buffer, const EGLint *attr_list)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||
struct gbm_dri_bo *dri_bo = gbm_dri_bo((struct gbm_bo *) buffer);
|
||||
@@ -482,7 +426,7 @@ dri2_drm_create_image_khr(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
|
||||
switch (target) {
|
||||
case EGL_NATIVE_PIXMAP_KHR:
|
||||
return dri2_drm_create_image_khr_pixmap(disp, ctx, buffer, attr_list);
|
||||
return dri2_create_image_khr_pixmap(disp, ctx, buffer, attr_list);
|
||||
default:
|
||||
return dri2_create_image_khr(drv, disp, ctx, target, buffer, attr_list);
|
||||
}
|
||||
@@ -496,91 +440,6 @@ dri2_drm_authenticate(_EGLDisplay *disp, uint32_t id)
|
||||
return drmAuthMagic(dri2_dpy->fd, id);
|
||||
}
|
||||
|
||||
static void
|
||||
swrast_put_image2(__DRIdrawable *driDrawable,
|
||||
int op,
|
||||
int x,
|
||||
int y,
|
||||
int width,
|
||||
int height,
|
||||
int stride,
|
||||
char *data,
|
||||
void *loaderPrivate)
|
||||
{
|
||||
struct dri2_egl_surface *dri2_surf = loaderPrivate;
|
||||
int internal_stride, i;
|
||||
struct gbm_dri_bo *bo;
|
||||
|
||||
if (op != __DRI_SWRAST_IMAGE_OP_DRAW &&
|
||||
op != __DRI_SWRAST_IMAGE_OP_SWAP)
|
||||
return;
|
||||
|
||||
if (get_swrast_front_bo(dri2_surf) < 0)
|
||||
return;
|
||||
|
||||
bo = gbm_dri_bo(dri2_surf->current->bo);
|
||||
if (gbm_dri_bo_map(bo) == NULL)
|
||||
return;
|
||||
|
||||
internal_stride = bo->base.base.stride;
|
||||
|
||||
for (i = 0; i < height; i++) {
|
||||
memcpy(bo->map + (x + i) * internal_stride + y,
|
||||
data + i * stride, stride);
|
||||
}
|
||||
|
||||
gbm_dri_bo_unmap(bo);
|
||||
}
|
||||
|
||||
static void
|
||||
swrast_get_image(__DRIdrawable *driDrawable,
|
||||
int x,
|
||||
int y,
|
||||
int width,
|
||||
int height,
|
||||
char *data,
|
||||
void *loaderPrivate)
|
||||
{
|
||||
struct dri2_egl_surface *dri2_surf = loaderPrivate;
|
||||
int internal_stride, stride, i;
|
||||
struct gbm_dri_bo *bo;
|
||||
|
||||
if (get_swrast_front_bo(dri2_surf) < 0)
|
||||
return;
|
||||
|
||||
bo = gbm_dri_bo(dri2_surf->current->bo);
|
||||
if (gbm_dri_bo_map(bo) == NULL)
|
||||
return;
|
||||
|
||||
internal_stride = bo->base.base.stride;
|
||||
stride = width * 4;
|
||||
|
||||
for (i = 0; i < height; i++) {
|
||||
memcpy(data + i * stride,
|
||||
bo->map + (x + i) * internal_stride + y, stride);
|
||||
}
|
||||
|
||||
gbm_dri_bo_unmap(bo);
|
||||
}
|
||||
|
||||
static struct dri2_egl_display_vtbl dri2_drm_display_vtbl = {
|
||||
.authenticate = dri2_drm_authenticate,
|
||||
.create_window_surface = dri2_drm_create_window_surface,
|
||||
.create_pixmap_surface = dri2_drm_create_pixmap_surface,
|
||||
.create_pbuffer_surface = dri2_fallback_create_pbuffer_surface,
|
||||
.destroy_surface = dri2_drm_destroy_surface,
|
||||
.create_image = dri2_drm_create_image_khr,
|
||||
.swap_interval = dri2_fallback_swap_interval,
|
||||
.swap_buffers = dri2_drm_swap_buffers,
|
||||
.swap_buffers_with_damage = dri2_fallback_swap_buffers_with_damage,
|
||||
.swap_buffers_region = dri2_fallback_swap_buffers_region,
|
||||
.post_sub_buffer = dri2_fallback_post_sub_buffer,
|
||||
.copy_buffers = dri2_fallback_copy_buffers,
|
||||
.query_buffer_age = dri2_drm_query_buffer_age,
|
||||
.create_wayland_buffer_from_image = dri2_fallback_create_wayland_buffer_from_image,
|
||||
.get_sync_values = dri2_fallback_get_sync_values,
|
||||
};
|
||||
|
||||
EGLBoolean
|
||||
dri2_initialize_drm(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
{
|
||||
@@ -632,25 +491,22 @@ dri2_initialize_drm(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
|
||||
dri2_dpy->fd = fd;
|
||||
dri2_dpy->device_name = loader_get_device_name_for_fd(dri2_dpy->fd);
|
||||
dri2_dpy->driver_name = strdup(dri2_dpy->gbm_dri->base.driver_name);
|
||||
dri2_dpy->driver_name = dri2_dpy->gbm_dri->base.driver_name;
|
||||
|
||||
dri2_dpy->dri_screen = dri2_dpy->gbm_dri->screen;
|
||||
dri2_dpy->core = dri2_dpy->gbm_dri->core;
|
||||
dri2_dpy->dri2 = dri2_dpy->gbm_dri->dri2;
|
||||
dri2_dpy->image = dri2_dpy->gbm_dri->image;
|
||||
dri2_dpy->flush = dri2_dpy->gbm_dri->flush;
|
||||
dri2_dpy->swrast = dri2_dpy->gbm_dri->swrast;
|
||||
dri2_dpy->driver_configs = dri2_dpy->gbm_dri->driver_configs;
|
||||
|
||||
dri2_dpy->gbm_dri->lookup_image = dri2_lookup_egl_image;
|
||||
dri2_dpy->gbm_dri->lookup_user_data = disp;
|
||||
|
||||
dri2_dpy->gbm_dri->get_buffers = dri2_drm_get_buffers;
|
||||
dri2_dpy->gbm_dri->flush_front_buffer = dri2_drm_flush_front_buffer;
|
||||
dri2_dpy->gbm_dri->get_buffers_with_format = dri2_drm_get_buffers_with_format;
|
||||
dri2_dpy->gbm_dri->image_get_buffers = dri2_drm_image_get_buffers;
|
||||
dri2_dpy->gbm_dri->swrast_put_image2 = swrast_put_image2;
|
||||
dri2_dpy->gbm_dri->swrast_get_image = swrast_get_image;
|
||||
dri2_dpy->gbm_dri->get_buffers = dri2_get_buffers;
|
||||
dri2_dpy->gbm_dri->flush_front_buffer = dri2_flush_front_buffer;
|
||||
dri2_dpy->gbm_dri->get_buffers_with_format = dri2_get_buffers_with_format;
|
||||
dri2_dpy->gbm_dri->image_get_buffers = dri_image_get_buffers;
|
||||
|
||||
dri2_dpy->gbm_dri->base.base.surface_lock_front_buffer = lock_front_buffer;
|
||||
dri2_dpy->gbm_dri->base.base.surface_release_buffer = release_buffer;
|
||||
@@ -681,33 +537,22 @@ dri2_initialize_drm(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
i + 1, EGL_WINDOW_BIT, attr_list, NULL);
|
||||
}
|
||||
|
||||
disp->Extensions.KHR_image_pixmap = EGL_TRUE;
|
||||
if (dri2_dpy->dri2)
|
||||
disp->Extensions.EXT_buffer_age = EGL_TRUE;
|
||||
drv->API.CreateWindowSurface = dri2_create_window_surface;
|
||||
drv->API.DestroySurface = dri2_destroy_surface;
|
||||
drv->API.SwapBuffers = dri2_swap_buffers;
|
||||
drv->API.CreateImageKHR = dri2_drm_create_image_khr;
|
||||
drv->API.QueryBufferAge = dri2_query_buffer_age;
|
||||
|
||||
disp->Extensions.EXT_buffer_age = EGL_TRUE;
|
||||
|
||||
#ifdef HAVE_WAYLAND_PLATFORM
|
||||
if (dri2_dpy->image) {
|
||||
if (dri2_dpy->image->base.version >= 10 &&
|
||||
dri2_dpy->image->getCapabilities != NULL) {
|
||||
int capabilities;
|
||||
|
||||
capabilities =
|
||||
dri2_dpy->image->getCapabilities(dri2_dpy->dri_screen);
|
||||
disp->Extensions.WL_bind_wayland_display =
|
||||
(capabilities & __DRI_IMAGE_CAP_GLOBAL_NAMES) != 0;
|
||||
} else
|
||||
disp->Extensions.WL_bind_wayland_display = EGL_TRUE;
|
||||
}
|
||||
disp->Extensions.WL_bind_wayland_display = EGL_TRUE;
|
||||
#endif
|
||||
dri2_dpy->authenticate = dri2_drm_authenticate;
|
||||
|
||||
/* we're supporting EGL 1.4 */
|
||||
disp->VersionMajor = 1;
|
||||
disp->VersionMinor = 4;
|
||||
|
||||
/* Fill vtbl last to prevent accidentally calling virtual function during
|
||||
* initialization.
|
||||
*/
|
||||
dri2_dpy->vtbl = &dri2_drm_display_vtbl;
|
||||
|
||||
return EGL_TRUE;
|
||||
}
|
||||
|
@@ -36,7 +36,6 @@
|
||||
#include <xf86drm.h>
|
||||
|
||||
#include "egl_dri2.h"
|
||||
#include "egl_dri2_fallbacks.h"
|
||||
#include "loader.h"
|
||||
|
||||
#include <wayland-client.h>
|
||||
@@ -48,10 +47,6 @@ enum wl_drm_format_flags {
|
||||
HAS_RGB565 = 4,
|
||||
};
|
||||
|
||||
static EGLBoolean
|
||||
dri2_wl_swap_interval(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf,
|
||||
EGLint interval);
|
||||
|
||||
static void
|
||||
sync_callback(void *data, struct wl_callback *callback, uint32_t serial)
|
||||
{
|
||||
@@ -119,13 +114,12 @@ resize_callback(struct wl_egl_window *wl_win, void *data)
|
||||
* Called via eglCreateWindowSurface(), drv->API.CreateWindowSurface().
|
||||
*/
|
||||
static _EGLSurface *
|
||||
dri2_wl_create_surface(_EGLDriver *drv, _EGLDisplay *disp, EGLint type,
|
||||
_EGLConfig *conf, void *native_window,
|
||||
const EGLint *attrib_list)
|
||||
dri2_create_surface(_EGLDriver *drv, _EGLDisplay *disp, EGLint type,
|
||||
_EGLConfig *conf, EGLNativeWindowType window,
|
||||
const EGLint *attrib_list)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||
struct dri2_egl_config *dri2_conf = dri2_egl_config(conf);
|
||||
struct wl_egl_window *window = native_window;
|
||||
struct dri2_egl_surface *dri2_surf;
|
||||
|
||||
(void) drv;
|
||||
@@ -149,7 +143,7 @@ dri2_wl_create_surface(_EGLDriver *drv, _EGLDisplay *disp, EGLint type,
|
||||
|
||||
switch (type) {
|
||||
case EGL_WINDOW_BIT:
|
||||
dri2_surf->wl_win = window;
|
||||
dri2_surf->wl_win = (struct wl_egl_window *) window;
|
||||
|
||||
dri2_surf->wl_win->private = dri2_surf;
|
||||
dri2_surf->wl_win->resize_callback = resize_callback;
|
||||
@@ -186,43 +180,27 @@ dri2_wl_create_surface(_EGLDriver *drv, _EGLDisplay *disp, EGLint type,
|
||||
* Called via eglCreateWindowSurface(), drv->API.CreateWindowSurface().
|
||||
*/
|
||||
static _EGLSurface *
|
||||
dri2_wl_create_window_surface(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
_EGLConfig *conf, void *native_window,
|
||||
const EGLint *attrib_list)
|
||||
dri2_create_window_surface(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
_EGLConfig *conf, EGLNativeWindowType window,
|
||||
const EGLint *attrib_list)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||
_EGLSurface *surf;
|
||||
|
||||
surf = dri2_wl_create_surface(drv, disp, EGL_WINDOW_BIT, conf,
|
||||
native_window, attrib_list);
|
||||
surf = dri2_create_surface(drv, disp, EGL_WINDOW_BIT, conf,
|
||||
window, attrib_list);
|
||||
|
||||
if (surf != NULL)
|
||||
dri2_wl_swap_interval(drv, disp, surf, dri2_dpy->default_swap_interval);
|
||||
drv->API.SwapInterval(drv, disp, surf, dri2_dpy->default_swap_interval);
|
||||
|
||||
return surf;
|
||||
}
|
||||
|
||||
static _EGLSurface *
|
||||
dri2_wl_create_pixmap_surface(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
_EGLConfig *conf, void *native_window,
|
||||
const EGLint *attrib_list)
|
||||
{
|
||||
/* From the EGL_EXT_platform_wayland spec, version 3:
|
||||
*
|
||||
* It is not valid to call eglCreatePlatformPixmapSurfaceEXT with a <dpy>
|
||||
* that belongs to Wayland. Any such call fails and generates
|
||||
* EGL_BAD_PARAMETER.
|
||||
*/
|
||||
_eglError(EGL_BAD_PARAMETER, "cannot create EGL pixmap surfaces on "
|
||||
"Wayland");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called via eglDestroySurface(), drv->API.DestroySurface().
|
||||
*/
|
||||
static EGLBoolean
|
||||
dri2_wl_destroy_surface(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf)
|
||||
dri2_destroy_surface(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||
struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surf);
|
||||
@@ -262,7 +240,7 @@ dri2_wl_destroy_surface(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf)
|
||||
}
|
||||
|
||||
static void
|
||||
dri2_wl_release_buffers(struct dri2_egl_surface *dri2_surf)
|
||||
dri2_release_buffers(struct dri2_egl_surface *dri2_surf)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy =
|
||||
dri2_egl_display(dri2_surf->base.Resource.Display);
|
||||
@@ -391,7 +369,7 @@ update_buffers(struct dri2_egl_surface *dri2_surf)
|
||||
(dri2_surf->base.Width != dri2_surf->wl_win->width ||
|
||||
dri2_surf->base.Height != dri2_surf->wl_win->height)) {
|
||||
|
||||
dri2_wl_release_buffers(dri2_surf);
|
||||
dri2_release_buffers(dri2_surf);
|
||||
|
||||
dri2_surf->base.Width = dri2_surf->wl_win->width;
|
||||
dri2_surf->base.Height = dri2_surf->wl_win->height;
|
||||
@@ -421,10 +399,10 @@ update_buffers(struct dri2_egl_surface *dri2_surf)
|
||||
}
|
||||
|
||||
static __DRIbuffer *
|
||||
dri2_wl_get_buffers_with_format(__DRIdrawable * driDrawable,
|
||||
int *width, int *height,
|
||||
unsigned int *attachments, int count,
|
||||
int *out_count, void *loaderPrivate)
|
||||
dri2_get_buffers_with_format(__DRIdrawable * driDrawable,
|
||||
int *width, int *height,
|
||||
unsigned int *attachments, int count,
|
||||
int *out_count, void *loaderPrivate)
|
||||
{
|
||||
struct dri2_egl_surface *dri2_surf = loaderPrivate;
|
||||
int i, j;
|
||||
@@ -458,10 +436,10 @@ dri2_wl_get_buffers_with_format(__DRIdrawable * driDrawable,
|
||||
}
|
||||
|
||||
static __DRIbuffer *
|
||||
dri2_wl_get_buffers(__DRIdrawable * driDrawable,
|
||||
int *width, int *height,
|
||||
unsigned int *attachments, int count,
|
||||
int *out_count, void *loaderPrivate)
|
||||
dri2_get_buffers(__DRIdrawable * driDrawable,
|
||||
int *width, int *height,
|
||||
unsigned int *attachments, int count,
|
||||
int *out_count, void *loaderPrivate)
|
||||
{
|
||||
unsigned int *attachments_with_format;
|
||||
__DRIbuffer *buffer;
|
||||
@@ -480,10 +458,10 @@ dri2_wl_get_buffers(__DRIdrawable * driDrawable,
|
||||
}
|
||||
|
||||
buffer =
|
||||
dri2_wl_get_buffers_with_format(driDrawable,
|
||||
width, height,
|
||||
attachments_with_format, count,
|
||||
out_count, loaderPrivate);
|
||||
dri2_get_buffers_with_format(driDrawable,
|
||||
width, height,
|
||||
attachments_with_format, count,
|
||||
out_count, loaderPrivate);
|
||||
|
||||
free(attachments_with_format);
|
||||
|
||||
@@ -510,17 +488,16 @@ image_get_buffers(__DRIdrawable *driDrawable,
|
||||
}
|
||||
|
||||
static void
|
||||
dri2_wl_flush_front_buffer(__DRIdrawable * driDrawable, void *loaderPrivate)
|
||||
dri2_flush_front_buffer(__DRIdrawable * driDrawable, void *loaderPrivate)
|
||||
{
|
||||
(void) driDrawable;
|
||||
(void) loaderPrivate;
|
||||
}
|
||||
|
||||
static const __DRIimageLoaderExtension image_loader_extension = {
|
||||
.base = { __DRI_IMAGE_LOADER, 1 },
|
||||
|
||||
.getBuffers = image_get_buffers,
|
||||
.flushFrontBuffer = dri2_wl_flush_front_buffer,
|
||||
{ __DRI_IMAGE_LOADER, 1 },
|
||||
image_get_buffers,
|
||||
dri2_flush_front_buffer
|
||||
};
|
||||
|
||||
static void
|
||||
@@ -589,11 +566,11 @@ create_wl_buffer(struct dri2_egl_surface *dri2_surf)
|
||||
* Called via eglSwapBuffers(), drv->API.SwapBuffers().
|
||||
*/
|
||||
static EGLBoolean
|
||||
dri2_wl_swap_buffers_with_damage(_EGLDriver *drv,
|
||||
_EGLDisplay *disp,
|
||||
_EGLSurface *draw,
|
||||
const EGLint *rects,
|
||||
EGLint n_rects)
|
||||
dri2_swap_buffers_with_damage(_EGLDriver *drv,
|
||||
_EGLDisplay *disp,
|
||||
_EGLSurface *draw,
|
||||
const EGLint *rects,
|
||||
EGLint n_rects)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||
struct dri2_egl_surface *dri2_surf = dri2_egl_surface(draw);
|
||||
@@ -683,8 +660,8 @@ dri2_wl_swap_buffers_with_damage(_EGLDriver *drv,
|
||||
}
|
||||
|
||||
static EGLint
|
||||
dri2_wl_query_buffer_age(_EGLDriver *drv,
|
||||
_EGLDisplay *disp, _EGLSurface *surface)
|
||||
dri2_query_buffer_age(_EGLDriver *drv,
|
||||
_EGLDisplay *disp, _EGLSurface *surface)
|
||||
{
|
||||
struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surface);
|
||||
|
||||
@@ -697,15 +674,15 @@ dri2_wl_query_buffer_age(_EGLDriver *drv,
|
||||
}
|
||||
|
||||
static EGLBoolean
|
||||
dri2_wl_swap_buffers(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *draw)
|
||||
dri2_swap_buffers(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *draw)
|
||||
{
|
||||
return dri2_wl_swap_buffers_with_damage (drv, disp, draw, NULL, 0);
|
||||
return dri2_swap_buffers_with_damage (drv, disp, draw, NULL, 0);
|
||||
}
|
||||
|
||||
static struct wl_buffer *
|
||||
dri2_wl_create_wayland_buffer_from_image(_EGLDriver *drv,
|
||||
_EGLDisplay *disp,
|
||||
_EGLImage *img)
|
||||
dri2_create_wayland_buffer_from_image_wl(_EGLDriver *drv,
|
||||
_EGLDisplay *disp,
|
||||
_EGLImage *img)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||
struct dri2_egl_image *dri2_img = dri2_egl_image(img);
|
||||
@@ -778,7 +755,7 @@ bad_format:
|
||||
}
|
||||
|
||||
static int
|
||||
dri2_wl_authenticate(_EGLDisplay *disp, uint32_t id)
|
||||
dri2_wayland_authenticate(_EGLDisplay *disp, uint32_t id)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||
int ret = 0;
|
||||
@@ -798,6 +775,31 @@ dri2_wl_authenticate(_EGLDisplay *disp, uint32_t id)
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called via eglTerminate(), drv->API.Terminate().
|
||||
*/
|
||||
static EGLBoolean
|
||||
dri2_terminate(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||
|
||||
_eglReleaseDisplayResources(drv, disp);
|
||||
_eglCleanupDisplay(disp);
|
||||
|
||||
dri2_dpy->core->destroyScreen(dri2_dpy->dri_screen);
|
||||
close(dri2_dpy->fd);
|
||||
dlclose(dri2_dpy->driver);
|
||||
free(dri2_dpy->driver_name);
|
||||
free(dri2_dpy->device_name);
|
||||
wl_drm_destroy(dri2_dpy->wl_drm);
|
||||
if (dri2_dpy->own_device)
|
||||
wl_display_disconnect(dri2_dpy->wl_dpy);
|
||||
free(dri2_dpy);
|
||||
disp->DriverData = NULL;
|
||||
|
||||
return EGL_TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
drm_handle_device(void *data, struct wl_drm *drm, const char *device)
|
||||
{
|
||||
@@ -896,7 +898,7 @@ static const struct wl_registry_listener registry_listener = {
|
||||
};
|
||||
|
||||
static EGLBoolean
|
||||
dri2_wl_swap_interval(_EGLDriver *drv,
|
||||
dri2_swap_interval(_EGLDriver *drv,
|
||||
_EGLDisplay *disp,
|
||||
_EGLSurface *surf,
|
||||
EGLint interval)
|
||||
@@ -912,7 +914,7 @@ dri2_wl_swap_interval(_EGLDriver *drv,
|
||||
}
|
||||
|
||||
static void
|
||||
dri2_wl_setup_swap_interval(struct dri2_egl_display *dri2_dpy)
|
||||
dri2_setup_swap_interval(struct dri2_egl_display *dri2_dpy)
|
||||
{
|
||||
GLint vblank_mode = DRI_CONF_VBLANK_DEF_INTERVAL_1;
|
||||
|
||||
@@ -949,24 +951,6 @@ dri2_wl_setup_swap_interval(struct dri2_egl_display *dri2_dpy)
|
||||
}
|
||||
}
|
||||
|
||||
static struct dri2_egl_display_vtbl dri2_wl_display_vtbl = {
|
||||
.authenticate = dri2_wl_authenticate,
|
||||
.create_window_surface = dri2_wl_create_window_surface,
|
||||
.create_pixmap_surface = dri2_wl_create_pixmap_surface,
|
||||
.create_pbuffer_surface = dri2_fallback_create_pbuffer_surface,
|
||||
.destroy_surface = dri2_wl_destroy_surface,
|
||||
.create_image = dri2_create_image_khr,
|
||||
.swap_interval = dri2_wl_swap_interval,
|
||||
.swap_buffers = dri2_wl_swap_buffers,
|
||||
.swap_buffers_with_damage = dri2_wl_swap_buffers_with_damage,
|
||||
.swap_buffers_region = dri2_fallback_swap_buffers_region,
|
||||
.post_sub_buffer = dri2_fallback_post_sub_buffer,
|
||||
.copy_buffers = dri2_fallback_copy_buffers,
|
||||
.query_buffer_age = dri2_wl_query_buffer_age,
|
||||
.create_wayland_buffer_from_image = dri2_wl_create_wayland_buffer_from_image,
|
||||
.get_sync_values = dri2_fallback_get_sync_values,
|
||||
};
|
||||
|
||||
EGLBoolean
|
||||
dri2_initialize_wayland(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
{
|
||||
@@ -981,6 +965,17 @@ dri2_initialize_wayland(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
|
||||
loader_set_logger(_eglLog);
|
||||
|
||||
drv->API.CreateWindowSurface = dri2_create_window_surface;
|
||||
drv->API.DestroySurface = dri2_destroy_surface;
|
||||
drv->API.SwapBuffers = dri2_swap_buffers;
|
||||
drv->API.SwapBuffersWithDamageEXT = dri2_swap_buffers_with_damage;
|
||||
drv->API.SwapInterval = dri2_swap_interval;
|
||||
drv->API.Terminate = dri2_terminate;
|
||||
drv->API.QueryBufferAge = dri2_query_buffer_age;
|
||||
|
||||
drv->API.CreateWaylandBufferFromImageWL =
|
||||
dri2_create_wayland_buffer_from_image_wl;
|
||||
|
||||
dri2_dpy = calloc(1, sizeof *dri2_dpy);
|
||||
if (!dri2_dpy)
|
||||
return _eglError(EGL_BAD_ALLOC, "eglInitialize");
|
||||
@@ -1025,10 +1020,10 @@ dri2_initialize_wayland(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
|
||||
dri2_dpy->dri2_loader_extension.base.name = __DRI_DRI2_LOADER;
|
||||
dri2_dpy->dri2_loader_extension.base.version = 3;
|
||||
dri2_dpy->dri2_loader_extension.getBuffers = dri2_wl_get_buffers;
|
||||
dri2_dpy->dri2_loader_extension.flushFrontBuffer = dri2_wl_flush_front_buffer;
|
||||
dri2_dpy->dri2_loader_extension.getBuffers = dri2_get_buffers;
|
||||
dri2_dpy->dri2_loader_extension.flushFrontBuffer = dri2_flush_front_buffer;
|
||||
dri2_dpy->dri2_loader_extension.getBuffersWithFormat =
|
||||
dri2_wl_get_buffers_with_format;
|
||||
dri2_get_buffers_with_format;
|
||||
|
||||
dri2_dpy->extensions[0] = &dri2_dpy->dri2_loader_extension.base;
|
||||
dri2_dpy->extensions[1] = &image_loader_extension.base;
|
||||
@@ -1041,7 +1036,7 @@ dri2_initialize_wayland(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
if (!dri2_create_screen(disp))
|
||||
goto cleanup_driver;
|
||||
|
||||
dri2_wl_setup_swap_interval(dri2_dpy);
|
||||
dri2_setup_swap_interval(dri2_dpy);
|
||||
|
||||
/* The server shouldn't advertise WL_DRM_CAPABILITY_PRIME if the driver
|
||||
* doesn't have createImageFromFds, since we're using the same driver on
|
||||
@@ -1066,6 +1061,7 @@ dri2_initialize_wayland(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
disp->Extensions.WL_bind_wayland_display = EGL_TRUE;
|
||||
disp->Extensions.WL_create_wayland_buffer_from_image = EGL_TRUE;
|
||||
disp->Extensions.EXT_buffer_age = EGL_TRUE;
|
||||
dri2_dpy->authenticate = dri2_wayland_authenticate;
|
||||
|
||||
disp->Extensions.EXT_swap_buffers_with_damage = EGL_TRUE;
|
||||
|
||||
@@ -1073,11 +1069,6 @@ dri2_initialize_wayland(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
disp->VersionMajor = 1;
|
||||
disp->VersionMinor = 4;
|
||||
|
||||
/* Fill vtbl last to prevent accidentally calling virtual function during
|
||||
* initialization.
|
||||
*/
|
||||
dri2_dpy->vtbl = &dri2_wl_display_vtbl;
|
||||
|
||||
return EGL_TRUE;
|
||||
|
||||
cleanup_driver:
|
||||
|
@@ -25,7 +25,6 @@
|
||||
* Kristian Høgsberg <krh@bitplanet.net>
|
||||
*/
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
@@ -41,11 +40,6 @@
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include "egl_dri2.h"
|
||||
#include "egl_dri2_fallbacks.h"
|
||||
|
||||
static EGLBoolean
|
||||
dri2_x11_swap_interval(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf,
|
||||
EGLint interval);
|
||||
|
||||
static void
|
||||
swrastCreateDrawable(struct dri2_egl_display * dri2_dpy,
|
||||
@@ -182,9 +176,9 @@ swrastGetImage(__DRIdrawable * read,
|
||||
* Called via eglCreateWindowSurface(), drv->API.CreateWindowSurface().
|
||||
*/
|
||||
static _EGLSurface *
|
||||
dri2_x11_create_surface(_EGLDriver *drv, _EGLDisplay *disp, EGLint type,
|
||||
_EGLConfig *conf, void *native_surface,
|
||||
const EGLint *attrib_list)
|
||||
dri2_create_surface(_EGLDriver *drv, _EGLDisplay *disp, EGLint type,
|
||||
_EGLConfig *conf, EGLNativeWindowType native_window,
|
||||
const EGLint *attrib_list)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||
struct dri2_egl_config *dri2_conf = dri2_egl_config(conf);
|
||||
@@ -193,10 +187,7 @@ dri2_x11_create_surface(_EGLDriver *drv, _EGLDisplay *disp, EGLint type,
|
||||
xcb_get_geometry_reply_t *reply;
|
||||
xcb_screen_iterator_t s;
|
||||
xcb_generic_error_t *error;
|
||||
xcb_drawable_t drawable;
|
||||
|
||||
STATIC_ASSERT(sizeof(uintptr_t) == sizeof(native_surface));
|
||||
drawable = (uintptr_t) native_surface;
|
||||
xcb_drawable_t window = (uintptr_t )native_window;
|
||||
|
||||
(void) drv;
|
||||
|
||||
@@ -217,7 +208,7 @@ dri2_x11_create_surface(_EGLDriver *drv, _EGLDisplay *disp, EGLint type,
|
||||
dri2_surf->drawable, s.data->root,
|
||||
dri2_surf->base.Width, dri2_surf->base.Height);
|
||||
} else {
|
||||
dri2_surf->drawable = drawable;
|
||||
dri2_surf->drawable = window;
|
||||
}
|
||||
|
||||
if (dri2_dpy->dri2) {
|
||||
@@ -280,15 +271,15 @@ dri2_x11_create_surface(_EGLDriver *drv, _EGLDisplay *disp, EGLint type,
|
||||
* Called via eglCreateWindowSurface(), drv->API.CreateWindowSurface().
|
||||
*/
|
||||
static _EGLSurface *
|
||||
dri2_x11_create_window_surface(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
_EGLConfig *conf, void *native_window,
|
||||
const EGLint *attrib_list)
|
||||
dri2_create_window_surface(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
_EGLConfig *conf, EGLNativeWindowType window,
|
||||
const EGLint *attrib_list)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||
_EGLSurface *surf;
|
||||
|
||||
surf = dri2_x11_create_surface(drv, disp, EGL_WINDOW_BIT, conf,
|
||||
native_window, attrib_list);
|
||||
surf = dri2_create_surface(drv, disp, EGL_WINDOW_BIT, conf,
|
||||
window, attrib_list);
|
||||
if (surf != NULL) {
|
||||
/* When we first create the DRI2 drawable, its swap interval on the
|
||||
* server side is 1.
|
||||
@@ -296,31 +287,31 @@ dri2_x11_create_window_surface(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
surf->SwapInterval = 1;
|
||||
|
||||
/* Override that with a driconf-set value. */
|
||||
dri2_x11_swap_interval(drv, disp, surf, dri2_dpy->default_swap_interval);
|
||||
drv->API.SwapInterval(drv, disp, surf, dri2_dpy->default_swap_interval);
|
||||
}
|
||||
|
||||
return surf;
|
||||
}
|
||||
|
||||
static _EGLSurface *
|
||||
dri2_x11_create_pixmap_surface(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
_EGLConfig *conf, void *native_pixmap,
|
||||
const EGLint *attrib_list)
|
||||
dri2_create_pixmap_surface(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
_EGLConfig *conf, EGLNativePixmapType pixmap,
|
||||
const EGLint *attrib_list)
|
||||
{
|
||||
return dri2_x11_create_surface(drv, disp, EGL_PIXMAP_BIT, conf,
|
||||
native_pixmap, attrib_list);
|
||||
return dri2_create_surface(drv, disp, EGL_PIXMAP_BIT, conf,
|
||||
pixmap, attrib_list);
|
||||
}
|
||||
|
||||
static _EGLSurface *
|
||||
dri2_x11_create_pbuffer_surface(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
_EGLConfig *conf, const EGLint *attrib_list)
|
||||
dri2_create_pbuffer_surface(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
_EGLConfig *conf, const EGLint *attrib_list)
|
||||
{
|
||||
return dri2_x11_create_surface(drv, disp, EGL_PBUFFER_BIT, conf,
|
||||
XCB_WINDOW_NONE, attrib_list);
|
||||
return dri2_create_surface(drv, disp, EGL_PBUFFER_BIT, conf,
|
||||
XCB_WINDOW_NONE, attrib_list);
|
||||
}
|
||||
|
||||
static EGLBoolean
|
||||
dri2_x11_destroy_surface(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf)
|
||||
dri2_destroy_surface(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||
struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surf);
|
||||
@@ -354,8 +345,8 @@ dri2_x11_destroy_surface(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf)
|
||||
* \c DRI2GetBuffers or \c DRI2GetBuffersWithFormat.
|
||||
*/
|
||||
static void
|
||||
dri2_x11_process_buffers(struct dri2_egl_surface *dri2_surf,
|
||||
xcb_dri2_dri2_buffer_t *buffers, unsigned count)
|
||||
dri2_process_buffers(struct dri2_egl_surface *dri2_surf,
|
||||
xcb_dri2_dri2_buffer_t *buffers, unsigned count)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy =
|
||||
dri2_egl_display(dri2_surf->base.Resource.Display);
|
||||
@@ -395,10 +386,10 @@ dri2_x11_process_buffers(struct dri2_egl_surface *dri2_surf,
|
||||
}
|
||||
|
||||
static __DRIbuffer *
|
||||
dri2_x11_get_buffers(__DRIdrawable * driDrawable,
|
||||
int *width, int *height,
|
||||
unsigned int *attachments, int count,
|
||||
int *out_count, void *loaderPrivate)
|
||||
dri2_get_buffers(__DRIdrawable * driDrawable,
|
||||
int *width, int *height,
|
||||
unsigned int *attachments, int count,
|
||||
int *out_count, void *loaderPrivate)
|
||||
{
|
||||
struct dri2_egl_surface *dri2_surf = loaderPrivate;
|
||||
struct dri2_egl_display *dri2_dpy =
|
||||
@@ -420,7 +411,7 @@ dri2_x11_get_buffers(__DRIdrawable * driDrawable,
|
||||
*out_count = reply->count;
|
||||
dri2_surf->base.Width = *width = reply->width;
|
||||
dri2_surf->base.Height = *height = reply->height;
|
||||
dri2_x11_process_buffers(dri2_surf, buffers, *out_count);
|
||||
dri2_process_buffers(dri2_surf, buffers, *out_count);
|
||||
|
||||
free(reply);
|
||||
|
||||
@@ -428,10 +419,10 @@ dri2_x11_get_buffers(__DRIdrawable * driDrawable,
|
||||
}
|
||||
|
||||
static __DRIbuffer *
|
||||
dri2_x11_get_buffers_with_format(__DRIdrawable * driDrawable,
|
||||
int *width, int *height,
|
||||
unsigned int *attachments, int count,
|
||||
int *out_count, void *loaderPrivate)
|
||||
dri2_get_buffers_with_format(__DRIdrawable * driDrawable,
|
||||
int *width, int *height,
|
||||
unsigned int *attachments, int count,
|
||||
int *out_count, void *loaderPrivate)
|
||||
{
|
||||
struct dri2_egl_surface *dri2_surf = loaderPrivate;
|
||||
struct dri2_egl_display *dri2_dpy =
|
||||
@@ -458,7 +449,7 @@ dri2_x11_get_buffers_with_format(__DRIdrawable * driDrawable,
|
||||
dri2_surf->base.Width = *width = reply->width;
|
||||
dri2_surf->base.Height = *height = reply->height;
|
||||
*out_count = reply->count;
|
||||
dri2_x11_process_buffers(dri2_surf, buffers, *out_count);
|
||||
dri2_process_buffers(dri2_surf, buffers, *out_count);
|
||||
|
||||
free(reply);
|
||||
|
||||
@@ -466,7 +457,7 @@ dri2_x11_get_buffers_with_format(__DRIdrawable * driDrawable,
|
||||
}
|
||||
|
||||
static void
|
||||
dri2_x11_flush_front_buffer(__DRIdrawable * driDrawable, void *loaderPrivate)
|
||||
dri2_flush_front_buffer(__DRIdrawable * driDrawable, void *loaderPrivate)
|
||||
{
|
||||
(void) driDrawable;
|
||||
|
||||
@@ -481,8 +472,23 @@ dri2_x11_flush_front_buffer(__DRIdrawable * driDrawable, void *loaderPrivate)
|
||||
#endif
|
||||
}
|
||||
|
||||
static char *
|
||||
dri2_strndup(const char *s, int length)
|
||||
{
|
||||
char *d;
|
||||
|
||||
d = malloc(length + 1);
|
||||
if (d == NULL)
|
||||
return NULL;
|
||||
|
||||
memcpy(d, s, length);
|
||||
d[length] = '\0';
|
||||
|
||||
return d;
|
||||
}
|
||||
|
||||
static EGLBoolean
|
||||
dri2_x11_connect(struct dri2_egl_display *dri2_dpy)
|
||||
dri2_connect(struct dri2_egl_display *dri2_dpy)
|
||||
{
|
||||
xcb_xfixes_query_version_reply_t *xfixes_query;
|
||||
xcb_xfixes_query_version_cookie_t xfixes_query_cookie;
|
||||
@@ -550,14 +556,14 @@ dri2_x11_connect(struct dri2_egl_display *dri2_dpy)
|
||||
|
||||
driver_name = xcb_dri2_connect_driver_name (connect);
|
||||
dri2_dpy->driver_name =
|
||||
strndup(driver_name,
|
||||
xcb_dri2_connect_driver_name_length(connect));
|
||||
dri2_strndup(driver_name,
|
||||
xcb_dri2_connect_driver_name_length (connect));
|
||||
|
||||
device_name = xcb_dri2_connect_device_name (connect);
|
||||
|
||||
dri2_dpy->device_name =
|
||||
strndup(device_name,
|
||||
xcb_dri2_connect_device_name_length(connect));
|
||||
dri2_strndup(device_name,
|
||||
xcb_dri2_connect_device_name_length (connect));
|
||||
|
||||
if (dri2_dpy->device_name == NULL || dri2_dpy->driver_name == NULL) {
|
||||
free(dri2_dpy->device_name);
|
||||
@@ -594,7 +600,7 @@ dri2_x11_authenticate(_EGLDisplay *disp, uint32_t id)
|
||||
}
|
||||
|
||||
static EGLBoolean
|
||||
dri2_x11_local_authenticate(_EGLDisplay *disp)
|
||||
dri2_authenticate(_EGLDisplay *disp)
|
||||
{
|
||||
#ifdef HAVE_LIBDRM
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||
@@ -614,8 +620,8 @@ dri2_x11_local_authenticate(_EGLDisplay *disp)
|
||||
}
|
||||
|
||||
static EGLBoolean
|
||||
dri2_x11_add_configs_for_visuals(struct dri2_egl_display *dri2_dpy,
|
||||
_EGLDisplay *disp)
|
||||
dri2_add_configs_for_visuals(struct dri2_egl_display *dri2_dpy,
|
||||
_EGLDisplay *disp)
|
||||
{
|
||||
xcb_screen_iterator_t s;
|
||||
xcb_depth_iterator_t d;
|
||||
@@ -718,8 +724,8 @@ dri2_copy_region(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
}
|
||||
|
||||
static int64_t
|
||||
dri2_x11_swap_buffers_msc(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *draw,
|
||||
int64_t msc, int64_t divisor, int64_t remainder)
|
||||
dri2_swap_buffers_msc(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *draw,
|
||||
int64_t msc, int64_t divisor, int64_t remainder)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||
struct dri2_egl_surface *dri2_surf = dri2_egl_surface(draw);
|
||||
@@ -771,13 +777,13 @@ dri2_x11_swap_buffers_msc(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *draw,
|
||||
}
|
||||
|
||||
static EGLBoolean
|
||||
dri2_x11_swap_buffers(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *draw)
|
||||
dri2_swap_buffers(_EGLDriver *drv, _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->dri2) {
|
||||
return dri2_x11_swap_buffers_msc(drv, disp, draw, 0, 0, 0) != -1;
|
||||
return dri2_swap_buffers_msc(drv, disp, draw, 0, 0, 0) != -1;
|
||||
} else {
|
||||
assert(dri2_dpy->swrast);
|
||||
|
||||
@@ -787,9 +793,8 @@ dri2_x11_swap_buffers(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *draw)
|
||||
}
|
||||
|
||||
static EGLBoolean
|
||||
dri2_x11_swap_buffers_region(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
_EGLSurface *draw,
|
||||
EGLint numRects, const EGLint *rects)
|
||||
dri2_swap_buffers_region(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *draw,
|
||||
EGLint numRects, const EGLint *rects)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||
struct dri2_egl_surface *dri2_surf = dri2_egl_surface(draw);
|
||||
@@ -817,7 +822,7 @@ dri2_x11_swap_buffers_region(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
}
|
||||
|
||||
static EGLBoolean
|
||||
dri2_x11_post_sub_buffer(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *draw,
|
||||
dri2_post_sub_buffer(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *draw,
|
||||
EGLint x, EGLint y, EGLint width, EGLint height)
|
||||
{
|
||||
const EGLint rect[4] = { x, y, width, height };
|
||||
@@ -825,12 +830,11 @@ dri2_x11_post_sub_buffer(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *draw,
|
||||
if (x < 0 || y < 0 || width < 0 || height < 0)
|
||||
_eglError(EGL_BAD_PARAMETER, "eglPostSubBufferNV");
|
||||
|
||||
return dri2_x11_swap_buffers_region(drv, disp, draw, 1, rect);
|
||||
return dri2_swap_buffers_region(drv, disp, draw, 1, rect);
|
||||
}
|
||||
|
||||
static EGLBoolean
|
||||
dri2_x11_swap_interval(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf,
|
||||
EGLint interval)
|
||||
dri2_swap_interval(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf, EGLint interval)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||
struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surf);
|
||||
@@ -849,16 +853,13 @@ dri2_x11_swap_interval(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf,
|
||||
}
|
||||
|
||||
static EGLBoolean
|
||||
dri2_x11_copy_buffers(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf,
|
||||
void *native_pixmap_target)
|
||||
dri2_copy_buffers(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf,
|
||||
EGLNativePixmapType native_target)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
|
||||
struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surf);
|
||||
xcb_gcontext_t gc;
|
||||
xcb_pixmap_t target;
|
||||
|
||||
STATIC_ASSERT(sizeof(uintptr_t) == sizeof(native_pixmap_target));
|
||||
target = (uintptr_t) native_pixmap_target;
|
||||
xcb_pixmap_t target = (uintptr_t )native_target;
|
||||
|
||||
(void) drv;
|
||||
|
||||
@@ -984,81 +985,24 @@ dri2_x11_create_image_khr(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
}
|
||||
}
|
||||
|
||||
static _EGLImage*
|
||||
dri2_x11_swrast_create_image_khr(_EGLDriver *drv, _EGLDisplay *disp,
|
||||
_EGLContext *ctx, EGLenum target,
|
||||
EGLClientBuffer buffer,
|
||||
const EGLint *attr_list)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static EGLBoolean
|
||||
dri2_x11_get_sync_values(_EGLDisplay *display, _EGLSurface *surface,
|
||||
EGLuint64KHR *ust, EGLuint64KHR *msc,
|
||||
EGLuint64KHR *sbc)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(display);
|
||||
struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surface);
|
||||
xcb_dri2_get_msc_cookie_t cookie;
|
||||
xcb_dri2_get_msc_reply_t *reply;
|
||||
|
||||
cookie = xcb_dri2_get_msc(dri2_dpy->conn, dri2_surf->drawable);
|
||||
reply = xcb_dri2_get_msc_reply(dri2_dpy->conn, cookie, NULL);
|
||||
|
||||
if (!reply) {
|
||||
_eglError(EGL_BAD_ACCESS, __func__);
|
||||
return EGL_FALSE;
|
||||
}
|
||||
|
||||
*ust = ((EGLuint64KHR) reply->ust_hi << 32) | reply->ust_lo;
|
||||
*msc = ((EGLuint64KHR) reply->msc_hi << 32) | reply->msc_lo;
|
||||
*sbc = ((EGLuint64KHR) reply->sbc_hi << 32) | reply->sbc_lo;
|
||||
free(reply);
|
||||
|
||||
return EGL_TRUE;
|
||||
}
|
||||
|
||||
static struct dri2_egl_display_vtbl dri2_x11_swrast_display_vtbl = {
|
||||
.authenticate = NULL,
|
||||
.create_window_surface = dri2_x11_create_window_surface,
|
||||
.create_pixmap_surface = dri2_x11_create_pixmap_surface,
|
||||
.create_pbuffer_surface = dri2_x11_create_pbuffer_surface,
|
||||
.destroy_surface = dri2_x11_destroy_surface,
|
||||
.create_image = dri2_x11_swrast_create_image_khr,
|
||||
.swap_interval = dri2_fallback_swap_interval,
|
||||
.swap_buffers = dri2_x11_swap_buffers,
|
||||
.swap_buffers_region = dri2_fallback_swap_buffers_region,
|
||||
.post_sub_buffer = dri2_fallback_post_sub_buffer,
|
||||
.copy_buffers = dri2_x11_copy_buffers,
|
||||
.query_buffer_age = dri2_fallback_query_buffer_age,
|
||||
.create_wayland_buffer_from_image = dri2_fallback_create_wayland_buffer_from_image,
|
||||
.get_sync_values = dri2_fallback_get_sync_values,
|
||||
};
|
||||
|
||||
static struct dri2_egl_display_vtbl dri2_x11_display_vtbl = {
|
||||
.authenticate = dri2_x11_authenticate,
|
||||
.create_window_surface = dri2_x11_create_window_surface,
|
||||
.create_pixmap_surface = dri2_x11_create_pixmap_surface,
|
||||
.create_pbuffer_surface = dri2_x11_create_pbuffer_surface,
|
||||
.destroy_surface = dri2_x11_destroy_surface,
|
||||
.create_image = dri2_x11_create_image_khr,
|
||||
.swap_interval = dri2_x11_swap_interval,
|
||||
.swap_buffers = dri2_x11_swap_buffers,
|
||||
.swap_buffers_with_damage = dri2_fallback_swap_buffers_with_damage,
|
||||
.swap_buffers_region = dri2_x11_swap_buffers_region,
|
||||
.post_sub_buffer = dri2_x11_post_sub_buffer,
|
||||
.copy_buffers = dri2_x11_copy_buffers,
|
||||
.query_buffer_age = dri2_fallback_query_buffer_age,
|
||||
.create_wayland_buffer_from_image = dri2_fallback_create_wayland_buffer_from_image,
|
||||
.get_sync_values = dri2_x11_get_sync_values,
|
||||
};
|
||||
|
||||
static EGLBoolean
|
||||
dri2_initialize_x11_swrast(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy;
|
||||
|
||||
drv->API.CreateWindowSurface = dri2_create_window_surface;
|
||||
drv->API.CreatePixmapSurface = dri2_create_pixmap_surface;
|
||||
drv->API.CreatePbufferSurface = dri2_create_pbuffer_surface;
|
||||
drv->API.DestroySurface = dri2_destroy_surface;
|
||||
drv->API.SwapBuffers = dri2_swap_buffers;
|
||||
drv->API.CopyBuffers = dri2_copy_buffers;
|
||||
|
||||
drv->API.SwapBuffersRegionNOK = NULL;
|
||||
drv->API.CreateImageKHR = NULL;
|
||||
drv->API.DestroyImageKHR = NULL;
|
||||
drv->API.CreateDRMImageMESA = NULL;
|
||||
drv->API.ExportDRMImageMESA = NULL;
|
||||
|
||||
dri2_dpy = calloc(1, sizeof *dri2_dpy);
|
||||
if (!dri2_dpy)
|
||||
return _eglError(EGL_BAD_ALLOC, "eglInitialize");
|
||||
@@ -1066,7 +1010,6 @@ dri2_initialize_x11_swrast(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
disp->DriverData = (void *) dri2_dpy;
|
||||
if (disp->PlatformDisplay == NULL) {
|
||||
dri2_dpy->conn = xcb_connect(0, 0);
|
||||
dri2_dpy->own_device = true;
|
||||
} else {
|
||||
dri2_dpy->conn = XGetXCBConnection((Display *) disp->PlatformDisplay);
|
||||
}
|
||||
@@ -1076,11 +1019,6 @@ dri2_initialize_x11_swrast(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
goto cleanup_dpy;
|
||||
}
|
||||
|
||||
/*
|
||||
* Every hardware driver_name is set using strdup. Doing the same in
|
||||
* here will allow is to simply free the memory at dri2_terminate().
|
||||
*/
|
||||
dri2_dpy->driver_name = strdup("swrast");
|
||||
if (!dri2_load_driver_swrast(disp))
|
||||
goto cleanup_conn;
|
||||
|
||||
@@ -1098,7 +1036,7 @@ dri2_initialize_x11_swrast(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
goto cleanup_driver;
|
||||
|
||||
if (dri2_dpy->conn) {
|
||||
if (!dri2_x11_add_configs_for_visuals(dri2_dpy, disp))
|
||||
if (!dri2_add_configs_for_visuals(dri2_dpy, disp))
|
||||
goto cleanup_configs;
|
||||
}
|
||||
|
||||
@@ -1106,11 +1044,6 @@ dri2_initialize_x11_swrast(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
disp->VersionMajor = 1;
|
||||
disp->VersionMinor = 4;
|
||||
|
||||
/* Fill vtbl last to prevent accidentally calling virtual function during
|
||||
* initialization.
|
||||
*/
|
||||
dri2_dpy->vtbl = &dri2_x11_swrast_display_vtbl;
|
||||
|
||||
return EGL_TRUE;
|
||||
|
||||
cleanup_configs:
|
||||
@@ -1119,7 +1052,6 @@ dri2_initialize_x11_swrast(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
cleanup_driver:
|
||||
dlclose(dri2_dpy->driver);
|
||||
cleanup_conn:
|
||||
free(dri2_dpy->driver_name);
|
||||
if (disp->PlatformDisplay == NULL)
|
||||
xcb_disconnect(dri2_dpy->conn);
|
||||
cleanup_dpy:
|
||||
@@ -1129,7 +1061,7 @@ dri2_initialize_x11_swrast(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
}
|
||||
|
||||
static void
|
||||
dri2_x11_setup_swap_interval(struct dri2_egl_display *dri2_dpy)
|
||||
dri2_setup_swap_interval(struct dri2_egl_display *dri2_dpy)
|
||||
{
|
||||
GLint vblank_mode = DRI_CONF_VBLANK_DEF_INTERVAL_1;
|
||||
int arbitrary_max_interval = 1000;
|
||||
@@ -1179,6 +1111,17 @@ dri2_initialize_x11_dri2(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
{
|
||||
struct dri2_egl_display *dri2_dpy;
|
||||
|
||||
drv->API.CreateWindowSurface = dri2_create_window_surface;
|
||||
drv->API.CreatePixmapSurface = dri2_create_pixmap_surface;
|
||||
drv->API.CreatePbufferSurface = dri2_create_pbuffer_surface;
|
||||
drv->API.DestroySurface = dri2_destroy_surface;
|
||||
drv->API.SwapBuffers = dri2_swap_buffers;
|
||||
drv->API.CopyBuffers = dri2_copy_buffers;
|
||||
drv->API.CreateImageKHR = dri2_x11_create_image_khr;
|
||||
drv->API.SwapBuffersRegionNOK = dri2_swap_buffers_region;
|
||||
drv->API.PostSubBufferNV = dri2_post_sub_buffer;
|
||||
drv->API.SwapInterval = dri2_swap_interval;
|
||||
|
||||
dri2_dpy = calloc(1, sizeof *dri2_dpy);
|
||||
if (!dri2_dpy)
|
||||
return _eglError(EGL_BAD_ALLOC, "eglInitialize");
|
||||
@@ -1186,7 +1129,6 @@ dri2_initialize_x11_dri2(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
disp->DriverData = (void *) dri2_dpy;
|
||||
if (disp->PlatformDisplay == NULL) {
|
||||
dri2_dpy->conn = xcb_connect(0, 0);
|
||||
dri2_dpy->own_device = true;
|
||||
} else {
|
||||
dri2_dpy->conn = XGetXCBConnection((Display *) disp->PlatformDisplay);
|
||||
}
|
||||
@@ -1197,7 +1139,7 @@ dri2_initialize_x11_dri2(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
}
|
||||
|
||||
if (dri2_dpy->conn) {
|
||||
if (!dri2_x11_connect(dri2_dpy))
|
||||
if (!dri2_connect(dri2_dpy))
|
||||
goto cleanup_conn;
|
||||
}
|
||||
|
||||
@@ -1222,22 +1164,22 @@ dri2_initialize_x11_dri2(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
}
|
||||
|
||||
if (dri2_dpy->conn) {
|
||||
if (!dri2_x11_local_authenticate(disp))
|
||||
if (!dri2_authenticate(disp))
|
||||
goto cleanup_fd;
|
||||
}
|
||||
|
||||
if (dri2_dpy->dri2_minor >= 1) {
|
||||
dri2_dpy->dri2_loader_extension.base.name = __DRI_DRI2_LOADER;
|
||||
dri2_dpy->dri2_loader_extension.base.version = 3;
|
||||
dri2_dpy->dri2_loader_extension.getBuffers = dri2_x11_get_buffers;
|
||||
dri2_dpy->dri2_loader_extension.flushFrontBuffer = dri2_x11_flush_front_buffer;
|
||||
dri2_dpy->dri2_loader_extension.getBuffers = dri2_get_buffers;
|
||||
dri2_dpy->dri2_loader_extension.flushFrontBuffer = dri2_flush_front_buffer;
|
||||
dri2_dpy->dri2_loader_extension.getBuffersWithFormat =
|
||||
dri2_x11_get_buffers_with_format;
|
||||
dri2_get_buffers_with_format;
|
||||
} else {
|
||||
dri2_dpy->dri2_loader_extension.base.name = __DRI_DRI2_LOADER;
|
||||
dri2_dpy->dri2_loader_extension.base.version = 2;
|
||||
dri2_dpy->dri2_loader_extension.getBuffers = dri2_x11_get_buffers;
|
||||
dri2_dpy->dri2_loader_extension.flushFrontBuffer = dri2_x11_flush_front_buffer;
|
||||
dri2_dpy->dri2_loader_extension.getBuffers = dri2_get_buffers;
|
||||
dri2_dpy->dri2_loader_extension.flushFrontBuffer = dri2_flush_front_buffer;
|
||||
dri2_dpy->dri2_loader_extension.getBuffersWithFormat = NULL;
|
||||
}
|
||||
|
||||
@@ -1251,37 +1193,28 @@ dri2_initialize_x11_dri2(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
if (!dri2_create_screen(disp))
|
||||
goto cleanup_fd;
|
||||
|
||||
dri2_x11_setup_swap_interval(dri2_dpy);
|
||||
|
||||
if (dri2_dpy->conn) {
|
||||
if (!dri2_x11_add_configs_for_visuals(dri2_dpy, disp))
|
||||
goto cleanup_configs;
|
||||
}
|
||||
dri2_setup_swap_interval(dri2_dpy);
|
||||
|
||||
disp->Extensions.KHR_image_pixmap = EGL_TRUE;
|
||||
disp->Extensions.NOK_swap_region = EGL_TRUE;
|
||||
disp->Extensions.NOK_texture_from_pixmap = EGL_TRUE;
|
||||
disp->Extensions.NV_post_sub_buffer = EGL_TRUE;
|
||||
disp->Extensions.CHROMIUM_sync_control = EGL_TRUE;
|
||||
|
||||
#ifdef HAVE_WAYLAND_PLATFORM
|
||||
disp->Extensions.WL_bind_wayland_display = EGL_TRUE;
|
||||
#endif
|
||||
|
||||
if (dri2_dpy->conn) {
|
||||
if (!dri2_x11_add_configs_for_visuals(dri2_dpy, disp))
|
||||
if (!dri2_add_configs_for_visuals(dri2_dpy, disp))
|
||||
goto cleanup_configs;
|
||||
}
|
||||
|
||||
dri2_dpy->authenticate = dri2_x11_authenticate;
|
||||
|
||||
/* we're supporting EGL 1.4 */
|
||||
disp->VersionMajor = 1;
|
||||
disp->VersionMinor = 4;
|
||||
|
||||
/* Fill vtbl last to prevent accidentally calling virtual function during
|
||||
* initialization.
|
||||
*/
|
||||
dri2_dpy->vtbl = &dri2_x11_display_vtbl;
|
||||
|
||||
return EGL_TRUE;
|
||||
|
||||
cleanup_configs:
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# Copyright © 2014 Broadcom
|
||||
# Copyright © 2012 Intel Corporation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||
# copy of this software and associated documentation files (the "Software"),
|
||||
@@ -19,22 +19,16 @@
|
||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
# IN THE SOFTWARE.
|
||||
|
||||
include Makefile.sources
|
||||
include $(top_srcdir)/src/gallium/Automake.inc
|
||||
|
||||
if USE_VC4_SIMULATOR
|
||||
SIM_CFLAGS = -DUSE_VC4_SIMULATOR=1
|
||||
SIM_LDFLAGS = -lsimpenrose
|
||||
endif
|
||||
|
||||
AM_CFLAGS = \
|
||||
$(LIBDRM_CFLAGS) \
|
||||
$(GALLIUM_DRIVER_CFLAGS) \
|
||||
$(SIM_CFLAGS) \
|
||||
$()
|
||||
-I$(top_srcdir)/include \
|
||||
-I$(top_srcdir)/src/egl/main \
|
||||
$(VISIBILITY_CFLAGS) \
|
||||
$(X11_INCLUDES) \
|
||||
$(DEFINES)
|
||||
|
||||
noinst_LTLIBRARIES = libvc4.la
|
||||
noinst_LTLIBRARIES = libegl_glx.la
|
||||
|
||||
libvc4_la_SOURCES = $(C_SOURCES)
|
||||
libvc4_la_LIBADD = $(SIM_LIB)
|
||||
libvc4_la_LDFLAGS = $(SIM_LDFLAGS)
|
||||
libegl_glx_la_SOURCES = egl_glx.c
|
||||
|
||||
libegl_glx_la_LIBADD = \
|
||||
$(EGL_LIB_DEPS)
|
1182
src/egl/drivers/glx/egl_glx.c
Normal file
1182
src/egl/drivers/glx/egl_glx.c
Normal file
File diff suppressed because it is too large
Load Diff
@@ -25,10 +25,25 @@
|
||||
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
include $(LOCAL_PATH)/Makefile.sources
|
||||
|
||||
SOURCES := \
|
||||
${LIBEGL_C_FILES}
|
||||
# from Makefile
|
||||
SOURCES = \
|
||||
eglapi.c \
|
||||
eglarray.c \
|
||||
eglconfig.c \
|
||||
eglcontext.c \
|
||||
eglcurrent.c \
|
||||
egldisplay.c \
|
||||
egldriver.c \
|
||||
eglfallbacks.c \
|
||||
eglglobals.c \
|
||||
eglimage.c \
|
||||
egllog.c \
|
||||
eglmisc.c \
|
||||
eglmode.c \
|
||||
eglscreen.c \
|
||||
eglstring.c \
|
||||
eglsurface.c \
|
||||
eglsync.c
|
||||
|
||||
# ---------------------------------------
|
||||
# Build libGLES_mesa
|
||||
@@ -80,12 +95,6 @@ gallium_DRIVERS :=
|
||||
# swrast
|
||||
gallium_DRIVERS += libmesa_pipe_softpipe libmesa_winsys_sw_android
|
||||
|
||||
# freedreno
|
||||
ifneq ($(filter freedreno, $(MESA_GPU_DRIVERS)),)
|
||||
gallium_DRIVERS += libmesa_winsys_freedreno libmesa_pipe_freedreno
|
||||
LOCAL_SHARED_LIBRARIES += libdrm_freedreno
|
||||
endif
|
||||
|
||||
# i915g
|
||||
ifneq ($(filter i915g, $(MESA_GPU_DRIVERS)),)
|
||||
gallium_DRIVERS += libmesa_winsys_i915 libmesa_pipe_i915
|
||||
@@ -100,29 +109,28 @@ endif
|
||||
|
||||
# nouveau
|
||||
ifneq ($(filter nouveau, $(MESA_GPU_DRIVERS)),)
|
||||
gallium_DRIVERS += libmesa_winsys_nouveau libmesa_pipe_nouveau
|
||||
gallium_DRIVERS += \
|
||||
libmesa_winsys_nouveau \
|
||||
libmesa_pipe_nvfx \
|
||||
libmesa_pipe_nv50 \
|
||||
libmesa_pipe_nvc0 \
|
||||
libmesa_pipe_nouveau
|
||||
LOCAL_SHARED_LIBRARIES += libdrm_nouveau
|
||||
LOCAL_SHARED_LIBRARIES += libstlport
|
||||
endif
|
||||
|
||||
# r300g/r600g/radeonsi
|
||||
ifneq ($(filter r300g r600g radeonsi, $(MESA_GPU_DRIVERS)),)
|
||||
gallium_DRIVERS += libmesa_winsys_radeon
|
||||
LOCAL_SHARED_LIBRARIES += libdrm_radeon
|
||||
ifneq ($(filter r300g, $(MESA_GPU_DRIVERS)),)
|
||||
gallium_DRIVERS += libmesa_pipe_r300
|
||||
endif # r300g
|
||||
ifneq ($(filter r600g radeonsi, $(MESA_GPU_DRIVERS)),)
|
||||
endif
|
||||
ifneq ($(filter r600g, $(MESA_GPU_DRIVERS)),)
|
||||
gallium_DRIVERS += libmesa_pipe_r600
|
||||
LOCAL_SHARED_LIBRARIES += libstlport
|
||||
endif # r600g
|
||||
endif
|
||||
ifneq ($(filter radeonsi, $(MESA_GPU_DRIVERS)),)
|
||||
gallium_DRIVERS += libmesa_pipe_radeonsi
|
||||
endif # radeonsi
|
||||
gallium_DRIVERS += libmesa_pipe_radeon
|
||||
endif # r600g || radeonsi
|
||||
endif # r300g || r600g || radeonsi
|
||||
endif
|
||||
endif
|
||||
|
||||
# vmwgfx
|
||||
ifneq ($(filter vmwgfx, $(MESA_GPU_DRIVERS)),)
|
||||
@@ -143,7 +151,6 @@ LOCAL_STATIC_LIBRARIES := \
|
||||
libmesa_st_egl \
|
||||
$(gallium_DRIVERS) \
|
||||
libmesa_st_mesa \
|
||||
libmesa_util \
|
||||
libmesa_glsl \
|
||||
libmesa_glsl_utils \
|
||||
libmesa_gallium \
|
||||
@@ -153,7 +160,7 @@ endif # MESA_BUILD_GALLIUM
|
||||
|
||||
LOCAL_STATIC_LIBRARIES := \
|
||||
$(LOCAL_STATIC_LIBRARIES) \
|
||||
libmesa_loader
|
||||
libloader
|
||||
|
||||
LOCAL_MODULE := libGLES_mesa
|
||||
LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/egl
|
||||
|
@@ -19,7 +19,9 @@
|
||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
# IN THE SOFTWARE.
|
||||
|
||||
include Makefile.sources
|
||||
if HAVE_XF86VIDMODE
|
||||
EXTRA_DEFINES_XF86VIDMODE = -DXF86VIDMODE
|
||||
endif
|
||||
|
||||
AM_CFLAGS = \
|
||||
-I$(top_srcdir)/include \
|
||||
@@ -34,16 +36,44 @@ AM_CFLAGS = \
|
||||
lib_LTLIBRARIES = libEGL.la
|
||||
|
||||
libEGL_la_SOURCES = \
|
||||
${LIBEGL_C_FILES}
|
||||
eglapi.c \
|
||||
eglarray.c \
|
||||
eglconfig.c \
|
||||
eglcontext.c \
|
||||
eglcurrent.c \
|
||||
egldisplay.c \
|
||||
egldriver.c \
|
||||
eglfallbacks.c \
|
||||
eglglobals.c \
|
||||
eglimage.c \
|
||||
egllog.c \
|
||||
eglmisc.c \
|
||||
eglmode.c \
|
||||
eglscreen.c \
|
||||
eglstring.c \
|
||||
eglsurface.c \
|
||||
eglsync.c \
|
||||
eglcompiler.h \
|
||||
eglconfig.h \
|
||||
eglcontext.h \
|
||||
eglcurrent.h \
|
||||
egldefines.h \
|
||||
egldisplay.h \
|
||||
egldriver.h \
|
||||
eglglobals.h \
|
||||
eglimage.h \
|
||||
egllog.h \
|
||||
eglmisc.h \
|
||||
eglmode.h \
|
||||
eglmutex.h \
|
||||
eglscreen.h \
|
||||
eglstring.h \
|
||||
eglsurface.h \
|
||||
eglsync.h
|
||||
|
||||
libEGL_la_LIBADD = \
|
||||
$(EGL_LIB_DEPS)
|
||||
libEGL_la_LDFLAGS = \
|
||||
-no-undefined \
|
||||
-version-number 1:0 \
|
||||
$(BSYMBOLIC) \
|
||||
$(GC_SECTIONS) \
|
||||
$(LD_NO_UNDEFINED)
|
||||
libEGL_la_LDFLAGS = -Wl,-Bsymbolic -version-number 1:0 -no-undefined
|
||||
|
||||
if HAVE_EGL_PLATFORM_X11
|
||||
AM_CFLAGS += -DHAVE_X11_PLATFORM
|
||||
@@ -72,6 +102,12 @@ if HAVE_EGL_PLATFORM_NULL
|
||||
AM_CFLAGS += -DHAVE_NULL_PLATFORM
|
||||
endif
|
||||
|
||||
if HAVE_EGL_DRIVER_GLX
|
||||
AM_CFLAGS += -D_EGL_BUILT_IN_DRIVER_GLX
|
||||
libEGL_la_LIBADD += ../drivers/glx/libegl_glx.la
|
||||
libEGL_la_LIBADD += $(DLOPEN_LIBS)
|
||||
endif
|
||||
|
||||
if HAVE_EGL_DRIVER_DRI2
|
||||
AM_CFLAGS += -D_EGL_BUILT_IN_DRIVER_DRI2
|
||||
AM_CFLAGS += -DHAVE_XCB_DRI2
|
||||
@@ -92,6 +128,5 @@ egldir = $(includedir)/EGL
|
||||
egl_HEADERS = \
|
||||
$(top_srcdir)/include/EGL/eglext.h \
|
||||
$(top_srcdir)/include/EGL/egl.h \
|
||||
$(top_srcdir)/include/EGL/eglextchromium.h \
|
||||
$(top_srcdir)/include/EGL/eglmesaext.h \
|
||||
$(top_srcdir)/include/EGL/eglplatform.h
|
||||
|
@@ -1,38 +0,0 @@
|
||||
LIBEGL_C_FILES := \
|
||||
eglapi.c \
|
||||
eglapi.h \
|
||||
eglarray.c \
|
||||
eglarray.h \
|
||||
eglcompiler.h \
|
||||
eglconfig.c \
|
||||
eglconfig.h \
|
||||
eglcontext.c \
|
||||
eglcontext.h \
|
||||
eglcurrent.c \
|
||||
eglcurrent.h \
|
||||
egldefines.h \
|
||||
egldisplay.c \
|
||||
egldisplay.h \
|
||||
egldriver.c \
|
||||
egldriver.h \
|
||||
eglfallbacks.c \
|
||||
eglglobals.c \
|
||||
eglglobals.h \
|
||||
eglimage.c \
|
||||
eglimage.h \
|
||||
egllog.c \
|
||||
egllog.h \
|
||||
eglmisc.c \
|
||||
eglmisc.h \
|
||||
eglmode.c \
|
||||
eglmode.h \
|
||||
eglmutex.h \
|
||||
eglscreen.c \
|
||||
eglscreen.h \
|
||||
eglstring.c \
|
||||
eglstring.h \
|
||||
eglsurface.c \
|
||||
eglsurface.h \
|
||||
eglsync.c \
|
||||
eglsync.h \
|
||||
egltypedefs.h
|
@@ -28,8 +28,25 @@ env.Append(CPPPATH = [
|
||||
'#/include',
|
||||
])
|
||||
|
||||
# parse Makefile.sources
|
||||
egl_sources = env.ParseSourceList('Makefile.sources', 'LIBEGL_C_FILES')
|
||||
egl_sources = [
|
||||
'eglapi.c',
|
||||
'eglarray.c',
|
||||
'eglconfig.c',
|
||||
'eglcontext.c',
|
||||
'eglcurrent.c',
|
||||
'egldisplay.c',
|
||||
'egldriver.c',
|
||||
'eglfallbacks.c',
|
||||
'eglglobals.c',
|
||||
'eglimage.c',
|
||||
'egllog.c',
|
||||
'eglmisc.c',
|
||||
'eglmode.c',
|
||||
'eglscreen.c',
|
||||
'eglstring.c',
|
||||
'eglsurface.c',
|
||||
'eglsync.c',
|
||||
]
|
||||
|
||||
egl = env.ConvenienceLibrary(
|
||||
target = 'egl',
|
||||
|
@@ -296,48 +296,11 @@ _eglUnlockDisplay(_EGLDisplay *dpy)
|
||||
EGLDisplay EGLAPIENTRY
|
||||
eglGetDisplay(EGLNativeDisplayType nativeDisplay)
|
||||
{
|
||||
_EGLPlatformType plat;
|
||||
_EGLDisplay *dpy;
|
||||
void *native_display_ptr;
|
||||
|
||||
STATIC_ASSERT(sizeof(void*) == sizeof(nativeDisplay));
|
||||
native_display_ptr = (void*) nativeDisplay;
|
||||
|
||||
plat = _eglGetNativePlatform(native_display_ptr);
|
||||
dpy = _eglFindDisplay(plat, native_display_ptr);
|
||||
_EGLPlatformType plat = _eglGetNativePlatform(nativeDisplay);
|
||||
_EGLDisplay *dpy = _eglFindDisplay(plat, (void *) nativeDisplay);
|
||||
return _eglGetDisplayHandle(dpy);
|
||||
}
|
||||
|
||||
EGLDisplay EGLAPIENTRY
|
||||
eglGetPlatformDisplayEXT(EGLenum platform, void *native_display,
|
||||
const EGLint *attrib_list)
|
||||
{
|
||||
_EGLDisplay *dpy;
|
||||
|
||||
switch (platform) {
|
||||
#ifdef HAVE_X11_PLATFORM
|
||||
case EGL_PLATFORM_X11_EXT:
|
||||
dpy = _eglGetX11Display((Display*) native_display, attrib_list);
|
||||
break;
|
||||
#endif
|
||||
#ifdef HAVE_DRM_PLATFORM
|
||||
case EGL_PLATFORM_GBM_MESA:
|
||||
dpy = _eglGetGbmDisplay((struct gbm_device*) native_display,
|
||||
attrib_list);
|
||||
break;
|
||||
#endif
|
||||
#ifdef HAVE_WAYLAND_PLATFORM
|
||||
case EGL_PLATFORM_WAYLAND_EXT:
|
||||
dpy = _eglGetWaylandDisplay((struct wl_display*) native_display,
|
||||
attrib_list);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
RETURN_EGL_ERROR(NULL, EGL_BAD_PARAMETER, NULL);
|
||||
}
|
||||
|
||||
return _eglGetDisplayHandle(dpy);
|
||||
}
|
||||
|
||||
/**
|
||||
* This is typically the second EGL function that an application calls.
|
||||
@@ -468,8 +431,11 @@ eglCreateContext(EGLDisplay dpy, EGLConfig config, EGLContext share_list,
|
||||
|
||||
_EGL_CHECK_DISPLAY(disp, EGL_NO_CONTEXT, drv);
|
||||
|
||||
if (!config && !disp->Extensions.MESA_configless_context)
|
||||
RETURN_EGL_ERROR(disp, EGL_BAD_CONFIG, EGL_NO_CONTEXT);
|
||||
if (!config) {
|
||||
/* config may be NULL if surfaceless */
|
||||
if (!disp->Extensions.KHR_surfaceless_context)
|
||||
RETURN_EGL_ERROR(disp, EGL_BAD_CONFIG, EGL_NO_CONTEXT);
|
||||
}
|
||||
|
||||
if (!share && share_list != EGL_NO_CONTEXT)
|
||||
RETURN_EGL_ERROR(disp, EGL_BAD_CONTEXT, EGL_NO_CONTEXT);
|
||||
@@ -561,76 +527,21 @@ eglQueryContext(EGLDisplay dpy, EGLContext ctx,
|
||||
}
|
||||
|
||||
|
||||
static EGLSurface
|
||||
_eglCreateWindowSurfaceCommon(_EGLDisplay *disp, EGLConfig config,
|
||||
void *native_window, const EGLint *attrib_list)
|
||||
{
|
||||
_EGLConfig *conf = _eglLookupConfig(config, disp);
|
||||
_EGLDriver *drv;
|
||||
_EGLSurface *surf;
|
||||
EGLSurface ret;
|
||||
|
||||
_EGL_CHECK_CONFIG(disp, conf, EGL_NO_SURFACE, drv);
|
||||
|
||||
if (native_window == NULL)
|
||||
RETURN_EGL_ERROR(disp, EGL_BAD_NATIVE_WINDOW, EGL_NO_SURFACE);
|
||||
|
||||
surf = drv->API.CreateWindowSurface(drv, disp, conf, native_window,
|
||||
attrib_list);
|
||||
ret = (surf) ? _eglLinkSurface(surf) : EGL_NO_SURFACE;
|
||||
|
||||
RETURN_EGL_EVAL(disp, ret);
|
||||
}
|
||||
|
||||
|
||||
EGLSurface EGLAPIENTRY
|
||||
eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config,
|
||||
EGLNativeWindowType window, const EGLint *attrib_list)
|
||||
{
|
||||
_EGLDisplay *disp = _eglLockDisplay(dpy);
|
||||
STATIC_ASSERT(sizeof(void*) == sizeof(window));
|
||||
return _eglCreateWindowSurfaceCommon(disp, config, (void*) window,
|
||||
attrib_list);
|
||||
}
|
||||
|
||||
|
||||
EGLSurface EGLAPIENTRY
|
||||
eglCreatePlatformWindowSurfaceEXT(EGLDisplay dpy, EGLConfig config,
|
||||
void *native_window,
|
||||
const EGLint *attrib_list)
|
||||
{
|
||||
_EGLDisplay *disp = _eglLockDisplay(dpy);
|
||||
|
||||
#ifdef HAVE_X11_PLATFORM
|
||||
if (disp->Platform == _EGL_PLATFORM_X11 && native_window != NULL) {
|
||||
/* The `native_window` parameter for the X11 platform differs between
|
||||
* eglCreateWindowSurface() and eglCreatePlatformPixmapSurfaceEXT(). In
|
||||
* eglCreateWindowSurface(), the type of `native_window` is an Xlib
|
||||
* `Window`. In eglCreatePlatformWindowSurfaceEXT(), the type is
|
||||
* `Window*`. Convert `Window*` to `Window` because that's what
|
||||
* dri2_x11_create_window_surface() expects.
|
||||
*/
|
||||
native_window = (void*) (* (Window*) native_window);
|
||||
}
|
||||
#endif
|
||||
|
||||
return _eglCreateWindowSurfaceCommon(disp, config, native_window,
|
||||
attrib_list);
|
||||
}
|
||||
|
||||
|
||||
static EGLSurface
|
||||
_eglCreatePixmapSurfaceCommon(_EGLDisplay *disp, EGLConfig config,
|
||||
void *native_pixmap, const EGLint *attrib_list)
|
||||
{
|
||||
_EGLConfig *conf = _eglLookupConfig(config, disp);
|
||||
_EGLDriver *drv;
|
||||
_EGLSurface *surf;
|
||||
EGLSurface ret;
|
||||
|
||||
_EGL_CHECK_CONFIG(disp, conf, EGL_NO_SURFACE, drv);
|
||||
surf = drv->API.CreatePixmapSurface(drv, disp, conf, native_pixmap,
|
||||
attrib_list);
|
||||
if (disp->Platform != _eglGetNativePlatform(disp->PlatformDisplay))
|
||||
RETURN_EGL_ERROR(disp, EGL_BAD_NATIVE_WINDOW, EGL_NO_SURFACE);
|
||||
|
||||
surf = drv->API.CreateWindowSurface(drv, disp, conf, window, attrib_list);
|
||||
ret = (surf) ? _eglLinkSurface(surf) : EGL_NO_SURFACE;
|
||||
|
||||
RETURN_EGL_EVAL(disp, ret);
|
||||
@@ -642,33 +553,19 @@ eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config,
|
||||
EGLNativePixmapType pixmap, const EGLint *attrib_list)
|
||||
{
|
||||
_EGLDisplay *disp = _eglLockDisplay(dpy);
|
||||
STATIC_ASSERT(sizeof(void*) == sizeof(pixmap));
|
||||
return _eglCreatePixmapSurfaceCommon(disp, config, (void*) pixmap,
|
||||
attrib_list);
|
||||
}
|
||||
_EGLConfig *conf = _eglLookupConfig(config, disp);
|
||||
_EGLDriver *drv;
|
||||
_EGLSurface *surf;
|
||||
EGLSurface ret;
|
||||
|
||||
EGLSurface EGLAPIENTRY
|
||||
eglCreatePlatformPixmapSurfaceEXT(EGLDisplay dpy, EGLConfig config,
|
||||
void *native_pixmap,
|
||||
const EGLint *attrib_list)
|
||||
{
|
||||
_EGLDisplay *disp = _eglLockDisplay(dpy);
|
||||
_EGL_CHECK_CONFIG(disp, conf, EGL_NO_SURFACE, drv);
|
||||
if (disp->Platform != _eglGetNativePlatform(disp->PlatformDisplay))
|
||||
RETURN_EGL_ERROR(disp, EGL_BAD_NATIVE_PIXMAP, EGL_NO_SURFACE);
|
||||
|
||||
#ifdef HAVE_X11_PLATFORM
|
||||
/* The `native_pixmap` parameter for the X11 platform differs between
|
||||
* eglCreatePixmapSurface() and eglCreatePlatformPixmapSurfaceEXT(). In
|
||||
* eglCreatePixmapSurface(), the type of `native_pixmap` is an Xlib
|
||||
* `Pixmap`. In eglCreatePlatformPixmapSurfaceEXT(), the type is
|
||||
* `Pixmap*`. Convert `Pixmap*` to `Pixmap` because that's what
|
||||
* dri2_x11_create_pixmap_surface() expects.
|
||||
*/
|
||||
if (disp->Platform == _EGL_PLATFORM_X11 && native_pixmap != NULL) {
|
||||
native_pixmap = (void*) (* (Pixmap*) native_pixmap);
|
||||
}
|
||||
#endif
|
||||
surf = drv->API.CreatePixmapSurface(drv, disp, conf, pixmap, attrib_list);
|
||||
ret = (surf) ? _eglLinkSurface(surf) : EGL_NO_SURFACE;
|
||||
|
||||
return _eglCreatePixmapSurfaceCommon(disp, config, native_pixmap,
|
||||
attrib_list);
|
||||
RETURN_EGL_EVAL(disp, ret);
|
||||
}
|
||||
|
||||
|
||||
@@ -850,15 +747,11 @@ eglCopyBuffers(EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target)
|
||||
_EGLSurface *surf = _eglLookupSurface(surface, disp);
|
||||
_EGLDriver *drv;
|
||||
EGLBoolean ret;
|
||||
void *native_pixmap_ptr;
|
||||
|
||||
STATIC_ASSERT(sizeof(void*) == sizeof(target));
|
||||
native_pixmap_ptr = (void*) target;
|
||||
|
||||
_EGL_CHECK_SURFACE(disp, surf, EGL_FALSE, drv);
|
||||
if (disp->Platform != _eglGetNativePlatform(disp->PlatformDisplay))
|
||||
RETURN_EGL_ERROR(disp, EGL_BAD_NATIVE_PIXMAP, EGL_FALSE);
|
||||
ret = drv->API.CopyBuffers(drv, disp, surf, native_pixmap_ptr);
|
||||
ret = drv->API.CopyBuffers(drv, disp, surf, target);
|
||||
|
||||
RETURN_EGL_EVAL(disp, ret);
|
||||
}
|
||||
@@ -1091,10 +984,6 @@ eglGetProcAddress(const char *procname)
|
||||
#ifdef EGL_EXT_swap_buffers_with_damage
|
||||
{ "eglSwapBuffersWithDamageEXT", (_EGLProc) eglSwapBuffersWithDamageEXT },
|
||||
#endif
|
||||
{ "eglGetPlatformDisplayEXT", (_EGLProc) eglGetPlatformDisplayEXT },
|
||||
{ "eglCreatePlatformWindowSurfaceEXT", (_EGLProc) eglCreatePlatformWindowSurfaceEXT },
|
||||
{ "eglCreatePlatformPixmapSurfaceEXT", (_EGLProc) eglCreatePlatformPixmapSurfaceEXT },
|
||||
{ "eglGetSyncValuesCHROMIUM", (_EGLProc) eglGetSyncValuesCHROMIUM },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
EGLint i;
|
||||
@@ -1760,25 +1649,3 @@ eglPostSubBufferNV(EGLDisplay dpy, EGLSurface surface,
|
||||
|
||||
RETURN_EGL_EVAL(disp, ret);
|
||||
}
|
||||
|
||||
EGLBoolean EGLAPIENTRY
|
||||
eglGetSyncValuesCHROMIUM(EGLDisplay display, EGLSurface surface,
|
||||
EGLuint64KHR *ust, EGLuint64KHR *msc,
|
||||
EGLuint64KHR *sbc)
|
||||
{
|
||||
_EGLDisplay *disp = _eglLockDisplay(display);
|
||||
_EGLSurface *surf = _eglLookupSurface(surface, disp);
|
||||
_EGLDriver *drv;
|
||||
EGLBoolean ret;
|
||||
|
||||
_EGL_CHECK_SURFACE(disp, surf, EGL_FALSE, drv);
|
||||
if (!disp->Extensions.CHROMIUM_sync_control)
|
||||
RETURN_EGL_EVAL(disp, EGL_FALSE);
|
||||
|
||||
if (!ust || !msc || !sbc)
|
||||
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
|
||||
|
||||
ret = drv->API.GetSyncValuesCHROMIUM(disp, surf, ust, msc, sbc);
|
||||
|
||||
RETURN_EGL_EVAL(disp, ret);
|
||||
}
|
||||
|
@@ -58,8 +58,8 @@ typedef EGLBoolean (*MakeCurrent_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurfa
|
||||
typedef EGLBoolean (*QueryContext_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLContext *ctx, EGLint attribute, EGLint *value);
|
||||
|
||||
/* surface funcs */
|
||||
typedef _EGLSurface *(*CreateWindowSurface_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLConfig *config, void *native_window, const EGLint *attrib_list);
|
||||
typedef _EGLSurface *(*CreatePixmapSurface_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLConfig *config, void *native_pixmap, const EGLint *attrib_list);
|
||||
typedef _EGLSurface *(*CreateWindowSurface_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLConfig *config, EGLNativeWindowType window, const EGLint *attrib_list);
|
||||
typedef _EGLSurface *(*CreatePixmapSurface_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLConfig *config, EGLNativePixmapType pixmap, const EGLint *attrib_list);
|
||||
typedef _EGLSurface *(*CreatePbufferSurface_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLConfig *config, const EGLint *attrib_list);
|
||||
typedef EGLBoolean (*DestroySurface_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surface);
|
||||
typedef EGLBoolean (*QuerySurface_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surface, EGLint attribute, EGLint *value);
|
||||
@@ -68,7 +68,7 @@ typedef EGLBoolean (*BindTexImage_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurf
|
||||
typedef EGLBoolean (*ReleaseTexImage_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surface, EGLint buffer);
|
||||
typedef EGLBoolean (*SwapInterval_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surf, EGLint interval);
|
||||
typedef EGLBoolean (*SwapBuffers_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *draw);
|
||||
typedef EGLBoolean (*CopyBuffers_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surface, void *native_pixmap_target);
|
||||
typedef EGLBoolean (*CopyBuffers_t)(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surface, EGLNativePixmapType target);
|
||||
|
||||
/* misc funcs */
|
||||
typedef const char *(*QueryString_t)(_EGLDriver *drv, _EGLDisplay *dpy, EGLint name);
|
||||
@@ -139,8 +139,6 @@ typedef EGLint (*QueryBufferAge_t)(_EGLDriver *drv,
|
||||
typedef EGLBoolean (*SwapBuffersWithDamageEXT_t) (_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surface, const EGLint *rects, EGLint n_rects);
|
||||
#endif
|
||||
|
||||
typedef EGLBoolean (*GetSyncValuesCHROMIUM_t) (_EGLDisplay *dpy, _EGLSurface *surface, EGLuint64KHR *ust, EGLuint64KHR *msc, EGLuint64KHR *sbc);
|
||||
|
||||
/**
|
||||
* The API dispatcher jumps through these functions
|
||||
*/
|
||||
@@ -227,7 +225,6 @@ struct _egl_api
|
||||
PostSubBufferNV_t PostSubBufferNV;
|
||||
|
||||
QueryBufferAge_t QueryBufferAge;
|
||||
GetSyncValuesCHROMIUM_t GetSyncValuesCHROMIUM;
|
||||
};
|
||||
|
||||
#endif /* EGLAPI_INCLUDED */
|
||||
|
@@ -37,8 +37,7 @@
|
||||
/**
|
||||
* Get standard integer types
|
||||
*/
|
||||
#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
|
||||
(defined(_MSC_VER) && _MSC_VER >= 1600)
|
||||
#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L)
|
||||
# include <stdint.h>
|
||||
#elif defined(_MSC_VER)
|
||||
typedef __int8 int8_t;
|
||||
@@ -90,9 +89,4 @@
|
||||
# define __FUNCTION__ __func__
|
||||
#endif
|
||||
|
||||
#define STATIC_ASSERT(COND) \
|
||||
do { \
|
||||
(void) sizeof(char [1 - 2*!(COND)]); \
|
||||
} while (0)
|
||||
|
||||
#endif /* EGLCOMPILER_INCLUDED */
|
||||
|
@@ -322,14 +322,11 @@ _eglParseContextAttribList(_EGLContext *ctx, _EGLDisplay *dpy,
|
||||
break;
|
||||
|
||||
case 3:
|
||||
default:
|
||||
/* Don't put additional version checks here. We don't know that
|
||||
* there won't be versions > 3.0.
|
||||
*/
|
||||
break;
|
||||
|
||||
default:
|
||||
err = EGL_BAD_MATCH;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -526,22 +523,10 @@ _eglCheckMakeCurrent(_EGLContext *ctx, _EGLSurface *draw, _EGLSurface *read)
|
||||
return _eglError(EGL_BAD_ACCESS, "eglMakeCurrent");
|
||||
}
|
||||
|
||||
/* If the context has a config then it must match that of the two
|
||||
* surfaces */
|
||||
if (ctx->Config) {
|
||||
if ((draw && draw->Config != ctx->Config) ||
|
||||
(read && read->Config != ctx->Config))
|
||||
return _eglError(EGL_BAD_MATCH, "eglMakeCurrent");
|
||||
} else {
|
||||
/* Otherwise we must be using the EGL_MESA_configless_context
|
||||
* extension */
|
||||
assert(dpy->Extensions.MESA_configless_context);
|
||||
|
||||
/* The extension doesn't permit binding draw and read buffers with
|
||||
* differing contexts */
|
||||
if (draw && read && draw->Config != read->Config)
|
||||
return _eglError(EGL_BAD_MATCH, "eglMakeCurrent");
|
||||
}
|
||||
/* simply require the configs to be equal */
|
||||
if ((draw && draw->Config != ctx->Config) ||
|
||||
(read && read->Config != ctx->Config))
|
||||
return _eglError(EGL_BAD_MATCH, "eglMakeCurrent");
|
||||
|
||||
switch (ctx->ClientAPI) {
|
||||
/* OpenGL and OpenGL ES are conflicting */
|
||||
|
@@ -36,7 +36,6 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "eglcontext.h"
|
||||
#include "eglcurrent.h"
|
||||
#include "eglsurface.h"
|
||||
#include "egldisplay.h"
|
||||
#include "egldriver.h"
|
||||
@@ -140,7 +139,7 @@ _eglPointerIsDereferencable(void *p)
|
||||
* Try detecting native platform with the help of native display characteristcs.
|
||||
*/
|
||||
static _EGLPlatformType
|
||||
_eglNativePlatformDetectNativeDisplay(void *nativeDisplay)
|
||||
_eglNativePlatformDetectNativeDisplay(EGLNativeDisplayType nativeDisplay)
|
||||
{
|
||||
#ifdef HAVE_FBDEV_PLATFORM
|
||||
struct stat buf;
|
||||
@@ -187,7 +186,7 @@ _eglNativePlatformDetectNativeDisplay(void *nativeDisplay)
|
||||
* Return the native platform. It is the platform of the EGL native types.
|
||||
*/
|
||||
_EGLPlatformType
|
||||
_eglGetNativePlatform(void *nativeDisplay)
|
||||
_eglGetNativePlatform(EGLNativeDisplayType nativeDisplay)
|
||||
{
|
||||
static _EGLPlatformType native_platform = _EGL_INVALID_PLATFORM;
|
||||
char *detection_method = NULL;
|
||||
@@ -376,11 +375,7 @@ _eglCheckResource(void *res, _EGLResourceType type, _EGLDisplay *dpy)
|
||||
|
||||
|
||||
/**
|
||||
* Initialize a display resource. The size of the subclass object is
|
||||
* specified.
|
||||
*
|
||||
* This is supposed to be called from the initializers of subclasses, such as
|
||||
* _eglInitContext or _eglInitSurface.
|
||||
* Initialize a display resource.
|
||||
*/
|
||||
void
|
||||
_eglInitResource(_EGLResource *res, EGLint size, _EGLDisplay *dpy)
|
||||
@@ -459,74 +454,3 @@ _eglUnlinkResource(_EGLResource *res, _EGLResourceType type)
|
||||
/* We always unlink before destroy. The driver still owns a reference */
|
||||
assert(res->RefCount);
|
||||
}
|
||||
|
||||
#ifdef HAVE_X11_PLATFORM
|
||||
static EGLBoolean
|
||||
_eglParseX11DisplayAttribList(const EGLint *attrib_list)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (attrib_list == NULL) {
|
||||
return EGL_TRUE;
|
||||
}
|
||||
|
||||
for (i = 0; attrib_list[i] != EGL_NONE; i += 2) {
|
||||
EGLint attrib = attrib_list[i];
|
||||
EGLint value = attrib_list[i + 1];
|
||||
|
||||
/* EGL_EXT_platform_x11 recognizes exactly one attribute,
|
||||
* EGL_PLATFORM_X11_SCREEN_EXT, which is optional.
|
||||
*
|
||||
* Mesa supports connecting to only the default screen, so we reject
|
||||
* screen != 0.
|
||||
*/
|
||||
if (attrib != EGL_PLATFORM_X11_SCREEN_EXT || value != 0) {
|
||||
_eglError(EGL_BAD_ATTRIBUTE, "eglGetPlatformDisplay");
|
||||
return EGL_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
return EGL_TRUE;
|
||||
}
|
||||
|
||||
_EGLDisplay*
|
||||
_eglGetX11Display(Display *native_display,
|
||||
const EGLint *attrib_list)
|
||||
{
|
||||
if (!_eglParseX11DisplayAttribList(attrib_list)) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return _eglFindDisplay(_EGL_PLATFORM_X11, native_display);
|
||||
}
|
||||
#endif /* HAVE_X11_PLATFORM */
|
||||
|
||||
#ifdef HAVE_DRM_PLATFORM
|
||||
_EGLDisplay*
|
||||
_eglGetGbmDisplay(struct gbm_device *native_display,
|
||||
const EGLint *attrib_list)
|
||||
{
|
||||
/* EGL_MESA_platform_gbm recognizes no attributes. */
|
||||
if (attrib_list != NULL && attrib_list[0] != EGL_NONE) {
|
||||
_eglError(EGL_BAD_ATTRIBUTE, "eglGetPlatformDisplay");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return _eglFindDisplay(_EGL_PLATFORM_DRM, native_display);
|
||||
}
|
||||
#endif /* HAVE_DRM_PLATFORM */
|
||||
|
||||
#ifdef HAVE_WAYLAND_PLATFORM
|
||||
_EGLDisplay*
|
||||
_eglGetWaylandDisplay(struct wl_display *native_display,
|
||||
const EGLint *attrib_list)
|
||||
{
|
||||
/* EGL_EXT_platform_wayland recognizes no attributes. */
|
||||
if (attrib_list != NULL && attrib_list[0] != EGL_NONE) {
|
||||
_eglError(EGL_BAD_ATTRIBUTE, "eglGetPlatformDisplay");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return _eglFindDisplay(_EGL_PLATFORM_WAYLAND, native_display);
|
||||
}
|
||||
#endif /* HAVE_WAYLAND_PLATFORM */
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user