diff options
Diffstat (limited to 'mesalib')
-rw-r--r-- | mesalib/Makefile.am | 2 | ||||
-rw-r--r-- | mesalib/configure.ac | 7 | ||||
-rw-r--r-- | mesalib/docs/GL3.txt | 180 | ||||
-rw-r--r-- | mesalib/docs/relnotes/10.0.html | 1 | ||||
-rw-r--r-- | mesalib/include/GL/gl.h | 31 | ||||
-rw-r--r-- | mesalib/include/GL/osmesa.h | 5 | ||||
-rw-r--r-- | mesalib/scons/gallium.py | 2 | ||||
-rw-r--r-- | mesalib/src/gallium/auxiliary/util/u_format.h | 3 | ||||
-rw-r--r-- | mesalib/src/glsl/lower_packed_varyings.cpp | 7 | ||||
-rw-r--r-- | mesalib/src/mesa/Makefile.am | 39 | ||||
-rw-r--r-- | mesalib/src/mesa/main/compiler.h | 66 | ||||
-rw-r--r-- | mesalib/src/mesa/main/glheader.h | 16 | ||||
-rw-r--r-- | mesalib/src/mesa/main/shaderapi.c | 2 | ||||
-rw-r--r-- | mesalib/src/mesa/math/m_clip_tmp.h | 12 | ||||
-rw-r--r-- | mesalib/src/mesa/math/m_debug_util.h | 2 | ||||
-rw-r--r-- | mesalib/src/mesa/program/Makefile.am | 45 | ||||
-rw-r--r-- | mesalib/src/mesa/x86/assyntax.h | 8 |
17 files changed, 150 insertions, 278 deletions
diff --git a/mesalib/Makefile.am b/mesalib/Makefile.am index 343badef4..361fb5122 100644 --- a/mesalib/Makefile.am +++ b/mesalib/Makefile.am @@ -64,7 +64,7 @@ IGNORE_FILES = \ parsers: configure $(MAKE) -C src/glsl glsl_parser.cpp glsl_parser.h glsl_lexer.cpp glcpp/glcpp-lex.c glcpp/glcpp-parse.c glcpp/glcpp-parse.h - $(MAKE) -C src/mesa/program lex.yy.c program_parse.tab.c program_parse.tab.h + $(MAKE) -C src/mesa program/lex.yy.c program/program_parse.tab.c program/program_parse.tab.h # Everything for new a Mesa release: ARCHIVES = $(PACKAGE_NAME).tar.gz \ diff --git a/mesalib/configure.ac b/mesalib/configure.ac index 0a250471e..a8366ee2f 100644 --- a/mesalib/configure.ac +++ b/mesalib/configure.ac @@ -14,10 +14,6 @@ AC_CONFIG_MACRO_DIR([m4]) AC_CANONICAL_SYSTEM AM_INIT_AUTOMAKE([foreign]) -dnl http://people.gnome.org/~walters/docs/build-api.txt -dnl We don't support srcdir != builddir. -echo \#buildapi-variable-no-builddir >/dev/null - # Support silent build rules, requires at least automake-1.11. Disable # by either passing --disable-silent-rules to configure or passing V=1 # to make @@ -974,7 +970,7 @@ if test "x$enable_dri" = xyes; then ;; esac ;; - freebsd* | dragonfly* | *netbsd* | openbsd*) + *freebsd* | dragonfly* | *netbsd* | openbsd*) DEFINES="$DEFINES -DHAVE_PTHREAD -DUSE_EXTERNAL_DXTN_LIB=1" DEFINES="$DEFINES -DHAVE_ALIAS" @@ -2096,7 +2092,6 @@ AC_CONFIG_FILES([Makefile src/mesa/drivers/x11/Makefile src/mesa/main/tests/Makefile src/mesa/main/tests/hash_table/Makefile - src/mesa/program/Makefile src/mesa/x86-64/Makefile src/mesa/x86/Makefile]) diff --git a/mesalib/docs/GL3.txt b/mesalib/docs/GL3.txt index ff28ea6a8..7d100dff1 100644 --- a/mesalib/docs/GL3.txt +++ b/mesalib/docs/GL3.txt @@ -20,45 +20,45 @@ Feature Status GL 3.0: -GLSL 1.30 DONE +GLSL 1.30 DONE (i965, r600, radeonsi) glBindFragDataLocation, glGetFragDataLocation DONE -Conditional rendering (GL_NV_conditional_render) DONE (i965, r300, r600, swrast) -Map buffer subranges (GL_ARB_map_buffer_range) DONE (i965, r300, r600, swrast) -Clamping controls (GL_ARB_color_buffer_float) DONE (i965, r300, r600) -Float textures, renderbuffers (GL_ARB_texture_float) DONE (i965, r300, r600) -GL_EXT_packed_float DONE (i965, r600) -GL_EXT_texture_shared_exponent DONE (i965, r600, swrast) -Float depth buffers (GL_ARB_depth_buffer_float) DONE (i965, r600) -Framebuffer objects (GL_ARB_framebuffer_object) DONE (i965, r300, r600, swrast) -Half-float DONE -Non-normalized Integer texture/framebuffer formats DONE (i965, r600) -1D/2D Texture arrays DONE -Per-buffer blend and masks (GL_EXT_draw_buffers2) DONE (i965, r600, swrast) -GL_EXT_texture_compression_rgtc DONE (i965, r300, r600, swrast) -Red and red/green texture formats DONE (i965, swrast, gallium) -Transform feedback (GL_EXT_transform_feedback) DONE (i965, r600) -Vertex array objects (GL_APPLE_vertex_array_object) DONE (i965, r300, r600, swrast) -sRGB framebuffer format (GL_EXT_framebuffer_sRGB) DONE (i965, r600) +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 +Depth format cube textures DONE (i965, r600, radeonsi) GLX_ARB_create_context (GLX 1.4 is required) DONE GL 3.1: -GLSL 1.40 DONE (i965, r600) -Forward compatibile context support/deprecations DONE (i965, r600) -Instanced drawing (GL_ARB_draw_instanced) DONE (i965, gallium, swrast) -Buffer copying (GL_ARB_copy_buffer) DONE (i965, r300, r600, swrast) -Primitive restart (GL_NV_primitive_restart) DONE (i965, r600) -16 vertex texture image units DONE -Texture buffer objs (GL_ARB_texture_buffer_object) DONE for OpenGL 3.1 contexts (i965, r600) -Rectangular textures (GL_ARB_texture_rectangle) DONE (i965, r300, r600, swrast) -Uniform buffer objs (GL_ARB_uniform_buffer_object) DONE (i965, r600, swrast) -Signed normalized textures (GL_EXT_texture_snorm) DONE (i965, r300, r600) +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: @@ -66,54 +66,54 @@ GL 3.2: 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, swrast) -Base vertex offset(GL_ARB_draw_elements_base_vertex) DONE (i965, r300, r600, swrast) -Frag shader coord (GL_ARB_fragment_coord_conventions) DONE (i965, r300, r600, swrast) -Provoking vertex (GL_ARB_provoking_vertex) DONE (i965, r300, r600, swrast) -Seamless cubemaps (GL_ARB_seamless_cube_map) DONE (i965, r600) -Multisample textures (GL_ARB_texture_multisample) DONE (i965, r600) -Frag depth clamp (GL_ARB_depth_clamp) DONE (i965, r600, swrast) -Fence objects (GL_ARB_sync) DONE (i965, r300, r600, swrast) +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: GLSL 3.30 DONE (i965) -GL_ARB_blend_func_extended DONE (i965, r600, softpipe) -GL_ARB_explicit_attrib_location DONE (i915, i965, r300, r600, swrast) -GL_ARB_occlusion_query2 DONE (i965, r300, r600, swrast) -GL_ARB_sampler_objects DONE (i965, r300, r600) -GL_ARB_shader_bit_encoding DONE -GL_ARB_texture_rgb10_a2ui DONE (i965, r600) -GL_ARB_texture_swizzle DONE (same as EXT version) (i965, r300, r600, swrast) -GL_ARB_timer_query DONE (i965, r600) -GL_ARB_instanced_arrays DONE (i965, r300, r600) -GL_ARB_vertex_type_2_10_10_10_rev DONE (i965, r600) +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) -GL_ARB_draw_buffers_blend DONE (i965, r600, softpipe) +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 started (Anuj) +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, softpipe) -GL_ARB_texture_cube_map_array DONE (i965, softpipe) +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 -GL_ARB_transform_feedback3 DONE +GL_ARB_transform_feedback2 DONE (r600, radeonsi) +GL_ARB_transform_feedback3 DONE (r600, radeonsi) GL 4.1: GLSL 4.1 not started -GL_ARB_ES2_compatibility DONE (i965, r300, r600) +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 @@ -127,55 +127,55 @@ 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 in progress (Curro) -GL_ARB_texture_storage DONE (i965, r300, r600, swrast, gallium) -GL_ARB_transform_feedback_instanced DONE +GL_ARB_texture_storage DONE (all drivers) +GL_ARB_transform_feedback_instanced DONE (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 (i965, softpipe) -GL_ARB_shading_language_420pack DONE (i965, gallium) -GL_ARB_internalformat_query DONE (i965, gallium) +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 -ARB_arrays_of_arrays not started -ARB_ES3_compatibility DONE (i965) -ARB_clear_buffer_object not started -ARB_compute_shader started (gallium) -ARB_copy_image not started -KHR_debug DONE -ARB_explicit_uniform_location not started -ARB_fragment_layer_viewport not started -ARB_framebuffer_no_attachments not started -ARB_internalformat_query2 not started -ARB_invalidate_subdata not started -ARB_multi_draw_indirect not started -ARB_program_interface_query not started -ARB_robust_buffer_access_behavior not started -ARB_shader_image_size not started -ARB_shader_storage_buffer_object not started -ARB_stencil_texturing not started -ARB_texture_buffer_range DONE (nv50, nvc0, i965) -ARB_texture_query_levels DONE (i965) -ARB_texture_storage_multisample DONE (i965) -ARB_texture_view not started -ARB_vertex_attrib_binding started (Fredrik) +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 started (Fredrik) GL 4.4: GLSL 4.4 not started -MAX_VERTEX_ATTRIB_STRIDE not started -ARB_buffer_storage not started -ARB_clear_texture not started -ARB_enhanced_layouts not started -ARB_multi_bind not started -ARB_query_buffer_object not started -ARB_texture_mirror_clamp_to_edge DONE (i965, nv30, nv50, nvc0, r300, r600, radeonsi, swrast) -ARB_texture_stencil8 not started -ARB_vertex_type_10f_11f_11f_rev 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 not started More info about these features and the work involved can be found at diff --git a/mesalib/docs/relnotes/10.0.html b/mesalib/docs/relnotes/10.0.html index 5ff53398e..b74d03dc2 100644 --- a/mesalib/docs/relnotes/10.0.html +++ b/mesalib/docs/relnotes/10.0.html @@ -50,6 +50,7 @@ Note: some of the new features are only available with certain drivers. <li>GL_ARB_texture_query_levels on i965.</li> <li>GL_ARB_texture_mirror_clamp_to_edge.</li> <li>GL_ARB_transform_feedback2, GL_ARB_transform_feedback3, and GL_ARB_transform_feedback_instanced on i965/Gen7 (with appropriate kernel support).</li> +<li>GL_ARB_sample_shading on i965.</li> <li>GL_KHR_debug</li> </ul> diff --git a/mesalib/include/GL/gl.h b/mesalib/include/GL/gl.h index 6b94e3fb0..b484b96ce 100644 --- a/mesalib/include/GL/gl.h +++ b/mesalib/include/GL/gl.h @@ -33,25 +33,14 @@ /********************************************************************** - * Begin system-specific stuff. Do not do any of this when building - * for SciTech SNAP, as this is all done before this header file is - * included. + * Begin system-specific stuff. */ -#if !defined(__SCITECH_SNAP__) - -#if defined(__BEOS__) -#include <stdlib.h> /* to get some BeOS-isms */ -#endif - -#if !defined(OPENSTEP) && (defined(NeXT) || defined(NeXT_PDO)) -#define OPENSTEP -#endif #if defined(_WIN32) && !defined(__WIN32__) && !defined(__CYGWIN__) #define __WIN32__ #endif -#if !defined(OPENSTEP) && (defined(__WIN32__) && !defined(__CYGWIN__)) +#if defined(__WIN32__) && !defined(__CYGWIN__) # if (defined(_MSC_VER) || defined(__MINGW32__)) && defined(BUILD_GL32) /* tag specify we're building mesa as a DLL */ # define GLAPI __declspec(dllexport) # elif (defined(_MSC_VER) || defined(__MINGW32__)) && defined(_DLL) /* tag specifying we're building for DLL runtime support */ @@ -72,10 +61,6 @@ # define GLAPIENTRY #endif /* WIN32 && !CYGWIN */ -#if (defined(__BEOS__) && defined(__POWERPC__)) || defined(__QUICKDRAW__) -# define PRAGMA_EXPORT_SUPPORTED 1 -#endif - /* * WINDOWS: Include windows.h here to define APIENTRY. * It is also useful when applications include this file by @@ -91,10 +76,6 @@ #include <windows.h> #endif -#if defined(macintosh) && PRAGMA_IMPORT_SUPPORTED -#pragma import on -#endif - #ifndef GLAPI #define GLAPI extern #endif @@ -116,15 +97,10 @@ #define GLAPIENTRYP GLAPIENTRY * #endif -#ifdef CENTERLINE_CLPP -#define signed -#endif - #if defined(PRAGMA_EXPORT_SUPPORTED) #pragma export on #endif -#endif /* !__SCITECH_SNAP__ */ /* * End system-specific stuff. **********************************************************************/ @@ -2177,9 +2153,6 @@ typedef void (APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum t #pragma export off #endif -#if defined(macintosh) && PRAGMA_IMPORT_SUPPORTED -#pragma import off -#endif /* * End system-specific stuff **********************************************************************/ diff --git a/mesalib/include/GL/osmesa.h b/mesalib/include/GL/osmesa.h index c36f64981..10c472d49 100644 --- a/mesalib/include/GL/osmesa.h +++ b/mesalib/include/GL/osmesa.h @@ -101,11 +101,6 @@ extern "C" { typedef struct osmesa_context *OSMesaContext; -#if defined(__QUICKDRAW__) -#pragma export on -#endif - - /* * Create an Off-Screen Mesa rendering context. The only attribute needed is * an RGBA vs Color-Index mode flag. diff --git a/mesalib/scons/gallium.py b/mesalib/scons/gallium.py index be3c3e7d9..ea8bacdce 100644 --- a/mesalib/scons/gallium.py +++ b/mesalib/scons/gallium.py @@ -295,8 +295,6 @@ def generate(env): cppdefines += ['_DEBUG'] if platform == 'windows': cppdefines += ['PIPE_SUBSYSTEM_WINDOWS_USER'] - if platform == 'haiku': - cppdefines += ['BEOS_THREADS'] if env['embedded']: cppdefines += ['PIPE_SUBSYSTEM_EMBEDDED'] if env['texture_float']: diff --git a/mesalib/src/gallium/auxiliary/util/u_format.h b/mesalib/src/gallium/auxiliary/util/u_format.h index dc777c35c..369c3994a 100644 --- a/mesalib/src/gallium/auxiliary/util/u_format.h +++ b/mesalib/src/gallium/auxiliary/util/u_format.h @@ -696,6 +696,9 @@ util_format_is_rgba8_variant(const struct util_format_description *desc) if(desc->channel[chan].type != UTIL_FORMAT_TYPE_UNSIGNED && desc->channel[chan].type != UTIL_FORMAT_TYPE_VOID) return FALSE; + if(desc->channel[chan].type == UTIL_FORMAT_TYPE_UNSIGNED && + !desc->channel[chan].normalized) + return FALSE; if(desc->channel[chan].size != 8) return FALSE; } diff --git a/mesalib/src/glsl/lower_packed_varyings.cpp b/mesalib/src/glsl/lower_packed_varyings.cpp index 2bcadfd55..61ee692f6 100644 --- a/mesalib/src/glsl/lower_packed_varyings.cpp +++ b/mesalib/src/glsl/lower_packed_varyings.cpp @@ -506,17 +506,16 @@ lower_packed_varyings_visitor::lower_arraylike(ir_rvalue *rvalue, ir_constant *constant = new(this->mem_ctx) ir_constant(i); ir_dereference_array *dereference_array = new(this->mem_ctx) ir_dereference_array(rvalue, constant); - char *subscripted_name - = ralloc_asprintf(this->mem_ctx, "%s[%d]", name, i); if (gs_input_toplevel) { /* Geometry shader inputs are a special case. Instead of storing * each element of the array at a different location, all elements * are at the same location, but with a different vertex index. */ (void) this->lower_rvalue(dereference_array, fine_location, - unpacked_var, subscripted_name, - false, i); + unpacked_var, name, false, i); } else { + char *subscripted_name + = ralloc_asprintf(this->mem_ctx, "%s[%d]", name, i); fine_location = this->lower_rvalue(dereference_array, fine_location, unpacked_var, subscripted_name, diff --git a/mesalib/src/mesa/Makefile.am b/mesalib/src/mesa/Makefile.am index f86caee35..a54b8ac1b 100644 --- a/mesalib/src/mesa/Makefile.am +++ b/mesalib/src/mesa/Makefile.am @@ -19,7 +19,7 @@ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS # IN THE SOFTWARE. -SUBDIRS = program x86 x86-64 . main/tests +SUBDIRS = x86 x86-64 . main/tests if HAVE_X11_DRIVER SUBDIRS += drivers/x11 @@ -59,11 +59,17 @@ main/git_sha1.h: main/git_sha1.h.tmp GLAPI = $(top_srcdir)/src/mapi/glapi/gen include $(GLAPI)/glapi_gen.mk +BUILDDIR = $(builddir)/ +include Makefile.sources + BUILT_SOURCES = \ main/git_sha1.h \ - main/get_hash.h + main/get_hash.h \ + $(BUILDDIR)program/program_parse.tab.c \ + $(BUILDDIR)program/lex.yy.c CLEANFILES = \ $(BUILT_SOURCES) \ + $(BUILDDIR)program/program_parse.tab.h \ git_sha1.h.tmp GET_HASH_GEN = main/get_hash_generator.py @@ -85,10 +91,6 @@ if HAVE_GALLIUM noinst_LTLIBRARIES += libmesagallium.la endif -SRCDIR = $(top_srcdir)/src/mesa/ -BUILDDIR = $(top_builddir)/src/mesa/ -include Makefile.sources - AM_CPPFLAGS = $(DEFINES) $(INCLUDE_DIRS) AM_CFLAGS = $(LLVM_CFLAGS) $(VISIBILITY_CFLAGS) AM_CXXFLAGS = $(LLVM_CFLAGS) $(VISIBILITY_CXXFLAGS) @@ -97,45 +99,46 @@ MESA_ASM_FILES_FOR_ARCH = if HAVE_X86_ASM MESA_ASM_FILES_FOR_ARCH += $(X86_FILES) -AM_CPPFLAGS += \ - -I$(top_builddir)/src/mesa/x86 \ - -I$(top_srcdir)/src/mesa/x86 +AM_CPPFLAGS += -I$(builddir)/x86 -I$(srcdir)/x86 endif if HAVE_X86_64_ASM MESA_ASM_FILES_FOR_ARCH += $(X86_64_FILES) -AM_CPPFLAGS += \ - -I$(top_builddir)/src/mesa/x86-64 \ - -I$(top_srcdir)/src/mesa/x86-64 +AM_CPPFLAGS += -I$(builddir)/x86-64 -I$(srcdir)/x86-64 endif if HAVE_SPARC_ASM MESA_ASM_FILES_FOR_ARCH += $(SPARC_FILES) -AM_CPPFLAGS += \ - -I$(top_builddir)/src/mesa/sparc \ - -I$(top_srcdir)/src/mesa/sparc +AM_CPPFLAGS += -I$(builddir)/sparc -I$(srcdir)/sparc endif libmesa_la_SOURCES = \ $(MESA_FILES) \ + $(PROGRAM_FILES) \ $(MESA_ASM_FILES_FOR_ARCH) libmesa_la_LIBADD = \ $(top_builddir)/src/glsl/libglsl.la \ - $(top_builddir)/src/mesa/program/libprogram.la \ $() -libmesa_la_LDFLAGS = libmesagallium_la_SOURCES = \ $(MESA_GALLIUM_FILES) \ + $(PROGRAM_FILES) \ $(MESA_ASM_FILES_FOR_ARCH) libmesagallium_la_LIBADD = \ $(top_builddir)/src/glsl/libglsl.la \ - $(top_builddir)/src/mesa/program/libprogram.la \ $() pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = gl.pc +$(BUILDDIR)program/lex.yy.c: program/program_lexer.l + $(MKDIR_P) $(builddir)/program + $(AM_V_GEN) $(LEX) --never-interactive --outfile=$@ $< + +$(BUILDDIR)program/program_parse.tab.c $(BUILDDIR)program/program_parse.tab.h: program/program_parse.y + $(MKDIR_P) $(builddir)/program + $(AM_V_GEN) $(YACC) -p "_mesa_program_" -v -d --output=$(BUILDDIR)program/program_parse.tab.c $< + # Emacs tags tags: etags `find . -name \*.[ch]` $(top_srcdir)/include/GL/*.h diff --git a/mesalib/src/mesa/main/compiler.h b/mesalib/src/mesa/main/compiler.h index d806d5b9d..97075f58e 100644 --- a/mesalib/src/mesa/main/compiler.h +++ b/mesalib/src/mesa/main/compiler.h @@ -36,11 +36,7 @@ #include <assert.h> #include <ctype.h> -#if defined(__alpha__) && defined(CCPML) -#include <cpml.h> /* use Compaq's Fast Math Library on Alpha */ -#else #include <math.h> -#endif #include <limits.h> #include <stdlib.h> #include <stdio.h> @@ -84,15 +80,13 @@ extern "C" { */ #if defined(_MSC_VER) # define finite _finite -#elif defined(__WATCOMC__) -# define finite _finite #endif /** * Disable assorted warnings */ -#if !defined(OPENSTEP) && (defined(_WIN32) && !defined(__CYGWIN__)) && !defined(BUILD_FOR_SNAP) +#if defined(_WIN32) && !defined(__CYGWIN__) # if !defined(__GNUC__) /* mingw environment */ # pragma warning( disable : 4068 ) /* unknown pragma */ # pragma warning( disable : 4710 ) /* function 'foo' not inlined */ @@ -107,9 +101,6 @@ extern "C" { # endif # endif #endif -#if defined(__WATCOMC__) -# pragma disable_message(201) /* Disable unreachable code warnings */ -#endif @@ -198,7 +189,7 @@ static INLINE GLuint CPU_TO_LE32(GLuint x) -#if !defined(CAPI) && defined(_WIN32) && !defined(BUILD_FOR_SNAP) +#if !defined(CAPI) && defined(_WIN32) #define CAPI _cdecl #endif @@ -208,7 +199,7 @@ static INLINE GLuint CPU_TO_LE32(GLuint x) * than GNU C */ #ifndef _ASMAPI -#if defined(_WIN32) && !defined(BUILD_FOR_SNAP)/* was: !defined( __GNUC__ ) && !defined( VMS ) && !defined( __INTEL_COMPILER )*/ +#if defined(_WIN32) #define _ASMAPI __cdecl #else #define _ASMAPI @@ -239,9 +230,7 @@ static INLINE GLuint CPU_TO_LE32(GLuint x) * ASSERT macro */ #if !defined(_WIN32_WCE) -#if defined(BUILD_FOR_SNAP) && defined(CHECKED) -# define ASSERT(X) _CHECK(X) -#elif defined(DEBUG) +#if defined(DEBUG) # define ASSERT(X) assert(X) #else # define ASSERT(X) @@ -259,6 +248,21 @@ static INLINE GLuint CPU_TO_LE32(GLuint x) (void) sizeof(char [1 - 2*!(COND)]); \ } while (0) +/** + * Unreachable macro. Useful for suppressing "control reaches end of non-void + * function" warnings. + */ +#if __GNUC__ >= 4 && __GNUC_MINOR__ >= 5 +#define unreachable() __builtin_unreachable() +#elif (defined(__clang__) && defined(__has_builtin)) +# if __has_builtin(__builtin_unreachable) +# define unreachable() __builtin_unreachable() +# endif +#endif + +#ifndef unreachable +#define unreachable() +#endif #if (__GNUC__ >= 3) #define PRINTFLIKE(f, a) __attribute__ ((format(__printf__, f, a))) @@ -322,7 +326,7 @@ static INLINE GLuint CPU_TO_LE32(GLuint x) defined(ia64) || defined(__ia64__) || \ defined(__hppa__) || defined(hpux) || \ defined(__mips) || defined(_MIPS_ARCH) || \ - defined(__arm__) || \ + defined(__arm__) || defined(__aarch64__) || \ defined(__sh__) || defined(__m32r__) || \ (defined(__sun) && defined(_IEEE_754)) || \ defined(__alpha__) @@ -383,36 +387,6 @@ do { \ __asm__ ( "fnclex ; fldcw %0" : : "m" (*&(x)) ); \ } while (0) -#elif defined(__WATCOMC__) && defined(__386__) -#define DEFAULT_X86_FPU 0x037f /* See GCC comments above */ -#define FAST_X86_FPU 0x003f /* See GCC comments above */ -void _watcom_start_fast_math(unsigned short *x,unsigned short *mask); -#pragma aux _watcom_start_fast_math = \ - "fnstcw word ptr [eax]" \ - "fldcw word ptr [ecx]" \ - parm [eax] [ecx] \ - modify exact []; -void _watcom_end_fast_math(unsigned short *x); -#pragma aux _watcom_end_fast_math = \ - "fnclex" \ - "fldcw word ptr [eax]" \ - parm [eax] \ - modify exact []; -#if defined(NO_FAST_MATH) -#define START_FAST_MATH(x) \ -do { \ - static GLushort mask = DEFAULT_X86_FPU; \ - _watcom_start_fast_math(&x,&mask); \ -} while (0) -#else -#define START_FAST_MATH(x) \ -do { \ - static GLushort mask = FAST_X86_FPU; \ - _watcom_start_fast_math(&x,&mask); \ -} while (0) -#endif -#define END_FAST_MATH(x) _watcom_end_fast_math(&x) - #elif defined(_MSC_VER) && defined(_M_IX86) #define DEFAULT_X86_FPU 0x037f /* See GCC comments above */ #define FAST_X86_FPU 0x003f /* See GCC comments above */ diff --git a/mesalib/src/mesa/main/glheader.h b/mesalib/src/mesa/main/glheader.h index 4ed51b317..7f7f9a39b 100644 --- a/mesalib/src/mesa/main/glheader.h +++ b/mesalib/src/mesa/main/glheader.h @@ -33,22 +33,6 @@ #define GLHEADER_H -#ifdef WGLAPI -#undef WGLAPI -#endif - - -#if !defined(OPENSTEP) && (defined(__WIN32__) && !defined(__CYGWIN__)) && !defined(BUILD_FOR_SNAP) -# if (defined(_MSC_VER) || defined(__MINGW32__)) && defined(BUILD_GL32) /* tag specify we're building mesa as a DLL */ -# define WGLAPI __declspec(dllexport) -# elif (defined(_MSC_VER) || defined(__MINGW32__)) && defined(_DLL) /* tag specifying we're building for DLL runtime support */ -# define WGLAPI __declspec(dllimport) -# else /* for use with static link lib build of Win32 edition only */ -# define WGLAPI __declspec(dllimport) -# endif /* _STATIC_MESA support */ -#endif /* WIN32 / CYGWIN bracket */ - - #define GL_GLEXT_PROTOTYPES #include "GL/gl.h" #include "GL/glext.h" diff --git a/mesalib/src/mesa/main/shaderapi.c b/mesalib/src/mesa/main/shaderapi.c index 7da860ddf..1d9aac39d 100644 --- a/mesalib/src/mesa/main/shaderapi.c +++ b/mesalib/src/mesa/main/shaderapi.c @@ -825,6 +825,8 @@ compile_shader(struct gl_context *ctx, GLuint shaderObj) fprintf(stderr, "GLSL source for %s shader %d:\n", _mesa_glsl_shader_target_name(sh->Type), sh->Name); fprintf(stderr, "%s\n", sh->Source); + fprintf(stderr, "Info Log:\n%s\n", sh->InfoLog); + fflush(stderr); } if (ctx->Shader.Flags & GLSL_REPORT_ERRORS) { diff --git a/mesalib/src/mesa/math/m_clip_tmp.h b/mesalib/src/mesa/math/m_clip_tmp.h index 5cfcf91dd..45dec47f0 100644 --- a/mesalib/src/mesa/math/m_clip_tmp.h +++ b/mesalib/src/mesa/math/m_clip_tmp.h @@ -60,7 +60,7 @@ static GLvector4f * _XFORMAPI TAG(cliptest_points4)( GLvector4f *clip_vec, const GLfloat cy = from[1]; const GLfloat cz = from[2]; const GLfloat cw = from[3]; -#if defined(macintosh) || defined(__powerpc__) +#if defined(__powerpc__) /* on powerpc cliptest is 17% faster in this way. */ GLuint mask; mask = (((cw < cx) << CLIP_RIGHT_SHIFT)); @@ -71,7 +71,7 @@ static GLvector4f * _XFORMAPI TAG(cliptest_points4)( GLvector4f *clip_vec, mask |= (((cw < cz) << CLIP_FAR_SHIFT)); mask |= (((cw < -cz) << CLIP_NEAR_SHIFT)); } -#else /* !defined(macintosh)) */ +#else GLubyte mask = 0; if (-cx + cw < 0) mask |= CLIP_RIGHT_BIT; if ( cx + cw < 0) mask |= CLIP_LEFT_BIT; @@ -81,7 +81,7 @@ static GLvector4f * _XFORMAPI TAG(cliptest_points4)( GLvector4f *clip_vec, if (-cz + cw < 0) mask |= CLIP_FAR_BIT; if ( cz + cw < 0) mask |= CLIP_NEAR_BIT; } -#endif /* defined(macintosh) */ +#endif clipMask[i] = mask; if (mask) { @@ -140,7 +140,7 @@ static GLvector4f * _XFORMAPI TAG(cliptest_np_points4)( GLvector4f *clip_vec, const GLfloat cy = from[1]; const GLfloat cz = from[2]; const GLfloat cw = from[3]; -#if defined(macintosh) || defined(__powerpc__) +#if defined(__powerpc__) /* on powerpc cliptest is 17% faster in this way. */ GLuint mask; mask = (((cw < cx) << CLIP_RIGHT_SHIFT)); @@ -151,7 +151,7 @@ static GLvector4f * _XFORMAPI TAG(cliptest_np_points4)( GLvector4f *clip_vec, mask |= (((cw < cz) << CLIP_FAR_SHIFT)); mask |= (((cw < -cz) << CLIP_NEAR_SHIFT)); } -#else /* !defined(macintosh)) */ +#else GLubyte mask = 0; if (-cx + cw < 0) mask |= CLIP_RIGHT_BIT; if ( cx + cw < 0) mask |= CLIP_LEFT_BIT; @@ -161,7 +161,7 @@ static GLvector4f * _XFORMAPI TAG(cliptest_np_points4)( GLvector4f *clip_vec, if (-cz + cw < 0) mask |= CLIP_FAR_BIT; if ( cz + cw < 0) mask |= CLIP_NEAR_BIT; } -#endif /* defined(macintosh) */ +#endif clipMask[i] = mask; if (mask) { diff --git a/mesalib/src/mesa/math/m_debug_util.h b/mesalib/src/mesa/math/m_debug_util.h index d526e9656..d05da8994 100644 --- a/mesalib/src/mesa/math/m_debug_util.h +++ b/mesalib/src/mesa/math/m_debug_util.h @@ -305,8 +305,6 @@ enum { NIL = 0, ONE = 1, NEG = -1, VAR = 2 }; # define ALIGN16(type, array) type array __attribute__ ((aligned (16))) #elif defined(_MSC_VER) # define ALIGN16(type, array) type array __declspec(align(16)) /* GH: Does this work? */ -#elif defined(__WATCOMC__) -# define ALIGN16(type, array) /* Watcom does not support this */ #elif defined(__xlC__) # define ALIGN16(type, array) type __align (16) array #else diff --git a/mesalib/src/mesa/program/Makefile.am b/mesalib/src/mesa/program/Makefile.am deleted file mode 100644 index 5e05782fb..000000000 --- a/mesalib/src/mesa/program/Makefile.am +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright © 2012 Intel Corporation -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice (including the next -# paragraph) shall be included in all copies or substantial portions of the -# Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -# IN THE SOFTWARE. - -include ../Makefile.sources - -AM_CPPFLAGS = $(DEFINES) $(INCLUDE_DIRS) -AM_CFLAGS = $(VISIBILITY_CFLAGS) -AM_CXXFLAGS = $(VISIBILITY_CXXFLAGS) - -SRCDIR = $(top_srcdir)/src/mesa/ -BUILDDIR = $(top_builddir)/src/mesa/ - -noinst_LTLIBRARIES = libprogram.la - -libprogram_la_SOURCES = $(PROGRAM_FILES) - -lex.yy.c: program_lexer.l - $(AM_V_GEN) $(LEX) --never-interactive --outfile=$@ $< - -program_parse.tab.c program_parse.tab.h: program_parse.y - $(AM_V_GEN) $(YACC) -p "_mesa_program_" -v -d --output=program_parse.tab.c $< - -BUILT_SOURCES = \ - program_parse.tab.c \ - program_parse.tab.h \ - lex.yy.c -CLEANFILES = $(BUILT_SOURCES) diff --git a/mesalib/src/mesa/x86/assyntax.h b/mesalib/src/mesa/x86/assyntax.h index 4a41812f6..fa7d92ea5 100644 --- a/mesalib/src/mesa/x86/assyntax.h +++ b/mesalib/src/mesa/x86/assyntax.h @@ -920,17 +920,9 @@ #define D_BYTE db /* #define SPACE */ /* #define COMM */ -#if defined(__WATCOMC__) -SECTION _TEXT public align=16 class=CODE use32 flat -SECTION _DATA public align=16 class=DATA use32 flat -#define SEG_TEXT SECTION _TEXT -#define SEG_DATA SECTION _DATA -#define SEG_BSS SECTION .bss -#else #define SEG_DATA SECTION .data #define SEG_TEXT SECTION .text #define SEG_BSS SECTION .bss -#endif #define D_SPACE(n) db n REP 0 |