Compare commits
	
		
			1 Commits
		
	
	
		
			mesa-10.2.
			...
			mesa-10.1-
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 9f4366f1ac | 
| @@ -8,5 +8,4 @@ | ||||
| 	    (c-set-offset 'innamespace '0) | ||||
| 	    (c-set-offset 'inline-open '0))) | ||||
|   ) | ||||
|  (makefile-mode (indent-tabs-mode . t)) | ||||
|  ) | ||||
|   | ||||
| @@ -78,7 +78,6 @@ endif | ||||
| ifneq ($(strip $(MESA_GPU_DRIVERS)),) | ||||
|  | ||||
| SUBDIRS := \ | ||||
| 	src/loader \ | ||||
| 	src/mapi \ | ||||
| 	src/glsl \ | ||||
| 	src/mesa \ | ||||
|   | ||||
| @@ -36,6 +36,7 @@ PACKAGE_NAME = MesaLib-$(PACKAGE_VERSION) | ||||
| EXTRA_FILES = \ | ||||
| 	aclocal.m4					\ | ||||
| 	configure					\ | ||||
| 	VERSION					\ | ||||
| 	bin/ar-lib					\ | ||||
| 	bin/compile					\ | ||||
| 	bin/config.sub					\ | ||||
| @@ -45,7 +46,6 @@ EXTRA_FILES = \ | ||||
| 	bin/ltmain.sh					\ | ||||
| 	bin/missing					\ | ||||
| 	bin/ylwrap					\ | ||||
|         bin/test-driver					\ | ||||
| 	src/glsl/glsl_parser.cpp			\ | ||||
| 	src/glsl/glsl_parser.h				\ | ||||
| 	src/glsl/glsl_lexer.cpp				\ | ||||
|   | ||||
							
								
								
									
										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') | ||||
|   | ||||
| @@ -1,3 +0,0 @@ | ||||
| # The first is the change, and the second is the revert of that change. | ||||
| e6967270c75a5b669152127bb7a746d55f4407a6 i965: Fix depth (array slices) computation for 1D_ARRAY render targets. | ||||
| 155f98d49fdc2f46c760f8214327b3804ee60079 Revert "i965: Fix depth (array slices) computation for 1D_ARRAY render targets." | ||||
| @@ -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'))) | ||||
|   | ||||
							
								
								
									
										695
									
								
								configure.ac
									
									
									
									
									
								
							
							
						
						
									
										695
									
								
								configure.ac
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										270
									
								
								docs/GL3.txt
									
									
									
									
									
								
							
							
						
						
									
										270
									
								
								docs/GL3.txt
									
									
									
									
									
								
							| @@ -18,178 +18,164 @@ are exposed in the 3.0 context as extensions. | ||||
| Feature                                               Status | ||||
| ----------------------------------------------------- ------------------------ | ||||
|  | ||||
| GL 3.0 --- all DONE: i965, nv50, nvc0, r600, radeonsi | ||||
| GL 3.0: | ||||
|  | ||||
|   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) | ||||
|   Clamping controls (GL_ARB_color_buffer_float)         DONE (r300) | ||||
|   Float textures, renderbuffers (GL_ARB_texture_float)  DONE (r300) | ||||
|   GL_EXT_packed_float                                   DONE () | ||||
|   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_vertex                              DONE (r300, swrast) | ||||
|   GL_EXT_texture_integer                                DONE () | ||||
|   GL_EXT_texture_array                                  DONE () | ||||
|   Per-buffer blend and masks (GL_EXT_draw_buffers2)     DONE (swrast) | ||||
|   GL_EXT_texture_compression_rgtc                       DONE (r300, swrast) | ||||
|   GL_ARB_texture_rg                                     DONE (r300, swrast) | ||||
|   Transform feedback (GL_EXT_transform_feedback)        DONE () | ||||
|   Vertex array objects (GL_ARB_vertex_array_object)     DONE (all drivers) | ||||
|   sRGB framebuffer format (GL_EXT_framebuffer_sRGB)     DONE () | ||||
|   glClearBuffer commands                                DONE | ||||
|   glGetStringi command                                  DONE | ||||
|   glTexParameterI, glGetTexParameterI commands          DONE | ||||
|   glVertexAttribI commands                              DONE | ||||
|   Depth format cube textures                            DONE () | ||||
|   GLX_ARB_create_context (GLX 1.4 is required)          DONE | ||||
|   Multisample anti-aliasing                             DONE (r300) | ||||
| GLSL 1.30                                             DONE (i965, r600, radeonsi) | ||||
| glBindFragDataLocation, glGetFragDataLocation         DONE | ||||
| Conditional rendering (GL_NV_conditional_render)      DONE (i965, r300, r600, radeonsi, swrast) | ||||
| Map buffer subranges (GL_ARB_map_buffer_range)        DONE (i965, r300, r600, radeonsi, swrast) | ||||
| Clamping controls (GL_ARB_color_buffer_float)         DONE (i965, r300, r600, radeonsi) | ||||
| Float textures, renderbuffers (GL_ARB_texture_float)  DONE (i965, r300, r600, radeonsi) | ||||
| GL_EXT_packed_float                                   DONE (i965, r600, radeonsi) | ||||
| GL_EXT_texture_shared_exponent                        DONE (i965, r600, radeonsi, swrast) | ||||
| Float depth buffers (GL_ARB_depth_buffer_float)       DONE (i965, r600, radeonsi) | ||||
| Framebuffer objects (GL_ARB_framebuffer_object)       DONE (i965, r300, r600, radeonsi, swrast) | ||||
| Half-float                                            DONE (i965, r300, r600, radeonsi, swrast) | ||||
| Non-normalized Integer texture/framebuffer formats    DONE (i965, r600, radeonsi) | ||||
| 1D/2D Texture arrays                                  DONE (i965, r600, radeonsi) | ||||
| Per-buffer blend and masks (GL_EXT_draw_buffers2)     DONE (i965, r600, radeonsi, swrast) | ||||
| GL_EXT_texture_compression_rgtc                       DONE (i965, r300, r600, radeonsi, swrast) | ||||
| Red and red/green texture formats                     DONE (i965, r300, r600, radeonsi, swrast) | ||||
| Transform feedback (GL_EXT_transform_feedback)        DONE (i965, r600, radeonsi) | ||||
| Vertex array objects (GL_APPLE_vertex_array_object)   DONE (all drivers) | ||||
| sRGB framebuffer format (GL_EXT_framebuffer_sRGB)     DONE (i965, r600, radeonsi) | ||||
| glClearBuffer commands                                DONE | ||||
| glGetStringi command                                  DONE | ||||
| glTexParameterI, glGetTexParameterI commands          DONE | ||||
| glVertexAttribI commands                              DONE | ||||
| Depth format cube textures                            DONE (i965, r600, radeonsi) | ||||
| GLX_ARB_create_context (GLX 1.4 is required)          DONE | ||||
|  | ||||
|  | ||||
| GL 3.1 --- all DONE: i965, nv50, nvc0, r600, radeonsi | ||||
| GL 3.1: | ||||
|  | ||||
|   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) | ||||
|   Primitive restart (GL_NV_primitive_restart)           DONE (r300) | ||||
|   16 vertex texture image units                         DONE () | ||||
|   Texture buffer objs (GL_ARB_texture_buffer_object)    DONE for OpenGL 3.1 contexts () | ||||
|   Rectangular textures (GL_ARB_texture_rectangle)       DONE (r300, swrast) | ||||
|   Uniform buffer objs (GL_ARB_uniform_buffer_object)    DONE (swrast) | ||||
|   Signed normalized textures (GL_EXT_texture_snorm)     DONE (r300) | ||||
| GLSL 1.40                                             DONE (i965, r600, radeonsi) | ||||
| Forward compatible context support/deprecations       DONE (i965, r600, radeonsi) | ||||
| Instanced drawing (GL_ARB_draw_instanced)             DONE (i965, r600, radeonsi, swrast) | ||||
| Buffer copying (GL_ARB_copy_buffer)                   DONE (i965, r300, r600, radeonsi, swrast) | ||||
| Primitive restart (GL_NV_primitive_restart)           DONE (i965, r300, r600, radeonsi) | ||||
| 16 vertex texture image units                         DONE (i965, r600, radeonsi) | ||||
| Texture buffer objs (GL_ARB_texture_buffer_object)    DONE for OpenGL 3.1 contexts (i965, r600, radeonsi) | ||||
| Rectangular textures (GL_ARB_texture_rectangle)       DONE (i965, r300, r600, radeonsi, swrast) | ||||
| Uniform buffer objs (GL_ARB_uniform_buffer_object)    DONE (i965, r600, radeonsi, swrast) | ||||
| Signed normalized textures (GL_EXT_texture_snorm)     DONE (i965, r300, r600, radeonsi) | ||||
|  | ||||
|  | ||||
| GL 3.2 --- all DONE: i965, nv50, nvc0, r600, radeonsi | ||||
| GL 3.2: | ||||
|  | ||||
|   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) | ||||
|   GLX_ARB_create_context_profile                        DONE | ||||
| Core/compatibility profiles                           DONE | ||||
| GLSL 1.50                                             DONE (i965) | ||||
| Geometry shaders                                      DONE (i965) | ||||
| BGRA vertex order (GL_ARB_vertex_array_bgra)          DONE (i965, r300, r600, radeonsi, swrast) | ||||
| Base vertex offset(GL_ARB_draw_elements_base_vertex)  DONE (i965, r300, r600, radeonsi, swrast) | ||||
| Frag shader coord (GL_ARB_fragment_coord_conventions) DONE (i965, r300, r600, radeonsi, swrast) | ||||
| Provoking vertex (GL_ARB_provoking_vertex)            DONE (i965, r300, r600, radeonsi, swrast) | ||||
| Seamless cubemaps (GL_ARB_seamless_cube_map)          DONE (i965, r600, radeonsi) | ||||
| Multisample textures (GL_ARB_texture_multisample)     DONE (i965, r600, radeonsi) | ||||
| Frag depth clamp (GL_ARB_depth_clamp)                 DONE (i965, r600, swrast, radeonsi) | ||||
| Fence objects (GL_ARB_sync)                           DONE (i965, r300, r600, radeonsi, swrast) | ||||
| GLX_ARB_create_context_profile                        DONE | ||||
|  | ||||
|  | ||||
| GL 3.3 --- all DONE: i965, nv50, nvc0, r600, radeonsi | ||||
| GL 3.3: | ||||
|  | ||||
|   GLSL 3.30                                             DONE () | ||||
|   GL_ARB_blend_func_extended                            DONE (softpipe) | ||||
|   GL_ARB_explicit_attrib_location                       DONE (all drivers that support GLSL) | ||||
|   GL_ARB_occlusion_query2                               DONE (r300, swrast) | ||||
|   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 () | ||||
| GLSL 3.30                                             DONE (i965) | ||||
| GL_ARB_blend_func_extended                            DONE (i965, r600, radeonsi, softpipe) | ||||
| GL_ARB_explicit_attrib_location                       DONE (i915, i965, r300, r600, radeonsi, swrast) | ||||
| GL_ARB_occlusion_query2                               DONE (i965, r300, r600, radeonsi, swrast) | ||||
| GL_ARB_sampler_objects                                DONE (i965, r300, r600, radeonsi) | ||||
| GL_ARB_shader_bit_encoding                            DONE (i965, r600, radeonsi) | ||||
| GL_ARB_texture_rgb10_a2ui                             DONE (i965, r600, radeonsi) | ||||
| GL_ARB_texture_swizzle                                DONE (i965, r300, r600, radeonsi, swrast) | ||||
| GL_ARB_timer_query                                    DONE (i965, r600, radeonsi) | ||||
| GL_ARB_instanced_arrays                               DONE (i965, r300, r600, radeonsi) | ||||
| GL_ARB_vertex_type_2_10_10_10_rev                     DONE (i965, r600, radeonsi) | ||||
|  | ||||
|  | ||||
| GL 4.0: | ||||
|  | ||||
|   GLSL 4.0                                             not started | ||||
|   GL_ARB_texture_query_lod                             DONE (i965, nv50, nvc0) | ||||
|   GL_ARB_draw_buffers_blend                            DONE (i965, nv50, nvc0, r600, radeonsi, softpipe) | ||||
|   GL_ARB_draw_indirect                                 DONE (i965) | ||||
|   GL_ARB_gpu_shader5                                   started | ||||
|   - 'precise' qualifier                                not started | ||||
|   - Dynamically uniform sampler array indices          not started | ||||
|   - Dynamically uniform UBO array indices              not started | ||||
|   - Implicit signed -> unsigned conversions            not started | ||||
|   - Fused multiply-add                                 DONE | ||||
|   - Packing/bitfield/conversion functions              DONE | ||||
|   - Enhanced textureGather                             DONE | ||||
|   - Geometry shader instancing                         DONE | ||||
|   - Geometry shader multiple streams                   not started | ||||
|   - Enhanced per-sample shading                        DONE | ||||
|   - Interpolation functions                            started | ||||
|   - New overload resolution rules                      not started | ||||
|   GL_ARB_gpu_shader_fp64                               not started | ||||
|   GL_ARB_sample_shading                                DONE (i965, nv50, nvc0) | ||||
|   GL_ARB_shader_subroutine                             not started | ||||
|   GL_ARB_tessellation_shader                           not started | ||||
|   GL_ARB_texture_buffer_object_rgb32                   DONE (i965, nvc0, r600, radeonsi, softpipe) | ||||
|   GL_ARB_texture_cube_map_array                        DONE (i965, nv50, nvc0, r600, softpipe) | ||||
|   GL_ARB_texture_gather                                DONE (i965, nv50, nvc0) | ||||
|   GL_ARB_transform_feedback2                           DONE (i965, nv50, nvc0, r600, radeonsi) | ||||
|   GL_ARB_transform_feedback3                           DONE (i965, nv50, nvc0, r600, radeonsi) | ||||
| GLSL 4.0                                             not started | ||||
| GL_ARB_texture_query_lod                             DONE (i965) | ||||
| GL_ARB_draw_buffers_blend                            DONE (i965, r600, radeonsi, softpipe) | ||||
| GL_ARB_draw_indirect                                 started (Christoph) | ||||
| 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                           not started | ||||
| GL_ARB_texture_buffer_object_rgb32                   DONE (i965, r600, radeonsi, softpipe) | ||||
| GL_ARB_texture_cube_map_array                        DONE (i965, r600, softpipe) | ||||
| GL_ARB_texture_gather                                DONE (i965) | ||||
| GL_ARB_transform_feedback2                           DONE (i965, r600, radeonsi) | ||||
| GL_ARB_transform_feedback3                           DONE (i965, r600, radeonsi) | ||||
|  | ||||
|  | ||||
| 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                              not started | ||||
|   GL_ARB_vertex_attrib_64bit                           not started | ||||
|   GL_ARB_viewport_array                                DONE (i965, nv50, r600) | ||||
| GLSL 4.1                                             not started | ||||
| GL_ARB_ES2_compatibility                             DONE (i965, r300, r600, radeonsi) | ||||
| GL_ARB_get_program_binary                            DONE (0 binary formats) | ||||
| GL_ARB_separate_shader_objects                       some infrastructure done | ||||
| GL_ARB_shader_precision                              not started | ||||
| GL_ARB_vertex_attrib_64bit                           not started | ||||
| GL_ARB_viewport_array                                not started | ||||
|  | ||||
|  | ||||
| GL 4.2: | ||||
|  | ||||
|   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) | ||||
|   GL_ARB_base_instance                                 DONE (i965, nv50, nvc0, r600, radeonsi) | ||||
|   GL_ARB_shader_image_load_store                       in progress (curro) | ||||
|   GL_ARB_conservative_depth                            DONE (all drivers that support GLSL 1.30) | ||||
|   GL_ARB_shading_language_420pack                      DONE (all drivers that support GLSL 1.30) | ||||
|   GL_ARB_internalformat_query                          DONE (i965, nv50, nvc0, r300, r600, radeonsi) | ||||
|   GL_ARB_map_buffer_alignment                          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, r600, radeonsi) | ||||
| GL_ARB_base_instance                                 DONE (i965, nv50, nvc0, r600, radeonsi) | ||||
| GL_ARB_shader_image_load_store                       not started | ||||
| GL_ARB_conservative_depth                            DONE (all drivers that support GLSL 1.30) | ||||
| GL_ARB_shading_language_420pack                      DONE (all drivers that support GLSL 1.30) | ||||
| GL_ARB_internalformat_query                          DONE (i965, r300, r600, radeonsi) | ||||
| GL_ARB_map_buffer_alignment                          DONE (r300, r600, radeonsi) | ||||
|  | ||||
|  | ||||
| GL 4.3: | ||||
|  | ||||
|   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 (Paul Berry) | ||||
|   GL_ARB_copy_image                                    not started | ||||
|   GL_KHR_debug                                         DONE (all drivers) | ||||
|   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) | ||||
|   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+) | ||||
|   GL_ARB_texture_buffer_range                          DONE (nv50, nvc0, i965, r600, radeonsi) | ||||
|   GL_ARB_texture_query_levels                          DONE (i965) | ||||
|   GL_ARB_texture_storage_multisample                   DONE (all drivers that support GL_ARB_texture_multisample) | ||||
|   GL_ARB_texture_view                                  DONE (i965) | ||||
|   GL_ARB_vertex_attrib_binding                         DONE (all drivers) | ||||
| GLSL 4.3                                             not started | ||||
| GL_ARB_arrays_of_arrays                              not started | ||||
| GL_ARB_ES3_compatibility                             DONE (i965) | ||||
| GL_ARB_clear_buffer_object                           not started | ||||
| GL_ARB_compute_shader                                not started | ||||
| GL_ARB_copy_image                                    not started | ||||
| GL_KHR_debug                                         DONE (all drivers) | ||||
| 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                           not started | ||||
| 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                             not started | ||||
| GL_ARB_texture_buffer_range                          DONE (nv50, nvc0, i965, r600, radeonsi) | ||||
| 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                                  not started | ||||
| GL_ARB_vertex_attrib_binding                         DONE (all drivers) | ||||
|  | ||||
|  | ||||
| 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                                 not started | ||||
|   GL_ARB_enhanced_layouts                              not started | ||||
|   GL_ARB_multi_bind                                    DONE (all drivers) | ||||
|   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) | ||||
| GLSL 4.4                                             not started | ||||
| GL_MAX_VERTEX_ATTRIB_STRIDE                          not started | ||||
| GL_ARB_buffer_storage                                not started | ||||
| GL_ARB_clear_texture                                 not started | ||||
| GL_ARB_enhanced_layouts                              not started | ||||
| GL_ARB_multi_bind                                    not started | ||||
| 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, r600) | ||||
|  | ||||
|  | ||||
| More info about these features and the work involved can be found at | ||||
|   | ||||
							
								
								
									
										256
									
								
								docs/README.CYGWIN
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										256
									
								
								docs/README.CYGWIN
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,256 @@ | ||||
|  | ||||
|                           Mesa Cygwin/X11 Information | ||||
|  | ||||
|  | ||||
| WARNING | ||||
| ======= | ||||
|  | ||||
| If you installed X11 (packages xorg-x11-devel and xorg-x11-bin-dlls ) with the  | ||||
| latest setup.exe from Cygwin the GL (Mesa) libraries and include are already  | ||||
| installed in /usr/X11R6.  | ||||
|  | ||||
| The following will explain how to "replace" them. | ||||
|  | ||||
| Installation | ||||
| ============ | ||||
|  | ||||
| How to compile Mesa on Cygwin/X11 systems: | ||||
|  | ||||
| 1. Shared libs: | ||||
|     type 'make cygwin-sl'. | ||||
|  | ||||
|     When finished, the Mesa DLL will be in the Mesa-x.y/lib/ and  | ||||
|     Mesa-x.y/bin directories. | ||||
|  | ||||
|  | ||||
| 2. Static libs: | ||||
|     type 'make cygwin-static'. | ||||
|     When finished, the Mesa libraries will be in the Mesa-x.y/lib/ directory. | ||||
|  | ||||
| Header and library files: | ||||
|    After you've compiled Mesa and tried the demos I recommend the following | ||||
|    procedure for "installing" Mesa. | ||||
|  | ||||
|    Copy the Mesa include/GL directory to /usr/X11R6/include: | ||||
| 	cp -a include/GL /usr/X11R6/include | ||||
|  | ||||
|    Copy the Mesa library files to /usr/X11R6/lib: | ||||
| 	cp -a lib/* /usr/X11R6ocal/lib | ||||
|  | ||||
|    Copy the Mesa bin files (used by the DLL stuff) to /usr/X11R6/bin: | ||||
| 	cp -a lib/cyg* /usr/X11R6/bin | ||||
|  | ||||
| Xt/Motif widgets: | ||||
|    If you want to use Mesa or OpenGL in your Xt/Motif program you can build | ||||
|    the widgets found in either the widgets-mesa or widgets-sgi directories. | ||||
|    The former were written for Mesa and the later are the original SGI | ||||
|    widgets.  Look in those directories for more information. | ||||
|    For the Motif widgets you must have downloaded the lesstif package. | ||||
|  | ||||
|  | ||||
| Using the library | ||||
| ================= | ||||
|  | ||||
| Configuration options: | ||||
|    The file src/mesa/main/config.h has many parameters which you can adjust | ||||
|    such as maximum number of lights, clipping planes, maximum texture size, | ||||
|    etc.  In particular, you may want to change DEPTH_BITS from 16 to 32 | ||||
|    if a 16-bit depth buffer isn't precise enough for your application. | ||||
|  | ||||
|  | ||||
| Shared libraries: | ||||
|    If you compile shared libraries (Win32 DLLS) you may have to set an  | ||||
|    environment variable to specify where the Mesa libraries are located.   | ||||
|    Set the PATH variable to include /your-dir/Mesa-2.6/bin.    | ||||
|    Otherwise, when you try to run a demo it may fail with a message saying  | ||||
|    that one or more DLL couldn't be found. | ||||
|  | ||||
|  | ||||
| Xt/Motif Widgets: | ||||
|    Two versions of the Xt/Motif OpenGL drawing area widgets are included: | ||||
|  | ||||
|       widgets-sgi/	SGI's stock widgets | ||||
|       widgets-mesa/	Mesa-tuned widgets | ||||
|  | ||||
|    Look in those directories for details | ||||
|  | ||||
|  | ||||
| Togl: | ||||
|    Togl is an OpenGL/Mesa widget for Tcl/Tk. | ||||
|    See http://togl.sourceforge.net for more information. | ||||
|  | ||||
|  | ||||
|  | ||||
| X Display Modes: | ||||
|    Mesa supports RGB(A) rendering into almost any X visual type and depth. | ||||
|  | ||||
|    The glXChooseVisual function tries its best to pick an appropriate visual | ||||
|    for the given attribute list.  However, if this doesn't suit your needs | ||||
|    you can force Mesa to use any X visual you want (any supported by your | ||||
|    X server that is) by setting the MESA_RGB_VISUAL and MESA_CI_VISUAL | ||||
|    environment variables.  When an RGB visual is requested, glXChooseVisual | ||||
|    will first look if the MESA_RGB_VISUAL variable is defined.  If so, it | ||||
|    will try to use the specified visual.  Similarly, when a color index | ||||
|    visual is requested, glXChooseVisual will look for the MESA_CI_VISUAL | ||||
|    variable. | ||||
|  | ||||
|    The format of accepted values is:  <visual-class> <depth> | ||||
|    Here are some examples: | ||||
|  | ||||
|    using the C-shell: | ||||
| 	% setenv MESA_RGB_VISUAL "TrueColor 8"		// 8-bit TrueColor | ||||
| 	% setenv MESA_CI_VISUAL "PseudoColor 12"	// 12-bit PseudoColor | ||||
| 	% setenv MESA_RGB_VISUAL "PseudoColor 8"	// 8-bit PseudoColor | ||||
|  | ||||
|    using the KornShell: | ||||
| 	$ export MESA_RGB_VISUAL="TrueColor 8" | ||||
| 	$ export MESA_CI_VISUAL="PseudoColor 12" | ||||
| 	$ export MESA_RGB_VISUAL="PseudoColor 8" | ||||
|  | ||||
|  | ||||
| Double buffering: | ||||
|    Mesa can use either an X Pixmap or XImage as the backbuffer when in | ||||
|    double buffer mode.  Using GLX, the default is to use an XImage.  The | ||||
|    MESA_BACK_BUFFER environment variable can override this.  The valid | ||||
|    values for MESA_BACK_BUFFER are:  Pixmap and XImage (only the first | ||||
|    letter is checked, case doesn't matter). | ||||
|  | ||||
|    A pixmap is faster when drawing simple lines and polygons while an | ||||
|    XImage is faster when Mesa has to do pixel-by-pixel rendering.  If you | ||||
|    need depth buffering the XImage will almost surely be faster.  Exper- | ||||
|    iment with the MESA_BACK_BUFFER variable to see which is faster for | ||||
|    your application.   | ||||
|  | ||||
|  | ||||
| Colormaps: | ||||
|    When using Mesa directly or with GLX, it's up to the application writer | ||||
|    to create a window with an appropriate colormap.  The aux, tk, and GLUT | ||||
|    toolkits try to minimize colormap "flashing" by sharing colormaps when | ||||
|    possible.  Specifically, if the visual and depth of the window matches | ||||
|    that of the root window, the root window's colormap will be shared by | ||||
|    the Mesa window.  Otherwise, a new, private colormap will be allocated. | ||||
|  | ||||
|    When sharing the root colormap, Mesa may be unable to allocate the colors | ||||
|    it needs, resulting in poor color quality.  This can happen when a | ||||
|    large number of colorcells in the root colormap are already allocated. | ||||
|    To prevent colormap sharing in aux, tk and GLUT, define the environment | ||||
|    variable MESA_PRIVATE_CMAP.  The value isn't significant. | ||||
|  | ||||
|  | ||||
| Gamma correction: | ||||
|    To compensate for the nonlinear relationship between pixel values | ||||
|    and displayed intensities, there is a gamma correction feature in | ||||
|    Mesa.  Some systems, such as Silicon Graphics, support gamma | ||||
|    correction in hardware (man gamma) so you won't need to use Mesa's | ||||
|    gamma facility.  Other systems, however, may need gamma adjustment | ||||
|    to produce images which look correct.  If in the past you thought | ||||
|    Mesa's images were too dim, read on. | ||||
|  | ||||
|    Gamma correction is controlled with the MESA_GAMMA environment | ||||
|    variable.  Its value is of the form "Gr Gg Gb" or just "G" where | ||||
|    Gr is the red gamma value, Gg is the green gamma value, Gb is the | ||||
|    blue gamma value and G is one gamma value to use for all three | ||||
|    channels.  Each value is a positive real number typically in the | ||||
|    range 1.0 to 2.5.  The defaults are all 1.0, effectively disabling | ||||
|    gamma correction.  Examples using csh: | ||||
|  | ||||
| 	% setenv MESA_GAMMA "2.3 2.2 2.4"	// separate R,G,B values | ||||
| 	% setenv MESA_GAMMA "2.0"		// same gamma for R,G,B | ||||
|  | ||||
|    The demos/gamma.c program may help you to determine reasonable gamma | ||||
|    value for your display.  With correct gamma values, the color intensities | ||||
|    displayed in the top row (drawn by dithering) should nearly match those | ||||
|    in the bottom row (drawn as grays). | ||||
|  | ||||
|    Alex De Bruyn reports that gamma values of 1.6, 1.6 and 1.9 work well | ||||
|    on HP displays using the HP-ColorRecovery technology. | ||||
|  | ||||
|    Mesa implements gamma correction with a lookup table which translates | ||||
|    a "linear" pixel value to a gamma-corrected pixel value.  There is a | ||||
|    small performance penalty.  Gamma correction only works in RGB mode. | ||||
|    Also be aware that pixel values read back from the frame buffer will | ||||
|    not be "un-corrected" so glReadPixels may not return the same data | ||||
|    drawn with glDrawPixels. | ||||
|  | ||||
|    For more information about gamma correction see: | ||||
|    http://www.inforamp.net/~poynton/notes/colour_and_gamma/GammaFAQ.html | ||||
|  | ||||
|  | ||||
| Overlay Planes | ||||
|  | ||||
|    Overlay planes in the frame buffer are supported by Mesa but require | ||||
|    hardware and X server support.  To determine if your X server has | ||||
|    overlay support you can test for the SERVER_OVERLAY_VISUALS property: | ||||
|  | ||||
| 	xprop -root | grep SERVER_OVERLAY_VISUALS | ||||
|  | ||||
|  | ||||
| HPCR glClear(GL_COLOR_BUFFER_BIT) dithering | ||||
|  | ||||
|    If you set the MESA_HPCR_CLEAR environment variable then dithering | ||||
|    will be used when clearing the color buffer.  This is only applicable | ||||
|    to HP systems with the HPCR (Color Recovery) system. | ||||
|  | ||||
|  | ||||
| Extensions | ||||
| ========== | ||||
|    There are three Mesa-specific GLX extensions at this time. | ||||
|  | ||||
|    GLX_MESA_pixmap_colormap  | ||||
|  | ||||
|       This extension adds the GLX function: | ||||
|  | ||||
|          GLXPixmap glXCreateGLXPixmapMESA( Display *dpy, XVisualInfo *visual, | ||||
|                                            Pixmap pixmap, Colormap cmap ) | ||||
|  | ||||
|       It is an alternative to the standard glXCreateGLXPixmap() function. | ||||
|       Since Mesa supports RGB rendering into any X visual, not just True- | ||||
|       Color or DirectColor, Mesa needs colormap information to convert RGB | ||||
|       values into pixel values.  An X window carries this information but a | ||||
|       pixmap does not.  This function associates a colormap to a GLX pixmap. | ||||
|       See the xdemos/glxpixmap.c file for an example of how to use this | ||||
|       extension. | ||||
|  | ||||
|    GLX_MESA_release_buffers | ||||
|  | ||||
|       Mesa associates a set of ancillary (depth, accumulation, stencil and | ||||
|       alpha) buffers with each X window it draws into.  These ancillary | ||||
|       buffers are allocated for each X window the first time the X window | ||||
|       is passed to glXMakeCurrent().  Mesa, however, can't detect when an | ||||
|       X window has been destroyed in order to free the ancillary buffers. | ||||
|  | ||||
|       The best it can do is to check for recently destroyed windows whenever | ||||
|       the client calls the glXCreateContext() or glXDestroyContext() | ||||
|       functions.  This may not be sufficient in all situations though. | ||||
|  | ||||
|       The GLX_MESA_release_buffers extension allows a client to explicitly | ||||
|       deallocate the ancillary buffers by calling glxReleaseBuffersMESA() | ||||
|       just before an X window is destroyed.  For example: | ||||
|  | ||||
|          #ifdef GLX_MESA_release_buffers | ||||
|             glXReleaseBuffersMESA( dpy, window ); | ||||
|          #endif | ||||
|          XDestroyWindow( dpy, window ); | ||||
|  | ||||
|       This extension is new in Mesa 2.0. | ||||
|  | ||||
|    GLX_MESA_copy_sub_buffer | ||||
|  | ||||
|       This extension adds the glXCopySubBufferMESA() function.  It works | ||||
|       like glXSwapBuffers() but only copies a sub-region of the window | ||||
|       instead of the whole window. | ||||
|  | ||||
|       This extension is new in Mesa version 2.6 | ||||
|  | ||||
|  | ||||
|  | ||||
| Summary of X-related environment variables: | ||||
|    MESA_RGB_VISUAL - specifies the X visual and depth for RGB mode (X only) | ||||
|    MESA_CI_VISUAL - specifies the X visual and depth for CI mode (X only) | ||||
|    MESA_BACK_BUFFER - specifies how to implement the back color buffer (X only) | ||||
|    MESA_PRIVATE_CMAP - force aux/tk libraries to use private colormaps (X only) | ||||
|    MESA_GAMMA - gamma correction coefficients (X only) | ||||
|  | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| README.CYGWIN - lassauge April 2004 - based on README.X11 | ||||
							
								
								
									
										102
									
								
								docs/README.MITS
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								docs/README.MITS
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,102 @@ | ||||
|  | ||||
| 			Mesa 3.0 MITS Information | ||||
|  | ||||
|  | ||||
| This software is distributed under the terms of the GNU Library | ||||
| General Public License, see the LICENSE file for details. | ||||
|  | ||||
|  | ||||
| This document is a preliminary introduction to help you get | ||||
| started. For more detaile information consult the web page. | ||||
|  | ||||
| http://10-dencies.zkm.de/~mesa/ | ||||
|  | ||||
|  | ||||
|  | ||||
| Version 0.1 (Yes it's very alpha code so be warned!) | ||||
| Contributors:  | ||||
|   Emil Briggs    	(briggs@bucky.physics.ncsu.edu) | ||||
|   David Bucciarelli 	(tech.hmw@plus.it) | ||||
|   Andreas Schiffler 	(schiffler@zkm.de) | ||||
|  | ||||
|  | ||||
|  | ||||
| 1. Requirements: | ||||
|      Mesa 3.0. | ||||
|      An SMP capable machine running Linux 2.x | ||||
|      libpthread installed on your machine. | ||||
|  | ||||
|  | ||||
| 2. What does MITS stand for? | ||||
|      MITS stands for Mesa Internal Threading System. By adding | ||||
|      internal threading to Mesa it should be possible to improve | ||||
|      performance of OpenGL applications on SMP machines. | ||||
|  | ||||
|  | ||||
| 3. Do applications have to be recoded to take advantage of MITS? | ||||
|      No. The threading is internal to Mesa and transparent to | ||||
|      applications. | ||||
|  | ||||
|  | ||||
| 4. Will all applications benefit from the current implementation of MITS? | ||||
|      No. This implementation splits the processing of the vertex buffer | ||||
|      over two threads. There is a certain amount of overhead involved | ||||
|      with the thread synchronization and if there is not enough work | ||||
|      to be done the extra overhead outweighs any speedup from using | ||||
|      dual processors. You will not for example see any speedup when | ||||
|      running Quake because it uses GL_POLYGON and there is only one | ||||
|      polygon for each vertex buffer processed. Test results on a | ||||
|      dual 200 Mhz. Pentium Pro system show that one needs around | ||||
|      100-200 vertices in the vertex buffer before any there is any | ||||
|      appreciable benefit from the threading. | ||||
|  | ||||
|  | ||||
| 5. Are there any parameters that I can tune to try to improve performance. | ||||
|      Yes. You can try to vary the size of the vertex buffer which is | ||||
|      define in VB_MAX located in the file src/vb.h from your top level | ||||
|      Mesa distribution. The number needs to be a multiple of 12 and | ||||
|      the optimum value will probably depend on the capabilities of | ||||
|      your machine and the particular application you are running. | ||||
|  | ||||
|  | ||||
| 6. Are there any ways I can modify the application to improve its | ||||
|    performance with the MITS? | ||||
|      Yes. Try to use as many vertices between each Begin/End pair | ||||
|      as possbile. This will reduce the thread synchronization | ||||
|      overhead. | ||||
|  | ||||
|  | ||||
| 7. What sort of speedups can I expect? | ||||
|      On some benchmarks performance gains of up to 30% have been | ||||
|      observerd. Others may see no gain at all and in a few rare | ||||
|      cases even some degradation. | ||||
|  | ||||
|  | ||||
| 8. What still needs to be done? | ||||
|      Lots of testing and benchmarking. | ||||
|      A portable implementation that works within the Mesa thread API. | ||||
|      Threading of additional areas of Mesa to improve performance | ||||
|      even more. | ||||
|  | ||||
|  | ||||
|  | ||||
| Installation: | ||||
|  | ||||
|    1. This assumes that you already have a working Mesa 3.0 installation | ||||
|       from source. | ||||
|    2. Place the tarball MITS.tar.gz in your top level Mesa directory. | ||||
|    3. Unzip it and untar it. It will replace the following files in | ||||
|       your Mesa source tree so back them up if you want to save them. | ||||
|  | ||||
|  | ||||
| 	 README.MITS | ||||
|          Make-config | ||||
| 	 Makefile | ||||
| 	 mklib.glide | ||||
|          src/vbxform.c | ||||
| 	 src/vb.h | ||||
|  | ||||
|    4. Rebuild Mesa using the command | ||||
|  | ||||
|           make linux-386-glide-mits | ||||
|  | ||||
							
								
								
									
										207
									
								
								docs/README.QUAKE
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										207
									
								
								docs/README.QUAKE
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,207 @@ | ||||
|  | ||||
|              Info on using Mesa 3.0 with Linux Quake I and Quake II | ||||
|  | ||||
|  | ||||
|  | ||||
| Disclaimer | ||||
| ---------- | ||||
|  | ||||
| I am _not_ a Quake expert by any means.  I pretty much only run it to | ||||
| test Mesa.  There have been a lot of questions about Linux Quake and | ||||
| Mesa so I'm trying to provide some useful info here.  If this file | ||||
| doesn't help you then you should look elsewhere for help.  The Mesa | ||||
| mailing list or the news://news.3dfx.com/3dfx.linux.glide newsgroup | ||||
| might be good. | ||||
|  | ||||
| Again, all the information I have is in this file.  Please don't email | ||||
| me with questions. | ||||
|  | ||||
| If you have information to contribute to this file please send it to | ||||
| me at brianp@elastic.avid.com | ||||
|  | ||||
|  | ||||
|  | ||||
| Linux Quake | ||||
| ----------- | ||||
|  | ||||
| You can get Linux Quake from http://www.idsoftware.com/ | ||||
|  | ||||
| Quake I and II for Linux were tested with, and include, Mesa 2.6.  You | ||||
| shouldn't have too many problems if you simply follow the instructions | ||||
| in the Quake distribution. | ||||
|  | ||||
|  | ||||
|  | ||||
| RedHat 5.0 Linux problems | ||||
| ------------------------- | ||||
|  | ||||
| RedHat Linux 5.x uses the GNU C library ("glibc" or "libc6") whereas | ||||
| previous RedHat and other Linux distributions use "libc5" for its | ||||
| runtime C library. | ||||
|  | ||||
| Linux Quake I and II were compiled for libc5.  If you compile Mesa | ||||
| on a RedHat 5.x system the resulting libMesaGL.so file will not work | ||||
| with Linux Quake because of the different C runtime libraries. | ||||
| The symptom of this is a segmentation fault soon after starting Quake. | ||||
|  | ||||
| If you want to use a newer version of Mesa (like 3.x) with Quake on | ||||
| RedHat 5.x then read on. | ||||
|  | ||||
| The solution to the C library problem is to force Mesa to use libc5. | ||||
| libc5 is in /usr/i486-linux-libc5/lib on RedHat 5.x systems. | ||||
|  | ||||
| Emil Briggs (briggs@tick.physics.ncsu.edu) nicely gave me the following | ||||
| info: | ||||
|  | ||||
| >   I only know what works on a RedHat 5.0 distribution. RH5 includes | ||||
| > a full set of libraries for both libc5 and glibc. The loader ld.so | ||||
| > uses the libc5 libraries in /usr/i486-linux-libc5/lib for programs | ||||
| > linked against libc5 while it uses the glibc libraries in /lib and | ||||
| > /usr/lib for programs linked against glibc. | ||||
| >  | ||||
| > Anyway I changed line 41 of mklib.glide to | ||||
| >     GLIDELIBS="-L/usr/local/glide/lib -lglide2x -L/usr/i486-linux-libc5/lib" | ||||
| >  | ||||
| > And I started quake2 up with a script like this | ||||
| > #!/bin/csh | ||||
| > setenv LD_LIBRARY_PATH /usr/i486-linux-libc5/lib | ||||
| > setenv MESA_GLX_FX f | ||||
| > ./quake2 +set vid_ref gl | ||||
| > kbd_mode -a | ||||
| > reset | ||||
|  | ||||
|  | ||||
| I've already patched the mklib.glide file.  You'll have to start Quake | ||||
| with the script shown above though. | ||||
|  | ||||
|  | ||||
|  | ||||
| ********************** | ||||
|  | ||||
| Daryll Strauss writes: | ||||
|  | ||||
| Here's my thoughts on the problem. On a RH 5.x system, you can NOT build | ||||
| a libc5 executable or library. Red Hat just doesn't include the right | ||||
| stuff to do it. | ||||
|  | ||||
| Since Quake is a libc5 based application, you are in trouble. You need | ||||
| libc5 libraries. | ||||
|  | ||||
| What can you do about it? Well there's a package called gcc5 that does | ||||
| MOST of the right stuff to compile with libc5. (It brings back older | ||||
| header files, makes appropriate symbolic links for libraries, and sets | ||||
| up the compiler to use the correct directories) You can find gcc5 here:  | ||||
| ftp://ecg.mit.edu/pub/linux/gcc5-1.0-1.i386.rpm | ||||
|  | ||||
| No, this isn't quite enough. There are still a few tricks to getting | ||||
| Mesa to compile as a libc5 application. First you have to make sure that | ||||
| every compile uses gcc5 instead of gcc. Second, in some cases the link | ||||
| line actually lists -L/usr/lib which breaks gcc5 (because it forces you | ||||
| to use the glibc version of things) | ||||
|  | ||||
| If you get all the stuff correctly compiled with gcc5 it should work. | ||||
| I've run Mesa 3.0B6  and its demos in a window with my Rush on a Red Hat | ||||
| 5.1 system. It is a big hassle, but it can be done. I've only made Quake | ||||
| segfault, but I think that's from my libRush using the wrong libc.  | ||||
|  | ||||
| Yes, mixing libc5 and glibc is a major pain. I've been working to get | ||||
| all my libraries compiling correctly with this setup. Someone should | ||||
| make an RPM out of it and feed changes back to Brian once they get it | ||||
| all working. If no one else has done so by the time I get the rest of my | ||||
| stuff straightened out, I'll try to do it myself. | ||||
|  | ||||
| 							- |Daryll | ||||
|  | ||||
|  | ||||
|  | ||||
| ********************* | ||||
|  | ||||
| David Bucciarelli (tech.hmw@plus.it) writes: | ||||
|  | ||||
| I'm using the Mesa-3.0beta7 and the RedHat 5.1 and QuakeII is | ||||
| working fine for me.  I had only to make a small change to the | ||||
| Mesa-3.0/mklib.glide file, from: | ||||
|  | ||||
|  | ||||
|     GLIDELIBS="-L/usr/local/glide/lib -lglide2x | ||||
| -L/usr/i486-linux-libc5/lib -lm" | ||||
|  | ||||
| to: | ||||
|  | ||||
|     GLIDELIBS="-L/usr/i486-linux-libc5/lib -lglide2x" | ||||
|  | ||||
| and to make two symbolic links: | ||||
|  | ||||
| [david@localhost Mesa]$ ln -s libMesaGL.so libMesaGL.so.2 | ||||
| [david@localhost Mesa]$ ln -s libMesaGLU.so libMesaGLU.so.2 | ||||
|  | ||||
| I'm using the Daryll's Linux glide rpm for the Voodoo2 and glibc (it | ||||
| includes also the Glide for the libc5). I'm not using the /dev/3Dfx and | ||||
| running QuakeII as root with the following env. var: | ||||
|  | ||||
| export | ||||
| LD_LIBRARY_PATH=/dsk1/home/david/src/gl/Mesa/lib:/usr/i486-linux-libc5/lib | ||||
|  | ||||
| I think that all problems are related to the glibc, Quake will never | ||||
| work if you get the following output: | ||||
|  | ||||
| [david@localhost Mesa]$ ldd lib/libMesaGL.so | ||||
|         libglide2x.so => /usr/lib/libglide2x.so (0x400f8000) | ||||
|         libm.so.6 => /lib/libm.so.6 (0x40244000) | ||||
|         libc.so.6 => /lib/libc.so.6 (0x4025d000) | ||||
|         /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00000000) | ||||
|  | ||||
| You must get the following outputs: | ||||
|  | ||||
| [david@localhost Mesa]# ldd lib/libMesaGL.so | ||||
|         libglide2x.so => /usr/i486-linux-libc5/lib/libglide2x.so | ||||
| (0x400f3000) | ||||
|  | ||||
| [root@localhost quake2]# ldd quake2 | ||||
|         libdl.so.1 => /lib/libdl.so.1 (0x40005000) | ||||
|         libm.so.5 => /usr/i486-linux-libc5/lib/libm.so.5 (0x40008000) | ||||
|         libc.so.5 => /usr/i486-linux-libc5/lib/libc.so.5 (0x40010000) | ||||
|  | ||||
| [root@localhost quake2]# ldd ref_gl.so | ||||
|         libMesaGL.so.2 => | ||||
| /dsk1/home/david/src/gl/Mesa/lib/libMesaGL.so.2 (0x400eb000) | ||||
|         libglide2x.so => /usr/i486-linux-libc5/lib/libglide2x.so | ||||
| (0x401d9000) | ||||
|         libX11.so.6 => /usr/i486-linux-libc5/lib/libX11.so.6 | ||||
| (0x40324000) | ||||
|         libXext.so.6 => /usr/i486-linux-libc5/lib/libXext.so.6 | ||||
| (0x403b7000) | ||||
|         libvga.so.1 => /usr/i486-linux-libc5/lib/libvga.so.1 | ||||
| (0x403c1000) | ||||
|         libm.so.5 => /usr/i486-linux-libc5/lib/libm.so.5 (0x403f5000) | ||||
|         libc.so.5 => /usr/i486-linux-libc5/lib/libc.so.5 (0x403fd000) | ||||
|  | ||||
|  | ||||
| *********************** | ||||
|  | ||||
| Steve Davies (steve@one47.demon.co.uk) writes: | ||||
|  | ||||
|  | ||||
| Try using: | ||||
|  | ||||
|     export LD_LIBRARY_PATH=/usr/i486-linux-libc5/lib | ||||
|     ./quake2 +set vid_ref gl | ||||
|  | ||||
| to start the game... Works for me, but assumes that you have the | ||||
| compatability libc5 RPMs installed. | ||||
|  | ||||
|  | ||||
| *************************** | ||||
|  | ||||
| WWW resources - you may find additional Linux Quake help at these URLs: | ||||
|  | ||||
|  | ||||
| http://quake.medina.net/howto | ||||
|  | ||||
| http://webpages.mr.net/bobz | ||||
|  | ||||
| http://www.linuxgames.com/quake2/ | ||||
|  | ||||
|  | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
							
								
								
									
										52
									
								
								docs/README.THREADS
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								docs/README.THREADS
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,52 @@ | ||||
|  | ||||
|  | ||||
| Mesa Threads README | ||||
| ------------------- | ||||
|  | ||||
| Thread safety was introduced in Mesa 2.6 by John Stone and | ||||
| Christoph Poliwoda. | ||||
|  | ||||
| It was redesigned in Mesa 3.3 so that thread safety is | ||||
| supported by default (on systems which support threads, | ||||
| that is).  There is no measurable penalty on single | ||||
| threaded applications. | ||||
|  | ||||
| NOTE that the only _driver_ which is thread safe at this time | ||||
| is the OS/Mesa driver! | ||||
|  | ||||
|  | ||||
| At present the mthreads code supports three thread APIS: | ||||
|   1) POSIX threads (aka pthreads). | ||||
|   2) Solaris / Unix International threads. | ||||
|   3) Win32 threads (Win 95/NT). | ||||
|  | ||||
| Support for other thread libraries can be added src/glthread.[ch] | ||||
|  | ||||
|  | ||||
| In order to guarantee proper operation, it is | ||||
| necessary for both Mesa and application code to use the same threads API. | ||||
| So, if your application uses Sun's thread API, then you should build Mesa | ||||
| using one of the targets for Sun threads. | ||||
|  | ||||
| The mtdemos directory contains some example programs which use  | ||||
| multiple threads to render to osmesa rendering context(s). | ||||
|  | ||||
| Linux users should be aware that there exist many different POSIX | ||||
| threads packages. The best solution is the linuxthreads package | ||||
| (http://pauillac.inria.fr/~xleroy/linuxthreads/) as this package is the | ||||
| only one that really supports multiprocessor machines (AFAIK). See | ||||
| http://pauillac.inria.fr/~xleroy/linuxthreads/README for further | ||||
| information about the usage of linuxthreads. | ||||
|  | ||||
| If you are interested in helping with thread safety work in Mesa | ||||
| join the Mesa developers mailing list and post your proposal. | ||||
|  | ||||
|  | ||||
| Regards, | ||||
|   John Stone           -- j.stone@acm.org  johns@cs.umr.edu | ||||
|   Christoph Poliwoda   -- poliwoda@volumegraphics.com | ||||
|  | ||||
|  | ||||
| Version info: | ||||
|    Mesa 2.6 - initial thread support. | ||||
|    Mesa 3.3 - thread support mostly rewritten (Brian Paul) | ||||
| @@ -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 | ||||
| ------- | ||||
|   | ||||
| @@ -19,7 +19,7 @@ | ||||
| <p> | ||||
| The SGI OpenGL conformance tests verify correct operation of OpenGL | ||||
| implementations.  I, Brian Paul, have been given a copy of the tests | ||||
| for testing Mesa.  The tests are not publicly available. | ||||
| for testing Mesa.  The tests are not publically available. | ||||
| </p> | ||||
| <p> | ||||
| This file has the latest results of testing Mesa with the OpenGL 1.2 | ||||
|   | ||||
| @@ -17,7 +17,7 @@ | ||||
| <h1>Development Notes</h1> | ||||
|  | ||||
|  | ||||
| <h2>Adding Extensions</h2> | ||||
| <h2>Adding Extentions</h2> | ||||
|  | ||||
| <p> | ||||
| To add a new GL extension to Mesa you have to do at least the following. | ||||
| @@ -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> | ||||
|  | ||||
|  | ||||
| @@ -195,31 +190,11 @@ you should add an appropriate note to the commit message. | ||||
| Here are some examples of such a note: | ||||
| </p> | ||||
| <ul> | ||||
|   <li>CC: <mesa-stable@lists.freedesktop.org></li> | ||||
|   <li>CC: "9.2 10.0" <mesa-stable@lists.freedesktop.org></li> | ||||
|   <li>CC: "10.0" <mesa-stable@lists.freedesktop.org></li> | ||||
|   <li>NOTE: This is a candidate for the 9.0 branch.</li> | ||||
|   <li>NOTE: This is a candidate for the 8.0 and 9.0 branches.</li> | ||||
|   <li>NOTE: This is a candidate for the stable branches.</li> | ||||
| </ul> | ||||
|  | ||||
| Simply adding the CC to the mesa-stable list address is adequate to nominate | ||||
| the commit for the most-recently-created stable branch. It is only necessary | ||||
| to specify a specific branch name, (such as "9.2 10.0" or "10.0" in the | ||||
| examples above), if you want to nominate the commit for an older stable | ||||
| branch. And, as in these examples, you can nominate the commit for the older | ||||
| branch in addition to the more recent branch, or nominate the commit | ||||
| exclusively for the older branch. | ||||
|  | ||||
| This "CC" syntax for patch nomination will cause patches to automatically be | ||||
| copied to the mesa-stable@ mailing list when you use "git send-email" to send | ||||
| patches to the mesa-dev@ mailing list. Also, if you realize that a commit | ||||
| should be nominated for the stable branch after it has already been committed, | ||||
| 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> | ||||
|  | ||||
|   | ||||
| @@ -25,7 +25,7 @@ href="#overview">overview of Mesa's implementation</a>.</p> | ||||
| <h2>1. Complexity of GL Dispatch</h2> | ||||
|  | ||||
| <p>Every GL application has at least one object called a GL <em>context</em>. | ||||
| This object, which is an implicit parameter to every GL function, stores all | ||||
| This object, which is an implicit parameter to ever GL function, stores all | ||||
| of the GL related state for the application.  Every texture, every buffer | ||||
| object, every enable, and much, much more is stored in the context.  Since | ||||
| an application can have more than one context, the context to be used is | ||||
| @@ -51,7 +51,7 @@ example, <tt>glFogCoordf</tt> may operate differently depending on whether | ||||
| or not fog is enabled.</p> | ||||
|  | ||||
| <p>In multi-threaded environments, it is possible for each thread to have a | ||||
| different GL context current.  This means that poor old <tt>glVertex3fv</tt> | ||||
| differnt GL context current.  This means that poor old <tt>glVertex3fv</tt> | ||||
| has to know which GL context is current in the thread where it is being | ||||
| called.</p> | ||||
|  | ||||
| @@ -207,13 +207,13 @@ few preprocessor defines.</p> | ||||
| <li>If <tt>GLX_USE_TLS</tt> is defined, method #4 is used.</li> | ||||
| <li>If <tt>HAVE_PTHREAD</tt> is defined, method #3 is used.</li> | ||||
| <li>If <tt>WIN32_THREADS</tt> is defined, method #2 is used.</li> | ||||
| <li>If none of the preceding are defined, method #1 is used.</li> | ||||
| <li>If none of the preceeding are defined, method #1 is used.</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Two different techniques are used to handle the various different cases. | ||||
| On x86 and SPARC, a macro called <tt>GL_STUB</tt> is used.  In the preamble | ||||
| of the assembly source file different implementations of the macro are | ||||
| selected based on the defined preprocessor variables.  The assembly code | ||||
| selected based on the defined preprocessor variables.  The assmebly code | ||||
| then consists of a series of invocations of the macros such as: | ||||
|  | ||||
| <blockquote> | ||||
| @@ -242,7 +242,7 @@ first technique, is to insert <tt>#ifdef</tt> within the assembly | ||||
| implementation of each function.  This makes the assembly file considerably | ||||
| larger (e.g., 29,332 lines for <tt>glapi_x86-64.S</tt> versus 1,155 lines for | ||||
| <tt>glapi_x86.S</tt>) and causes simple changes to the function | ||||
| implementation to generate many lines of diffs.  Since the assembly files | ||||
| implementation to generate many lines of diffs.  Since the assmebly files | ||||
| are typically generated by scripts (see <a href="#autogen">below</a>), this | ||||
| isn't a significant problem.</p> | ||||
|  | ||||
|   | ||||
| @@ -88,7 +88,7 @@ drivers will be installed to <code>${libdir}/egl</code>.</p> | ||||
| <dd> | ||||
|  | ||||
| <p>List the platforms (window systems) to support.  Its argument is a comma | ||||
| separated string such as <code>--with-egl-platforms=x11,drm</code>.  It decides | ||||
| seprated string such as <code>--with-egl-platforms=x11,drm</code>.  It decides | ||||
| the platforms a driver may support.  The first listed platform is also used by | ||||
| the main library to decide the native platform: the platform the EGL native | ||||
| types such as <code>EGLNativeDisplayType</code> or | ||||
| @@ -223,7 +223,7 @@ the X server directly using (XCB-)DRI2 protocol.</p> | ||||
| <dd> | ||||
|  | ||||
| <p>This driver is based on Gallium3D.  It supports all rendering APIs and | ||||
| hardware supported by Gallium3D.  It is the only driver that supports OpenVG. | ||||
| hardwares supported by Gallium3D.  It is the only driver that supports OpenVG. | ||||
| The supported platforms are X11, DRM, FBDEV, and GDI.</p> | ||||
|  | ||||
| <p>This driver comes with its own hardware drivers | ||||
| @@ -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 | ||||
| @@ -259,8 +273,8 @@ longer than the display that creates them.</p> | ||||
|  | ||||
| <p>In EGL, when a display is terminated through <code>eglTerminate</code>, all | ||||
| display resources should be destroyed.  Similarly, when a thread is released | ||||
| through <code>eglReleaseThread</code>, all current display resources should be | ||||
| released.  Another way to destroy or release resources is through functions | ||||
| throught <code>eglReleaseThread</code>, all current display resources should be | ||||
| released.  Another way to destory or release resources is through functions | ||||
| such as <code>eglDestroySurface</code> or <code>eglMakeCurrent</code>.</p> | ||||
|  | ||||
| <p>When a resource that is current to some thread is destroyed, the resource | ||||
|   | ||||
| @@ -47,7 +47,7 @@ sometimes be useful for debugging end-user issues. | ||||
| <li>MESA_NO_SSE - if set, disables Intel SSE optimizations | ||||
| <li>MESA_DEBUG - if set, error messages are printed to stderr.  For example, | ||||
|    if the application generates a GL_INVALID_ENUM error, a corresponding error | ||||
|    message indicating where the error occurred, and possibly why, will be | ||||
|    message indicating where the error occured, and possibly why, will be | ||||
|    printed to stderr.<br> | ||||
|    If the value of MESA_DEBUG is 'FP' floating point arithmetic errors will | ||||
|    generate exceptions. | ||||
| @@ -121,38 +121,10 @@ See the <a href="xlibdriver.html">Xlib software driver page</a> for details. | ||||
| <h2>i945/i965 driver environment variables (non-Gallium)</h2> | ||||
|  | ||||
| <ul> | ||||
| <li>INTEL_NO_HW - if set to 1, prevents batches from being submitted to the hardware. | ||||
|    This is useful for debugging hangs, etc.</li> | ||||
| <li>INTEL_DEBUG - a comma-separated list of named flags, which do various things: | ||||
| <ul> | ||||
|    <li>tex - emit messages about textures.</li> | ||||
|    <li>state - emit messages about state flag tracking</li> | ||||
|    <li>blit - emit messages about blit operations</li> | ||||
|    <li>miptree - emit messages about miptrees</li> | ||||
|    <li>perf - emit messages about performance issues</li> | ||||
|    <li>perfmon - emit messages about AMD_performance_monitor</li> | ||||
|    <li>bat - emit batch information</li> | ||||
|    <li>pix - emit messages about pixel operations</li> | ||||
|    <li>buf - emit messages about buffer objects</li> | ||||
|    <li>reg - emit messages about regions</li> | ||||
|    <li>fbo - emit messages about framebuffers</li> | ||||
|    <li>fs - dump shader assembly for fragment shaders</li> | ||||
|    <li>gs - dump shader assembly for geometry shaders</li> | ||||
|    <li>sync - emit messages about synchronization</li> | ||||
|    <li>prim - emit messages about drawing primitives</li> | ||||
|    <li>vert - emit messages about vertex assembly</li> | ||||
|    <li>dri - emit messages about the DRI interface</li> | ||||
|    <li>sf - emit messages about the strips & fans unit (for old gens, includes the SF program)</li> | ||||
|    <li>stats - enable statistics counters. you probably actually want perfmon or intel_gpu_top instead.</li> | ||||
|    <li>urb - emit messages about URB setup</li> | ||||
|    <li>vs - dump shader assembly for vertex shaders</li> | ||||
|    <li>clip - emit messages about the clip unit (for old gens, includes the CLIP program)</li> | ||||
|    <li>aub - dump batches into an AUB trace for use with simulation tools</li> | ||||
|    <li>shader_time - record how much GPU time is spent in each shader</li> | ||||
|    <li>no16 - suppress generation of 16-wide fragment shaders. useful for debugging broken shaders</li> | ||||
|    <li>blorp - emit messages about the blorp operations (blits & clears)</li> | ||||
|    <li>nodualobj - suppress generation of dual-object geometry shader code</li> | ||||
| </ul> | ||||
| <li>INTEL_STRICT_CONFORMANCE - if set to 1, enable sw fallbacks to improve | ||||
|     OpenGL conformance.  If set to 2, always use software rendering. | ||||
| <li>INTEL_NO_BLIT - if set, disable hardware-accelerated glBitmap, | ||||
|     glCopyPixels, glDrawPixels. | ||||
| </ul> | ||||
|  | ||||
|  | ||||
| @@ -201,14 +173,14 @@ See src/mesa/state_tracker/st_debug.c for other options. | ||||
|     to stderr | ||||
| <li>SOFTPIPE_NO_RAST - if set, rasterization is no-op'd.  For profiling purposes. | ||||
| <li>SOFTPIPE_USE_LLVM - if set, the softpipe driver will try to use LLVM JIT for | ||||
|     vertex shading processing. | ||||
|     vertex shading procesing. | ||||
| </ul> | ||||
|  | ||||
|  | ||||
| <h3>LLVMpipe driver environment variables</h3> | ||||
| <ul> | ||||
| <li>LP_NO_RAST - if set LLVMpipe will no-op rasterization | ||||
| <li>LP_DEBUG - a comma-separated list of debug options is accepted.  See the | ||||
| <li>LP_DEBUG - a comma-separated list of debug options is acceptec.  See the | ||||
|     source code for details. | ||||
| <li>LP_PERF - a comma-separated list of options to selectively no-op various | ||||
|     parts of the driver.  See the source code for details. | ||||
|   | ||||
| @@ -137,7 +137,7 @@ Just follow the Mesa <a href="install.html">compilation instructions</a>. | ||||
| <h2>1.6 Are there other open-source implementations of OpenGL?</h2> | ||||
| <p> | ||||
| Yes, SGI's <a href="http://oss.sgi.com/projects/ogl-sample/index.html"> | ||||
| OpenGL Sample Implementation (SI)</a> is available. | ||||
| OpenGL Sample Implemenation (SI)</a> is available. | ||||
| The SI was written during the time that OpenGL was originally designed. | ||||
| Unfortunately, development of the SI has stagnated. | ||||
| Mesa is much more up to date with modern features and extensions. | ||||
| @@ -353,7 +353,7 @@ That's where Mesa development is discussed. | ||||
| </p> | ||||
| <p> | ||||
| The <a href="http://www.opengl.org/documentation"> | ||||
| OpenGL Specification</a> is the bible for OpenGL implementation work. | ||||
| OpenGL Specification</a> is the bible for OpenGL implemention work. | ||||
| You should read it. | ||||
| </p> | ||||
| <p>Most of the Mesa development work involves implementing new OpenGL | ||||
| @@ -375,7 +375,7 @@ For a Gallium3D hardware driver, the r300g, r600g and the i915g are good example | ||||
| </p> | ||||
| <p>The DRI website has more information about writing hardware drivers. | ||||
| The process isn't well document because the Mesa driver interface changes | ||||
| over time, and we seldom have spare time for writing documentation. | ||||
| over time, and we seldome have spare time for writing documentation. | ||||
| That being said, many people have managed to figure out the process. | ||||
| </p> | ||||
| <p> | ||||
| @@ -390,7 +390,7 @@ The <a href="http://oss.sgi.com/projects/ogl-sample/registry/EXT/texture_compres | ||||
| indicates that there are intellectual property (IP) and/or patent issues | ||||
| to be dealt with. | ||||
| </p> | ||||
| <p>We've been unsuccessful in getting a response from S3 (or whoever owns | ||||
| <p>We've been unsucessful in getting a response from S3 (or whoever owns | ||||
| the IP nowadays) to indicate whether or not an open source project can | ||||
| implement the extension (specifically the compression/decompression | ||||
| algorithms). | ||||
|   | ||||
| @@ -16,81 +16,6 @@ | ||||
|  | ||||
| <h1>News</h1> | ||||
|  | ||||
| <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> | ||||
|  | ||||
| <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. | ||||
| This is a bug-fix release. | ||||
| </p> | ||||
|  | ||||
| <h2>December 12, 2013</h2> | ||||
| <p> | ||||
| <a href="relnotes/10.0.1.html">Mesa 10.0.1</a> | ||||
| and <a href="relnotes/9.2.5.html">Mesa 9.2.5</a> are released. | ||||
| These are both bug-fix releases. | ||||
| </p> | ||||
|  | ||||
| <h2>November 30, 2013</h2> | ||||
| <p> | ||||
| <a href="relnotes/10.0.html">Mesa 10.0</a> is released. | ||||
| This is a new development release. | ||||
| See the release notes for more information about the release. | ||||
| </p> | ||||
|  | ||||
| <h2>November 27, 2013</h2> | ||||
| <p> | ||||
| <a href="relnotes/9.2.4.html">Mesa 9.2.4</a> is released. | ||||
| This is a bug fix release. | ||||
| </p> | ||||
|  | ||||
| <h2>November 13, 2013</h2> | ||||
| <p> | ||||
| <a href="relnotes/9.2.3.html">Mesa 9.2.3</a> is released. | ||||
| This is a bug fix release. | ||||
| </p> | ||||
|  | ||||
| <h2>October 18, 2013</h2> | ||||
| <p> | ||||
| <a href="relnotes/9.2.2.html">Mesa 9.2.2</a> is released. | ||||
|   | ||||
| @@ -44,6 +44,10 @@ On Windows with MinGW, install flex and bison with: | ||||
| </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> | ||||
|  | ||||
|   | ||||
| @@ -103,9 +103,6 @@ Device drivers    src/mesa/drivers/*     MIT, generally | ||||
|  | ||||
| Ext headers       include/GL/glext.h     Khronos | ||||
|                   include/GL/glxext.h | ||||
|  | ||||
| C11 thread        include/c11/threads*.h Boost (permissive) | ||||
| emulation | ||||
| </pre> | ||||
|  | ||||
| <p> | ||||
|   | ||||
| @@ -203,66 +203,11 @@ for posterior analysis, e.g.: | ||||
|   We use LLVM-C bindings for now. They are not documented, but follow the C++ | ||||
|   interfaces very closely, and appear to be complete enough for code | ||||
|   generation. See  | ||||
|   <a href="http://npcontemplation.blogspot.com/2008/06/secret-of-llvm-c-bindings.html"> | ||||
|   this stand-alone example</a>.  See the llvm-c/Core.h file for reference. | ||||
|   http://npcontemplation.blogspot.com/2008/06/secret-of-llvm-c-bindings.html | ||||
|   for a stand-alone example.  See the llvm-c/Core.h file for reference. | ||||
| </li> | ||||
| </ul> | ||||
|  | ||||
| <h1 id="recommended_reading">Recommended Reading</h1> | ||||
|  | ||||
| <ul> | ||||
|   <li> | ||||
|     <p>Rasterization</p> | ||||
|     <ul> | ||||
|       <li><a href="http://www.cs.unc.edu/~olano/papers/2dh-tri/">Triangle Scan Conversion using 2D Homogeneous Coordinates</a></li> | ||||
|       <li><a href="http://www.drdobbs.com/parallel/rasterization-on-larrabee/217200602">Rasterization on Larrabee</a> (<a href="http://devmaster.net/posts/2887/rasterization-on-larrabee">DevMaster copy</a>)</li> | ||||
|       <li><a href="http://devmaster.net/posts/6133/rasterization-using-half-space-functions">Rasterization using half-space functions</a></li> | ||||
|       <li><a href="http://devmaster.net/posts/6145/advanced-rasterization">Advanced Rasterization</a></li> | ||||
|       <li><a href="http://fgiesen.wordpress.com/2013/02/17/optimizing-sw-occlusion-culling-index/">Optimizing Software Occlusion Culling</a></li> | ||||
|     </ul> | ||||
|   </li> | ||||
|   <li> | ||||
|     <p>Texture sampling</p> | ||||
|     <ul> | ||||
|       <li><a href="http://chrishecker.com/Miscellaneous_Technical_Articles#Perspective_Texture_Mapping">Perspective Texture Mapping</a></li> | ||||
|       <li><a href="http://www.flipcode.com/archives/Texturing_As_In_Unreal.shtml">Texturing As In Unreal</a></li> | ||||
|       <li><a href="http://www.gamasutra.com/view/feature/3301/runtime_mipmap_filtering.php">Run-Time MIP-Map Filtering</a></li> | ||||
|       <li><a href="http://alt.3dcenter.org/artikel/2003/10-26_a_english.php">Will "brilinear" filtering persist?</a></li> | ||||
|       <li><a href="http://ixbtlabs.com/articles2/gffx/nv40-rx800-3.html">Trilinear filtering</a></li> | ||||
|       <li><a href="http://devmaster.net/posts/12785/texture-swizzling">Texture Swizzling</a></li> | ||||
|     </ul> | ||||
|   </li> | ||||
|   <li> | ||||
|     <p>SIMD</p> | ||||
|     <ul> | ||||
|       <li><a href="http://www.cdl.uni-saarland.de/projects/wfv/#header4">Whole-Function Vectorization</a></li> | ||||
|     </ul> | ||||
|   </li> | ||||
|   <li> | ||||
|     <p>Optimization</p> | ||||
|     <ul> | ||||
|       <li><a href="http://www.drdobbs.com/optimizing-pixomatic-for-modern-x86-proc/184405807">Optimizing Pixomatic For Modern x86 Processors</a></li> | ||||
|       <li><a href="http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-optimization-manual.html">Intel 64 and IA-32 Architectures Optimization Reference Manual</a></li> | ||||
|       <li><a href="http://www.agner.org/optimize/">Software optimization resources</a></li> | ||||
|       <li><a href="http://software.intel.com/en-us/articles/intel-intrinsics-guide">Intel Intrinsics Guide</a><li> | ||||
|     </ul> | ||||
|   </li> | ||||
|   <li> | ||||
|     <p>LLVM</p> | ||||
|     <ul> | ||||
|       <li><a href="http://llvm.org/docs/LangRef.html">LLVM Language Reference Manual</a></li> | ||||
|       <li><a href="http://npcontemplation.blogspot.co.uk/2008/06/secret-of-llvm-c-bindings.html">The secret of LLVM C bindings</a></li> | ||||
|     </ul> | ||||
|   </li> | ||||
|   <li> | ||||
|     <p>General</p> | ||||
|     <ul> | ||||
|       <li><a href="http://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index/">A trip through the Graphics Pipeline</a></li> | ||||
|       <li><a href="http://msdn.microsoft.com/en-us/library/gg615082.aspx#architecture">WARP Architecture and Performance</a></li> | ||||
|     </ul> | ||||
|   </li> | ||||
| </ul> | ||||
|  | ||||
| </div> | ||||
| </body> | ||||
| </html> | ||||
|   | ||||
| @@ -16,7 +16,7 @@ | ||||
|  | ||||
| <h1>OpenGL ES</h1> | ||||
|  | ||||
| <p>Mesa implements OpenGL ES 1.1 and OpenGL ES 2.0.  More information about | ||||
| <p>Mesa implements OpenGL ES 1.1 and OpenGL ES 2.0.  More informations about | ||||
| OpenGL ES can be found at <a href="http://www.khronos.org/opengles/"> | ||||
| http://www.khronos.org/opengles/</a>.</p> | ||||
|  | ||||
| @@ -48,7 +48,7 @@ EGL drivers for your hardware.</p> | ||||
|  | ||||
| <h3>Dispatch Table</h3> | ||||
|  | ||||
| <p>OpenGL ES has an additional indirection when dispatching functions</p> | ||||
| <p>OpenGL ES has an additional indirection when dispatching fucntions</p> | ||||
|  | ||||
| <pre> | ||||
|   Mesa:       glFoo() --> _mesa_Foo() | ||||
|   | ||||
| @@ -20,7 +20,7 @@ | ||||
| The current version of the OpenVG state tracker implements OpenVG 1.1. | ||||
| </p> | ||||
| <p> | ||||
| More information about OpenVG can be found at | ||||
| More informations about OpenVG can be found at | ||||
| <a href="http://www.khronos.org/openvg/"> | ||||
| http://www.khronos.org/openvg/</a> . | ||||
| </p> | ||||
|   | ||||
| @@ -21,17 +21,7 @@ The release notes summarize what's new or changed in each Mesa release. | ||||
| </p> | ||||
|  | ||||
| <ul> | ||||
| <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> | ||||
| <li><a href="relnotes/9.2.5.html">9.2.5 release notes</a> | ||||
| <li><a href="relnotes/9.2.4.html">9.2.4 release notes</a> | ||||
| <li><a href="relnotes/9.2.3.html">9.2.3 release notes</a> | ||||
| <li><a href="relnotes/9.2.2.html">9.2.2 release notes</a> | ||||
| <li><a href="relnotes/9.2.1.html">9.2.1 release notes</a> | ||||
| <li><a href="relnotes/9.2.html">9.2 release notes</a> | ||||
|   | ||||
| @@ -1,150 +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.1 Release Notes / (December 12, 2013)</h1> | ||||
|  | ||||
| <p> | ||||
| Mesa 10.0.1 is a bug fix release which fixes bugs found since the 10.0 release. | ||||
| </p> | ||||
| <p> | ||||
| Mesa 10.0.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 not supported. | ||||
| </p> | ||||
|  | ||||
|  | ||||
| <h2>MD5 checksums</h2> | ||||
| <pre> | ||||
| 0a72ca5b36046a658bf6038326ff32ed  MesaLib-10.0.1.tar.bz2 | ||||
| 01bde35c912e504ba62caf1ef9f7022c  MesaLib-10.0.1.tar.gz | ||||
| 59a174a11a89e6b1b8ee9c3f7e3c388c  MesaLib-10.0.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=64323">Bug 64323</a> - Severe misrendering in Left 4 Dead 2</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=68838">Bug 68838</a> - GLSL: struct declarations produce a "empty declaration warning" in 9.2</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=69155">Bug 69155</a> - [NV50 gallium] [piglit] bin/varying-packing-simple triggers memory corruption/failures</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70250">Bug 70250</a> - weston-terminal rendering corrupted with output transform 90 and 270</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70601">Bug 70601</a> - [SNB Bisected]Piglit spec/ARB_texture_float/multisample-formats 2 GL_ARB_texture_float fails</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72230">Bug 72230</a> - Unable to extract MesaLib-10.0.0.tar.{gz,bz2} with bsdtar</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72325">Bug 72325</a> - [swrast] piglit glean fbo regression</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72327">Bug 72327</a> - [swrast] piglit glean pointSprite regression</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..mesa-10.0.1 | ||||
| </pre> | ||||
|  | ||||
| <p>Axel Davy (2):</p> | ||||
| <ul> | ||||
|   <li>egl/wayland: Flush the wl_display at the end of SwapBuffers</li> | ||||
|   <li>Enable throttling in SwapBuffers</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Chad Versace (2):</p> | ||||
| <ul> | ||||
|   <li>i965/hsw: Apply non-msrt fast color clear w/a to all HSW GTs</li> | ||||
|   <li>i965: Add extra-alignment for non-msrt fast color clear for all hw (v2)</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Dave Airlie (1):</p> | ||||
| <ul> | ||||
|   <li>swrast: fix readback regression since inversion fix</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Emil Velikov (1):</p> | ||||
| <ul> | ||||
|   <li>automake: include only one copy VERSION in tarball</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Ian Romanick (3):</p> | ||||
| <ul> | ||||
|   <li>docs: Add 10.0 release md5sums</li> | ||||
|   <li>Remove a057b83 from the pick list</li> | ||||
|   <li>glsl: Don't emit empty declaration warning for a struct specifier</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Ilia Mirkin (8):</p> | ||||
| <ul> | ||||
|   <li>mesa: don't leak performance monitors on context destroy</li> | ||||
|   <li>nv50: Fix GPU_READING/WRITING bit removal</li> | ||||
|   <li>nouveau: avoid leaking fences while waiting</li> | ||||
|   <li>nv50: wait on the buf's fence before sticking it into pushbuf</li> | ||||
|   <li>nv50: enable h264 and mpeg4 for nv98+ (vp3, vp4.0)</li> | ||||
|   <li>nouveau/video: update h264 picparm field names based on usage</li> | ||||
|   <li>nouveau/video: update a few more h264 picparm field names</li> | ||||
|   <li>nv50: report 15 max inputs for fragment programs</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Jordan Justen (1):</p> | ||||
| <ul> | ||||
|   <li>dri megadriver_stub: add compatibility for older DRI loaders</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Kristian Høgsberg (2):</p> | ||||
| <ul> | ||||
|   <li>egl/wayland: Damage INT32_MAX x INT32_MAX region for eglSwapBuffers</li> | ||||
|   <li>egl/wayland: Send commit after flushing the driver context</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Maarten Lankhorst (1):</p> | ||||
| <ul> | ||||
|   <li>nouveau: Fix compiler warning regression</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Paul Berry (1):</p> | ||||
| <ul> | ||||
|   <li>i965/gen6: Fix multisample resolve blits for luminance/intensity 32F formats.</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Thomas Hellstrom (1):</p> | ||||
| <ul> | ||||
|   <li>st/xa: Bump major version number to 2</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Tom Stellard (2):</p> | ||||
| <ul> | ||||
|   <li>r300/compiler/tests: Fix segfault</li> | ||||
|   <li>r300/compiler/tests: Fix line length check in test parser</li> | ||||
| </ul> | ||||
|  | ||||
| </div> | ||||
| </body> | ||||
| </html> | ||||
| @@ -1,161 +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.2 Release Notes / (January 9, 2014)</h1> | ||||
|  | ||||
| <p> | ||||
| Mesa 10.0.2 is a bug fix release which fixes bugs found since the 10.0.1 release. | ||||
| </p> | ||||
| <p> | ||||
| Mesa 10.0.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 not supported. | ||||
| </p> | ||||
|  | ||||
|  | ||||
| <h2>MD5 checksums</h2> | ||||
| <pre> | ||||
| de7d14baf0101b697c140d2f47ef27e9  MesaLib-10.0.2.tar.gz | ||||
| 8544c0ab3e438a08b5103421ea15b6d2  MesaLib-10.0.2.tar.bz2 | ||||
| 181b0d6c1afca38e98a930d0e564ed90  MesaLib-10.0.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=70740">Bug 70740</a> - HiZ on SNB causes GPU hang with WebGL web app</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72026">Bug 72026</a> - SIGSEGV in fs_visitor::visit(ir_dereference_variable*)</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72264">Bug 72264</a> - GLSL error reporting</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72369">Bug 72369</a> - glitches in serious sam 3 with the sb shader backend</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.1..mesa-10.0.2 | ||||
| </pre> | ||||
|  | ||||
| <p>Aaron Watry (8):</p> | ||||
| <ul> | ||||
|   <li>clover: Remove unused variable</li> | ||||
|   <li>pipe_loader/sw: close dev->lib when initialization fails</li> | ||||
|   <li>radeon/compute: Stop leaking LLVMContexts in radeon_llvm_parse_bitcode</li> | ||||
|   <li>r600/compute: Free compiled kernels when deleting compute state</li> | ||||
|   <li>r600/compute: Use the correct FREE macro when deleting compute state</li> | ||||
|   <li>radeon/llvm: Free target data at end of optimization</li> | ||||
|   <li>st/vdpau: Destroy context when initialization fails</li> | ||||
|   <li>r600/pipe: Stop leaking context->start_compute_cs_cmd.buf on EG/CM</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Alex Deucher (1):</p> | ||||
| <ul> | ||||
|   <li>r600g: fix SUMO2 pci id</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Alexander von Gluck IV (1):</p> | ||||
| <ul> | ||||
|   <li>Haiku: Add in public GL kit headers</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Anuj Phogat (1):</p> | ||||
| <ul> | ||||
|   <li>mesa: Fix error code generation in glBeginConditionalRender()</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Carl Worth (2):</p> | ||||
| <ul> | ||||
|   <li>docs: Add md5sums for the 10.0.1 release.</li> | ||||
|   <li>Update version to 10.0.2</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Chad Versace (1):</p> | ||||
| <ul> | ||||
|   <li>i965/gen6: Fix HiZ hang in WebGL Google Maps</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Erik Faye-Lund (1):</p> | ||||
| <ul> | ||||
|   <li>glcpp: error on multiple #else/#elif directives</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Henri Verbeet (1):</p> | ||||
| <ul> | ||||
|   <li>i915: Add support for gl_FragData[0] reads.</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Ilia Mirkin (1):</p> | ||||
| <ul> | ||||
|   <li>nv50: fix a small leak on context destroy</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Jonathan Liu (2):</p> | ||||
| <ul> | ||||
|   <li>st/mesa: use pipe_sampler_view_release()</li> | ||||
|   <li>llvmpipe: use pipe_sampler_view_release() to avoid segfault</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Kenneth Graunke (2):</p> | ||||
| <ul> | ||||
|   <li>i965: Fix 3DSTATE_PUSH_CONSTANT_ALLOC_PS packet creation.</li> | ||||
|   <li>Revert "mesa: Remove GLXContextID typedef from glx.h."</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Kevin Rogovin (1):</p> | ||||
| <ul> | ||||
|   <li>Use line number information from entire function expression</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Kristian Høgsberg (1):</p> | ||||
| <ul> | ||||
|   <li>dri_util: Don't assume __DRIcontext->driverPrivate is a gl_context</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Marek Olšák (2):</p> | ||||
| <ul> | ||||
|   <li>mesa: fix interpretation of glClearBuffer(drawbuffer)</li> | ||||
|   <li>st/mesa: fix glClear with multiple colorbuffers and different formats</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Paul Berry (2):</p> | ||||
| <ul> | ||||
|   <li>glsl: Teach ir_variable_refcount about ir_loop::counter variables.</li> | ||||
|   <li>glsl: Fix inconsistent assumptions about ir_loop::counter.</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Vadim Girlin (1):</p> | ||||
| <ul> | ||||
|   <li>r600g/sb: fix stack size computation on evergreen</li> | ||||
| </ul> | ||||
|  | ||||
| </div> | ||||
| </body> | ||||
| </html> | ||||
| @@ -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.0 Release Notes / (November 30th, 2013)</h1> | ||||
| <h1>Mesa 10.0 Release Notes / TBD</h1> | ||||
|  | ||||
| <p> | ||||
| Mesa 10.0 is a new development release. | ||||
| @@ -33,9 +33,7 @@ because compatibility contexts are not supported. | ||||
|  | ||||
| <h2>MD5 checksums</h2> | ||||
| <pre> | ||||
| b38626b96c664db67a534d7859682436  MesaLib-10.0.0.tar.gz | ||||
| f3fe55d9735bea158bbe97ed9a0da819  MesaLib-10.0.0.tar.bz2 | ||||
| c6ee1ce51e3bf35947d2978b872daf51  MesaLib-10.0.0.zip | ||||
| TBD. | ||||
| </pre> | ||||
|  | ||||
|  | ||||
| @@ -57,89 +55,16 @@ Note: some of the new features are only available with certain drivers. | ||||
| <li>GL_ARB_vertex_attrib_binding</li> | ||||
| <li>GL_ARB_vertex_type_10f_11f_11f_rev on i965 and r600g</li> | ||||
| <li>GL_KHR_debug</li> | ||||
| <li>GLX_MESA_query_renderer</li> | ||||
| </ul> | ||||
|  | ||||
|  | ||||
| <h2>Bug fixes</h2> | ||||
|  | ||||
| <p>Attempts have been made to <b>not</b> include bugs fixed in previous 9.2 | ||||
| releases or bugs that were regressions during 10.0 development. This list is | ||||
| likely incomplete.</p> | ||||
|  | ||||
| <ul> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=47755">Bug 47755</a> - [glsl-compiler] no error checking when Interpolation qualifier for built-in variable is different in vertex and fragment shader</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=52171">Bug 52171</a> - [gallium/r600/clover] Simple benchmarks failed to run</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=53077">Bug 53077</a> - [IVB] Output error with msaa when both of framebuffer and source color's alpha are not 1</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=54867">Bug 54867</a> - bug in r300 compiler</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=60929">Bug 60929</a> - [r600-llvm] mono games with opengl are blocking on start</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=62142">Bug 62142</a> - Mesa/demo mipmap_limits upside down with running by SOFTWARE</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=62698">Bug 62698</a> - [bisected] WebGL demo "Consumed": texstate.c:628: update_texture_state: Assertion „__builtin_popcount(enabledTargets) == 1“ failed.</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=64225">Bug 64225</a> - bfgminer --scyte generates Segmentation Fault on Northern Island</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=64226">Bug 64226</a> - python-opencl package generate segmentation fault at pipe_r600.so</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=64261">Bug 64261</a> - [SNB Bisected]Ogles3conform GL3Tests_color_buffer_float_color_buffer_float_clamp_fixed.test fail</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=66213">Bug 66213</a> - Certain Mesa Demos Rendering Inverted (vertically)</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=66806">Bug 66806</a> - [softpipe] glxgears floating point exception</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=67921">Bug 67921</a> - [bisected commit 883987] crosscompiling fails with util/u_cpu_detect.c:247:4: error: 'asm' undeclared (first use in this function)</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=68162">Bug 68162</a> - [radeonsi] texture rendering is broken in Source-Engine games</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=68451">Bug 68451</a> - Texture flicker in native Dota2 in mesa 9.2.0rc1</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=68503">Bug 68503</a> - Graphical glitches in Serious Sam 3 when SB is enabled</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=68792">Bug 68792</a> - Problems during playback of h264 files using UVD and VLC on AMD E-350 CPU</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=68845">Bug 68845</a> - VDPAU/UVD regression</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=69078">Bug 69078</a> - Modern Warfare (1, 2 and 3) broken in Wine on SNB</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=69321">Bug 69321</a> - starting openCL crashes/boots system</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70042">Bug 70042</a> - Major texture flickering in Dota 2 (r600g on HD 6950)</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70088">Bug 70088</a> - Glamor on r600g crashes Xserver</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70123">Bug 70123</a> - Freeze caused by 'winsys/radeon: remove cs_queue_empty' commit</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70327">Bug 70327</a> - Casting floating point variable to integer not working properly while constant gets converted properly</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70891">Bug 70891</a> - CL_INVALID_BUILD_OPTIONS results in CL_INVALID_DEVICE when asking for build log</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=70913">Bug 70913</a> - [PIGLIT,radeonsi] crash in "spec/EXT_framebuffer_multisample/sample-alpha-to-coverage 4 depth" (buffer overflow)</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=71022">Bug 71022</a> - configure: error: Expat required for DRI.</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=71110">Bug 71110</a> - xorg_driver.c:1030:2: error: too many arguments to function ‘DamageUnregister’</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=71172">Bug 71172</a> - Segfault when running glxinfo. NV25GL [Quadro4 900 XGL]</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=71512">Bug 71512</a> - dlopen.h:54: undefined reference to `dlopen'</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=71870">Bug 71870</a> - Metro: Last Light rendering issues</li> | ||||
|  | ||||
| </ul> | ||||
| TBD. | ||||
|  | ||||
| <h2>Changes</h2> | ||||
|  | ||||
| <ul> | ||||
| <li>Removed X.Org state tracker (unmaintained and broken)</li> | ||||
| <li>Removed the video-accel r300 targets</li> | ||||
| <li>Removed the video-accel softpipe targets</li> | ||||
| </ul> | ||||
| TBD. | ||||
|  | ||||
| </div> | ||||
| </body> | ||||
|   | ||||
| @@ -1,254 +0,0 @@ | ||||
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|   <meta http-equiv="content-type" content="text/html; charset=utf-8"> | ||||
|   <title>Mesa Release Notes</title> | ||||
|   <link rel="stylesheet" type="text/css" href="../mesa.css"> | ||||
| </head> | ||||
| <body> | ||||
|  | ||||
| <div class="header"> | ||||
|   <h1>The Mesa 3D Graphics Library</h1> | ||||
| </div> | ||||
|  | ||||
| <iframe src="../contents.html"></iframe> | ||||
| <div class="content"> | ||||
|  | ||||
| <h1>Mesa 10.1.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. | ||||
| </p> | ||||
| <p> | ||||
| Mesa 10.1.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> | ||||
| 96e63674ccfa98e7ec6eb4fee3f770c3  MesaLib-10.1.1.tar.gz | ||||
| 1fde7ed079df7aeb9b6a744ca033de8d  MesaLib-10.1.1.tar.bz2 | ||||
| e64d0a562638664b13d2edf22321df59  MesaLib-10.1.1.zip | ||||
| </pre> | ||||
|  | ||||
|  | ||||
| <h2>New features</h2> | ||||
| <p>None</p> | ||||
|  | ||||
| <h2>Bug fixes</h2> | ||||
|  | ||||
| <ul> | ||||
|  | ||||
| <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=74868">Bug 74868</a> - r600g: Diablo III Crashes After a few minutes</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=75543">Bug 75543</a> - OSMesa Gallium OSMesaMakeCurrent</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=75660">Bug 75660</a> - u_inlines.h:277:pipe_buffer_map_range: Assertion `length' failed.</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=76323">Bug 76323</a> - GLSL compiler ignores layout(binding=N) on uniform blocks</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=76377">Bug 76377</a> - DRI3 should only be enabled on Linux due to a udev dependency</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=76749">Bug 76749</a> - [HSW] DOTA world lighting has no effect</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>Aaron Watry (1):</p> | ||||
| <ul> | ||||
|   <li>gallium/util: Fix memory leak</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Alexander von Gluck IV (1):</p> | ||||
| <ul> | ||||
|   <li>haiku: Fix build through scons corrections and viewport fixes</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Anuj Phogat (2):</p> | ||||
| <ul> | ||||
|   <li>mesa: Set initial internal format of a texture to GL_RGBA</li> | ||||
|   <li>mesa: Allow GL_DEPTH_COMPONENT and GL_DEPTH_STENCIL combinations in glTexImage{123}D()</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Brian Paul (12):</p> | ||||
| <ul> | ||||
|   <li>softpipe: use 64-bit arithmetic in softpipe_resource_layout()</li> | ||||
|   <li>mesa: don't call ctx->Driver.ClearBufferSubData() if size==0</li> | ||||
|   <li>st/osmesa: check buffer size when searching for buffers</li> | ||||
|   <li>mesa: fix copy & paste bugs in pack_ubyte_SARGB8()</li> | ||||
|   <li>mesa: fix copy & paste bugs in pack_ubyte_SRGB8()</li> | ||||
|   <li>c11/threads: don't include assert.h if the assert macro is already defined</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>cherry-ignore: Ignore a few patches</li> | ||||
|   <li>glsl: Allow explicit binding on atomics again</li> | ||||
|   <li>Update VERSION to 10.1.1</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Chia-I Wu (1):</p> | ||||
| <ul> | ||||
|   <li>i965/vec4: fix record clearing in copy propagation</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 (5):</p> | ||||
| <ul> | ||||
|   <li>nv50: add missing brackets when handling the samplers array</li> | ||||
|   <li>mesa: return v.value_int64 when the requested type is TYPE_INT64</li> | ||||
|   <li>configure: enable dri3 only for linux</li> | ||||
|   <li>glx: drop obsolete _XUnlock_Mutex in __glXInitialize error path</li> | ||||
|   <li>configure: cleanup libudev handling</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Eric Anholt (1):</p> | ||||
| <ul> | ||||
|   <li>i965: Fix buffer overruns in MSAA MCS buffer clearing.</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 (7):</p> | ||||
| <ul> | ||||
|   <li>linker: Split set_uniform_binding into separate functions for blocks and samplers</li> | ||||
|   <li>linker: Various trivial clean-ups in set_sampler_binding</li> | ||||
|   <li>linker: Fold set_uniform_binding into call site</li> | ||||
|   <li>linker: Clean up "unused parameter" warnings</li> | ||||
|   <li>linker: Set block bindings based on UniformBlocks rather than UniformStorage</li> | ||||
|   <li>linker: Set binding for all elements of UBO array</li> | ||||
|   <li>glsl: Propagate explicit binding information from the AST all the way to the linker</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Ilia Mirkin (8):</p> | ||||
| <ul> | ||||
|   <li>nouveau: fix fence waiting logic in screen destroy</li> | ||||
|   <li>nv50: adjust blit_3d handling of ms output textures</li> | ||||
|   <li>loader: add special logic to distinguish nouveau from nouveau_vieux</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>nvc0/ir: move sample id to second source arg to fix sampler2DMS</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 (7):</p> | ||||
| <ul> | ||||
|   <li>gallium: add endian detection for OpenBSD</li> | ||||
|   <li>loader: use 0 instead of FALSE which isn't defined</li> | ||||
|   <li>loader: don't limit the non-udev path to only android</li> | ||||
|   <li>megadriver_stub.c: don't use _GNU_SOURCE to gate the compat code</li> | ||||
|   <li>egl/dri2: don't require libudev to build drm/wayland platforms</li> | ||||
|   <li>egl/dri2: use drm macros to construct device name</li> | ||||
|   <li>configure: don't require libudev for gbm or egl drm/wayland</li> | ||||
| </ul> | ||||
|  | ||||
| <p>José Fonseca (4):</p> | ||||
| <ul> | ||||
|   <li>c11/threads: Fix nano to milisecond conversion.</li> | ||||
|   <li>mapi/u_thread: Use GetCurrentThreadId</li> | ||||
|   <li>c11/threads: Don't implement thrd_current on Windows.</li> | ||||
|   <li>draw: Duplicate TGSI tokens in draw_pipe_pstipple module.</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Kenneth Graunke (4):</p> | ||||
| <ul> | ||||
|   <li>i965/fs: Fix register comparisons in saturate propagation.</li> | ||||
|   <li>glsl: Fix lack of i2u in lower_ubo_reference.</li> | ||||
|   <li>i965: Stop advertising GL_MESA_ycbcr_texture.</li> | ||||
|   <li>glsl: Try vectorizing when seeing a repeated assignment to a channel.</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Marek Olšák (13):</p> | ||||
| <ul> | ||||
|   <li>r600g: fix texelFetchOffset GLSL functions</li> | ||||
|   <li>r600g: fix blitting the last 2 mipmap levels for Evergreen</li> | ||||
|   <li>mesa: fix the format of glEdgeFlagPointer</li> | ||||
|   <li>r600g,radeonsi: fix MAX_TEXTURE_3D_LEVELS and MAX_TEXTURE_ARRAY_LAYERS limits</li> | ||||
|   <li>st/mesa: fix per-vertex edge flags and GLSL support (v2)</li> | ||||
|   <li>mesa: mark GL_RGB9_E5 as not color-renderable</li> | ||||
|   <li>mesa: fix texture border handling for cube arrays</li> | ||||
|   <li>mesa: allow generating mipmaps for cube arrays</li> | ||||
|   <li>mesa: fix software fallback for generating mipmaps for cube arrays</li> | ||||
|   <li>mesa: fix software fallback for generating mipmaps for 3D textures</li> | ||||
|   <li>st/mesa: fix generating mipmaps for cube arrays</li> | ||||
|   <li>st/mesa: drop the lowering of quad strips to triangle strips</li> | ||||
|   <li>r600g: implement edge flags</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Matt Turner (4):</p> | ||||
| <ul> | ||||
|   <li>mesa: Wrap SSE4.1 code in #ifdef __SSE4_1__.</li> | ||||
|   <li>i965/fs: Fix off-by-one in saturate propagation.</li> | ||||
|   <li>i965/fs: Don't propagate saturate modifiers into partial writes.</li> | ||||
|   <li>i965/fs: Don't propagate saturation modifiers if there are source modifiers.</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Michel Dänzer (1):</p> | ||||
| <ul> | ||||
|   <li>r600g: Don't leak bytecode on shader compile failure</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Mike Stroyan (1):</p> | ||||
| <ul> | ||||
|   <li>i965: Avoid dependency hints on math opcodes</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Thomas Hellstrom (5):</p> | ||||
| <ul> | ||||
|   <li>winsys/svga: Replace the query mm buffer pool with a slab pool v3</li> | ||||
|   <li>winsys/svga: Update the vmwgfx_drm.h header to latest version from kernel</li> | ||||
|   <li>winsys/svga: Fix prime surface references also for guest-backed surfaces</li> | ||||
|   <li>st/xa: Bind destination before setting new state</li> | ||||
|   <li>st/xa: Make sure unused samplers are set to NULL</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Tom Stellard (1):</p> | ||||
| <ul> | ||||
|   <li>configure: Use LLVM shared libraries by default</li> | ||||
| </ul> | ||||
|  | ||||
| </div> | ||||
| </body> | ||||
| </html> | ||||
| @@ -1,75 +0,0 @@ | ||||
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|   <meta http-equiv="content-type" content="text/html; charset=utf-8"> | ||||
|   <title>Mesa Release Notes</title> | ||||
|   <link rel="stylesheet" type="text/css" href="../mesa.css"> | ||||
| </head> | ||||
| <body> | ||||
|  | ||||
| <div class="header"> | ||||
|   <h1>The Mesa 3D Graphics Library</h1> | ||||
| </div> | ||||
|  | ||||
| <iframe src="../contents.html"></iframe> | ||||
| <div class="content"> | ||||
|  | ||||
| <h1>Mesa 10.1 Release Notes / March 4, 2014</h1> | ||||
|  | ||||
| <p> | ||||
| Mesa 10.1 is a new development release. | ||||
| People who are concerned with stability and reliability should stick | ||||
| with a previous release or wait for Mesa 10.1.1. | ||||
| </p> | ||||
| <p> | ||||
| Mesa 10.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> | ||||
| 3ec43f79dbcd9aa2a4a27bf1f51655b6  MesaLib-10.1.0.tar.bz2 | ||||
| 08e796ec7122aa299d32d4f67a254315  MesaLib-10.1.0.tar.gz | ||||
| bd365356543f4b38e57c1ddf7a317c40  MesaLib-10.1.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_draw_indirect on i965.</li> | ||||
| <li>GL_ARB_clear_buffer_object</li> | ||||
| <li>GL_ARB_viewport_array on i965.</li> | ||||
| <li>GL_ARB_map_buffer_alignment on all drivers that did not previously support | ||||
| it.</li> | ||||
| <li>GL_AMD_shader_trinary_minmax.</li> | ||||
| <li>GL_EXT_framebuffer_blit on r200 and radeon.</li> | ||||
| <li>Reduced memory usage for display lists.</li> | ||||
| <li>OpenGL 3.3 support on nv50, nvc0, r600 and radeonsi</li> | ||||
| </ul> | ||||
|  | ||||
|  | ||||
| <h2>Bug fixes</h2> | ||||
|  | ||||
| TBD. | ||||
|  | ||||
| <h2>Changes</h2> | ||||
|  | ||||
| <ul> | ||||
| <li>Removed support for the GL_MESA_texture_array extension.  This extension | ||||
|   enabled the use of texture array with fixed-function and assembly fragment | ||||
|   shaders.  No applications are known to use this extension.</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,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 9.2.3 Release Notes / (November 13, 2013)</h1> | ||||
|  | ||||
| <p> | ||||
| Mesa 9.2.3 is a bug fix release which fixes bugs found since the 9.2.2 release. | ||||
| </p> | ||||
| <p> | ||||
| Mesa 9.2 implements the OpenGL 3.1 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.1.  OpenGL | ||||
| 3.1 is <strong>only</strong> available if requested at context creation | ||||
| because GL_ARB_compatibility is not supported. | ||||
| </p> | ||||
|  | ||||
|  | ||||
| <h2>MD5 checksums</h2> | ||||
| <pre> | ||||
| 66e9a33a414f801e1c33398bf627d56b  MesaLib-9.2.3.tar.gz | ||||
| f56b6beb556e4b9072814419f7c554e3  MesaLib-9.2.3.tar.bz2 | ||||
| ed852dab576faac237ac4298bf55d0a1  MesaLib-9.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=69437">Bug 69437</a> - Composite Bypass no longer works</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-9.2.2..mesa-9.2.3 | ||||
| </pre> | ||||
|  | ||||
| <p>Brian Paul (2):</p> | ||||
| <ul> | ||||
|   <li>st/mesa: move out of memory check in st_draw_vbo()</li> | ||||
|   <li>osmesa: fix broken triangle/line drawing when using float color buffer</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Carl Worth (7):</p> | ||||
| <ul> | ||||
|   <li>Remove error when calling glGenQueries/glDeleteQueries while a query is active</li> | ||||
|   <li>Bump version to 9.2.3</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Daniel Vetter (1):</p> | ||||
| <ul> | ||||
|   <li>i965: CS writes/reads should use I915_GEM_INSTRUCTION</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Eric Anholt (1):</p> | ||||
| <ul> | ||||
|   <li>i965: Fix texture buffer rendering after a whole buffer replacement.</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Kenneth Graunke (6):</p> | ||||
| <ul> | ||||
|   <li>i965: Emit post-sync non-zero flush before 3DSTATE_GS_SVB_INDEX.</li> | ||||
|   <li>i965: Emit post-sync non-zero flush before 3DSTATE_DRAWING_RECTANGLE.</li> | ||||
|   <li>i965: Also guard 3DSTATE_DRAWING_RECTANGLE with a flush in blorp.</li> | ||||
|   <li>i965: Move post-sync non-zero flush for 3DSTATE_MULTISAMPLE.</li> | ||||
|   <li>i965: Also emit HIER_DEPTH and STENCIL packets when disabling depth.</li> | ||||
|   <li>i965: Also emit HiZ and Stencil packets when disabling depth on Gen6.</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Kristian Høgsberg (1):</p> | ||||
| <ul> | ||||
|   <li>wayland: Don't rely on static variable for identifying wl_drm buffers</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Marek Olšák (1):</p> | ||||
| <ul> | ||||
|   <li>radeonsi: fix blitting the last 2 mipmap levels of compressed textures</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Petr Sebor (1):</p> | ||||
| <ul> | ||||
|   <li>meta: enable vertex attributes in the context of the newly created array object</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Scott Graham (1):</p> | ||||
| <ul> | ||||
|   <li>mesa: fixes for MSVC 2013</li> | ||||
| </ul> | ||||
|  | ||||
| </div> | ||||
| </body> | ||||
| </html> | ||||
| @@ -1,102 +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 9.2.4 Release Notes / (November 27, 2013)</h1> | ||||
|  | ||||
| <p> | ||||
| Mesa 9.2.4 is a bug fix release which fixes bugs found since the 9.2.3 release. | ||||
| </p> | ||||
| <p> | ||||
| Mesa 9.2 implements the OpenGL 3.1 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.1.  OpenGL | ||||
| 3.1 is <strong>only</strong> available if requested at context creation | ||||
| because GL_ARB_compatibility is not supported. | ||||
| </p> | ||||
|  | ||||
|  | ||||
| <h2>MD5 checksums</h2> | ||||
| <pre> | ||||
| 28190b831b0271d69dbc44b2686eab1c  MesaLib-9.2.4.tar.gz | ||||
| e630c0a307cec4f0f70ddd029d2fe084  MesaLib-9.2.4.tar.bz2 | ||||
| 8ef5e1e92e1d30fbedec31f716a7619e  MesaLib-9.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=53077">Bug 53077</a> - [IVB] Output error with msaa when both of framebuffer and source color's alpha are not 1</li> | ||||
|  | ||||
| <li>Fix freedreno to compile with recent libdrm.</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-9.2.3..mesa-9.2.4 | ||||
| </pre> | ||||
|  | ||||
| <p>Brian Paul (1):</p> | ||||
| <ul> | ||||
|   <li>st/mesa: fix GL_FEEDBACK mode inverted Y coordinate bug</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Paul Berry (2):</p> | ||||
| <ul> | ||||
|   <li>i965: Fix vertical alignment for multisampled buffers.</li> | ||||
|   <li>glsl: Fix lowering of direct assignment in lower_clip_distance.</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Rob Clark (17):</p> | ||||
| <ul> | ||||
|   <li>freedreno/a3xx: fix color inversion on mem->gmem restore</li> | ||||
|   <li>freedreno/a3xx: fix viewport on gmem->mem resolve</li> | ||||
|   <li>freedreno: add debug option to disable scissor optimization</li> | ||||
|   <li>freedreno: update register headers</li> | ||||
|   <li>freedreno/a3xx: some texture fixes</li> | ||||
|   <li>freedreno/a3xx/compiler: fix CMP</li> | ||||
|   <li>freedreno/a3xx/compiler: handle saturate on dst</li> | ||||
|   <li>freedreno/a3xx/compiler: use max_reg rather than file_count</li> | ||||
|   <li>freedreno/a3xx/compiler: cat4 cannot use const reg as src</li> | ||||
|   <li>freedreno: fix segfault when no color buffer bound</li> | ||||
|   <li>freedreno/a3xx/compiler: make compiler errors more useful</li> | ||||
|   <li>freedreno/a3xx/compiler: bit of re-arrange/cleanup</li> | ||||
|   <li>freedreno/a3xx/compiler: fix SGT/SLT/etc</li> | ||||
|   <li>freedreno/a3xx: don't leak so much</li> | ||||
|   <li>freedreno/a3xx/compiler: better const handling</li> | ||||
|   <li>freedreno/a3xx/compiler: handle sync flags better</li> | ||||
|   <li>freedreno: updates for msm drm/kms driver</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Tapani Pälli (1):</p> | ||||
| <ul> | ||||
|   <li>mesa: enable GL_TEXTURE_LOD_BIAS set/get</li> | ||||
| </ul> | ||||
|  | ||||
| </div> | ||||
| </body> | ||||
| </html> | ||||
| @@ -1,120 +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 9.2.5 Release Notes / (December 12, 2013)</h1> | ||||
|  | ||||
| <p> | ||||
| Mesa 9.2.5 is a bug fix release which fixes bugs found since the 9.2.4 release. | ||||
| </p> | ||||
| <p> | ||||
| Mesa 9.2 implements the OpenGL 3.1 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.1.  OpenGL | ||||
| 3.1 is <strong>only</strong> available if requested at context creation | ||||
| because GL_ARB_compatibility is not supported. | ||||
| </p> | ||||
|  | ||||
|  | ||||
| <h2>MD5 checksums</h2> | ||||
| <pre> | ||||
| 9fb4de29ca1d9cfd03cbdefa123ba336  MesaLib-9.2.5.tar.bz2 | ||||
| 1146c7c332767174f3de782b88d8e8ca  MesaLib-9.2.5.tar.gz | ||||
| a9a6c46dac7ea26fd272bf14894d95f3  MesaLib-9.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=62142">Bug 62142</a> - Mesa/demo mipmap_limits upside down with running by SOFTWARE</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=64323">Bug 64323</a> - Severe misrendering in Left 4 Dead 2</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=66213">Bug 66213</a> - Certain Mesa Demos Rendering Inverted (vertically)</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=68838">Bug 68838</a> - GLSL: struct declarations produce a "empty declaration warning" in 9.2</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=69155">Bug 69155</a> - [NV50 gallium] [piglit] bin/varying-packing-simple triggers memory corruption/failures</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72325">Bug 72325</a> - [swrast] piglit glean fbo regression</li> | ||||
|  | ||||
| <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=72327">Bug 72327</a> - [swrast] piglit glean pointSprite regression</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-9.2.4..mesa-9.2.5 | ||||
| </pre> | ||||
|  | ||||
| <p>Chad Versace (2):</p> | ||||
| <ul> | ||||
|   <li>i965/hsw: Apply non-msrt fast color clear w/a to all HSW GTs</li> | ||||
|   <li>i965: Add extra-alignment for non-msrt fast color clear for all hw (v2)</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Chris Forbes (4):</p> | ||||
| <ul> | ||||
|   <li>i965: Gen4-5: Don't enable hardware alpha test with MRT</li> | ||||
|   <li>i965: Gen4-5: Include alpha func/ref in program key</li> | ||||
|   <li>i965/fs: Gen4-5: Setup discard masks for MRT alpha test</li> | ||||
|   <li>i965/fs: Gen4-5: Implement alpha test in shader for MRT</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Chí-Thanh Christopher Nguyễn (1):</p> | ||||
| <ul> | ||||
|   <li>st/xorg: Handle new DamageUnregister API which has only one argument</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Dave Airlie (3):</p> | ||||
| <ul> | ||||
|   <li>mesa/swrast: fix inverted front buffer rendering with old-school swrast</li> | ||||
|   <li>glx: don't fail out when no configs if we have visuals</li> | ||||
|   <li>swrast: fix readback regression since inversion fix</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Ian Romanick (1):</p> | ||||
| <ul> | ||||
|   <li>glsl: Don't emit empty declaration warning for a struct specifier</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Ilia Mirkin (4):</p> | ||||
| <ul> | ||||
|   <li>nv50: Fix GPU_READING/WRITING bit removal</li> | ||||
|   <li>nouveau: avoid leaking fences while waiting</li> | ||||
|   <li>nv50: wait on the buf's fence before sticking it into pushbuf</li> | ||||
|   <li>nv50: report 15 max inputs for fragment programs</li> | ||||
| </ul> | ||||
|  | ||||
| <p>Tom Stellard (2):</p> | ||||
| <ul> | ||||
|   <li>r300/compiler/tests: Fix segfault</li> | ||||
|   <li>r300/compiler/tests: Fix line length check in test parser</li> | ||||
| </ul> | ||||
|  | ||||
| </div> | ||||
| </body> | ||||
| </html> | ||||
| @@ -156,7 +156,7 @@ each time you do a pull. | ||||
| </p> | ||||
| <li>Small changes to master | ||||
| <p> | ||||
| If you are an experienced git user working on substantial modifications, | ||||
| If you are an experienced git user working on substancial modifications, | ||||
| you are probably | ||||
| working on a separate branch and would rebase your branch prior to | ||||
| merging with master. | ||||
|   | ||||
| @@ -67,7 +67,7 @@ Example:  export MESA_GLSL=dump,nopt | ||||
| <h2 id="support">GLSL Version</h2> | ||||
|  | ||||
| <p> | ||||
| The GLSL compiler currently supports version 3.30 of the shading language. | ||||
| The GLSL compiler currently supports version 1.40 of the shading language. | ||||
| </p> | ||||
|  | ||||
| <p> | ||||
| @@ -234,7 +234,7 @@ This option is only relevant if EmitHighLevelInstructions is set. | ||||
|  | ||||
| <dt>EmitComments</dt> | ||||
| <dd> | ||||
| If set, instructions will be annotated with comments to help with debugging. | ||||
| If set, instructions will be annoted with comments to help with debugging. | ||||
| Extra NOP instructions will also be inserted. | ||||
| </dd> | ||||
| </dl> | ||||
|   | ||||
| @@ -123,7 +123,7 @@ each directory. | ||||
|           Currently there's run-time code generation for x86/SSE, PowerPC | ||||
|           and Cell SPU. | ||||
|       <li><b>tgsi</b> - TG Shader Infrastructure.  Code for encoding, | ||||
|           manipulating and interpreting GPU programs. | ||||
|           manipulating and interpretting GPU programs. | ||||
|       <li><b>translate</b> - module for translating vertex data from one format | ||||
|           to another. | ||||
|       <li><b>util</b> - assorted utilities for arithmetic, hashing, surface | ||||
|   | ||||
| @@ -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. | ||||
|   | ||||
| @@ -16,7 +16,7 @@ IP Status | ||||
|  | ||||
| Status | ||||
|  | ||||
|     DEPRECATED - Support removed in Mesa 10.1. | ||||
|     Shipping in Mesa 7.1 | ||||
|  | ||||
| Version | ||||
|  | ||||
|   | ||||
| @@ -1,101 +0,0 @@ | ||||
| Name | ||||
|  | ||||
|     WL_create_wayland_buffer_from_image | ||||
|  | ||||
| Name Strings | ||||
|  | ||||
|     EGL_WL_create_wayland_buffer_from_image | ||||
|  | ||||
| Contributors | ||||
|  | ||||
|     Neil Roberts | ||||
|     Axel Davy | ||||
|     Daniel Stone | ||||
|  | ||||
| Contact | ||||
|  | ||||
|     Neil Roberts <neil.s.roberts@intel.com> | ||||
|  | ||||
| Status | ||||
|  | ||||
|     Proposal | ||||
|  | ||||
| Version | ||||
|  | ||||
|     Version 2, October 25, 2013 | ||||
|  | ||||
| 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. | ||||
|  | ||||
|     EGL_KHR_base_image is required. | ||||
|  | ||||
| Overview | ||||
|  | ||||
|     This extension provides an entry point to create a wl_buffer which shares | ||||
|     its contents with a given EGLImage. The expected use case for this is in a | ||||
|     nested Wayland compositor which is using subsurfaces to present buffers | ||||
|     from its clients. Using this extension it can attach the client buffers | ||||
|     directly to the subsurface without having to blit the contents into an | ||||
|     intermediate buffer. The compositing can then be done in the parent | ||||
|     compositor. | ||||
|  | ||||
|     The nested compositor can create an EGLImage from a client buffer resource | ||||
|     using the existing WL_bind_wayland_display extension. It should also be | ||||
|     possible to create buffers using other types of images although there is | ||||
|     no expected use case for that. | ||||
|  | ||||
| IP Status | ||||
|  | ||||
|     Open-source; freely implementable. | ||||
|  | ||||
| New Procedures and Functions | ||||
|  | ||||
|     struct wl_buffer *eglCreateWaylandBufferFromImageWL(EGLDisplay dpy, | ||||
|                                                         EGLImageKHR image); | ||||
|  | ||||
| New Tokens | ||||
|  | ||||
|     None. | ||||
|  | ||||
| Additions to the EGL 1.4 Specification: | ||||
|  | ||||
|     To create a client-side wl_buffer from an EGLImage call | ||||
|  | ||||
|       struct wl_buffer *eglCreateWaylandBufferFromImageWL(EGLDisplay dpy, | ||||
|                                                           EGLImageKHR image); | ||||
|  | ||||
|     The returned buffer will share the contents with the given EGLImage. Any | ||||
|     updates to the image will also be updated in the wl_buffer. Typically the | ||||
|     EGLImage will be generated in a nested Wayland compositor using a buffer | ||||
|     resource from a client via the EGL_WL_bind_wayland_display extension. | ||||
|  | ||||
|     If there was an error then the function will return NULL. In particular it | ||||
|     will generate EGL_BAD_MATCH if the implementation is not able to represent | ||||
|     the image as a wl_buffer. The possible reasons for this error are | ||||
|     implementation-dependant but may include problems such as an unsupported | ||||
|     format or tiling mode or that the buffer is in memory that is inaccessible | ||||
|     to the GPU that the given EGLDisplay is using. | ||||
|  | ||||
| Issues | ||||
|  | ||||
|     1) Under what circumstances can the EGL_BAD_MATCH error be generated? Does | ||||
|        this include for example unsupported tiling modes? | ||||
|  | ||||
|        RESOLVED: Yes, the EGL_BAD_MATCH error can be generated for any reason | ||||
|        which prevents the implementation from representing the image as a | ||||
|        wl_buffer. For example, these problems can be but are not limited to | ||||
|        unsupported tiling modes, inaccessible memory or an unsupported pixel | ||||
|        format. | ||||
|  | ||||
| Revision History | ||||
|  | ||||
|     Version 1, September 6, 2013 | ||||
|         Initial draft (Neil Roberts) | ||||
|     Version 2, October 25, 2013 | ||||
|         Added a note about more possible reasons for returning EGL_BAD_FORMAT. | ||||
| @@ -14,7 +14,7 @@ | ||||
| <iframe src="contents.html"></iframe> | ||||
| <div class="content"> | ||||
|  | ||||
| <h1>Acknowledgements</h1> | ||||
| <h1>Acknowledgments</h1> | ||||
|  | ||||
|  | ||||
| The following individuals and groups are to be acknowledged for their | ||||
|   | ||||
| @@ -27,10 +27,9 @@ MacOS are all supported. | ||||
| </p> | ||||
|  | ||||
| <p> | ||||
| Most modern Linux distros include the SVGA3D driver so end users shouldn't | ||||
| be concerned with this information. | ||||
| But if your distro lacks the driver or you want to update to the latest code | ||||
| these instructions explain what to do. | ||||
| End users shouldn't have to go through all these steps once the driver is | ||||
| included in newer Linux distributions. | ||||
| Fedora 18 and Ubuntu 12.10 include the VMware guest GL driver, for example. | ||||
| </p> | ||||
|  | ||||
| <p> | ||||
| @@ -54,13 +53,6 @@ The components involved in this include: | ||||
| <li>Mesa/gallium OpenGL driver: "svga" | ||||
| </ul> | ||||
|  | ||||
| <p> | ||||
| All of these components reside in the guest Linux virtual machine. | ||||
| On the host, all you're doing is running VMware | ||||
| <a href="http://www.vmware.com/products/workstation/">Workstation</a> or | ||||
| <a href="http://www.vmware.com/products/fusion/">Fusion</a>. | ||||
| </p> | ||||
|  | ||||
|  | ||||
| <h2>Prerequisites</h2> | ||||
|  | ||||
| @@ -142,7 +134,7 @@ As before, if you're on a 32-bit system, you should skip the --libdir | ||||
| configure option. | ||||
|   <pre> | ||||
|   cd $TOP/mesa | ||||
|   ./autogen.sh --prefix=/usr --libdir=/usr/lib64 --with-gallium-drivers=svga --with-dri-drivers= --enable-xa --disable-dri3 | ||||
|   ./autogen.sh --prefix=/usr --libdir=/usr/lib64 --with-gallium-drivers=svga --with-dri-drivers= --enable-xa | ||||
|   make | ||||
|   sudo make install | ||||
|   </pre> | ||||
|   | ||||
| @@ -107,7 +107,7 @@ for your application. | ||||
| <p> | ||||
| When using Mesa directly or with GLX, it's up to the application | ||||
| writer to create a window with an appropriate colormap.  The GLUT | ||||
| toolkit tries to minimize colormap <em>flashing</em> by sharing | ||||
| toolkit tris to minimize colormap <em>flashing</em> by sharing | ||||
| colormaps when possible.  Specifically, if the visual and depth of the | ||||
| window matches that of the root window, the root window's colormap | ||||
| will be shared by the Mesa window.  Otherwise, a new, private colormap | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
							
								
								
									
										1042
									
								
								include/EGL/eglext.h
									
									
									
									
									
								
							
							
						
						
									
										1042
									
								
								include/EGL/eglext.h
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,6 +1,6 @@ | ||||
| /************************************************************************** | ||||
|  * | ||||
|  * Copyright 2008 VMware, Inc. | ||||
|  * Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas. | ||||
|  * All Rights Reserved. | ||||
|  * | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a | ||||
| @@ -134,16 +134,6 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYWAYLANDBUFFERWL) (EGLDisplay dpy, st | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #ifndef EGL_WL_create_wayland_buffer_from_image | ||||
| #define EGL_WL_create_wayland_buffer_from_image 1 | ||||
|  | ||||
| #ifdef EGL_EGLEXT_PROTOTYPES | ||||
| EGLAPI struct wl_buffer * EGLAPIENTRY eglCreateWaylandBufferFromImageWL(EGLDisplay dpy, EGLImageKHR image); | ||||
| #endif | ||||
| typedef struct wl_buffer * (EGLAPIENTRYP PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWL) (EGLDisplay dpy, EGLImageKHR image); | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #ifndef EGL_NOK_swap_region | ||||
| #define EGL_NOK_swap_region 1 | ||||
|  | ||||
| @@ -165,11 +155,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 */ | ||||
| @@ -2074,6 +2078,39 @@ typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLsh | ||||
| #endif /* GL_MESA_packed_depth_stencil */ | ||||
|  | ||||
|  | ||||
| #ifndef GL_MESA_texture_array | ||||
| #define GL_MESA_texture_array 1 | ||||
|  | ||||
| /* GL_MESA_texture_array uses the same enum values as GL_EXT_texture_array. | ||||
|  */ | ||||
| #ifndef GL_EXT_texture_array | ||||
|  | ||||
| #ifdef GL_GLEXT_PROTOTYPES | ||||
| GLAPI void APIENTRY glFramebufferTextureLayerEXT(GLenum target, | ||||
|     GLenum attachment, GLuint texture, GLint level, GLint layer); | ||||
| #endif /* GL_GLEXT_PROTOTYPES */ | ||||
|  | ||||
| #if 0 | ||||
| /* (temporarily) disabled because of collision with typedef in glext.h | ||||
|  * that happens if apps include both gl.h and glext.h | ||||
|  */ | ||||
| typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, | ||||
|     GLenum attachment, GLuint texture, GLint level, GLint layer); | ||||
| #endif | ||||
|  | ||||
| #define GL_TEXTURE_1D_ARRAY_EXT         0x8C18 | ||||
| #define GL_PROXY_TEXTURE_1D_ARRAY_EXT   0x8C19 | ||||
| #define GL_TEXTURE_2D_ARRAY_EXT         0x8C1A | ||||
| #define GL_PROXY_TEXTURE_2D_ARRAY_EXT   0x8C1B | ||||
| #define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C | ||||
| #define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D | ||||
| #define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF | ||||
| #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 | ||||
| #endif | ||||
|  | ||||
| #endif | ||||
|  | ||||
|  | ||||
| #ifndef GL_ATI_blend_equation_separate | ||||
| #define GL_ATI_blend_equation_separate 1 | ||||
|  | ||||
| @@ -2108,6 +2145,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
											
										
									
								
							| @@ -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,7 +33,7 @@ extern "C" { | ||||
| ** used to make the header, and the header can be found at | ||||
| **   http://www.opengl.org/registry/ | ||||
| ** | ||||
| ** Khronos $Revision: 25853 $ on $Date: 2014-03-13 03:40:45 -0700 (Thu, 13 Mar 2014) $ | ||||
| ** Khronos $Revision: 23422 $ on $Date: 2013-10-08 15:40:45 -0700 (Tue, 08 Oct 2013) $ | ||||
| */ | ||||
|  | ||||
| #if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) | ||||
| @@ -53,7 +53,7 @@ extern "C" { | ||||
| #define GLAPI extern | ||||
| #endif | ||||
|  | ||||
| #define GL_GLEXT_VERSION 20140313 | ||||
| #define GL_GLEXT_VERSION 20131008 | ||||
|  | ||||
| /* Generated C header for: | ||||
|  * API: gl | ||||
| @@ -1477,7 +1477,7 @@ typedef GLboolean (APIENTRYP PFNGLISSYNCPROC) (GLsync sync); | ||||
| typedef void (APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync); | ||||
| typedef GLenum (APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); | ||||
| typedef void (APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); | ||||
| typedef void (APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *data); | ||||
| typedef void (APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *params); | ||||
| typedef void (APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); | ||||
| typedef void (APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data); | ||||
| typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params); | ||||
| @@ -1485,7 +1485,7 @@ typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum target, GLenum atta | ||||
| typedef void (APIENTRYP PFNGLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); | ||||
| typedef void (APIENTRYP PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); | ||||
| typedef void (APIENTRYP PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat *val); | ||||
| typedef void (APIENTRYP PFNGLSAMPLEMASKIPROC) (GLuint maskNumber, GLbitfield mask); | ||||
| typedef void (APIENTRYP PFNGLSAMPLEMASKIPROC) (GLuint index, GLbitfield mask); | ||||
| #ifdef GL_GLEXT_PROTOTYPES | ||||
| GLAPI void APIENTRY glDrawElementsBaseVertex (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); | ||||
| GLAPI void APIENTRY glDrawRangeElementsBaseVertex (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); | ||||
| @@ -1497,7 +1497,7 @@ GLAPI GLboolean APIENTRY glIsSync (GLsync sync); | ||||
| GLAPI void APIENTRY glDeleteSync (GLsync sync); | ||||
| GLAPI GLenum APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); | ||||
| GLAPI void APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); | ||||
| GLAPI void APIENTRY glGetInteger64v (GLenum pname, GLint64 *data); | ||||
| GLAPI void APIENTRY glGetInteger64v (GLenum pname, GLint64 *params); | ||||
| GLAPI void APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); | ||||
| GLAPI void APIENTRY glGetInteger64i_v (GLenum target, GLuint index, GLint64 *data); | ||||
| GLAPI void APIENTRY glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64 *params); | ||||
| @@ -1505,7 +1505,7 @@ GLAPI void APIENTRY glFramebufferTexture (GLenum target, GLenum attachment, GLui | ||||
| GLAPI void APIENTRY glTexImage2DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); | ||||
| GLAPI void APIENTRY glTexImage3DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); | ||||
| GLAPI void APIENTRY glGetMultisamplefv (GLenum pname, GLuint index, GLfloat *val); | ||||
| GLAPI void APIENTRY glSampleMaski (GLuint maskNumber, GLbitfield mask); | ||||
| GLAPI void APIENTRY glSampleMaski (GLuint index, GLbitfield mask); | ||||
| #endif | ||||
| #endif /* GL_VERSION_3_2 */ | ||||
|  | ||||
| @@ -2144,10 +2144,6 @@ GLAPI void APIENTRY glGetDoublei_v (GLenum target, GLuint index, GLdouble *data) | ||||
| #define GL_MAX_GEOMETRY_IMAGE_UNIFORMS    0x90CD | ||||
| #define GL_MAX_FRAGMENT_IMAGE_UNIFORMS    0x90CE | ||||
| #define GL_MAX_COMBINED_IMAGE_UNIFORMS    0x90CF | ||||
| #define GL_COMPRESSED_RGBA_BPTC_UNORM     0x8E8C | ||||
| #define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM 0x8E8D | ||||
| #define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT 0x8E8E | ||||
| #define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT 0x8E8F | ||||
| #define GL_TEXTURE_IMMUTABLE_FORMAT       0x912F | ||||
| typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance); | ||||
| typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance); | ||||
| @@ -4840,20 +4836,6 @@ GLAPI GLboolean APIENTRY glIsNameAMD (GLenum identifier, GLuint name); | ||||
| #endif | ||||
| #endif /* GL_AMD_name_gen_delete */ | ||||
|  | ||||
| #ifndef GL_AMD_occlusion_query_event | ||||
| #define GL_AMD_occlusion_query_event 1 | ||||
| #define GL_OCCLUSION_QUERY_EVENT_MASK_AMD 0x874F | ||||
| #define GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD 0x00000001 | ||||
| #define GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD 0x00000002 | ||||
| #define GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD 0x00000004 | ||||
| #define GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD 0x00000008 | ||||
| #define GL_QUERY_ALL_EVENT_BITS_AMD       0xFFFFFFFF | ||||
| typedef void (APIENTRYP PFNGLQUERYOBJECTPARAMETERUIAMDPROC) (GLenum target, GLuint id, GLenum pname, GLuint param); | ||||
| #ifdef GL_GLEXT_PROTOTYPES | ||||
| GLAPI void APIENTRY glQueryObjectParameteruiAMD (GLenum target, GLuint id, GLenum pname, GLuint param); | ||||
| #endif | ||||
| #endif /* GL_AMD_occlusion_query_event */ | ||||
|  | ||||
| #ifndef GL_AMD_performance_monitor | ||||
| #define GL_AMD_performance_monitor 1 | ||||
| #define GL_COUNTER_TYPE_AMD               0x8BC0 | ||||
| @@ -5918,34 +5900,6 @@ GLAPI void APIENTRY glCullParameterfvEXT (GLenum pname, GLfloat *params); | ||||
| #endif | ||||
| #endif /* GL_EXT_cull_vertex */ | ||||
|  | ||||
| #ifndef GL_EXT_debug_label | ||||
| #define GL_EXT_debug_label 1 | ||||
| #define GL_PROGRAM_PIPELINE_OBJECT_EXT    0x8A4F | ||||
| #define GL_PROGRAM_OBJECT_EXT             0x8B40 | ||||
| #define GL_SHADER_OBJECT_EXT              0x8B48 | ||||
| #define GL_BUFFER_OBJECT_EXT              0x9151 | ||||
| #define GL_QUERY_OBJECT_EXT               0x9153 | ||||
| #define GL_VERTEX_ARRAY_OBJECT_EXT        0x9154 | ||||
| typedef void (APIENTRYP PFNGLLABELOBJECTEXTPROC) (GLenum type, GLuint object, GLsizei length, const GLchar *label); | ||||
| typedef void (APIENTRYP PFNGLGETOBJECTLABELEXTPROC) (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); | ||||
| #ifdef GL_GLEXT_PROTOTYPES | ||||
| GLAPI void APIENTRY glLabelObjectEXT (GLenum type, GLuint object, GLsizei length, const GLchar *label); | ||||
| GLAPI void APIENTRY glGetObjectLabelEXT (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); | ||||
| #endif | ||||
| #endif /* GL_EXT_debug_label */ | ||||
|  | ||||
| #ifndef GL_EXT_debug_marker | ||||
| #define GL_EXT_debug_marker 1 | ||||
| typedef void (APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar *marker); | ||||
| typedef void (APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar *marker); | ||||
| typedef void (APIENTRYP PFNGLPOPGROUPMARKEREXTPROC) (void); | ||||
| #ifdef GL_GLEXT_PROTOTYPES | ||||
| GLAPI void APIENTRY glInsertEventMarkerEXT (GLsizei length, const GLchar *marker); | ||||
| GLAPI void APIENTRY glPushGroupMarkerEXT (GLsizei length, const GLchar *marker); | ||||
| GLAPI void APIENTRY glPopGroupMarkerEXT (void); | ||||
| #endif | ||||
| #endif /* GL_EXT_debug_marker */ | ||||
|  | ||||
| #ifndef GL_EXT_depth_bounds_test | ||||
| #define GL_EXT_depth_bounds_test 1 | ||||
| #define GL_DEPTH_BOUNDS_TEST_EXT          0x8890 | ||||
| @@ -6181,7 +6135,7 @@ typedef void *(APIENTRYP PFNGLMAPNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintp | ||||
| typedef void (APIENTRYP PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length); | ||||
| typedef void (APIENTRYP PFNGLNAMEDBUFFERSTORAGEEXTPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags); | ||||
| typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data); | ||||
| typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLenum internalformat, GLsizeiptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); | ||||
| typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, GLsizeiptr offset, GLsizeiptr size, const void *data); | ||||
| typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC) (GLuint framebuffer, GLenum pname, GLint param); | ||||
| typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint *params); | ||||
| typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DEXTPROC) (GLuint program, GLint location, GLdouble x); | ||||
| @@ -6437,7 +6391,7 @@ GLAPI void *APIENTRY glMapNamedBufferRangeEXT (GLuint buffer, GLintptr offset, G | ||||
| GLAPI void APIENTRY glFlushMappedNamedBufferRangeEXT (GLuint buffer, GLintptr offset, GLsizeiptr length); | ||||
| GLAPI void APIENTRY glNamedBufferStorageEXT (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags); | ||||
| GLAPI void APIENTRY glClearNamedBufferDataEXT (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data); | ||||
| GLAPI void APIENTRY glClearNamedBufferSubDataEXT (GLuint buffer, GLenum internalformat, GLsizeiptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); | ||||
| GLAPI void APIENTRY glClearNamedBufferSubDataEXT (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, GLsizeiptr offset, GLsizeiptr size, const void *data); | ||||
| GLAPI void APIENTRY glNamedFramebufferParameteriEXT (GLuint framebuffer, GLenum pname, GLint param); | ||||
| GLAPI void APIENTRY glGetNamedFramebufferParameterivEXT (GLuint framebuffer, GLenum pname, GLint *params); | ||||
| GLAPI void APIENTRY glProgramUniform1dEXT (GLuint program, GLint location, GLdouble x); | ||||
| @@ -7080,10 +7034,6 @@ GLAPI GLuint APIENTRY glCreateShaderProgramEXT (GLenum type, const GLchar *strin | ||||
| #define GL_SEPARATE_SPECULAR_COLOR_EXT    0x81FA | ||||
| #endif /* GL_EXT_separate_specular_color */ | ||||
|  | ||||
| #ifndef GL_EXT_shader_image_load_formatted | ||||
| #define GL_EXT_shader_image_load_formatted 1 | ||||
| #endif /* GL_EXT_shader_image_load_formatted */ | ||||
|  | ||||
| #ifndef GL_EXT_shader_image_load_store | ||||
| #define GL_EXT_shader_image_load_store 1 | ||||
| #define GL_MAX_IMAGE_UNITS_EXT            0x8F38 | ||||
| @@ -8091,10 +8041,6 @@ GLAPI void APIENTRY glBlendFuncSeparateINGR (GLenum sfactorRGB, GLenum dfactorRG | ||||
| #define GL_INTERLACE_READ_INGR            0x8568 | ||||
| #endif /* GL_INGR_interlace_read */ | ||||
|  | ||||
| #ifndef GL_INTEL_fragment_shader_ordering | ||||
| #define GL_INTEL_fragment_shader_ordering 1 | ||||
| #endif /* GL_INTEL_fragment_shader_ordering */ | ||||
|  | ||||
| #ifndef GL_INTEL_map_texture | ||||
| #define GL_INTEL_map_texture 1 | ||||
| #define GL_TEXTURE_MEMORY_LAYOUT_INTEL    0x83FF | ||||
| @@ -8130,52 +8076,6 @@ GLAPI void APIENTRY glTexCoordPointervINTEL (GLint size, GLenum type, const void | ||||
| #endif | ||||
| #endif /* GL_INTEL_parallel_arrays */ | ||||
|  | ||||
| #ifndef GL_INTEL_performance_query | ||||
| #define GL_INTEL_performance_query 1 | ||||
| #define GL_PERFQUERY_SINGLE_CONTEXT_INTEL 0x00000000 | ||||
| #define GL_PERFQUERY_GLOBAL_CONTEXT_INTEL 0x00000001 | ||||
| #define GL_PERFQUERY_WAIT_INTEL           0x83FB | ||||
| #define GL_PERFQUERY_FLUSH_INTEL          0x83FA | ||||
| #define GL_PERFQUERY_DONOT_FLUSH_INTEL    0x83F9 | ||||
| #define GL_PERFQUERY_COUNTER_EVENT_INTEL  0x94F0 | ||||
| #define GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL 0x94F1 | ||||
| #define GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL 0x94F2 | ||||
| #define GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL 0x94F3 | ||||
| #define GL_PERFQUERY_COUNTER_RAW_INTEL    0x94F4 | ||||
| #define GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL 0x94F5 | ||||
| #define GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL 0x94F8 | ||||
| #define GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL 0x94F9 | ||||
| #define GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL 0x94FA | ||||
| #define GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL 0x94FB | ||||
| #define GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL 0x94FC | ||||
| #define GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL 0x94FD | ||||
| #define GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL 0x94FE | ||||
| #define GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL 0x94FF | ||||
| #define GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL 0x9500 | ||||
| typedef void (APIENTRYP PFNGLBEGINPERFQUERYINTELPROC) (GLuint queryHandle); | ||||
| typedef void (APIENTRYP PFNGLCREATEPERFQUERYINTELPROC) (GLuint queryId, GLuint *queryHandle); | ||||
| typedef void (APIENTRYP PFNGLDELETEPERFQUERYINTELPROC) (GLuint queryHandle); | ||||
| typedef void (APIENTRYP PFNGLENDPERFQUERYINTELPROC) (GLuint queryHandle); | ||||
| typedef void (APIENTRYP PFNGLGETFIRSTPERFQUERYIDINTELPROC) (GLuint *queryId); | ||||
| typedef void (APIENTRYP PFNGLGETNEXTPERFQUERYIDINTELPROC) (GLuint queryId, GLuint *nextQueryId); | ||||
| typedef void (APIENTRYP PFNGLGETPERFCOUNTERINFOINTELPROC) (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue); | ||||
| typedef void (APIENTRYP PFNGLGETPERFQUERYDATAINTELPROC) (GLuint queryHandle, GLuint flags, GLsizei dataSize, GLvoid *data, GLuint *bytesWritten); | ||||
| typedef void (APIENTRYP PFNGLGETPERFQUERYIDBYNAMEINTELPROC) (GLchar *queryName, GLuint *queryId); | ||||
| typedef void (APIENTRYP PFNGLGETPERFQUERYINFOINTELPROC) (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask); | ||||
| #ifdef GL_GLEXT_PROTOTYPES | ||||
| GLAPI void APIENTRY glBeginPerfQueryINTEL (GLuint queryHandle); | ||||
| GLAPI void APIENTRY glCreatePerfQueryINTEL (GLuint queryId, GLuint *queryHandle); | ||||
| GLAPI void APIENTRY glDeletePerfQueryINTEL (GLuint queryHandle); | ||||
| GLAPI void APIENTRY glEndPerfQueryINTEL (GLuint queryHandle); | ||||
| GLAPI void APIENTRY glGetFirstPerfQueryIdINTEL (GLuint *queryId); | ||||
| GLAPI void APIENTRY glGetNextPerfQueryIdINTEL (GLuint queryId, GLuint *nextQueryId); | ||||
| GLAPI void APIENTRY glGetPerfCounterInfoINTEL (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue); | ||||
| GLAPI void APIENTRY glGetPerfQueryDataINTEL (GLuint queryHandle, GLuint flags, GLsizei dataSize, GLvoid *data, GLuint *bytesWritten); | ||||
| GLAPI void APIENTRY glGetPerfQueryIdByNameINTEL (GLchar *queryName, GLuint *queryId); | ||||
| GLAPI void APIENTRY glGetPerfQueryInfoINTEL (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask); | ||||
| #endif | ||||
| #endif /* GL_INTEL_performance_query */ | ||||
|  | ||||
| #ifndef GL_MESAX_texture_stack | ||||
| #define GL_MESAX_texture_stack 1 | ||||
| #define GL_TEXTURE_1D_STACK_MESAX         0x8759 | ||||
| @@ -8270,15 +8170,6 @@ GLAPI void APIENTRY glEndConditionalRenderNVX (void); | ||||
| #endif | ||||
| #endif /* GL_NVX_conditional_render */ | ||||
|  | ||||
| #ifndef GL_NVX_gpu_memory_info | ||||
| #define GL_NVX_gpu_memory_info 1 | ||||
| #define GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX 0x9047 | ||||
| #define GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX 0x9048 | ||||
| #define GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX 0x9049 | ||||
| #define GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX 0x904A | ||||
| #define GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX 0x904B | ||||
| #endif /* GL_NVX_gpu_memory_info */ | ||||
|  | ||||
| #ifndef GL_NV_bindless_multi_draw_indirect | ||||
| #define GL_NV_bindless_multi_draw_indirect 1 | ||||
| typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC) (GLenum mode, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount); | ||||
| @@ -8323,9 +8214,9 @@ GLAPI GLboolean APIENTRY glIsImageHandleResidentNV (GLuint64 handle); | ||||
|  | ||||
| #ifndef GL_NV_blend_equation_advanced | ||||
| #define GL_NV_blend_equation_advanced 1 | ||||
| #define GL_BLEND_ADVANCED_COHERENT_NV     0x9285 | ||||
| #define GL_BLEND_OVERLAP_NV               0x9281 | ||||
| #define GL_BLEND_PREMULTIPLIED_SRC_NV     0x9280 | ||||
| #define GL_BLUE_NV                        0x1905 | ||||
| #define GL_COLORBURN_NV                   0x929A | ||||
| #define GL_COLORDODGE_NV                  0x9299 | ||||
| #define GL_CONJOINT_NV                    0x9284 | ||||
| @@ -8339,7 +8230,6 @@ GLAPI GLboolean APIENTRY glIsImageHandleResidentNV (GLuint64 handle); | ||||
| #define GL_DST_OUT_NV                     0x928D | ||||
| #define GL_DST_OVER_NV                    0x9289 | ||||
| #define GL_EXCLUSION_NV                   0x92A0 | ||||
| #define GL_GREEN_NV                       0x1904 | ||||
| #define GL_HARDLIGHT_NV                   0x929B | ||||
| #define GL_HARDMIX_NV                     0x92A9 | ||||
| #define GL_HSL_COLOR_NV                   0x92AF | ||||
| @@ -8361,7 +8251,6 @@ GLAPI GLboolean APIENTRY glIsImageHandleResidentNV (GLuint64 handle); | ||||
| #define GL_PLUS_CLAMPED_NV                0x92B1 | ||||
| #define GL_PLUS_DARKER_NV                 0x9292 | ||||
| #define GL_PLUS_NV                        0x9291 | ||||
| #define GL_RED_NV                         0x1903 | ||||
| #define GL_SCREEN_NV                      0x9295 | ||||
| #define GL_SOFTLIGHT_NV                   0x929C | ||||
| #define GL_SRC_ATOP_NV                    0x928E | ||||
| @@ -8371,7 +8260,6 @@ GLAPI GLboolean APIENTRY glIsImageHandleResidentNV (GLuint64 handle); | ||||
| #define GL_SRC_OVER_NV                    0x9288 | ||||
| #define GL_UNCORRELATED_NV                0x9282 | ||||
| #define GL_VIVIDLIGHT_NV                  0x92A6 | ||||
| #define GL_XOR_NV                         0x1506 | ||||
| typedef void (APIENTRYP PFNGLBLENDPARAMETERINVPROC) (GLenum pname, GLint value); | ||||
| typedef void (APIENTRYP PFNGLBLENDBARRIERNVPROC) (void); | ||||
| #ifdef GL_GLEXT_PROTOTYPES | ||||
| @@ -8382,7 +8270,6 @@ GLAPI void APIENTRY glBlendBarrierNV (void); | ||||
|  | ||||
| #ifndef GL_NV_blend_equation_advanced_coherent | ||||
| #define GL_NV_blend_equation_advanced_coherent 1 | ||||
| #define GL_BLEND_ADVANCED_COHERENT_NV     0x9285 | ||||
| #endif /* GL_NV_blend_equation_advanced_coherent */ | ||||
|  | ||||
| #ifndef GL_NV_blend_square | ||||
| @@ -9431,17 +9318,6 @@ GLAPI void APIENTRY glProgramUniformui64vNV (GLuint program, GLint location, GLs | ||||
| #define GL_NV_shader_storage_buffer_object 1 | ||||
| #endif /* GL_NV_shader_storage_buffer_object */ | ||||
|  | ||||
| #ifndef GL_NV_shader_thread_group | ||||
| #define GL_NV_shader_thread_group 1 | ||||
| #define GL_WARP_SIZE_NV                   0x9339 | ||||
| #define GL_WARPS_PER_SM_NV                0x933A | ||||
| #define GL_SM_COUNT_NV                    0x933B | ||||
| #endif /* GL_NV_shader_thread_group */ | ||||
|  | ||||
| #ifndef GL_NV_shader_thread_shuffle | ||||
| #define GL_NV_shader_thread_shuffle 1 | ||||
| #endif /* GL_NV_shader_thread_shuffle */ | ||||
|  | ||||
| #ifndef GL_NV_tessellation_program5 | ||||
| #define GL_NV_tessellation_program5 1 | ||||
| #define GL_MAX_PROGRAM_PATCH_ATTRIBS_NV   0x86D8 | ||||
| @@ -9717,7 +9593,7 @@ typedef void (APIENTRYP PFNGLVDPAUINITNVPROC) (const void *vdpDevice, const void | ||||
| typedef void (APIENTRYP PFNGLVDPAUFININVPROC) (void); | ||||
| typedef GLvdpauSurfaceNV (APIENTRYP PFNGLVDPAUREGISTERVIDEOSURFACENVPROC) (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); | ||||
| typedef GLvdpauSurfaceNV (APIENTRYP PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC) (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); | ||||
| typedef GLboolean (APIENTRYP PFNGLVDPAUISSURFACENVPROC) (GLvdpauSurfaceNV surface); | ||||
| typedef void (APIENTRYP PFNGLVDPAUISSURFACENVPROC) (GLvdpauSurfaceNV surface); | ||||
| typedef void (APIENTRYP PFNGLVDPAUUNREGISTERSURFACENVPROC) (GLvdpauSurfaceNV surface); | ||||
| typedef void (APIENTRYP PFNGLVDPAUGETSURFACEIVNVPROC) (GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); | ||||
| typedef void (APIENTRYP PFNGLVDPAUSURFACEACCESSNVPROC) (GLvdpauSurfaceNV surface, GLenum access); | ||||
| @@ -9728,7 +9604,7 @@ GLAPI void APIENTRY glVDPAUInitNV (const void *vdpDevice, const void *getProcAdd | ||||
| GLAPI void APIENTRY glVDPAUFiniNV (void); | ||||
| GLAPI GLvdpauSurfaceNV APIENTRY glVDPAURegisterVideoSurfaceNV (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); | ||||
| GLAPI GLvdpauSurfaceNV APIENTRY glVDPAURegisterOutputSurfaceNV (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); | ||||
| GLAPI GLboolean APIENTRY glVDPAUIsSurfaceNV (GLvdpauSurfaceNV surface); | ||||
| GLAPI void APIENTRY glVDPAUIsSurfaceNV (GLvdpauSurfaceNV surface); | ||||
| GLAPI void APIENTRY glVDPAUUnregisterSurfaceNV (GLvdpauSurfaceNV surface); | ||||
| GLAPI void APIENTRY glVDPAUGetSurfaceivNV (GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); | ||||
| GLAPI void APIENTRY glVDPAUSurfaceAccessNV (GLvdpauSurfaceNV surface, GLenum access); | ||||
|   | ||||
| @@ -168,7 +168,6 @@ typedef XID GLXDrawable; | ||||
| /* GLX 1.3 and later */ | ||||
| typedef struct __GLXFBConfigRec *GLXFBConfig; | ||||
| typedef XID GLXFBConfigID; | ||||
| typedef XID GLXContextID; | ||||
| typedef XID GLXWindow; | ||||
| typedef XID GLXPbuffer; | ||||
|  | ||||
|   | ||||
| @@ -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: 25407 $ on $Date: 2014-02-18 16:51:56 -0800 (Tue, 18 Feb 2014) $ | ||||
| ** Khronos $Revision: 23422 $ on $Date: 2013-10-08 15:40:45 -0700 (Tue, 08 Oct 2013) $ | ||||
| */ | ||||
|  | ||||
| #define GLX_GLXEXT_VERSION 20140218 | ||||
| #define GLX_GLXEXT_VERSION 20131008 | ||||
|  | ||||
| /* Generated C header for: | ||||
|  * API: glx | ||||
| @@ -49,7 +49,6 @@ extern "C" { | ||||
|  | ||||
| #ifndef GLX_VERSION_1_3 | ||||
| #define GLX_VERSION_1_3 1 | ||||
| typedef XID GLXContextID; | ||||
| typedef struct __GLXFBConfigRec *GLXFBConfig; | ||||
| typedef XID GLXWindow; | ||||
| typedef XID GLXPbuffer; | ||||
| @@ -273,6 +272,7 @@ __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *procName); | ||||
|  | ||||
| #ifndef GLX_EXT_import_context | ||||
| #define GLX_EXT_import_context 1 | ||||
| typedef XID GLXContextID; | ||||
| #define GLX_SHARE_CONTEXT_EXT             0x800A | ||||
| #define GLX_VISUAL_ID_EXT                 0x800B | ||||
| #define GLX_SCREEN_EXT                    0x800C | ||||
| @@ -407,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); | ||||
| @@ -459,14 +433,6 @@ void glXCopyImageSubDataNV (Display *dpy, GLXContext srcCtx, GLuint srcName, GLe | ||||
| #endif | ||||
| #endif /* GLX_NV_copy_image */ | ||||
|  | ||||
| #ifndef GLX_NV_delay_before_swap | ||||
| #define GLX_NV_delay_before_swap 1 | ||||
| typedef Bool ( *PFNGLXDELAYBEFORESWAPNVPROC) (Display *dpy, GLXDrawable drawable, GLfloat seconds); | ||||
| #ifdef GLX_GLXEXT_PROTOTYPES | ||||
| Bool glXDelayBeforeSwapNV (Display *dpy, GLXDrawable drawable, GLfloat seconds); | ||||
| #endif | ||||
| #endif /* GLX_NV_delay_before_swap */ | ||||
|  | ||||
| #ifndef GLX_NV_float_buffer | ||||
| #define GLX_NV_float_buffer 1 | ||||
| #define GLX_FLOAT_COMPONENTS_NV           0x20B0 | ||||
|   | ||||
| @@ -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, | ||||
| @@ -441,7 +437,7 @@ struct __DRIdamageExtensionRec { | ||||
|  * SWRast Loader extension. | ||||
|  */ | ||||
| #define __DRI_SWRAST_LOADER "DRI_SWRastLoader" | ||||
| #define __DRI_SWRAST_LOADER_VERSION 2 | ||||
| #define __DRI_SWRAST_LOADER_VERSION 1 | ||||
| struct __DRIswrastLoaderExtensionRec { | ||||
|     __DRIextension base; | ||||
|  | ||||
| @@ -465,15 +461,6 @@ struct __DRIswrastLoaderExtensionRec { | ||||
|     void (*getImage)(__DRIdrawable *readable, | ||||
| 		     int x, int y, int width, int height, | ||||
| 		     char *data, void *loaderPrivate); | ||||
|  | ||||
|     /** | ||||
|      * Put image to drawable | ||||
|      * | ||||
|      * \since 2 | ||||
|      */ | ||||
|     void (*putImage2)(__DRIdrawable *drawable, int op, | ||||
|                       int x, int y, int width, int height, int stride, | ||||
|                       char *data, void *loaderPrivate); | ||||
| }; | ||||
|  | ||||
| /** | ||||
| @@ -795,6 +782,12 @@ typedef __DRIdrawable * | ||||
|                               const __DRIconfig *config, | ||||
|                               void *loaderPrivate); | ||||
|  | ||||
| typedef __DRIcontext * | ||||
| (*__DRIcreateNewContextFunc)(__DRIscreen *screen, | ||||
|                              const __DRIconfig *config, | ||||
|                              __DRIcontext *shared, | ||||
|                              void *loaderPrivate); | ||||
|  | ||||
| typedef __DRIcontext * | ||||
| (*__DRIcreateContextAttribsFunc)(__DRIscreen *screen, | ||||
|                                  int api, | ||||
| @@ -854,8 +847,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 +869,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, | ||||
| @@ -960,10 +949,7 @@ struct __DRIdri2ExtensionRec { | ||||
| 				    void *loaderPrivate); | ||||
|  | ||||
|    __DRIcreateNewDrawableFunc   createNewDrawable; | ||||
|    __DRIcontext *(*createNewContext)(__DRIscreen *screen, | ||||
|                                      const __DRIconfig *config, | ||||
|                                      __DRIcontext *shared, | ||||
|                                      void *loaderPrivate); | ||||
|    __DRIcreateNewContextFunc    createNewContext; | ||||
|  | ||||
|    /* Since version 2 */ | ||||
|    __DRIgetAPIMaskFunc          getAPIMask; | ||||
| @@ -1051,7 +1037,6 @@ struct __DRIdri2ExtensionRec { | ||||
| #define __DRI_IMAGE_FOURCC_XRGB8888	0x34325258 | ||||
| #define __DRI_IMAGE_FOURCC_ABGR8888	0x34324241 | ||||
| #define __DRI_IMAGE_FOURCC_XBGR8888	0x34324258 | ||||
| #define __DRI_IMAGE_FOURCC_SARGB8888    0x83324258 | ||||
| #define __DRI_IMAGE_FOURCC_YUV410	0x39565559 | ||||
| #define __DRI_IMAGE_FOURCC_YUV411	0x31315559 | ||||
| #define __DRI_IMAGE_FOURCC_YUV420	0x32315559 | ||||
| @@ -1420,6 +1405,7 @@ struct __DRIimageDriverExtensionRec { | ||||
|    /* Common DRI functions, shared with DRI2 */ | ||||
|    __DRIcreateNewScreen2Func            createNewScreen2; | ||||
|    __DRIcreateNewDrawableFunc           createNewDrawable; | ||||
|    __DRIcreateNewContextFunc            createNewContext; | ||||
|    __DRIcreateContextAttribsFunc        createContextAttribs; | ||||
|    __DRIgetAPIMaskFunc                  getAPIMask; | ||||
| }; | ||||
|   | ||||
| @@ -3,7 +3,7 @@ | ||||
|  * SAREA definitions. | ||||
|  *  | ||||
|  * \author Kevin E. Martin <kevin@precisioninsight.com> | ||||
|  * \author Jens Owen <jowen@vmware.com> | ||||
|  * \author Jens Owen <jens@tungstengraphics.com> | ||||
|  * \author Rickard E. (Rik) Faith <faith@valinux.com> | ||||
|  */ | ||||
|  | ||||
|   | ||||
| @@ -60,8 +60,8 @@ extern "C" { | ||||
| #include <GL/gl.h> | ||||
|  | ||||
|  | ||||
| #define OSMESA_MAJOR_VERSION 10 | ||||
| #define OSMESA_MINOR_VERSION 0 | ||||
| #define OSMESA_MAJOR_VERSION 6 | ||||
| #define OSMESA_MINOR_VERSION 5 | ||||
| #define OSMESA_PATCH_VERSION 0 | ||||
|  | ||||
|  | ||||
| @@ -270,21 +270,6 @@ OSMesaGetProcAddress( const char *funcName ); | ||||
| GLAPI void GLAPIENTRY | ||||
| OSMesaColorClamp(GLboolean enable); | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Enable/disable Gallium post-process filters. | ||||
|  * This should be called after a context is created, but before it is | ||||
|  * made current for the first time.  After a context has been made | ||||
|  * current, this function has no effect. | ||||
|  * If the enable_value param is zero, the filter is disabled.  Otherwise | ||||
|  * the filter is enabled, and the value may control the filter's quality. | ||||
|  * New in Mesa 10.0 | ||||
|  */ | ||||
| GLAPI void GLAPIENTRY | ||||
| OSMesaPostprocess(OSMesaContext osmesa, const char *filter, | ||||
|                   unsigned enable_value); | ||||
|  | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| } | ||||
| #endif | ||||
|   | ||||
| @@ -1,83 +1,56 @@ | ||||
| #ifndef __gl2_h_ | ||||
| #define __gl2_h_ 1 | ||||
| #define __gl2_h_ | ||||
|  | ||||
| /* $Revision: 20555 $ on $Date:: 2013-02-12 14:32:47 -0800 #$ */ | ||||
|  | ||||
| #include <GLES2/gl2platform.h> | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| extern "C" { | ||||
| #endif | ||||
|  | ||||
| /* | ||||
| ** 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 | ||||
| ** "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. | ||||
| */ | ||||
| /* | ||||
| ** This header is generated from the Khronos OpenGL / OpenGL ES XML | ||||
| ** API Registry. The current version of the Registry, generator scripts | ||||
| ** used to make the header, and the header can be found at | ||||
| **   http://www.opengl.org/registry/ | ||||
| ** | ||||
| ** Khronos $Revision: 24614 $ on $Date: 2013-12-30 04:44:46 -0800 (Mon, 30 Dec 2013) $ | ||||
| */ | ||||
|  | ||||
| #include <GLES2/gl2platform.h> | ||||
|  | ||||
| /* Generated on date 20131230 */ | ||||
|  | ||||
| /* Generated C header for: | ||||
|  * API: gles2 | ||||
|  * Profile: common | ||||
|  * Versions considered: 2\.[0-9] | ||||
|  * Versions emitted: .* | ||||
|  * Default extensions included: None | ||||
|  * Additional extensions included: _nomatch_^ | ||||
|  * Extensions removed: _nomatch_^ | ||||
|  * This document is licensed under the SGI Free Software B License Version | ||||
|  * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . | ||||
|  */ | ||||
|  | ||||
| #ifndef GL_ES_VERSION_2_0 | ||||
| #define GL_ES_VERSION_2_0 1 | ||||
| #include <KHR/khrplatform.h> | ||||
| typedef khronos_int8_t GLbyte; | ||||
| typedef khronos_float_t GLclampf; | ||||
| typedef khronos_int32_t GLfixed; | ||||
| typedef short GLshort; | ||||
| typedef unsigned short GLushort; | ||||
| typedef void GLvoid; | ||||
| typedef struct __GLsync *GLsync; | ||||
| typedef khronos_int64_t GLint64; | ||||
| typedef khronos_uint64_t GLuint64; | ||||
| typedef unsigned int GLenum; | ||||
| typedef unsigned int GLuint; | ||||
| typedef char GLchar; | ||||
| typedef khronos_float_t GLfloat; | ||||
| typedef khronos_ssize_t GLsizeiptr; | ||||
| /*------------------------------------------------------------------------- | ||||
|  * Data type definitions | ||||
|  *-----------------------------------------------------------------------*/ | ||||
|  | ||||
| typedef void             GLvoid; | ||||
| typedef char             GLchar; | ||||
| typedef unsigned int     GLenum; | ||||
| typedef unsigned char    GLboolean; | ||||
| typedef unsigned int     GLbitfield; | ||||
| typedef khronos_int8_t   GLbyte; | ||||
| typedef short            GLshort; | ||||
| typedef int              GLint; | ||||
| typedef int              GLsizei; | ||||
| typedef khronos_uint8_t  GLubyte; | ||||
| typedef unsigned short   GLushort; | ||||
| typedef unsigned int     GLuint; | ||||
| typedef khronos_float_t  GLfloat; | ||||
| typedef khronos_float_t  GLclampf; | ||||
| typedef khronos_int32_t  GLfixed; | ||||
|  | ||||
| /* GL types for handling large vertex buffer objects */ | ||||
| typedef khronos_intptr_t GLintptr; | ||||
| typedef unsigned int GLbitfield; | ||||
| typedef int GLint; | ||||
| typedef unsigned char GLboolean; | ||||
| typedef int GLsizei; | ||||
| typedef khronos_uint8_t GLubyte; | ||||
| typedef khronos_ssize_t  GLsizeiptr; | ||||
|  | ||||
| /* OpenGL ES core versions */ | ||||
| #define GL_ES_VERSION_2_0                 1 | ||||
|  | ||||
| /* ClearBufferMask */ | ||||
| #define GL_DEPTH_BUFFER_BIT               0x00000100 | ||||
| #define GL_STENCIL_BUFFER_BIT             0x00000400 | ||||
| #define GL_COLOR_BUFFER_BIT               0x00004000 | ||||
|  | ||||
| /* Boolean */ | ||||
| #define GL_FALSE                          0 | ||||
| #define GL_TRUE                           1 | ||||
|  | ||||
| /* BeginMode */ | ||||
| #define GL_POINTS                         0x0000 | ||||
| #define GL_LINES                          0x0001 | ||||
| #define GL_LINE_LOOP                      0x0002 | ||||
| @@ -85,6 +58,18 @@ typedef khronos_uint8_t GLubyte; | ||||
| #define GL_TRIANGLES                      0x0004 | ||||
| #define GL_TRIANGLE_STRIP                 0x0005 | ||||
| #define GL_TRIANGLE_FAN                   0x0006 | ||||
|  | ||||
| /* AlphaFunction (not supported in ES20) */ | ||||
| /*      GL_NEVER */ | ||||
| /*      GL_LESS */ | ||||
| /*      GL_EQUAL */ | ||||
| /*      GL_LEQUAL */ | ||||
| /*      GL_GREATER */ | ||||
| /*      GL_NOTEQUAL */ | ||||
| /*      GL_GEQUAL */ | ||||
| /*      GL_ALWAYS */ | ||||
|  | ||||
| /* BlendingFactorDest */ | ||||
| #define GL_ZERO                           0 | ||||
| #define GL_ONE                            1 | ||||
| #define GL_SRC_COLOR                      0x0300 | ||||
| @@ -93,15 +78,29 @@ typedef khronos_uint8_t GLubyte; | ||||
| #define GL_ONE_MINUS_SRC_ALPHA            0x0303 | ||||
| #define GL_DST_ALPHA                      0x0304 | ||||
| #define GL_ONE_MINUS_DST_ALPHA            0x0305 | ||||
|  | ||||
| /* BlendingFactorSrc */ | ||||
| /*      GL_ZERO */ | ||||
| /*      GL_ONE */ | ||||
| #define GL_DST_COLOR                      0x0306 | ||||
| #define GL_ONE_MINUS_DST_COLOR            0x0307 | ||||
| #define GL_SRC_ALPHA_SATURATE             0x0308 | ||||
| /*      GL_SRC_ALPHA */ | ||||
| /*      GL_ONE_MINUS_SRC_ALPHA */ | ||||
| /*      GL_DST_ALPHA */ | ||||
| /*      GL_ONE_MINUS_DST_ALPHA */ | ||||
|  | ||||
| /* BlendEquationSeparate */ | ||||
| #define GL_FUNC_ADD                       0x8006 | ||||
| #define GL_BLEND_EQUATION                 0x8009 | ||||
| #define GL_BLEND_EQUATION_RGB             0x8009 | ||||
| #define GL_BLEND_EQUATION_RGB             0x8009    /* same as BLEND_EQUATION */ | ||||
| #define GL_BLEND_EQUATION_ALPHA           0x883D | ||||
|  | ||||
| /* BlendSubtract */ | ||||
| #define GL_FUNC_SUBTRACT                  0x800A | ||||
| #define GL_FUNC_REVERSE_SUBTRACT          0x800B | ||||
|  | ||||
| /* Separate Blend Functions */ | ||||
| #define GL_BLEND_DST_RGB                  0x80C8 | ||||
| #define GL_BLEND_SRC_RGB                  0x80C9 | ||||
| #define GL_BLEND_DST_ALPHA                0x80CA | ||||
| @@ -111,19 +110,38 @@ typedef khronos_uint8_t GLubyte; | ||||
| #define GL_CONSTANT_ALPHA                 0x8003 | ||||
| #define GL_ONE_MINUS_CONSTANT_ALPHA       0x8004 | ||||
| #define GL_BLEND_COLOR                    0x8005 | ||||
|  | ||||
| /* Buffer Objects */ | ||||
| #define GL_ARRAY_BUFFER                   0x8892 | ||||
| #define GL_ELEMENT_ARRAY_BUFFER           0x8893 | ||||
| #define GL_ARRAY_BUFFER_BINDING           0x8894 | ||||
| #define GL_ELEMENT_ARRAY_BUFFER_BINDING   0x8895 | ||||
|  | ||||
| #define GL_STREAM_DRAW                    0x88E0 | ||||
| #define GL_STATIC_DRAW                    0x88E4 | ||||
| #define GL_DYNAMIC_DRAW                   0x88E8 | ||||
|  | ||||
| #define GL_BUFFER_SIZE                    0x8764 | ||||
| #define GL_BUFFER_USAGE                   0x8765 | ||||
|  | ||||
| #define GL_CURRENT_VERTEX_ATTRIB          0x8626 | ||||
|  | ||||
| /* CullFaceMode */ | ||||
| #define GL_FRONT                          0x0404 | ||||
| #define GL_BACK                           0x0405 | ||||
| #define GL_FRONT_AND_BACK                 0x0408 | ||||
|  | ||||
| /* DepthFunction */ | ||||
| /*      GL_NEVER */ | ||||
| /*      GL_LESS */ | ||||
| /*      GL_EQUAL */ | ||||
| /*      GL_LEQUAL */ | ||||
| /*      GL_GREATER */ | ||||
| /*      GL_NOTEQUAL */ | ||||
| /*      GL_GEQUAL */ | ||||
| /*      GL_ALWAYS */ | ||||
|  | ||||
| /* EnableCap */ | ||||
| #define GL_TEXTURE_2D                     0x0DE1 | ||||
| #define GL_CULL_FACE                      0x0B44 | ||||
| #define GL_BLEND                          0x0BE2 | ||||
| @@ -134,13 +152,19 @@ typedef khronos_uint8_t GLubyte; | ||||
| #define GL_POLYGON_OFFSET_FILL            0x8037 | ||||
| #define GL_SAMPLE_ALPHA_TO_COVERAGE       0x809E | ||||
| #define GL_SAMPLE_COVERAGE                0x80A0 | ||||
|  | ||||
| /* ErrorCode */ | ||||
| #define GL_NO_ERROR                       0 | ||||
| #define GL_INVALID_ENUM                   0x0500 | ||||
| #define GL_INVALID_VALUE                  0x0501 | ||||
| #define GL_INVALID_OPERATION              0x0502 | ||||
| #define GL_OUT_OF_MEMORY                  0x0505 | ||||
|  | ||||
| /* FrontFaceDirection */ | ||||
| #define GL_CW                             0x0900 | ||||
| #define GL_CCW                            0x0901 | ||||
|  | ||||
| /* GetPName */ | ||||
| #define GL_LINE_WIDTH                     0x0B21 | ||||
| #define GL_ALIASED_POINT_SIZE_RANGE       0x846D | ||||
| #define GL_ALIASED_LINE_WIDTH_RANGE       0x846E | ||||
| @@ -167,6 +191,7 @@ typedef khronos_uint8_t GLubyte; | ||||
| #define GL_STENCIL_BACK_WRITEMASK         0x8CA5 | ||||
| #define GL_VIEWPORT                       0x0BA2 | ||||
| #define GL_SCISSOR_BOX                    0x0C10 | ||||
| /*      GL_SCISSOR_TEST */ | ||||
| #define GL_COLOR_CLEAR_VALUE              0x0C22 | ||||
| #define GL_COLOR_WRITEMASK                0x0C23 | ||||
| #define GL_UNPACK_ALIGNMENT               0x0CF5 | ||||
| @@ -181,18 +206,32 @@ typedef khronos_uint8_t GLubyte; | ||||
| #define GL_DEPTH_BITS                     0x0D56 | ||||
| #define GL_STENCIL_BITS                   0x0D57 | ||||
| #define GL_POLYGON_OFFSET_UNITS           0x2A00 | ||||
| /*      GL_POLYGON_OFFSET_FILL */ | ||||
| #define GL_POLYGON_OFFSET_FACTOR          0x8038 | ||||
| #define GL_TEXTURE_BINDING_2D             0x8069 | ||||
| #define GL_SAMPLE_BUFFERS                 0x80A8 | ||||
| #define GL_SAMPLES                        0x80A9 | ||||
| #define GL_SAMPLE_COVERAGE_VALUE          0x80AA | ||||
| #define GL_SAMPLE_COVERAGE_INVERT         0x80AB | ||||
|  | ||||
| /* GetTextureParameter */ | ||||
| /*      GL_TEXTURE_MAG_FILTER */ | ||||
| /*      GL_TEXTURE_MIN_FILTER */ | ||||
| /*      GL_TEXTURE_WRAP_S */ | ||||
| /*      GL_TEXTURE_WRAP_T */ | ||||
|  | ||||
| #define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 | ||||
| #define GL_COMPRESSED_TEXTURE_FORMATS     0x86A3 | ||||
|  | ||||
| /* HintMode */ | ||||
| #define GL_DONT_CARE                      0x1100 | ||||
| #define GL_FASTEST                        0x1101 | ||||
| #define GL_NICEST                         0x1102 | ||||
| #define GL_GENERATE_MIPMAP_HINT           0x8192 | ||||
|  | ||||
| /* HintTarget */ | ||||
| #define GL_GENERATE_MIPMAP_HINT            0x8192 | ||||
|  | ||||
| /* DataType */ | ||||
| #define GL_BYTE                           0x1400 | ||||
| #define GL_UNSIGNED_BYTE                  0x1401 | ||||
| #define GL_SHORT                          0x1402 | ||||
| @@ -201,35 +240,44 @@ typedef khronos_uint8_t GLubyte; | ||||
| #define GL_UNSIGNED_INT                   0x1405 | ||||
| #define GL_FLOAT                          0x1406 | ||||
| #define GL_FIXED                          0x140C | ||||
|  | ||||
| /* PixelFormat */ | ||||
| #define GL_DEPTH_COMPONENT                0x1902 | ||||
| #define GL_ALPHA                          0x1906 | ||||
| #define GL_RGB                            0x1907 | ||||
| #define GL_RGBA                           0x1908 | ||||
| #define GL_LUMINANCE                      0x1909 | ||||
| #define GL_LUMINANCE_ALPHA                0x190A | ||||
|  | ||||
| /* PixelType */ | ||||
| /*      GL_UNSIGNED_BYTE */ | ||||
| #define GL_UNSIGNED_SHORT_4_4_4_4         0x8033 | ||||
| #define GL_UNSIGNED_SHORT_5_5_5_1         0x8034 | ||||
| #define GL_UNSIGNED_SHORT_5_6_5           0x8363 | ||||
| #define GL_FRAGMENT_SHADER                0x8B30 | ||||
| #define GL_VERTEX_SHADER                  0x8B31 | ||||
| #define GL_MAX_VERTEX_ATTRIBS             0x8869 | ||||
| #define GL_MAX_VERTEX_UNIFORM_VECTORS     0x8DFB | ||||
| #define GL_MAX_VARYING_VECTORS            0x8DFC | ||||
|  | ||||
| /* Shaders */ | ||||
| #define GL_FRAGMENT_SHADER                  0x8B30 | ||||
| #define GL_VERTEX_SHADER                    0x8B31 | ||||
| #define GL_MAX_VERTEX_ATTRIBS               0x8869 | ||||
| #define GL_MAX_VERTEX_UNIFORM_VECTORS       0x8DFB | ||||
| #define GL_MAX_VARYING_VECTORS              0x8DFC | ||||
| #define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D | ||||
| #define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C | ||||
| #define GL_MAX_TEXTURE_IMAGE_UNITS        0x8872 | ||||
| #define GL_MAX_FRAGMENT_UNIFORM_VECTORS   0x8DFD | ||||
| #define GL_SHADER_TYPE                    0x8B4F | ||||
| #define GL_DELETE_STATUS                  0x8B80 | ||||
| #define GL_LINK_STATUS                    0x8B82 | ||||
| #define GL_VALIDATE_STATUS                0x8B83 | ||||
| #define GL_ATTACHED_SHADERS               0x8B85 | ||||
| #define GL_ACTIVE_UNIFORMS                0x8B86 | ||||
| #define GL_ACTIVE_UNIFORM_MAX_LENGTH      0x8B87 | ||||
| #define GL_ACTIVE_ATTRIBUTES              0x8B89 | ||||
| #define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH    0x8B8A | ||||
| #define GL_SHADING_LANGUAGE_VERSION       0x8B8C | ||||
| #define GL_CURRENT_PROGRAM                0x8B8D | ||||
| #define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS   0x8B4C | ||||
| #define GL_MAX_TEXTURE_IMAGE_UNITS          0x8872 | ||||
| #define GL_MAX_FRAGMENT_UNIFORM_VECTORS     0x8DFD | ||||
| #define GL_SHADER_TYPE                      0x8B4F | ||||
| #define GL_DELETE_STATUS                    0x8B80 | ||||
| #define GL_LINK_STATUS                      0x8B82 | ||||
| #define GL_VALIDATE_STATUS                  0x8B83 | ||||
| #define GL_ATTACHED_SHADERS                 0x8B85 | ||||
| #define GL_ACTIVE_UNIFORMS                  0x8B86 | ||||
| #define GL_ACTIVE_UNIFORM_MAX_LENGTH        0x8B87 | ||||
| #define GL_ACTIVE_ATTRIBUTES                0x8B89 | ||||
| #define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH      0x8B8A | ||||
| #define GL_SHADING_LANGUAGE_VERSION         0x8B8C | ||||
| #define GL_CURRENT_PROGRAM                  0x8B8D | ||||
|  | ||||
| /* StencilFunction */ | ||||
| #define GL_NEVER                          0x0200 | ||||
| #define GL_LESS                           0x0201 | ||||
| #define GL_EQUAL                          0x0202 | ||||
| @@ -238,6 +286,9 @@ typedef khronos_uint8_t GLubyte; | ||||
| #define GL_NOTEQUAL                       0x0205 | ||||
| #define GL_GEQUAL                         0x0206 | ||||
| #define GL_ALWAYS                         0x0207 | ||||
|  | ||||
| /* StencilOp */ | ||||
| /*      GL_ZERO */ | ||||
| #define GL_KEEP                           0x1E00 | ||||
| #define GL_REPLACE                        0x1E01 | ||||
| #define GL_INCR                           0x1E02 | ||||
| @@ -245,21 +296,35 @@ typedef khronos_uint8_t GLubyte; | ||||
| #define GL_INVERT                         0x150A | ||||
| #define GL_INCR_WRAP                      0x8507 | ||||
| #define GL_DECR_WRAP                      0x8508 | ||||
|  | ||||
| /* StringName */ | ||||
| #define GL_VENDOR                         0x1F00 | ||||
| #define GL_RENDERER                       0x1F01 | ||||
| #define GL_VERSION                        0x1F02 | ||||
| #define GL_EXTENSIONS                     0x1F03 | ||||
|  | ||||
| /* TextureMagFilter */ | ||||
| #define GL_NEAREST                        0x2600 | ||||
| #define GL_LINEAR                         0x2601 | ||||
|  | ||||
| /* TextureMinFilter */ | ||||
| /*      GL_NEAREST */ | ||||
| /*      GL_LINEAR */ | ||||
| #define GL_NEAREST_MIPMAP_NEAREST         0x2700 | ||||
| #define GL_LINEAR_MIPMAP_NEAREST          0x2701 | ||||
| #define GL_NEAREST_MIPMAP_LINEAR          0x2702 | ||||
| #define GL_LINEAR_MIPMAP_LINEAR           0x2703 | ||||
|  | ||||
| /* TextureParameterName */ | ||||
| #define GL_TEXTURE_MAG_FILTER             0x2800 | ||||
| #define GL_TEXTURE_MIN_FILTER             0x2801 | ||||
| #define GL_TEXTURE_WRAP_S                 0x2802 | ||||
| #define GL_TEXTURE_WRAP_T                 0x2803 | ||||
|  | ||||
| /* TextureTarget */ | ||||
| /*      GL_TEXTURE_2D */ | ||||
| #define GL_TEXTURE                        0x1702 | ||||
|  | ||||
| #define GL_TEXTURE_CUBE_MAP               0x8513 | ||||
| #define GL_TEXTURE_BINDING_CUBE_MAP       0x8514 | ||||
| #define GL_TEXTURE_CUBE_MAP_POSITIVE_X    0x8515 | ||||
| @@ -269,6 +334,8 @@ typedef khronos_uint8_t GLubyte; | ||||
| #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z    0x8519 | ||||
| #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z    0x851A | ||||
| #define GL_MAX_CUBE_MAP_TEXTURE_SIZE      0x851C | ||||
|  | ||||
| /* TextureUnit */ | ||||
| #define GL_TEXTURE0                       0x84C0 | ||||
| #define GL_TEXTURE1                       0x84C1 | ||||
| #define GL_TEXTURE2                       0x84C2 | ||||
| @@ -302,9 +369,13 @@ typedef khronos_uint8_t GLubyte; | ||||
| #define GL_TEXTURE30                      0x84DE | ||||
| #define GL_TEXTURE31                      0x84DF | ||||
| #define GL_ACTIVE_TEXTURE                 0x84E0 | ||||
|  | ||||
| /* TextureWrapMode */ | ||||
| #define GL_REPEAT                         0x2901 | ||||
| #define GL_CLAMP_TO_EDGE                  0x812F | ||||
| #define GL_MIRRORED_REPEAT                0x8370 | ||||
|  | ||||
| /* Uniform Types */ | ||||
| #define GL_FLOAT_VEC2                     0x8B50 | ||||
| #define GL_FLOAT_VEC3                     0x8B51 | ||||
| #define GL_FLOAT_VEC4                     0x8B52 | ||||
| @@ -320,34 +391,48 @@ typedef khronos_uint8_t GLubyte; | ||||
| #define GL_FLOAT_MAT4                     0x8B5C | ||||
| #define GL_SAMPLER_2D                     0x8B5E | ||||
| #define GL_SAMPLER_CUBE                   0x8B60 | ||||
| #define GL_VERTEX_ATTRIB_ARRAY_ENABLED    0x8622 | ||||
| #define GL_VERTEX_ATTRIB_ARRAY_SIZE       0x8623 | ||||
| #define GL_VERTEX_ATTRIB_ARRAY_STRIDE     0x8624 | ||||
| #define GL_VERTEX_ATTRIB_ARRAY_TYPE       0x8625 | ||||
| #define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A | ||||
| #define GL_VERTEX_ATTRIB_ARRAY_POINTER    0x8645 | ||||
|  | ||||
| /* Vertex Arrays */ | ||||
| #define GL_VERTEX_ATTRIB_ARRAY_ENABLED        0x8622 | ||||
| #define GL_VERTEX_ATTRIB_ARRAY_SIZE           0x8623 | ||||
| #define GL_VERTEX_ATTRIB_ARRAY_STRIDE         0x8624 | ||||
| #define GL_VERTEX_ATTRIB_ARRAY_TYPE           0x8625 | ||||
| #define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED     0x886A | ||||
| #define GL_VERTEX_ATTRIB_ARRAY_POINTER        0x8645 | ||||
| #define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F | ||||
| #define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A | ||||
|  | ||||
| /* Read Format */ | ||||
| #define GL_IMPLEMENTATION_COLOR_READ_TYPE   0x8B9A | ||||
| #define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B | ||||
|  | ||||
| /* Shader Source */ | ||||
| #define GL_COMPILE_STATUS                 0x8B81 | ||||
| #define GL_INFO_LOG_LENGTH                0x8B84 | ||||
| #define GL_SHADER_SOURCE_LENGTH           0x8B88 | ||||
| #define GL_SHADER_COMPILER                0x8DFA | ||||
|  | ||||
| /* Shader Binary */ | ||||
| #define GL_SHADER_BINARY_FORMATS          0x8DF8 | ||||
| #define GL_NUM_SHADER_BINARY_FORMATS      0x8DF9 | ||||
|  | ||||
| /* Shader Precision-Specified Types */ | ||||
| #define GL_LOW_FLOAT                      0x8DF0 | ||||
| #define GL_MEDIUM_FLOAT                   0x8DF1 | ||||
| #define GL_HIGH_FLOAT                     0x8DF2 | ||||
| #define GL_LOW_INT                        0x8DF3 | ||||
| #define GL_MEDIUM_INT                     0x8DF4 | ||||
| #define GL_HIGH_INT                       0x8DF5 | ||||
|  | ||||
| /* Framebuffer Object. */ | ||||
| #define GL_FRAMEBUFFER                    0x8D40 | ||||
| #define GL_RENDERBUFFER                   0x8D41 | ||||
|  | ||||
| #define GL_RGBA4                          0x8056 | ||||
| #define GL_RGB5_A1                        0x8057 | ||||
| #define GL_RGB565                         0x8D62 | ||||
| #define GL_DEPTH_COMPONENT16              0x81A5 | ||||
| #define GL_STENCIL_INDEX8                 0x8D48 | ||||
|  | ||||
| #define GL_RENDERBUFFER_WIDTH             0x8D42 | ||||
| #define GL_RENDERBUFFER_HEIGHT            0x8D43 | ||||
| #define GL_RENDERBUFFER_INTERNAL_FORMAT   0x8D44 | ||||
| @@ -357,169 +442,179 @@ typedef khronos_uint8_t GLubyte; | ||||
| #define GL_RENDERBUFFER_ALPHA_SIZE        0x8D53 | ||||
| #define GL_RENDERBUFFER_DEPTH_SIZE        0x8D54 | ||||
| #define GL_RENDERBUFFER_STENCIL_SIZE      0x8D55 | ||||
| #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 | ||||
| #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 | ||||
| #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 | ||||
|  | ||||
| #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE           0x8CD0 | ||||
| #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME           0x8CD1 | ||||
| #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL         0x8CD2 | ||||
| #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 | ||||
|  | ||||
| #define GL_COLOR_ATTACHMENT0              0x8CE0 | ||||
| #define GL_DEPTH_ATTACHMENT               0x8D00 | ||||
| #define GL_STENCIL_ATTACHMENT             0x8D20 | ||||
|  | ||||
| #define GL_NONE                           0 | ||||
| #define GL_FRAMEBUFFER_COMPLETE           0x8CD5 | ||||
| #define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 | ||||
|  | ||||
| #define GL_FRAMEBUFFER_COMPLETE                      0x8CD5 | ||||
| #define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT         0x8CD6 | ||||
| #define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 | ||||
| #define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9 | ||||
| #define GL_FRAMEBUFFER_UNSUPPORTED        0x8CDD | ||||
| #define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS         0x8CD9 | ||||
| #define GL_FRAMEBUFFER_UNSUPPORTED                   0x8CDD | ||||
|  | ||||
| #define GL_FRAMEBUFFER_BINDING            0x8CA6 | ||||
| #define GL_RENDERBUFFER_BINDING           0x8CA7 | ||||
| #define GL_MAX_RENDERBUFFER_SIZE          0x84E8 | ||||
|  | ||||
| #define GL_INVALID_FRAMEBUFFER_OPERATION  0x0506 | ||||
| GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture); | ||||
| GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader); | ||||
| GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); | ||||
| GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer); | ||||
| GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); | ||||
| GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); | ||||
| GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture); | ||||
| GL_APICALL void GL_APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); | ||||
| GL_APICALL void GL_APIENTRY glBlendEquation (GLenum mode); | ||||
| GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); | ||||
| GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); | ||||
| GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); | ||||
| GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage); | ||||
| GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); | ||||
| GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target); | ||||
| GL_APICALL void GL_APIENTRY glClear (GLbitfield mask); | ||||
| GL_APICALL void GL_APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); | ||||
| GL_APICALL void GL_APIENTRY glClearDepthf (GLfloat d); | ||||
| GL_APICALL void GL_APIENTRY glClearStencil (GLint s); | ||||
| GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); | ||||
| GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader); | ||||
| GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); | ||||
| GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); | ||||
| GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); | ||||
| GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); | ||||
| GL_APICALL GLuint GL_APIENTRY glCreateProgram (void); | ||||
| GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type); | ||||
| GL_APICALL void GL_APIENTRY glCullFace (GLenum mode); | ||||
| GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); | ||||
| GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers); | ||||
| GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program); | ||||
| GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers); | ||||
| GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader); | ||||
| GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); | ||||
| GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func); | ||||
| GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag); | ||||
| GL_APICALL void GL_APIENTRY glDepthRangef (GLfloat n, GLfloat f); | ||||
| GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader); | ||||
| GL_APICALL void GL_APIENTRY glDisable (GLenum cap); | ||||
| GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index); | ||||
| GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); | ||||
| GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices); | ||||
| GL_APICALL void GL_APIENTRY glEnable (GLenum cap); | ||||
| GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index); | ||||
| GL_APICALL void GL_APIENTRY glFinish (void); | ||||
| GL_APICALL void GL_APIENTRY glFlush (void); | ||||
| GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); | ||||
| GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); | ||||
| GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode); | ||||
| GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); | ||||
| GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target); | ||||
| GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers); | ||||
| GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers); | ||||
| GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures); | ||||
| GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); | ||||
| GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); | ||||
| GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); | ||||
| GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar *name); | ||||
| GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *data); | ||||
| GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); | ||||
| GL_APICALL GLenum GL_APIENTRY glGetError (void); | ||||
| GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *data); | ||||
| GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params); | ||||
| GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *data); | ||||
| GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params); | ||||
| GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); | ||||
| GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params); | ||||
| GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params); | ||||
| GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); | ||||
| GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); | ||||
| GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); | ||||
| GL_APICALL const GLubyte *GL_APIENTRY glGetString (GLenum name); | ||||
| GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); | ||||
| GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); | ||||
| GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params); | ||||
| GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params); | ||||
| GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar *name); | ||||
| GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); | ||||
| GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); | ||||
| GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer); | ||||
| GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode); | ||||
| GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer); | ||||
| GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap); | ||||
| GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer); | ||||
| GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program); | ||||
| GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer); | ||||
| GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader); | ||||
| GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture); | ||||
| GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width); | ||||
| GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program); | ||||
| GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param); | ||||
| GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); | ||||
| GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); | ||||
| GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void); | ||||
| GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); | ||||
| GL_APICALL void GL_APIENTRY glSampleCoverage (GLfloat value, GLboolean invert); | ||||
| GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); | ||||
| GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length); | ||||
| GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); | ||||
| GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); | ||||
| GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); | ||||
| GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask); | ||||
| GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); | ||||
| GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); | ||||
| GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); | ||||
| GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); | ||||
| GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); | ||||
| GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); | ||||
| GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); | ||||
| GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); | ||||
| GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); | ||||
| GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat v0); | ||||
| GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value); | ||||
| GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint v0); | ||||
| GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value); | ||||
| GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1); | ||||
| GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value); | ||||
| GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint v0, GLint v1); | ||||
| GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value); | ||||
| GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); | ||||
| GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value); | ||||
| GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); | ||||
| GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value); | ||||
| GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); | ||||
| GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value); | ||||
| GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); | ||||
| GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value); | ||||
| GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); | ||||
| GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); | ||||
| GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); | ||||
| GL_APICALL void GL_APIENTRY glUseProgram (GLuint program); | ||||
| GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program); | ||||
| GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint index, GLfloat x); | ||||
| GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v); | ||||
| GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); | ||||
| GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v); | ||||
| GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); | ||||
| GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v); | ||||
| GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); | ||||
| GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v); | ||||
| GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); | ||||
| GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); | ||||
| #endif /* GL_ES_VERSION_2_0 */ | ||||
|  | ||||
| /*------------------------------------------------------------------------- | ||||
|  * GL core functions. | ||||
|  *-----------------------------------------------------------------------*/ | ||||
|  | ||||
| GL_APICALL void         GL_APIENTRY glActiveTexture (GLenum texture); | ||||
| GL_APICALL void         GL_APIENTRY glAttachShader (GLuint program, GLuint shader); | ||||
| GL_APICALL void         GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar* name); | ||||
| GL_APICALL void         GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer); | ||||
| GL_APICALL void         GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); | ||||
| GL_APICALL void         GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); | ||||
| GL_APICALL void         GL_APIENTRY glBindTexture (GLenum target, GLuint texture); | ||||
| GL_APICALL void         GL_APIENTRY glBlendColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); | ||||
| GL_APICALL void         GL_APIENTRY glBlendEquation ( GLenum mode ); | ||||
| GL_APICALL void         GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); | ||||
| GL_APICALL void         GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); | ||||
| GL_APICALL void         GL_APIENTRY glBlendFuncSeparate (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); | ||||
| GL_APICALL void         GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage); | ||||
| GL_APICALL void         GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data); | ||||
| GL_APICALL GLenum       GL_APIENTRY glCheckFramebufferStatus (GLenum target); | ||||
| GL_APICALL void         GL_APIENTRY glClear (GLbitfield mask); | ||||
| GL_APICALL void         GL_APIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); | ||||
| GL_APICALL void         GL_APIENTRY glClearDepthf (GLclampf depth); | ||||
| GL_APICALL void         GL_APIENTRY glClearStencil (GLint s); | ||||
| GL_APICALL void         GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); | ||||
| GL_APICALL void         GL_APIENTRY glCompileShader (GLuint shader); | ||||
| GL_APICALL void         GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data); | ||||
| GL_APICALL void         GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data); | ||||
| GL_APICALL void         GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); | ||||
| GL_APICALL void         GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); | ||||
| GL_APICALL GLuint       GL_APIENTRY glCreateProgram (void); | ||||
| GL_APICALL GLuint       GL_APIENTRY glCreateShader (GLenum type); | ||||
| GL_APICALL void         GL_APIENTRY glCullFace (GLenum mode); | ||||
| GL_APICALL void         GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint* buffers); | ||||
| GL_APICALL void         GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint* framebuffers); | ||||
| GL_APICALL void         GL_APIENTRY glDeleteProgram (GLuint program); | ||||
| GL_APICALL void         GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint* renderbuffers); | ||||
| GL_APICALL void         GL_APIENTRY glDeleteShader (GLuint shader); | ||||
| GL_APICALL void         GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint* textures); | ||||
| GL_APICALL void         GL_APIENTRY glDepthFunc (GLenum func); | ||||
| GL_APICALL void         GL_APIENTRY glDepthMask (GLboolean flag); | ||||
| GL_APICALL void         GL_APIENTRY glDepthRangef (GLclampf zNear, GLclampf zFar); | ||||
| GL_APICALL void         GL_APIENTRY glDetachShader (GLuint program, GLuint shader); | ||||
| GL_APICALL void         GL_APIENTRY glDisable (GLenum cap); | ||||
| GL_APICALL void         GL_APIENTRY glDisableVertexAttribArray (GLuint index); | ||||
| GL_APICALL void         GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); | ||||
| GL_APICALL void         GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid* indices); | ||||
| GL_APICALL void         GL_APIENTRY glEnable (GLenum cap); | ||||
| GL_APICALL void         GL_APIENTRY glEnableVertexAttribArray (GLuint index); | ||||
| GL_APICALL void         GL_APIENTRY glFinish (void); | ||||
| GL_APICALL void         GL_APIENTRY glFlush (void); | ||||
| GL_APICALL void         GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); | ||||
| GL_APICALL void         GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); | ||||
| GL_APICALL void         GL_APIENTRY glFrontFace (GLenum mode); | ||||
| GL_APICALL void         GL_APIENTRY glGenBuffers (GLsizei n, GLuint* buffers); | ||||
| GL_APICALL void         GL_APIENTRY glGenerateMipmap (GLenum target); | ||||
| GL_APICALL void         GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint* framebuffers); | ||||
| GL_APICALL void         GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint* renderbuffers); | ||||
| GL_APICALL void         GL_APIENTRY glGenTextures (GLsizei n, GLuint* textures); | ||||
| GL_APICALL void         GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name); | ||||
| GL_APICALL void         GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name); | ||||
| GL_APICALL void         GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders); | ||||
| GL_APICALL GLint        GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar* name); | ||||
| GL_APICALL void         GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean* params); | ||||
| GL_APICALL void         GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint* params); | ||||
| GL_APICALL GLenum       GL_APIENTRY glGetError (void); | ||||
| GL_APICALL void         GL_APIENTRY glGetFloatv (GLenum pname, GLfloat* params); | ||||
| GL_APICALL void         GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint* params); | ||||
| GL_APICALL void         GL_APIENTRY glGetIntegerv (GLenum pname, GLint* params); | ||||
| GL_APICALL void         GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint* params); | ||||
| GL_APICALL void         GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog); | ||||
| GL_APICALL void         GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint* params); | ||||
| GL_APICALL void         GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint* params); | ||||
| GL_APICALL void         GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog); | ||||
| GL_APICALL void         GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision); | ||||
| GL_APICALL void         GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source); | ||||
| GL_APICALL const GLubyte* GL_APIENTRY glGetString (GLenum name); | ||||
| GL_APICALL void         GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat* params); | ||||
| GL_APICALL void         GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint* params); | ||||
| GL_APICALL void         GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat* params); | ||||
| GL_APICALL void         GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint* params); | ||||
| GL_APICALL GLint        GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar* name); | ||||
| GL_APICALL void         GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat* params); | ||||
| GL_APICALL void         GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint* params); | ||||
| GL_APICALL void         GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, GLvoid** pointer); | ||||
| GL_APICALL void         GL_APIENTRY glHint (GLenum target, GLenum mode); | ||||
| GL_APICALL GLboolean    GL_APIENTRY glIsBuffer (GLuint buffer); | ||||
| GL_APICALL GLboolean    GL_APIENTRY glIsEnabled (GLenum cap); | ||||
| GL_APICALL GLboolean    GL_APIENTRY glIsFramebuffer (GLuint framebuffer); | ||||
| GL_APICALL GLboolean    GL_APIENTRY glIsProgram (GLuint program); | ||||
| GL_APICALL GLboolean    GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer); | ||||
| GL_APICALL GLboolean    GL_APIENTRY glIsShader (GLuint shader); | ||||
| GL_APICALL GLboolean    GL_APIENTRY glIsTexture (GLuint texture); | ||||
| GL_APICALL void         GL_APIENTRY glLineWidth (GLfloat width); | ||||
| GL_APICALL void         GL_APIENTRY glLinkProgram (GLuint program); | ||||
| GL_APICALL void         GL_APIENTRY glPixelStorei (GLenum pname, GLint param); | ||||
| GL_APICALL void         GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); | ||||
| GL_APICALL void         GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels); | ||||
| GL_APICALL void         GL_APIENTRY glReleaseShaderCompiler (void); | ||||
| GL_APICALL void         GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); | ||||
| GL_APICALL void         GL_APIENTRY glSampleCoverage (GLclampf value, GLboolean invert); | ||||
| GL_APICALL void         GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); | ||||
| GL_APICALL void         GL_APIENTRY glShaderBinary (GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length); | ||||
| GL_APICALL void         GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar* const* string, const GLint* length); | ||||
| GL_APICALL void         GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); | ||||
| GL_APICALL void         GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); | ||||
| GL_APICALL void         GL_APIENTRY glStencilMask (GLuint mask); | ||||
| GL_APICALL void         GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); | ||||
| GL_APICALL void         GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); | ||||
| GL_APICALL void         GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum fail, GLenum zfail, GLenum zpass); | ||||
| GL_APICALL void         GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels); | ||||
| GL_APICALL void         GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); | ||||
| GL_APICALL void         GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat* params); | ||||
| GL_APICALL void         GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); | ||||
| GL_APICALL void         GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint* params); | ||||
| GL_APICALL void         GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels); | ||||
| GL_APICALL void         GL_APIENTRY glUniform1f (GLint location, GLfloat x); | ||||
| GL_APICALL void         GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat* v); | ||||
| GL_APICALL void         GL_APIENTRY glUniform1i (GLint location, GLint x); | ||||
| GL_APICALL void         GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint* v); | ||||
| GL_APICALL void         GL_APIENTRY glUniform2f (GLint location, GLfloat x, GLfloat y); | ||||
| GL_APICALL void         GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat* v); | ||||
| GL_APICALL void         GL_APIENTRY glUniform2i (GLint location, GLint x, GLint y); | ||||
| GL_APICALL void         GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint* v); | ||||
| GL_APICALL void         GL_APIENTRY glUniform3f (GLint location, GLfloat x, GLfloat y, GLfloat z); | ||||
| GL_APICALL void         GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat* v); | ||||
| GL_APICALL void         GL_APIENTRY glUniform3i (GLint location, GLint x, GLint y, GLint z); | ||||
| GL_APICALL void         GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint* v); | ||||
| GL_APICALL void         GL_APIENTRY glUniform4f (GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); | ||||
| GL_APICALL void         GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat* v); | ||||
| GL_APICALL void         GL_APIENTRY glUniform4i (GLint location, GLint x, GLint y, GLint z, GLint w); | ||||
| GL_APICALL void         GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint* v); | ||||
| GL_APICALL void         GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); | ||||
| GL_APICALL void         GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); | ||||
| GL_APICALL void         GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); | ||||
| GL_APICALL void         GL_APIENTRY glUseProgram (GLuint program); | ||||
| GL_APICALL void         GL_APIENTRY glValidateProgram (GLuint program); | ||||
| GL_APICALL void         GL_APIENTRY glVertexAttrib1f (GLuint indx, GLfloat x); | ||||
| GL_APICALL void         GL_APIENTRY glVertexAttrib1fv (GLuint indx, const GLfloat* values); | ||||
| GL_APICALL void         GL_APIENTRY glVertexAttrib2f (GLuint indx, GLfloat x, GLfloat y); | ||||
| GL_APICALL void         GL_APIENTRY glVertexAttrib2fv (GLuint indx, const GLfloat* values); | ||||
| GL_APICALL void         GL_APIENTRY glVertexAttrib3f (GLuint indx, GLfloat x, GLfloat y, GLfloat z); | ||||
| GL_APICALL void         GL_APIENTRY glVertexAttrib3fv (GLuint indx, const GLfloat* values); | ||||
| GL_APICALL void         GL_APIENTRY glVertexAttrib4f (GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w); | ||||
| GL_APICALL void         GL_APIENTRY glVertexAttrib4fv (GLuint indx, const GLfloat* values); | ||||
| GL_APICALL void         GL_APIENTRY glVertexAttribPointer (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr); | ||||
| GL_APICALL void         GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| } | ||||
| #endif | ||||
|  | ||||
| #endif | ||||
| #endif /* __gl2_h_ */ | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -27,4 +27,6 @@ | ||||
| #define GL_APIENTRY KHRONOS_APIENTRY | ||||
| #endif | ||||
|  | ||||
| #define GL_STENCIL_INDEX 0x1901 | ||||
|  | ||||
| #endif /* __gl2platform_h_ */ | ||||
|   | ||||
							
								
								
									
										1922
									
								
								include/GLES3/gl3.h
									
									
									
									
									
								
							
							
						
						
									
										1922
									
								
								include/GLES3/gl3.h
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										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 | ||||
|   | ||||
| @@ -1,76 +0,0 @@ | ||||
| /* | ||||
|  * Copyright 2006, Philippe Houdoin. All rights reserved. | ||||
|  * Distributed under the terms of the MIT License. | ||||
|  | ||||
|  * This header defines BGLRenderer, the base class making up | ||||
|  * the Haiku GL renderer add-ons (essentially selfcontained C++ | ||||
|  * shared libraries that do the actual rendering such as | ||||
|  * libswpipe.so and libswrast.so) | ||||
|  */ | ||||
| #ifndef GLRENDERER_H | ||||
| #define GLRENDERER_H | ||||
|  | ||||
|  | ||||
| #include <BeBuild.h> | ||||
| #include <GLView.h> | ||||
|  | ||||
|  | ||||
| class BGLDispatcher; | ||||
| class GLRendererRoster; | ||||
|  | ||||
| typedef unsigned long renderer_id; | ||||
|  | ||||
| class BGLRenderer | ||||
| { | ||||
| 							// Private unimplemented copy constructors | ||||
| 							BGLRenderer(const BGLRenderer &); | ||||
| 							BGLRenderer & operator=(const BGLRenderer &); | ||||
|  | ||||
| public: | ||||
| 							BGLRenderer(BGLView *view, ulong bgl_options, | ||||
| 								BGLDispatcher *dispatcher); | ||||
| 	virtual					~BGLRenderer(); | ||||
|  | ||||
| 	void 					Acquire(); | ||||
| 	void					Release(); | ||||
|  | ||||
| 	virtual void			LockGL(); | ||||
| 	virtual void 			UnlockGL(); | ||||
|  | ||||
| 	virtual	void 			SwapBuffers(bool VSync = false); | ||||
| 	virtual	void			Draw(BRect updateRect); | ||||
| 	virtual status_t		CopyPixelsOut(BPoint source, BBitmap *dest); | ||||
| 	virtual status_t    	CopyPixelsIn(BBitmap *source, BPoint dest); | ||||
|  | ||||
| 	virtual void			FrameResized(float width, float height); | ||||
|  | ||||
| 	virtual void			DirectConnected(direct_buffer_info *info); | ||||
| 	virtual void			EnableDirectMode(bool enabled); | ||||
|  | ||||
| 	inline	int32			ReferenceCount() const { return fRefCount; }; | ||||
| 	inline	ulong			Options() const { return fOptions; }; | ||||
| 	inline	BGLView*		GLView() { return fView; }; | ||||
| 	inline	BGLDispatcher*	GLDispatcher() { return fDispatcher; }; | ||||
|  | ||||
| private: | ||||
| 	friend class GLRendererRoster; | ||||
|  | ||||
| 	virtual status_t		_Reserved_Renderer_0(int32, void *); | ||||
| 	virtual status_t		_Reserved_Renderer_1(int32, void *); | ||||
| 	virtual status_t		_Reserved_Renderer_2(int32, void *); | ||||
| 	virtual status_t		_Reserved_Renderer_3(int32, void *); | ||||
| 	virtual status_t		_Reserved_Renderer_4(int32, void *); | ||||
|  | ||||
| 	int32					fRefCount;	// How much we're still useful | ||||
| 	BGLView*				fView;		// Never forget who is the boss! | ||||
| 	ulong					fOptions;	// Keep that tune in memory | ||||
| 	BGLDispatcher*			fDispatcher;// Our personal GL API call dispatcher | ||||
|  | ||||
| 	GLRendererRoster*		fOwningRoster; | ||||
| 	renderer_id				fID; | ||||
| }; | ||||
|  | ||||
| extern "C" _EXPORT BGLRenderer* instantiate_gl_renderer(BGLView *view, ulong options, BGLDispatcher *dispatcher); | ||||
|  | ||||
|  | ||||
| #endif	// GLRENDERER_H | ||||
| @@ -1,193 +0,0 @@ | ||||
| /* | ||||
|  * Copyright 2008-2013, Haiku, Inc. All Rights Reserved. | ||||
|  * Distributed under the terms of the MIT License. | ||||
|  * | ||||
|  * This header defines BGLView, the base class making up | ||||
|  * the Haiku GL Kit. | ||||
|  * | ||||
|  */ | ||||
| #ifndef BGLVIEW_H | ||||
| #define BGLVIEW_H | ||||
|  | ||||
|  | ||||
| #include <GL/gl.h> | ||||
|  | ||||
| #define BGL_RGB			0 | ||||
| #define BGL_INDEX		1 | ||||
| #define BGL_SINGLE		0 | ||||
| #define BGL_DOUBLE		2 | ||||
| #define BGL_DIRECT		0 | ||||
| #define BGL_INDIRECT	4 | ||||
| #define BGL_ACCUM		8 | ||||
| #define BGL_ALPHA		16 | ||||
| #define BGL_DEPTH		32 | ||||
| #define BGL_OVERLAY		64 | ||||
| #define BGL_UNDERLAY	128 | ||||
| #define BGL_STENCIL		512 | ||||
|  | ||||
| #ifdef __cplusplus | ||||
|  | ||||
| #include <AppKit.h> | ||||
| #include <Bitmap.h> | ||||
| #include <DirectWindow.h> | ||||
| #include <View.h> | ||||
| #include <Window.h> | ||||
| #include <WindowScreen.h> | ||||
|  | ||||
|  | ||||
| struct glview_direct_info; | ||||
| class BGLRenderer; | ||||
| class GLRendererRoster; | ||||
|  | ||||
| class BGLView : public BView { | ||||
| public: | ||||
| 							BGLView(BRect rect, const char* name, | ||||
| 								ulong resizingMode, ulong mode, | ||||
| 								ulong options); | ||||
| 	virtual					~BGLView(); | ||||
|  | ||||
| 			void			LockGL(); | ||||
| 			void			UnlockGL(); | ||||
| 			void			SwapBuffers(); | ||||
| 			void			SwapBuffers(bool vSync); | ||||
|  | ||||
| 			BView*			EmbeddedView(); // deprecated, returns NULL | ||||
| 			void*			GetGLProcAddress(const char* procName); | ||||
|  | ||||
| 			status_t		CopyPixelsOut(BPoint source, BBitmap *dest); | ||||
| 			status_t		CopyPixelsIn(BBitmap *source, BPoint dest); | ||||
|  | ||||
| 	// Mesa's GLenum is uint where Be's ones was ulong! | ||||
| 	virtual	void			ErrorCallback(unsigned long errorCode); | ||||
|  | ||||
| 	virtual void			Draw(BRect updateRect); | ||||
| 	virtual void			AttachedToWindow(); | ||||
| 	virtual void			AllAttached(); | ||||
| 	virtual void			DetachedFromWindow(); | ||||
| 	virtual void			AllDetached(); | ||||
|  | ||||
| 	virtual void			FrameResized(float newWidth, float newHeight); | ||||
| 	virtual status_t		Perform(perform_code d, void *arg); | ||||
|  | ||||
| 	virtual status_t		Archive(BMessage *data, bool deep = true) const; | ||||
|  | ||||
| 	virtual void			MessageReceived(BMessage *message); | ||||
| 	virtual void			SetResizingMode(uint32 mode); | ||||
|  | ||||
| 	virtual void			Show(); | ||||
| 	virtual void			Hide(); | ||||
|  | ||||
| 	virtual BHandler*		ResolveSpecifier(BMessage *msg, int32 index, | ||||
| 								BMessage *specifier, int32 form, | ||||
| 								const char *property); | ||||
| 	virtual status_t		GetSupportedSuites(BMessage *data); | ||||
|  | ||||
| 			void			DirectConnected(direct_buffer_info *info); | ||||
| 			void			EnableDirectMode(bool enabled); | ||||
|  | ||||
| 			void*			getGC()	{ return fGc; } // ??? | ||||
|  | ||||
| 	virtual void			GetPreferredSize(float* width, float* height); | ||||
|  | ||||
| private: | ||||
|  | ||||
| 	virtual void			_ReservedGLView1(); | ||||
| 	virtual void			_ReservedGLView2(); | ||||
| 	virtual void			_ReservedGLView3(); | ||||
| 	virtual void			_ReservedGLView4(); | ||||
| 	virtual void			_ReservedGLView5(); | ||||
| 	virtual void			_ReservedGLView6(); | ||||
| 	virtual void			_ReservedGLView7(); | ||||
| 	virtual void			_ReservedGLView8(); | ||||
|  | ||||
| 							BGLView(const BGLView &); | ||||
| 							BGLView &operator=(const BGLView &); | ||||
|  | ||||
| 			void			_DitherFront(); | ||||
| 			bool			_ConfirmDither(); | ||||
| 			void			_Draw(BRect rect); | ||||
| 			void			_CallDirectConnected(); | ||||
|  | ||||
| 			void*			fGc; | ||||
| 			uint32			fOptions; | ||||
| 			uint32			fDitherCount; | ||||
| 			BLocker			fDrawLock; | ||||
| 			BLocker			fDisplayLock; | ||||
| 			glview_direct_info* fClipInfo; | ||||
|  | ||||
| 			BGLRenderer*	fRenderer; | ||||
| 			GLRendererRoster* fRoster; | ||||
|  | ||||
| 			BBitmap*		fDitherMap; | ||||
| 			BRect			fBounds; | ||||
| 			int16*			fErrorBuffer[2]; | ||||
| 			uint64			_reserved[8]; | ||||
|  | ||||
| 			void			_LockDraw(); | ||||
| 			void			_UnlockDraw(); | ||||
|  | ||||
| // BeOS compatibility | ||||
| private: | ||||
| 							BGLView(BRect rect, char* name, | ||||
| 								ulong resizingMode, ulong mode, | ||||
| 								ulong options); | ||||
| }; | ||||
|  | ||||
|  | ||||
| class BGLScreen : public BWindowScreen { | ||||
| public: | ||||
| 							BGLScreen(char* name, | ||||
| 								ulong screenMode, ulong options, | ||||
| 								status_t *error, bool debug=false); | ||||
| 							~BGLScreen(); | ||||
|  | ||||
| 			void			LockGL(); | ||||
| 			void			UnlockGL(); | ||||
| 			void			SwapBuffers(); | ||||
| 							// Mesa's GLenum is uint where Be's ones was ulong! | ||||
| 	virtual	void			ErrorCallback(unsigned long errorCode); | ||||
|  | ||||
| 	virtual void			ScreenConnected(bool connected); | ||||
| 	virtual void			FrameResized(float width, float height); | ||||
| 	virtual status_t		Perform(perform_code code, void *arg); | ||||
|  | ||||
| 	virtual status_t		Archive(BMessage *data, bool deep = true) const; | ||||
| 	virtual void			MessageReceived(BMessage *message); | ||||
|  | ||||
| 	virtual void			Show(); | ||||
| 	virtual void			Hide(); | ||||
|  | ||||
| 	virtual BHandler*		ResolveSpecifier(BMessage *message, | ||||
| 								int32 index, | ||||
| 								BMessage *specifier, | ||||
| 								int32 form, | ||||
| 								const char *property); | ||||
| 	virtual status_t		GetSupportedSuites(BMessage *data); | ||||
|  | ||||
| private: | ||||
|  | ||||
| 	virtual void			_ReservedGLScreen1(); | ||||
| 	virtual void			_ReservedGLScreen2(); | ||||
| 	virtual void			_ReservedGLScreen3(); | ||||
| 	virtual void			_ReservedGLScreen4(); | ||||
| 	virtual void			_ReservedGLScreen5(); | ||||
| 	virtual void			_ReservedGLScreen6(); | ||||
| 	virtual void			_ReservedGLScreen7(); | ||||
| 	virtual void			_ReservedGLScreen8(); | ||||
|  | ||||
| 							BGLScreen(const BGLScreen &); | ||||
| 							BGLScreen &operator=(const BGLScreen &); | ||||
|  | ||||
| 			void*			fGc; | ||||
| 			long			fOptions; | ||||
| 			BLocker			fDrawLock; | ||||
|  | ||||
| 			int32			fColorSpace; | ||||
| 			uint32			fScreenMode; | ||||
|  | ||||
| 			uint64			_reserved[7]; | ||||
| }; | ||||
|  | ||||
| #endif // __cplusplus | ||||
|  | ||||
| #endif // BGLVIEW_H | ||||
| @@ -1,10 +0,0 @@ | ||||
| /* | ||||
|  * Master include file for the Haiku OpenGL Kit. | ||||
|  */ | ||||
|  | ||||
| #include <GL/gl.h> | ||||
| #include <GLView.h> | ||||
|  | ||||
| // Projects needing GL/glu.h and GL/glut.h should now | ||||
| // include these headers independently as glu and glut | ||||
| // are no longe core parts of mesa | ||||
| @@ -1,28 +0,0 @@ | ||||
| These headers make up the Haiku Op*nGL kit. | ||||
|  | ||||
| Headers in this directory preserve some BeOS™ compatibility | ||||
| compatibility, so changes should be mentioned to the Haiku | ||||
| project mailing list. | ||||
|  | ||||
| http://haiku-os.org | ||||
|  | ||||
| Normal Haiku Op*enGL layout: | ||||
|  | ||||
|   * headers/os/OpenGLKit.h | ||||
|   * headers/os/opengl/GLView.h | ||||
|   * headers/os/opengl/GLRenderer.h | ||||
|   * headers/os/opengl/GL/gl.h | ||||
|   * headers/os/opengl/GL/gl_mangle.h | ||||
|   * headers/os/opengl/GL/glext.h | ||||
|   * headers/os/opengl/GL/osmesa.h (needed?) | ||||
|  | ||||
| Extras: | ||||
|  | ||||
|   * headers/os/opengl/GL/glu.h | ||||
|   * headers/os/opengl/GL/glut.h | ||||
|  | ||||
| OpenGL™ is a trademark of SGI. The usage of this trademark | ||||
| in the Haiku GL Kit is not a sign of any certification or | ||||
| endorsement by SGI or its affiliates. Usage is purely to | ||||
| allow legacy compatibility with the BeOS™ and its 3D GL | ||||
| rendering subsystem. | ||||
| @@ -1,79 +0,0 @@ | ||||
| /* | ||||
|  * C11 <threads.h> emulation library | ||||
|  * | ||||
|  * (C) Copyright yohhoy 2012. | ||||
|  * Distributed under the Boost Software License, Version 1.0. | ||||
|  * | ||||
|  * Permission is hereby granted, free of charge, to any person or organization | ||||
|  * obtaining a copy of the software and accompanying documentation covered by | ||||
|  * this license (the "Software") to use, reproduce, display, distribute, | ||||
|  * execute, and transmit the Software, and to prepare [[derivative work]]s of the | ||||
|  * Software, and to permit third-parties to whom the Software is furnished to | ||||
|  * do so, all subject to the following: | ||||
|  * | ||||
|  * The copyright notices in the Software and this entire statement, including | ||||
|  * the above license grant, this restriction and the following disclaimer, | ||||
|  * must be included in all copies of the Software, in whole or in part, and | ||||
|  * all derivative works of the Software, unless such copies or derivative | ||||
|  * works are solely in the form of machine-executable object code generated by | ||||
|  * a source language processor. | ||||
|  * | ||||
|  * 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, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
|  * SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
|  * FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
|  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
|  * DEALINGS IN THE SOFTWARE. | ||||
|  */ | ||||
| #ifndef EMULATED_THREADS_H_INCLUDED_ | ||||
| #define EMULATED_THREADS_H_INCLUDED_ | ||||
|  | ||||
| #include <time.h> | ||||
|  | ||||
| #ifndef TIME_UTC | ||||
| #define TIME_UTC 1 | ||||
| #endif | ||||
|  | ||||
| #include "c99_compat.h" /* for `inline` */ | ||||
|  | ||||
| /*---------------------------- types ----------------------------*/ | ||||
| typedef void (*tss_dtor_t)(void*); | ||||
| typedef int (*thrd_start_t)(void*); | ||||
|  | ||||
| struct xtime { | ||||
|     time_t sec; | ||||
|     long nsec; | ||||
| }; | ||||
| typedef struct xtime xtime; | ||||
|  | ||||
|  | ||||
| /*-------------------- enumeration constants --------------------*/ | ||||
| enum { | ||||
|     mtx_plain     = 0, | ||||
|     mtx_try       = 1, | ||||
|     mtx_timed     = 2, | ||||
|     mtx_recursive = 4 | ||||
| }; | ||||
|  | ||||
| enum { | ||||
|     thrd_success = 0, // succeeded | ||||
|     thrd_timeout,     // timeout | ||||
|     thrd_error,       // failed | ||||
|     thrd_busy,        // resource busy | ||||
|     thrd_nomem        // out of memory | ||||
| }; | ||||
|  | ||||
| /*-------------------------- functions --------------------------*/ | ||||
|  | ||||
| #if defined(_WIN32) && !defined(__CYGWIN__) | ||||
| #include "threads_win32.h" | ||||
| #elif defined(HAVE_PTHREAD) | ||||
| #include "threads_posix.h" | ||||
| #else | ||||
| #error Not supported on this platform. | ||||
| #endif | ||||
|  | ||||
|  | ||||
|  | ||||
| #endif /* EMULATED_THREADS_H_INCLUDED_ */ | ||||
| @@ -1,375 +0,0 @@ | ||||
| /* | ||||
|  * C11 <threads.h> emulation library | ||||
|  * | ||||
|  * (C) Copyright yohhoy 2012. | ||||
|  * Distributed under the Boost Software License, Version 1.0. | ||||
|  * | ||||
|  * Permission is hereby granted, free of charge, to any person or organization | ||||
|  * obtaining a copy of the software and accompanying documentation covered by | ||||
|  * this license (the "Software") to use, reproduce, display, distribute, | ||||
|  * execute, and transmit the Software, and to prepare [[derivative work]]s of the | ||||
|  * Software, and to permit third-parties to whom the Software is furnished to | ||||
|  * do so, all subject to the following: | ||||
|  * | ||||
|  * The copyright notices in the Software and this entire statement, including | ||||
|  * the above license grant, this restriction and the following disclaimer, | ||||
|  * must be included in all copies of the Software, in whole or in part, and | ||||
|  * all derivative works of the Software, unless such copies or derivative | ||||
|  * works are solely in the form of machine-executable object code generated by | ||||
|  * a source language processor. | ||||
|  * | ||||
|  * 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, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
|  * SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
|  * FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
|  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
|  * DEALINGS IN THE SOFTWARE. | ||||
|  */ | ||||
| #include <stdlib.h> | ||||
| #ifndef assert | ||||
| #include <assert.h> | ||||
| #endif | ||||
| #include <limits.h> | ||||
| #include <errno.h> | ||||
| #include <unistd.h> | ||||
| #include <sched.h> | ||||
| #include <stdint.h> /* for intptr_t */ | ||||
|  | ||||
| /* | ||||
| Configuration macro: | ||||
|  | ||||
|   EMULATED_THREADS_USE_NATIVE_TIMEDLOCK | ||||
|     Use pthread_mutex_timedlock() for `mtx_timedlock()' | ||||
|     Otherwise use mtx_trylock() + *busy loop* emulation. | ||||
| */ | ||||
| #if !defined(__CYGWIN__) && !defined(__APPLE__) && !defined(__NetBSD__) | ||||
| #define EMULATED_THREADS_USE_NATIVE_TIMEDLOCK | ||||
| #endif | ||||
|  | ||||
|  | ||||
| #include <pthread.h> | ||||
|  | ||||
| /*---------------------------- macros ----------------------------*/ | ||||
| #define ONCE_FLAG_INIT PTHREAD_ONCE_INIT | ||||
| #ifdef INIT_ONCE_STATIC_INIT | ||||
| #define TSS_DTOR_ITERATIONS PTHREAD_DESTRUCTOR_ITERATIONS | ||||
| #else | ||||
| #define TSS_DTOR_ITERATIONS 1  // assume TSS dtor MAY be called at least once. | ||||
| #endif | ||||
|  | ||||
| // FIXME: temporary non-standard hack to ease transition | ||||
| #define _MTX_INITIALIZER_NP PTHREAD_MUTEX_INITIALIZER | ||||
|  | ||||
| /*---------------------------- types ----------------------------*/ | ||||
| typedef pthread_cond_t  cnd_t; | ||||
| typedef pthread_t       thrd_t; | ||||
| typedef pthread_key_t   tss_t; | ||||
| typedef pthread_mutex_t mtx_t; | ||||
| typedef pthread_once_t  once_flag; | ||||
|  | ||||
|  | ||||
| /* | ||||
| Implementation limits: | ||||
|   - Conditionally emulation for "mutex with timeout" | ||||
|     (see EMULATED_THREADS_USE_NATIVE_TIMEDLOCK macro) | ||||
| */ | ||||
| struct impl_thrd_param { | ||||
|     thrd_start_t func; | ||||
|     void *arg; | ||||
| }; | ||||
|  | ||||
| static inline void * | ||||
| impl_thrd_routine(void *p) | ||||
| { | ||||
|     struct impl_thrd_param pack = *((struct impl_thrd_param *)p); | ||||
|     free(p); | ||||
|     return (void*)(intptr_t)pack.func(pack.arg); | ||||
| } | ||||
|  | ||||
|  | ||||
| /*--------------- 7.25.2 Initialization functions ---------------*/ | ||||
| // 7.25.2.1 | ||||
| static inline void | ||||
| call_once(once_flag *flag, void (*func)(void)) | ||||
| { | ||||
|     pthread_once(flag, func); | ||||
| } | ||||
|  | ||||
|  | ||||
| /*------------- 7.25.3 Condition variable functions -------------*/ | ||||
| // 7.25.3.1 | ||||
| static inline int | ||||
| cnd_broadcast(cnd_t *cond) | ||||
| { | ||||
|     if (!cond) return thrd_error; | ||||
|     pthread_cond_broadcast(cond); | ||||
|     return thrd_success; | ||||
| } | ||||
|  | ||||
| // 7.25.3.2 | ||||
| static inline void | ||||
| cnd_destroy(cnd_t *cond) | ||||
| { | ||||
|     assert(cond); | ||||
|     pthread_cond_destroy(cond); | ||||
| } | ||||
|  | ||||
| // 7.25.3.3 | ||||
| static inline int | ||||
| cnd_init(cnd_t *cond) | ||||
| { | ||||
|     if (!cond) return thrd_error; | ||||
|     pthread_cond_init(cond, NULL); | ||||
|     return thrd_success; | ||||
| } | ||||
|  | ||||
| // 7.25.3.4 | ||||
| static inline int | ||||
| cnd_signal(cnd_t *cond) | ||||
| { | ||||
|     if (!cond) return thrd_error; | ||||
|     pthread_cond_signal(cond); | ||||
|     return thrd_success; | ||||
| } | ||||
|  | ||||
| // 7.25.3.5 | ||||
| static inline int | ||||
| cnd_timedwait(cnd_t *cond, mtx_t *mtx, const xtime *xt) | ||||
| { | ||||
|     struct timespec abs_time; | ||||
|     int rt; | ||||
|     if (!cond || !mtx || !xt) return thrd_error; | ||||
|     rt = pthread_cond_timedwait(cond, mtx, &abs_time); | ||||
|     if (rt == ETIMEDOUT) | ||||
|         return thrd_busy; | ||||
|     return (rt == 0) ? thrd_success : thrd_error; | ||||
| } | ||||
|  | ||||
| // 7.25.3.6 | ||||
| static inline int | ||||
| cnd_wait(cnd_t *cond, mtx_t *mtx) | ||||
| { | ||||
|     if (!cond || !mtx) return thrd_error; | ||||
|     pthread_cond_wait(cond, mtx); | ||||
|     return thrd_success; | ||||
| } | ||||
|  | ||||
|  | ||||
| /*-------------------- 7.25.4 Mutex functions --------------------*/ | ||||
| // 7.25.4.1 | ||||
| static inline void | ||||
| mtx_destroy(mtx_t *mtx) | ||||
| { | ||||
|     assert(mtx); | ||||
|     pthread_mutex_destroy(mtx); | ||||
| } | ||||
|  | ||||
| // 7.25.4.2 | ||||
| static inline int | ||||
| mtx_init(mtx_t *mtx, int type) | ||||
| { | ||||
|     pthread_mutexattr_t attr; | ||||
|     if (!mtx) return thrd_error; | ||||
|     if (type != mtx_plain && type != mtx_timed && type != mtx_try | ||||
|       && type != (mtx_plain|mtx_recursive) | ||||
|       && type != (mtx_timed|mtx_recursive) | ||||
|       && type != (mtx_try|mtx_recursive)) | ||||
|         return thrd_error; | ||||
|     pthread_mutexattr_init(&attr); | ||||
|     if ((type & mtx_recursive) != 0) { | ||||
| #if defined(__linux__) || defined(__linux) | ||||
|         pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE_NP); | ||||
| #else | ||||
|         pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); | ||||
| #endif | ||||
|     } | ||||
|     pthread_mutex_init(mtx, &attr); | ||||
|     pthread_mutexattr_destroy(&attr); | ||||
|     return thrd_success; | ||||
| } | ||||
|  | ||||
| // 7.25.4.3 | ||||
| static inline int | ||||
| mtx_lock(mtx_t *mtx) | ||||
| { | ||||
|     if (!mtx) return thrd_error; | ||||
|     pthread_mutex_lock(mtx); | ||||
|     return thrd_success; | ||||
| } | ||||
|  | ||||
| static inline int | ||||
| mtx_trylock(mtx_t *mtx); | ||||
|  | ||||
| static inline void | ||||
| thrd_yield(void); | ||||
|  | ||||
| // 7.25.4.4 | ||||
| static inline int | ||||
| mtx_timedlock(mtx_t *mtx, const xtime *xt) | ||||
| { | ||||
|     if (!mtx || !xt) return thrd_error; | ||||
|     { | ||||
| #ifdef EMULATED_THREADS_USE_NATIVE_TIMEDLOCK | ||||
|     struct timespec ts; | ||||
|     int rt; | ||||
|     ts.tv_sec = xt->sec; | ||||
|     ts.tv_nsec = xt->nsec; | ||||
|     rt = pthread_mutex_timedlock(mtx, &ts); | ||||
|     if (rt == 0) | ||||
|         return thrd_success; | ||||
|     return (rt == ETIMEDOUT) ? thrd_busy : thrd_error; | ||||
| #else | ||||
|     time_t expire = time(NULL); | ||||
|     expire += xt->sec; | ||||
|     while (mtx_trylock(mtx) != thrd_success) { | ||||
|         time_t now = time(NULL); | ||||
|         if (expire < now) | ||||
|             return thrd_busy; | ||||
|         // busy loop! | ||||
|         thrd_yield(); | ||||
|     } | ||||
|     return thrd_success; | ||||
| #endif | ||||
|     } | ||||
| } | ||||
|  | ||||
| // 7.25.4.5 | ||||
| static inline int | ||||
| mtx_trylock(mtx_t *mtx) | ||||
| { | ||||
|     if (!mtx) return thrd_error; | ||||
|     return (pthread_mutex_trylock(mtx) == 0) ? thrd_success : thrd_busy; | ||||
| } | ||||
|  | ||||
| // 7.25.4.6 | ||||
| static inline int | ||||
| mtx_unlock(mtx_t *mtx) | ||||
| { | ||||
|     if (!mtx) return thrd_error; | ||||
|     pthread_mutex_unlock(mtx); | ||||
|     return thrd_success; | ||||
| } | ||||
|  | ||||
|  | ||||
| /*------------------- 7.25.5 Thread functions -------------------*/ | ||||
| // 7.25.5.1 | ||||
| static inline int | ||||
| thrd_create(thrd_t *thr, thrd_start_t func, void *arg) | ||||
| { | ||||
|     struct impl_thrd_param *pack; | ||||
|     if (!thr) return thrd_error; | ||||
|     pack = (struct impl_thrd_param *)malloc(sizeof(struct impl_thrd_param)); | ||||
|     if (!pack) return thrd_nomem; | ||||
|     pack->func = func; | ||||
|     pack->arg = arg; | ||||
|     if (pthread_create(thr, NULL, impl_thrd_routine, pack) != 0) { | ||||
|         free(pack); | ||||
|         return thrd_error; | ||||
|     } | ||||
|     return thrd_success; | ||||
| } | ||||
|  | ||||
| // 7.25.5.2 | ||||
| static inline thrd_t | ||||
| thrd_current(void) | ||||
| { | ||||
|     return pthread_self(); | ||||
| } | ||||
|  | ||||
| // 7.25.5.3 | ||||
| static inline int | ||||
| thrd_detach(thrd_t thr) | ||||
| { | ||||
|     return (pthread_detach(thr) == 0) ? thrd_success : thrd_error; | ||||
| } | ||||
|  | ||||
| // 7.25.5.4 | ||||
| static inline int | ||||
| thrd_equal(thrd_t thr0, thrd_t thr1) | ||||
| { | ||||
|     return pthread_equal(thr0, thr1); | ||||
| } | ||||
|  | ||||
| // 7.25.5.5 | ||||
| static inline void | ||||
| thrd_exit(int res) | ||||
| { | ||||
|     pthread_exit((void*)(intptr_t)res); | ||||
| } | ||||
|  | ||||
| // 7.25.5.6 | ||||
| static inline int | ||||
| thrd_join(thrd_t thr, int *res) | ||||
| { | ||||
|     void *code; | ||||
|     if (pthread_join(thr, &code) != 0) | ||||
|         return thrd_error; | ||||
|     if (res) | ||||
|         *res = (int)(intptr_t)code; | ||||
|     return thrd_success; | ||||
| } | ||||
|  | ||||
| // 7.25.5.7 | ||||
| static inline void | ||||
| thrd_sleep(const xtime *xt) | ||||
| { | ||||
|     struct timespec req; | ||||
|     assert(xt); | ||||
|     req.tv_sec = xt->sec; | ||||
|     req.tv_nsec = xt->nsec; | ||||
|     nanosleep(&req, NULL); | ||||
| } | ||||
|  | ||||
| // 7.25.5.8 | ||||
| static inline void | ||||
| thrd_yield(void) | ||||
| { | ||||
|     sched_yield(); | ||||
| } | ||||
|  | ||||
|  | ||||
| /*----------- 7.25.6 Thread-specific storage functions -----------*/ | ||||
| // 7.25.6.1 | ||||
| static inline int | ||||
| tss_create(tss_t *key, tss_dtor_t dtor) | ||||
| { | ||||
|     if (!key) return thrd_error; | ||||
|     return (pthread_key_create(key, dtor) == 0) ? thrd_success : thrd_error; | ||||
| } | ||||
|  | ||||
| // 7.25.6.2 | ||||
| static inline void | ||||
| tss_delete(tss_t key) | ||||
| { | ||||
|     pthread_key_delete(key); | ||||
| } | ||||
|  | ||||
| // 7.25.6.3 | ||||
| static inline void * | ||||
| tss_get(tss_t key) | ||||
| { | ||||
|     return pthread_getspecific(key); | ||||
| } | ||||
|  | ||||
| // 7.25.6.4 | ||||
| static inline int | ||||
| tss_set(tss_t key, void *val) | ||||
| { | ||||
|     return (pthread_setspecific(key, val) == 0) ? thrd_success : thrd_error; | ||||
| } | ||||
|  | ||||
|  | ||||
| /*-------------------- 7.25.7 Time functions --------------------*/ | ||||
| // 7.25.6.1 | ||||
| static inline int | ||||
| xtime_get(xtime *xt, int base) | ||||
| { | ||||
|     if (!xt) return 0; | ||||
|     if (base == TIME_UTC) { | ||||
|         xt->sec = time(NULL); | ||||
|         xt->nsec = 0; | ||||
|         return base; | ||||
|     } | ||||
|     return 0; | ||||
| } | ||||
| @@ -1,642 +0,0 @@ | ||||
| /* | ||||
|  * C11 <threads.h> emulation library | ||||
|  * | ||||
|  * (C) Copyright yohhoy 2012. | ||||
|  * Distributed under the Boost Software License, Version 1.0. | ||||
|  * | ||||
|  * Permission is hereby granted, free of charge, to any person or organization | ||||
|  * obtaining a copy of the software and accompanying documentation covered by | ||||
|  * this license (the "Software") to use, reproduce, display, distribute, | ||||
|  * execute, and transmit the Software, and to prepare [[derivative work]]s of the | ||||
|  * Software, and to permit third-parties to whom the Software is furnished to | ||||
|  * do so, all subject to the following: | ||||
|  * | ||||
|  * The copyright notices in the Software and this entire statement, including | ||||
|  * the above license grant, this restriction and the following disclaimer, | ||||
|  * must be included in all copies of the Software, in whole or in part, and | ||||
|  * all derivative works of the Software, unless such copies or derivative | ||||
|  * works are solely in the form of machine-executable object code generated by | ||||
|  * a source language processor. | ||||
|  * | ||||
|  * 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, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||||
|  * SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||||
|  * FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||||
|  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||
|  * DEALINGS IN THE SOFTWARE. | ||||
|  */ | ||||
| #ifndef assert | ||||
| #include <assert.h> | ||||
| #endif | ||||
| #include <limits.h> | ||||
| #include <errno.h> | ||||
| #include <process.h>  // MSVCRT | ||||
| #include <stdlib.h> | ||||
|  | ||||
| /* | ||||
| Configuration macro: | ||||
|  | ||||
|   EMULATED_THREADS_USE_NATIVE_CALL_ONCE | ||||
|     Use native WindowsAPI one-time initialization function. | ||||
|     (requires WinVista or later) | ||||
|     Otherwise emulate by mtx_trylock() + *busy loop* for WinXP. | ||||
|  | ||||
|   EMULATED_THREADS_USE_NATIVE_CV | ||||
|     Use native WindowsAPI condition variable object. | ||||
|     (requires WinVista or later) | ||||
|     Otherwise use emulated implementation for WinXP. | ||||
|  | ||||
|   EMULATED_THREADS_TSS_DTOR_SLOTNUM | ||||
|     Max registerable TSS dtor number. | ||||
| */ | ||||
|  | ||||
| // XXX: Retain XP compatability | ||||
| #if 0 | ||||
| #if _WIN32_WINNT >= 0x0600 | ||||
| // Prefer native WindowsAPI on newer environment. | ||||
| #if !defined(__MINGW32__) | ||||
| #define EMULATED_THREADS_USE_NATIVE_CALL_ONCE  | ||||
| #endif | ||||
| #define EMULATED_THREADS_USE_NATIVE_CV | ||||
| #endif | ||||
| #endif | ||||
| #define EMULATED_THREADS_TSS_DTOR_SLOTNUM 64  // see TLS_MINIMUM_AVAILABLE | ||||
|  | ||||
|  | ||||
| #include <windows.h> | ||||
|  | ||||
| // check configuration | ||||
| #if defined(EMULATED_THREADS_USE_NATIVE_CALL_ONCE) && (_WIN32_WINNT < 0x0600) | ||||
| #error EMULATED_THREADS_USE_NATIVE_CALL_ONCE requires _WIN32_WINNT>=0x0600 | ||||
| #endif | ||||
|  | ||||
| #if defined(EMULATED_THREADS_USE_NATIVE_CV) && (_WIN32_WINNT < 0x0600) | ||||
| #error EMULATED_THREADS_USE_NATIVE_CV requires _WIN32_WINNT>=0x0600 | ||||
| #endif | ||||
|  | ||||
|  | ||||
| /*---------------------------- macros ----------------------------*/ | ||||
| #ifdef EMULATED_THREADS_USE_NATIVE_CALL_ONCE | ||||
| #define ONCE_FLAG_INIT INIT_ONCE_STATIC_INIT | ||||
| #else | ||||
| #define ONCE_FLAG_INIT {0} | ||||
| #endif | ||||
| #define TSS_DTOR_ITERATIONS 1 | ||||
|  | ||||
| // FIXME: temporary non-standard hack to ease transition | ||||
| #define _MTX_INITIALIZER_NP {(PCRITICAL_SECTION_DEBUG)-1, -1, 0, 0, 0, 0} | ||||
|  | ||||
| /*---------------------------- types ----------------------------*/ | ||||
| typedef struct cnd_t { | ||||
| #ifdef EMULATED_THREADS_USE_NATIVE_CV | ||||
|     CONDITION_VARIABLE condvar; | ||||
| #else | ||||
|     int blocked; | ||||
|     int gone; | ||||
|     int to_unblock; | ||||
|     HANDLE sem_queue; | ||||
|     HANDLE sem_gate; | ||||
|     CRITICAL_SECTION monitor; | ||||
| #endif | ||||
| } cnd_t; | ||||
|  | ||||
| typedef HANDLE thrd_t; | ||||
|  | ||||
| typedef DWORD tss_t; | ||||
|  | ||||
| typedef CRITICAL_SECTION mtx_t; | ||||
|  | ||||
| #ifdef EMULATED_THREADS_USE_NATIVE_CALL_ONCE | ||||
| typedef INIT_ONCE once_flag; | ||||
| #else | ||||
| typedef struct once_flag_t { | ||||
|     volatile LONG status; | ||||
| } once_flag; | ||||
| #endif | ||||
|  | ||||
|  | ||||
| static inline void * tss_get(tss_t key); | ||||
| static inline void thrd_yield(void); | ||||
| static inline int mtx_trylock(mtx_t *mtx); | ||||
| static inline int mtx_lock(mtx_t *mtx); | ||||
| static inline int mtx_unlock(mtx_t *mtx); | ||||
|  | ||||
| /* | ||||
| Implementation limits: | ||||
|   - Conditionally emulation for "Initialization functions" | ||||
|     (see EMULATED_THREADS_USE_NATIVE_CALL_ONCE macro) | ||||
|   - Emulated `mtx_timelock()' with mtx_trylock() + *busy loop* | ||||
| */ | ||||
| static void impl_tss_dtor_invoke(void);  // forward decl. | ||||
|  | ||||
| struct impl_thrd_param { | ||||
|     thrd_start_t func; | ||||
|     void *arg; | ||||
| }; | ||||
|  | ||||
| static unsigned __stdcall impl_thrd_routine(void *p) | ||||
| { | ||||
|     struct impl_thrd_param pack; | ||||
|     int code; | ||||
|     memcpy(&pack, p, sizeof(struct impl_thrd_param)); | ||||
|     free(p); | ||||
|     code = pack.func(pack.arg); | ||||
|     impl_tss_dtor_invoke(); | ||||
|     return (unsigned)code; | ||||
| } | ||||
|  | ||||
| static DWORD impl_xtime2msec(const xtime *xt) | ||||
| { | ||||
|     return (DWORD)((xt->sec * 1000U) + (xt->nsec / 1000000L)); | ||||
| } | ||||
|  | ||||
| #ifdef EMULATED_THREADS_USE_NATIVE_CALL_ONCE | ||||
| struct impl_call_once_param { void (*func)(void); }; | ||||
| static BOOL CALLBACK impl_call_once_callback(PINIT_ONCE InitOnce, PVOID Parameter, PVOID *Context) | ||||
| { | ||||
|     struct impl_call_once_param *param = (struct impl_call_once_param*)Parameter; | ||||
|     (param->func)(); | ||||
|     ((void)InitOnce); ((void)Context);  // suppress warning | ||||
|     return TRUE; | ||||
| } | ||||
| #endif  // ifdef EMULATED_THREADS_USE_NATIVE_CALL_ONCE | ||||
|  | ||||
| #ifndef EMULATED_THREADS_USE_NATIVE_CV | ||||
| /* | ||||
| Note: | ||||
|   The implementation of condition variable is ported from Boost.Interprocess | ||||
|   See http://www.boost.org/boost/interprocess/sync/windows/condition.hpp | ||||
| */ | ||||
| static void impl_cond_do_signal(cnd_t *cond, int broadcast) | ||||
| { | ||||
|     int nsignal = 0; | ||||
|  | ||||
|     EnterCriticalSection(&cond->monitor); | ||||
|     if (cond->to_unblock != 0) { | ||||
|         if (cond->blocked == 0) { | ||||
|             LeaveCriticalSection(&cond->monitor); | ||||
|             return; | ||||
|         } | ||||
|         if (broadcast) { | ||||
|             cond->to_unblock += nsignal = cond->blocked; | ||||
|             cond->blocked = 0; | ||||
|         } else { | ||||
|             nsignal = 1; | ||||
|             cond->to_unblock++; | ||||
|             cond->blocked--; | ||||
|         } | ||||
|     } else if (cond->blocked > cond->gone) { | ||||
|         WaitForSingleObject(cond->sem_gate, INFINITE); | ||||
|         if (cond->gone != 0) { | ||||
|             cond->blocked -= cond->gone; | ||||
|             cond->gone = 0; | ||||
|         } | ||||
|         if (broadcast) { | ||||
|             nsignal = cond->to_unblock = cond->blocked; | ||||
|             cond->blocked = 0; | ||||
|         } else { | ||||
|             nsignal = cond->to_unblock = 1; | ||||
|             cond->blocked--; | ||||
|         } | ||||
|     } | ||||
|     LeaveCriticalSection(&cond->monitor); | ||||
|  | ||||
|     if (0 < nsignal) | ||||
|         ReleaseSemaphore(cond->sem_queue, nsignal, NULL); | ||||
| } | ||||
|  | ||||
| static int impl_cond_do_wait(cnd_t *cond, mtx_t *mtx, const xtime *xt) | ||||
| { | ||||
|     int nleft = 0; | ||||
|     int ngone = 0; | ||||
|     int timeout = 0; | ||||
|     DWORD w; | ||||
|  | ||||
|     WaitForSingleObject(cond->sem_gate, INFINITE); | ||||
|     cond->blocked++; | ||||
|     ReleaseSemaphore(cond->sem_gate, 1, NULL); | ||||
|  | ||||
|     mtx_unlock(mtx); | ||||
|  | ||||
|     w = WaitForSingleObject(cond->sem_queue, xt ? impl_xtime2msec(xt) : INFINITE); | ||||
|     timeout = (w == WAIT_TIMEOUT); | ||||
|   | ||||
|     EnterCriticalSection(&cond->monitor); | ||||
|     if ((nleft = cond->to_unblock) != 0) { | ||||
|         if (timeout) { | ||||
|             if (cond->blocked != 0) { | ||||
|                 cond->blocked--; | ||||
|             } else { | ||||
|                 cond->gone++; | ||||
|             } | ||||
|         } | ||||
|         if (--cond->to_unblock == 0) { | ||||
|             if (cond->blocked != 0) { | ||||
|                 ReleaseSemaphore(cond->sem_gate, 1, NULL); | ||||
|                 nleft = 0; | ||||
|             } | ||||
|             else if ((ngone = cond->gone) != 0) { | ||||
|                 cond->gone = 0; | ||||
|             } | ||||
|         } | ||||
|     } else if (++cond->gone == INT_MAX/2) { | ||||
|         WaitForSingleObject(cond->sem_gate, INFINITE); | ||||
|         cond->blocked -= cond->gone; | ||||
|         ReleaseSemaphore(cond->sem_gate, 1, NULL); | ||||
|         cond->gone = 0; | ||||
|     } | ||||
|     LeaveCriticalSection(&cond->monitor); | ||||
|  | ||||
|     if (nleft == 1) { | ||||
|         while (ngone--) | ||||
|             WaitForSingleObject(cond->sem_queue, INFINITE); | ||||
|         ReleaseSemaphore(cond->sem_gate, 1, NULL); | ||||
|     } | ||||
|  | ||||
|     mtx_lock(mtx); | ||||
|     return timeout ? thrd_busy : thrd_success; | ||||
| } | ||||
| #endif  // ifndef EMULATED_THREADS_USE_NATIVE_CV | ||||
|  | ||||
| static struct impl_tss_dtor_entry { | ||||
|     tss_t key; | ||||
|     tss_dtor_t dtor; | ||||
| } impl_tss_dtor_tbl[EMULATED_THREADS_TSS_DTOR_SLOTNUM]; | ||||
|  | ||||
| static int impl_tss_dtor_register(tss_t key, tss_dtor_t dtor) | ||||
| { | ||||
|     int i; | ||||
|     for (i = 0; i < EMULATED_THREADS_TSS_DTOR_SLOTNUM; i++) { | ||||
|         if (!impl_tss_dtor_tbl[i].dtor) | ||||
|             break; | ||||
|     } | ||||
|     if (i == EMULATED_THREADS_TSS_DTOR_SLOTNUM) | ||||
|         return 1; | ||||
|     impl_tss_dtor_tbl[i].key = key; | ||||
|     impl_tss_dtor_tbl[i].dtor = dtor; | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| static void impl_tss_dtor_invoke() | ||||
| { | ||||
|     int i; | ||||
|     for (i = 0; i < EMULATED_THREADS_TSS_DTOR_SLOTNUM; i++) { | ||||
|         if (impl_tss_dtor_tbl[i].dtor) { | ||||
|             void* val = tss_get(impl_tss_dtor_tbl[i].key); | ||||
|             if (val) | ||||
|                 (impl_tss_dtor_tbl[i].dtor)(val); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
|  | ||||
| /*--------------- 7.25.2 Initialization functions ---------------*/ | ||||
| // 7.25.2.1 | ||||
| static inline void | ||||
| call_once(once_flag *flag, void (*func)(void)) | ||||
| { | ||||
|     assert(!flag && !func); | ||||
| #ifdef EMULATED_THREADS_USE_NATIVE_CALL_ONCE | ||||
|     { | ||||
|     struct impl_call_once_param param; | ||||
|     param.func = func; | ||||
|     InitOnceExecuteOnce(flag, impl_call_once_callback, (PVOID)¶m, NULL); | ||||
|     } | ||||
| #else | ||||
|     if (InterlockedCompareExchange(&flag->status, 1, 0) == 0) { | ||||
|         (func)(); | ||||
|         InterlockedExchange(&flag->status, 2); | ||||
|     } else { | ||||
|         while (flag->status == 1) { | ||||
|             // busy loop! | ||||
|             thrd_yield(); | ||||
|         } | ||||
|     } | ||||
| #endif | ||||
| } | ||||
|  | ||||
|  | ||||
| /*------------- 7.25.3 Condition variable functions -------------*/ | ||||
| // 7.25.3.1 | ||||
| static inline int | ||||
| cnd_broadcast(cnd_t *cond) | ||||
| { | ||||
|     if (!cond) return thrd_error; | ||||
| #ifdef EMULATED_THREADS_USE_NATIVE_CV | ||||
|     WakeAllConditionVariable(&cond->condvar); | ||||
| #else | ||||
|     impl_cond_do_signal(cond, 1); | ||||
| #endif | ||||
|     return thrd_success; | ||||
| } | ||||
|  | ||||
| // 7.25.3.2 | ||||
| static inline void | ||||
| cnd_destroy(cnd_t *cond) | ||||
| { | ||||
|     assert(cond); | ||||
| #ifdef EMULATED_THREADS_USE_NATIVE_CV | ||||
|     // do nothing | ||||
| #else | ||||
|     CloseHandle(cond->sem_queue); | ||||
|     CloseHandle(cond->sem_gate); | ||||
|     DeleteCriticalSection(&cond->monitor); | ||||
| #endif | ||||
| } | ||||
|  | ||||
| // 7.25.3.3 | ||||
| static inline int | ||||
| cnd_init(cnd_t *cond) | ||||
| { | ||||
|     if (!cond) return thrd_error; | ||||
| #ifdef EMULATED_THREADS_USE_NATIVE_CV | ||||
|     InitializeConditionVariable(&cond->condvar); | ||||
| #else | ||||
|     cond->blocked = 0; | ||||
|     cond->gone = 0; | ||||
|     cond->to_unblock = 0; | ||||
|     cond->sem_queue = CreateSemaphore(NULL, 0, LONG_MAX, NULL); | ||||
|     cond->sem_gate = CreateSemaphore(NULL, 1, 1, NULL); | ||||
|     InitializeCriticalSection(&cond->monitor); | ||||
| #endif | ||||
|     return thrd_success; | ||||
| } | ||||
|  | ||||
| // 7.25.3.4 | ||||
| static inline int | ||||
| cnd_signal(cnd_t *cond) | ||||
| { | ||||
|     if (!cond) return thrd_error; | ||||
| #ifdef EMULATED_THREADS_USE_NATIVE_CV | ||||
|     WakeConditionVariable(&cond->condvar); | ||||
| #else | ||||
|     impl_cond_do_signal(cond, 0); | ||||
| #endif | ||||
|     return thrd_success; | ||||
| } | ||||
|  | ||||
| // 7.25.3.5 | ||||
| static inline int | ||||
| cnd_timedwait(cnd_t *cond, mtx_t *mtx, const xtime *xt) | ||||
| { | ||||
|     if (!cond || !mtx || !xt) return thrd_error; | ||||
| #ifdef EMULATED_THREADS_USE_NATIVE_CV | ||||
|     if (SleepConditionVariableCS(&cond->condvar, mtx, impl_xtime2msec(xt))) | ||||
|         return thrd_success; | ||||
|     return (GetLastError() == ERROR_TIMEOUT) ? thrd_busy : thrd_error; | ||||
| #else | ||||
|     return impl_cond_do_wait(cond, mtx, xt); | ||||
| #endif | ||||
| } | ||||
|  | ||||
| // 7.25.3.6 | ||||
| static inline int | ||||
| cnd_wait(cnd_t *cond, mtx_t *mtx) | ||||
| { | ||||
|     if (!cond || !mtx) return thrd_error; | ||||
| #ifdef EMULATED_THREADS_USE_NATIVE_CV | ||||
|     SleepConditionVariableCS(&cond->condvar, mtx, INFINITE); | ||||
| #else | ||||
|     impl_cond_do_wait(cond, mtx, NULL); | ||||
| #endif | ||||
|     return thrd_success; | ||||
| } | ||||
|  | ||||
|  | ||||
| /*-------------------- 7.25.4 Mutex functions --------------------*/ | ||||
| // 7.25.4.1 | ||||
| static inline void | ||||
| mtx_destroy(mtx_t *mtx) | ||||
| { | ||||
|     assert(mtx); | ||||
|     DeleteCriticalSection(mtx); | ||||
| } | ||||
|  | ||||
| // 7.25.4.2 | ||||
| static inline int | ||||
| mtx_init(mtx_t *mtx, int type) | ||||
| { | ||||
|     if (!mtx) return thrd_error; | ||||
|     if (type != mtx_plain && type != mtx_timed && type != mtx_try | ||||
|       && type != (mtx_plain|mtx_recursive) | ||||
|       && type != (mtx_timed|mtx_recursive) | ||||
|       && type != (mtx_try|mtx_recursive)) | ||||
|         return thrd_error; | ||||
|     InitializeCriticalSection(mtx); | ||||
|     return thrd_success; | ||||
| } | ||||
|  | ||||
| // 7.25.4.3 | ||||
| static inline int | ||||
| mtx_lock(mtx_t *mtx) | ||||
| { | ||||
|     if (!mtx) return thrd_error; | ||||
|     EnterCriticalSection(mtx); | ||||
|     return thrd_success; | ||||
| } | ||||
|  | ||||
| // 7.25.4.4 | ||||
| static inline int | ||||
| mtx_timedlock(mtx_t *mtx, const xtime *xt) | ||||
| { | ||||
|     time_t expire, now; | ||||
|     if (!mtx || !xt) return thrd_error; | ||||
|     expire = time(NULL); | ||||
|     expire += xt->sec; | ||||
|     while (mtx_trylock(mtx) != thrd_success) { | ||||
|         now = time(NULL); | ||||
|         if (expire < now) | ||||
|             return thrd_busy; | ||||
|         // busy loop! | ||||
|         thrd_yield(); | ||||
|     } | ||||
|     return thrd_success; | ||||
| } | ||||
|  | ||||
| // 7.25.4.5 | ||||
| static inline int | ||||
| mtx_trylock(mtx_t *mtx) | ||||
| { | ||||
|     if (!mtx) return thrd_error; | ||||
|     return TryEnterCriticalSection(mtx) ? thrd_success : thrd_busy; | ||||
| } | ||||
|  | ||||
| // 7.25.4.6 | ||||
| static inline int | ||||
| mtx_unlock(mtx_t *mtx) | ||||
| { | ||||
|     if (!mtx) return thrd_error; | ||||
|     LeaveCriticalSection(mtx); | ||||
|     return thrd_success; | ||||
| } | ||||
|  | ||||
|  | ||||
| /*------------------- 7.25.5 Thread functions -------------------*/ | ||||
| // 7.25.5.1 | ||||
| static inline int | ||||
| thrd_create(thrd_t *thr, thrd_start_t func, void *arg) | ||||
| { | ||||
|     struct impl_thrd_param *pack; | ||||
|     uintptr_t handle; | ||||
|     if (!thr) return thrd_error; | ||||
|     pack = (struct impl_thrd_param *)malloc(sizeof(struct impl_thrd_param)); | ||||
|     if (!pack) return thrd_nomem; | ||||
|     pack->func = func; | ||||
|     pack->arg = arg; | ||||
|     handle = _beginthreadex(NULL, 0, impl_thrd_routine, pack, 0, NULL); | ||||
|     if (handle == 0) { | ||||
|         if (errno == EAGAIN || errno == EACCES) | ||||
|             return thrd_nomem; | ||||
|         return thrd_error; | ||||
|     } | ||||
|     *thr = (thrd_t)handle; | ||||
|     return thrd_success; | ||||
| } | ||||
|  | ||||
| #if 0 | ||||
| // 7.25.5.2 | ||||
| static inline thrd_t | ||||
| thrd_current(void) | ||||
| { | ||||
|     HANDLE hCurrentThread; | ||||
|     BOOL bRet; | ||||
|  | ||||
|     /* GetCurrentThread() returns a pseudo-handle, which is useless.  We need | ||||
|      * to call DuplicateHandle to get a real handle.  However the handle value | ||||
|      * will not match the one returned by thread_create. | ||||
|      * | ||||
|      * Other potential solutions would be: | ||||
|      * - define thrd_t as a thread Ids, but this would mean we'd need to OpenThread for many operations | ||||
|      * - use malloc'ed memory for thrd_t. This would imply using TLS for current thread. | ||||
|      * | ||||
|      * Neither is particularly nice. | ||||
|      * | ||||
|      * Life would be much easier if C11 threads had different abstractions for | ||||
|      * threads and thread IDs, just like C++11 threads does... | ||||
|      */ | ||||
|  | ||||
|     bRet = DuplicateHandle(GetCurrentProcess(), // source process (pseudo) handle | ||||
|                            GetCurrentThread(), // source (pseudo) handle | ||||
|                            GetCurrentProcess(), // target process | ||||
|                            &hCurrentThread, // target handle | ||||
|                            0, | ||||
|                            FALSE, | ||||
|                            DUPLICATE_SAME_ACCESS); | ||||
|     assert(bRet); | ||||
|     if (!bRet) { | ||||
| 	hCurrentThread = GetCurrentThread(); | ||||
|     } | ||||
|     return hCurrentThread; | ||||
| } | ||||
| #endif | ||||
|  | ||||
| // 7.25.5.3 | ||||
| static inline int | ||||
| thrd_detach(thrd_t thr) | ||||
| { | ||||
|     CloseHandle(thr); | ||||
|     return thrd_success; | ||||
| } | ||||
|  | ||||
| // 7.25.5.4 | ||||
| static inline int | ||||
| thrd_equal(thrd_t thr0, thrd_t thr1) | ||||
| { | ||||
|     return GetThreadId(thr0) == GetThreadId(thr1); | ||||
| } | ||||
|  | ||||
| // 7.25.5.5 | ||||
| static inline void | ||||
| thrd_exit(int res) | ||||
| { | ||||
|     impl_tss_dtor_invoke(); | ||||
|     _endthreadex((unsigned)res); | ||||
| } | ||||
|  | ||||
| // 7.25.5.6 | ||||
| static inline int | ||||
| thrd_join(thrd_t thr, int *res) | ||||
| { | ||||
|     DWORD w, code; | ||||
|     w = WaitForSingleObject(thr, INFINITE); | ||||
|     if (w != WAIT_OBJECT_0) | ||||
|         return thrd_error; | ||||
|     if (res) { | ||||
|         if (!GetExitCodeThread(thr, &code)) { | ||||
|             CloseHandle(thr); | ||||
|             return thrd_error; | ||||
|         } | ||||
|         *res = (int)code; | ||||
|     } | ||||
|     CloseHandle(thr); | ||||
|     return thrd_success; | ||||
| } | ||||
|  | ||||
| // 7.25.5.7 | ||||
| static inline void | ||||
| thrd_sleep(const xtime *xt) | ||||
| { | ||||
|     assert(xt); | ||||
|     Sleep(impl_xtime2msec(xt)); | ||||
| } | ||||
|  | ||||
| // 7.25.5.8 | ||||
| static inline void | ||||
| thrd_yield(void) | ||||
| { | ||||
|     SwitchToThread(); | ||||
| } | ||||
|  | ||||
|  | ||||
| /*----------- 7.25.6 Thread-specific storage functions -----------*/ | ||||
| // 7.25.6.1 | ||||
| static inline int | ||||
| tss_create(tss_t *key, tss_dtor_t dtor) | ||||
| { | ||||
|     if (!key) return thrd_error; | ||||
|     *key = TlsAlloc(); | ||||
|     if (dtor) { | ||||
|         if (impl_tss_dtor_register(*key, dtor)) { | ||||
|             TlsFree(*key); | ||||
|             return thrd_error; | ||||
|         } | ||||
|     } | ||||
|     return (*key != 0xFFFFFFFF) ? thrd_success : thrd_error; | ||||
| } | ||||
|  | ||||
| // 7.25.6.2 | ||||
| static inline void | ||||
| tss_delete(tss_t key) | ||||
| { | ||||
|     TlsFree(key); | ||||
| } | ||||
|  | ||||
| // 7.25.6.3 | ||||
| static inline void * | ||||
| tss_get(tss_t key) | ||||
| { | ||||
|     return TlsGetValue(key); | ||||
| } | ||||
|  | ||||
| // 7.25.6.4 | ||||
| static inline int | ||||
| tss_set(tss_t key, void *val) | ||||
| { | ||||
|     return TlsSetValue(key, val) ? thrd_success : thrd_error; | ||||
| } | ||||
|  | ||||
|  | ||||
| /*-------------------- 7.25.7 Time functions --------------------*/ | ||||
| // 7.25.6.1 | ||||
| static inline int | ||||
| xtime_get(xtime *xt, int base) | ||||
| { | ||||
|     if (!xt) return 0; | ||||
|     if (base == TIME_UTC) { | ||||
|         xt->sec = time(NULL); | ||||
|         xt->nsec = 0; | ||||
|         return base; | ||||
|     } | ||||
|     return 0; | ||||
| } | ||||
| @@ -91,25 +91,3 @@ 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") | ||||
| CHIPSET(0x1606, bdw_gt1, "Intel(R) Broadwell") | ||||
| CHIPSET(0x160A, bdw_gt1, "Intel(R) Broadwell") | ||||
| CHIPSET(0x160B, bdw_gt1, "Intel(R) Broadwell") | ||||
| CHIPSET(0x160D, bdw_gt1, "Intel(R) Broadwell") | ||||
| CHIPSET(0x160E, bdw_gt1, "Intel(R) Broadwell") | ||||
| CHIPSET(0x1612, bdw_gt2, "Intel(R) Broadwell") | ||||
| CHIPSET(0x1616, bdw_gt2, "Intel(R) Broadwell") | ||||
| CHIPSET(0x161A, bdw_gt2, "Intel(R) Broadwell") | ||||
| CHIPSET(0x161B, bdw_gt2, "Intel(R) Broadwell") | ||||
| CHIPSET(0x161D, bdw_gt2, "Intel(R) Broadwell") | ||||
| CHIPSET(0x161E, bdw_gt2, "Intel(R) Broadwell") | ||||
| CHIPSET(0x1622, bdw_gt3, "Intel(R) Broadwell") | ||||
| CHIPSET(0x1626, bdw_gt3, "Intel(R) Broadwell") | ||||
| CHIPSET(0x162A, bdw_gt3, "Intel(R) Broadwell") | ||||
| CHIPSET(0x162B, bdw_gt3, "Intel(R) Broadwell") | ||||
| CHIPSET(0x162D, bdw_gt3, "Intel(R) Broadwell") | ||||
| CHIPSET(0x162E, bdw_gt3, "Intel(R) Broadwell") | ||||
| CHIPSET(0x22B0, chv,     "Intel(R) Cherryview") | ||||
| CHIPSET(0x22B1, chv,     "Intel(R) Cherryview") | ||||
| CHIPSET(0x22B2, chv,     "Intel(R) Cherryview") | ||||
| CHIPSET(0x22B3, chv,     "Intel(R) Cherryview") | ||||
|   | ||||
| @@ -7,10 +7,6 @@ | ||||
| #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0])) | ||||
| #endif | ||||
| 
 | ||||
| #ifndef __IS_LOADER | ||||
| #  error "Only include from loader.c" | ||||
| #endif | ||||
| 
 | ||||
| static const int i915_chip_ids[] = { | ||||
| #define CHIPSET(chip, desc, name) chip, | ||||
| #include "pci_ids/i915_pci_ids.h" | ||||
| @@ -23,6 +19,7 @@ static const int i965_chip_ids[] = { | ||||
| #undef CHIPSET | ||||
| }; | ||||
| 
 | ||||
| #ifndef DRIVER_MAP_GALLIUM_ONLY | ||||
| static const int r100_chip_ids[] = { | ||||
| #define CHIPSET(chip, name, family) chip, | ||||
| #include "pci_ids/radeon_pci_ids.h" | ||||
| @@ -34,6 +31,7 @@ static const int r200_chip_ids[] = { | ||||
| #include "pci_ids/r200_pci_ids.h" | ||||
| #undef CHIPSET | ||||
| }; | ||||
| #endif | ||||
| 
 | ||||
| static const int r300_chip_ids[] = { | ||||
| #define CHIPSET(chip, name, family) chip, | ||||
| @@ -59,26 +57,23 @@ static const int vmwgfx_chip_ids[] = { | ||||
| #undef CHIPSET | ||||
| }; | ||||
| 
 | ||||
| int is_nouveau_vieux(int fd); | ||||
| 
 | ||||
| static const struct { | ||||
|    int vendor_id; | ||||
|    const char *driver; | ||||
|    const int *chip_ids; | ||||
|    int num_chips_ids; | ||||
|    unsigned driver_types; | ||||
|    int (*predicate)(int fd); | ||||
| } driver_map[] = { | ||||
|    { 0x8086, "i915", i915_chip_ids, ARRAY_SIZE(i915_chip_ids), _LOADER_DRI | _LOADER_GALLIUM }, | ||||
|    { 0x8086, "i965", i965_chip_ids, ARRAY_SIZE(i965_chip_ids), _LOADER_DRI | _LOADER_GALLIUM }, | ||||
|    { 0x1002, "radeon", r100_chip_ids, ARRAY_SIZE(r100_chip_ids), _LOADER_DRI }, | ||||
|    { 0x1002, "r200", r200_chip_ids, ARRAY_SIZE(r200_chip_ids), _LOADER_DRI }, | ||||
|    { 0x1002, "r300", r300_chip_ids, ARRAY_SIZE(r300_chip_ids), _LOADER_GALLIUM }, | ||||
|    { 0x1002, "r600", r600_chip_ids, ARRAY_SIZE(r600_chip_ids), _LOADER_GALLIUM }, | ||||
|    { 0x1002, "radeonsi", radeonsi_chip_ids, ARRAY_SIZE(radeonsi_chip_ids), _LOADER_GALLIUM}, | ||||
|    { 0x10de, "nouveau_vieux", NULL, -1,  _LOADER_DRI, is_nouveau_vieux }, | ||||
|    { 0x10de, "nouveau", NULL, -1,  _LOADER_GALLIUM }, | ||||
|    { 0x15ad, "vmwgfx", vmwgfx_chip_ids, ARRAY_SIZE(vmwgfx_chip_ids), _LOADER_GALLIUM }, | ||||
|    { 0x8086, "i915", i915_chip_ids, ARRAY_SIZE(i915_chip_ids) }, | ||||
|    { 0x8086, "i965", i965_chip_ids, ARRAY_SIZE(i965_chip_ids) }, | ||||
| #ifndef DRIVER_MAP_GALLIUM_ONLY | ||||
|    { 0x1002, "radeon", r100_chip_ids, ARRAY_SIZE(r100_chip_ids) }, | ||||
|    { 0x1002, "r200", r200_chip_ids, ARRAY_SIZE(r200_chip_ids) }, | ||||
| #endif | ||||
|    { 0x1002, "r300", r300_chip_ids, ARRAY_SIZE(r300_chip_ids) }, | ||||
|    { 0x1002, "r600", r600_chip_ids, ARRAY_SIZE(r600_chip_ids) }, | ||||
|    { 0x1002, "radeonsi", radeonsi_chip_ids, ARRAY_SIZE(radeonsi_chip_ids) }, | ||||
|    { 0x10de, "nouveau", NULL, -1 }, | ||||
|    { 0x15ad, "vmwgfx", vmwgfx_chip_ids, ARRAY_SIZE(vmwgfx_chip_ids) }, | ||||
|    { 0x0000, NULL, NULL, 0 }, | ||||
| }; | ||||
| 
 | ||||
| @@ -208,7 +208,7 @@ CHIPSET(0x9644, SUMO2_9644, SUMO2) | ||||
| CHIPSET(0x9645, SUMO2_9645, SUMO2) | ||||
| CHIPSET(0x9647, SUMO_9647,  SUMO) | ||||
| CHIPSET(0x9648, SUMO_9648,  SUMO) | ||||
| CHIPSET(0x9649, SUMO2_9649, SUMO2) | ||||
| CHIPSET(0x9649, SUMO_9649,  SUMO) | ||||
| CHIPSET(0x964a, SUMO_964A,  SUMO) | ||||
| CHIPSET(0x964b, SUMO_964B,  SUMO) | ||||
| CHIPSET(0x964c, SUMO_964C,  SUMO) | ||||
|   | ||||
| @@ -97,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) | ||||
| @@ -135,16 +118,3 @@ CHIPSET(0x1317, KAVERI_1317, KAVERI) | ||||
| CHIPSET(0x131B, KAVERI_131B, KAVERI) | ||||
| CHIPSET(0x131C, KAVERI_131C, KAVERI) | ||||
| CHIPSET(0x131D, KAVERI_131D, KAVERI) | ||||
|  | ||||
| CHIPSET(0x67A0, HAWAII_67A0, HAWAII) | ||||
| CHIPSET(0x67A1, HAWAII_67A1, HAWAII) | ||||
| CHIPSET(0x67A2, HAWAII_67A2, HAWAII) | ||||
| CHIPSET(0x67A8, HAWAII_67A8, HAWAII) | ||||
| CHIPSET(0x67A9, HAWAII_67A9, HAWAII) | ||||
| CHIPSET(0x67AA, HAWAII_67AA, HAWAII) | ||||
| CHIPSET(0x67B0, HAWAII_67B0, HAWAII) | ||||
| CHIPSET(0x67B1, HAWAII_67B1, HAWAII) | ||||
| CHIPSET(0x67B8, HAWAII_67B8, HAWAII) | ||||
| CHIPSET(0x67B9, HAWAII_67B9, HAWAII) | ||||
| CHIPSET(0x67BA, HAWAII_67BA, HAWAII) | ||||
| CHIPSET(0x67BE, HAWAII_67BE, HAWAII) | ||||
|   | ||||
| @@ -1,27 +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) $(vdpau_LTLIBRARIES) $(egl_LTLIBRARIES) $(lib_LTLIBRARIES) | ||||
| 	$(AM_V_GEN)$(MKDIR_P) $(top_builddir)/$(LIB_DIR);	\ | ||||
| 	link_dir=$(top_builddir)/$(LIB_DIR)/gallium;		\ | ||||
| 	if test x$(egl_LTLIBRARIES) != x; then			\ | ||||
| 		link_dir=$(top_builddir)/$(LIB_DIR)/egl;	\ | ||||
| 	fi;							\ | ||||
| 	$(MKDIR_P) $$link_dir;					\ | ||||
| 	file_list=$(dri_LTLIBRARIES:%.la=.libs/%.so);		\ | ||||
| 	file_list+=$(vdpau_LTLIBRARIES:%.la=.libs/%.$(LIB_EXT)*); \ | ||||
| 	file_list+=$(egl_LTLIBRARIES:%.la=.libs/%.$(LIB_EXT)*);	\ | ||||
| 	file_list+=$(lib_LTLIBRARIES:%.la=.libs/%.$(LIB_EXT)*);	\ | ||||
| 	for f in $$file_list; do 				\ | ||||
| 		if test -h .libs/$$f; then			\ | ||||
| 			cp -d $$f $$link_dir;			\ | ||||
| 		else						\ | ||||
| 			ln -f $$f $$link_dir;			\ | ||||
| 		fi;						\ | ||||
| 	done && touch $@ | ||||
| endif | ||||
| endif | ||||
| @@ -1,18 +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-mesa-links | ||||
|  | ||||
| .libs/install-mesa-links : $(lib_LTLIBRARIES) | ||||
| 	$(AM_V_GEN)$(MKDIR_P) $(top_builddir)/$(LIB_DIR);	\ | ||||
| 	for f in $(lib_LTLIBRARIES:%.la=.libs/%.$(LIB_EXT)*); 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,72 +0,0 @@ | ||||
| # =========================================================================== | ||||
| #   http://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html | ||||
| # =========================================================================== | ||||
| # | ||||
| # SYNOPSIS | ||||
| # | ||||
| #   AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS]) | ||||
| # | ||||
| # DESCRIPTION | ||||
| # | ||||
| #   Check whether the given FLAG works with the current language's compiler | ||||
| #   or gives an error.  (Warnings, however, are ignored) | ||||
| # | ||||
| #   ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on | ||||
| #   success/failure. | ||||
| # | ||||
| #   If EXTRA-FLAGS is defined, it is added to the current language's default | ||||
| #   flags (e.g. CFLAGS) when the check is done.  The check is thus made with | ||||
| #   the flags: "CFLAGS EXTRA-FLAGS FLAG".  This can for example be used to | ||||
| #   force the compiler to issue an error when a bad flag is given. | ||||
| # | ||||
| #   NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this | ||||
| #   macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG. | ||||
| # | ||||
| # LICENSE | ||||
| # | ||||
| #   Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de> | ||||
| #   Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com> | ||||
| # | ||||
| #   This program is free software: you can redistribute it and/or modify it | ||||
| #   under the terms of the GNU General Public License as published by the | ||||
| #   Free Software Foundation, either version 3 of the License, or (at your | ||||
| #   option) any later version. | ||||
| # | ||||
| #   This program is distributed in the hope that it will be useful, but | ||||
| #   WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General | ||||
| #   Public License for more details. | ||||
| # | ||||
| #   You should have received a copy of the GNU General Public License along | ||||
| #   with this program. If not, see <http://www.gnu.org/licenses/>. | ||||
| # | ||||
| #   As a special exception, the respective Autoconf Macro's copyright owner | ||||
| #   gives unlimited permission to copy, distribute and modify the configure | ||||
| #   scripts that are the output of Autoconf when processing the Macro. You | ||||
| #   need not follow the terms of the GNU General Public License when using | ||||
| #   or distributing such scripts, even though portions of the text of the | ||||
| #   Macro appear in them. The GNU General Public License (GPL) does govern | ||||
| #   all other use of the material that constitutes the Autoconf Macro. | ||||
| # | ||||
| #   This special exception to the GPL applies to versions of the Autoconf | ||||
| #   Macro released by the Autoconf Archive. When you make and distribute a | ||||
| #   modified version of the Autoconf Macro, you may extend this special | ||||
| #   exception to the GPL to apply to your modified version as well. | ||||
|  | ||||
| #serial 2 | ||||
|  | ||||
| AC_DEFUN([AX_CHECK_COMPILE_FLAG], | ||||
| [AC_PREREQ(2.59)dnl for _AC_LANG_PREFIX | ||||
| AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl | ||||
| AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [ | ||||
|   ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS | ||||
|   _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1" | ||||
|   AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], | ||||
|     [AS_VAR_SET(CACHEVAR,[yes])], | ||||
|     [AS_VAR_SET(CACHEVAR,[no])]) | ||||
|   _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags]) | ||||
| AS_IF([test x"AS_VAR_GET(CACHEVAR)" = xyes], | ||||
|   [m4_default([$2], :)], | ||||
|   [m4_default([$3], :)]) | ||||
| AS_VAR_POPDEF([CACHEVAR])dnl | ||||
| ])dnl AX_CHECK_COMPILE_FLAGS | ||||
| @@ -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 | ||||
| ]) | ||||
| @@ -5,7 +5,7 @@ Custom builders and methods. | ||||
| """ | ||||
|  | ||||
| # | ||||
| # Copyright 2008 VMware, Inc. | ||||
| # Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas. | ||||
| # All Rights Reserved. | ||||
| # | ||||
| # Permission is hereby granted, free of charge, to any person obtaining a | ||||
| @@ -23,7 +23,7 @@ Custom builders and methods. | ||||
| # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | ||||
| # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||||
| # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. | ||||
| # IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR | ||||
| # IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR | ||||
| # ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, | ||||
| # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE | ||||
| # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||||
|   | ||||
| @@ -5,7 +5,7 @@ Frontend-tool for Gallium3D architecture. | ||||
| """ | ||||
|  | ||||
| # | ||||
| # Copyright 2008 VMware, Inc. | ||||
| # Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas. | ||||
| # All Rights Reserved. | ||||
| # | ||||
| # Permission is hereby granted, free of charge, to any person obtaining a | ||||
| @@ -23,7 +23,7 @@ Frontend-tool for Gallium3D architecture. | ||||
| # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | ||||
| # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||||
| # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. | ||||
| # IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR | ||||
| # IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR | ||||
| # ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, | ||||
| # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE | ||||
| # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||||
| @@ -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': | ||||
| @@ -301,11 +269,6 @@ def generate(env): | ||||
|             cppdefines += ['HAVE_ALIAS'] | ||||
|         else: | ||||
|             cppdefines += ['GLX_ALIAS_UNSUPPORTED'] | ||||
|     if env['platform'] == 'haiku': | ||||
|         cppdefines += [ | ||||
|             'HAVE_PTHREAD', | ||||
|             'HAVE_POSIX_MEMALIGN' | ||||
|         ] | ||||
|     if platform == 'windows': | ||||
|         cppdefines += [ | ||||
|             'WIN32', | ||||
| @@ -433,12 +396,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 +418,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 +447,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': | ||||
| @@ -590,9 +533,11 @@ def generate(env): | ||||
|     env.PkgCheckModules('X11', ['x11', 'xext', 'xdamage', 'xfixes']) | ||||
|     env.PkgCheckModules('XCB', ['x11-xcb', 'xcb-glx >= 1.8.1']) | ||||
|     env.PkgCheckModules('XF86VIDMODE', ['xxf86vm']) | ||||
|     env.PkgCheckModules('DRM', ['libdrm >= 2.4.38']) | ||||
|     env.PkgCheckModules('DRM_INTEL', ['libdrm_intel >= 2.4.52']) | ||||
|     env.PkgCheckModules('UDEV', ['libudev >= 151']) | ||||
|     env.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'] | ||||
|  | ||||
|   | ||||
| @@ -202,9 +202,6 @@ def generate(env): | ||||
|  | ||||
|             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,7 +19,7 @@ | ||||
| # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | ||||
| # IN THE SOFTWARE. | ||||
|  | ||||
| SUBDIRS = gtest loader mapi | ||||
| SUBDIRS = gtest mapi | ||||
|  | ||||
| if NEED_OPENGL_COMMON | ||||
| SUBDIRS += glsl mesa | ||||
| @@ -33,16 +33,12 @@ 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 | ||||
| @@ -59,5 +55,3 @@ SUBDIRS +=			\ | ||||
| 	gallium/tests/unit | ||||
| endif | ||||
| endif | ||||
|  | ||||
| EXTRA_DIST = getopt | ||||
|   | ||||
| @@ -11,7 +11,6 @@ if env['hostonly']: | ||||
|     # compilation | ||||
|     Return() | ||||
|  | ||||
| SConscript('loader/SConscript') | ||||
|  | ||||
| # When env['gles'] is set, the targets defined in mapi/glapi/SConscript are not | ||||
| # used.  libgl-xlib and libgl-gdi adapt themselves to use the targets defined | ||||
| @@ -19,11 +18,6 @@ SConscript('loader/SConscript') | ||||
| # enable OpenGL ES support. | ||||
| SConscript('mapi/glapi/gen/SConscript') | ||||
| SConscript('mapi/glapi/SConscript') | ||||
|  | ||||
| # Haiku C++ libGL dispatch (renderers depend on libgl) | ||||
| if env['platform'] in ['haiku']: | ||||
|     SConscript('hgl/SConscript') | ||||
|  | ||||
| SConscript('mesa/SConscript') | ||||
|  | ||||
| SConscript('mapi/vgapi/SConscript') | ||||
|   | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user