From 82c8df11062f72a7d467e26cedbbd8b322ff7a70 Mon Sep 17 00:00:00 2001 From: marha Date: Sun, 22 Mar 2015 13:30:59 +0100 Subject: randrproto fontconfig libX11 libXdmcp libxcb mesa xkbcomp xserver git update 22 Mar 2015 xserver commit 0a78b599b34cc8b5fe6fe82f90e90234e8ab7a56 libxcb commit a90be9955d2c5a635f791d44db1154633b9d3322 libX11 commit 5a499ca7b064bf7e6a4fcc169f22862dce0c60c5 libXdmcp commit 0c09444d276fbf46a0e8b427a4f6a325d0625742 xkbcomp commit fc3e6ddb2c8e922ea80f2dc5cbc1df2102e30d99 randrproto commit b1ba68df8a5fc113a387123ec2f312195e28e47f fontconfig commit 69ff6b6e260584e383c38b1b7034ddcbb23d214f mesa commit 397b491173f0d2df4deb44d21c170bf16840d507 --- X11/extensions/randrproto.txt | 4 +- fontconfig/README | 37 +- fontconfig/configure.ac | 6 +- fontconfig/fc-blanks/Makefile.am | 1 + fontconfig/fontconfig/fontconfig.h | 2 +- fontconfig/src/fcblanks.c | 3 +- fontconfig/src/fcinit.c | 2 + libX11/configure.ac | 2 +- libXdmcp/configure.ac | 2 +- libxcb/src/c_client.py | 136 +-- mesalib/autogen.sh | 4 +- mesalib/common.py | 97 +- mesalib/configure.ac | 55 +- mesalib/docs/GL3.txt | 79 +- mesalib/docs/dispatch.html | 5 +- mesalib/docs/egl.html | 7 +- mesalib/docs/index.html | 25 + mesalib/docs/install.html | 4 +- mesalib/docs/relnotes.html | 4 + mesalib/docs/relnotes/10.4.6.html | 143 +++ mesalib/docs/relnotes/10.4.7.html | 134 +++ mesalib/docs/relnotes/10.5.0.html | 152 ++- mesalib/docs/relnotes/10.5.1.html | 217 ++++ mesalib/docs/relnotes/10.6.0.html | 3 + mesalib/include/c11/threads_posix.h | 7 +- mesalib/include/c99_alloca.h | 2 +- mesalib/include/c99_compat.h | 2 + mesalib/include/c99_math.h | 45 + mesalib/include/no_extern_c.h | 48 + mesalib/m4/ax_check_python_mako_module.m4 | 4 +- mesalib/scons/gallium.py | 62 +- mesalib/scons/llvm.py | 5 + mesalib/src/gallium/Makefile.am | 11 - mesalib/src/gallium/SConscript | 1 - mesalib/src/gallium/auxiliary/util/u_slab.h | 13 +- mesalib/src/glsl/SConscript | 20 +- mesalib/src/glsl/ast_to_hir.cpp | 6 + mesalib/src/glsl/builtin_functions.cpp | 2 +- mesalib/src/glsl/glsl_parser.yy | 4 + mesalib/src/glsl/ir.h | 4 + mesalib/src/glsl/ir_constant_expression.cpp | 18 +- mesalib/src/glsl/linker.cpp | 5 +- mesalib/src/glsl/list.h | 4 +- mesalib/src/glsl/nir/glsl_to_nir.cpp | 61 +- mesalib/src/glsl/nir/glsl_to_nir.h | 4 +- mesalib/src/glsl/nir/nir.c | 12 +- mesalib/src/glsl/nir/nir.h | 23 +- mesalib/src/glsl/nir/nir_constant_expressions.py | 15 +- mesalib/src/glsl/nir/nir_intrinsics.h | 2 + mesalib/src/glsl/nir/nir_lower_io.c | 90 +- mesalib/src/glsl/nir/nir_lower_system_values.c | 6 + mesalib/src/glsl/nir/nir_lower_vars_to_ssa.c | 123 +-- mesalib/src/glsl/nir/nir_opcodes.py | 2 +- mesalib/src/glsl/nir/nir_opt_algebraic.py | 4 + mesalib/src/glsl/nir/nir_opt_peephole_select.c | 112 +- mesalib/src/glsl/nir/nir_print.c | 20 +- mesalib/src/glsl/nir/nir_validate.c | 16 +- mesalib/src/glsl/nir/nir_worklist.c | 10 +- mesalib/src/glsl/nir/nir_worklist.h | 4 +- mesalib/src/glsl/opt_algebraic.cpp | 15 +- mesalib/src/loader/loader.c | 2 +- .../src/mapi/glapi/gen/ARB_direct_state_access.xml | 112 ++ mesalib/src/mapi/glapi/gen/gl_enums.py | 6 + mesalib/src/mapi/glapi/glapi.h | 11 + mesalib/src/mapi/glapi/glapi_getproc.c | 4 + mesalib/src/mapi/glapi/glapi_nop.c | 85 +- mesalib/src/mapi/glapi/glapi_priv.h | 3 - mesalib/src/mapi/mapi_glapi.c | 23 + mesalib/src/mapi/table.c | 23 +- mesalib/src/mapi/table.h | 8 + mesalib/src/mesa/SConscript | 17 +- mesalib/src/mesa/drivers/common/meta.c | 4 +- .../src/mesa/drivers/common/meta_tex_subimage.c | 32 - mesalib/src/mesa/drivers/dri/common/dri_test.c | 11 + mesalib/src/mesa/main/api_exec.h | 4 - mesalib/src/mesa/main/bufferobj.c | 1160 +++++++++++++------- mesalib/src/mesa/main/bufferobj.h | 144 ++- mesalib/src/mesa/main/compiler.h | 59 - mesalib/src/mesa/main/context.c | 76 +- mesalib/src/mesa/main/context.h | 3 - mesalib/src/mesa/main/copyimage.c | 151 ++- mesalib/src/mesa/main/formats.c | 2 +- mesalib/src/mesa/main/imports.c | 43 +- mesalib/src/mesa/main/imports.h | 6 - mesalib/src/mesa/main/mtypes.h | 119 +- mesalib/src/mesa/main/objectlabel.c | 2 +- mesalib/src/mesa/main/pbo.c | 119 +- mesalib/src/mesa/main/pbo.h | 14 + mesalib/src/mesa/main/querymatrix.c | 279 ++--- mesalib/src/mesa/main/scissor.c | 4 +- mesalib/src/mesa/main/shaderapi.c | 27 +- mesalib/src/mesa/main/texgetimage.c | 61 +- mesalib/src/mesa/main/teximage.c | 681 ++++++++---- mesalib/src/mesa/main/teximage.h | 16 +- mesalib/src/mesa/main/transformfeedback.c | 2 +- mesalib/src/mesa/main/uniform_query.cpp | 69 +- mesalib/src/mesa/math/m_clip_tmp.h | 8 +- mesalib/src/mesa/math/m_norm_tmp.h | 18 +- mesalib/src/mesa/math/m_xform.h | 36 +- mesalib/src/mesa/math/m_xform_tmp.h | 58 +- mesalib/src/mesa/program/prog_instruction.c | 2 +- mesalib/src/mesa/program/prog_instruction.h | 6 +- mesalib/src/mesa/program/prog_parameter.c | 2 +- mesalib/src/mesa/program/prog_statevars.c | 2 +- mesalib/src/mesa/program/program.c | 6 +- .../src/mesa/state_tracker/st_cb_bufferobjects.c | 4 +- mesalib/src/mesa/state_tracker/st_cb_texture.c | 21 - mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 13 +- mesalib/src/mesa/state_tracker/st_texture.c | 40 - mesalib/src/mesa/state_tracker/st_texture.h | 16 - mesalib/src/mesa/state_tracker/st_vdpau.c | 2 +- mesalib/src/mesa/swrast/s_blend.c | 21 +- mesalib/src/mesa/swrast/s_context.c | 2 +- mesalib/src/mesa/swrast/s_context.h | 8 +- mesalib/src/mesa/swrast/s_span.c | 2 +- mesalib/src/mesa/vbo/vbo_attrib_tmp.h | 74 +- mesalib/src/mesa/vbo/vbo_exec_api.c | 2 +- mesalib/src/mesa/x86/3dnow.c | 6 +- mesalib/src/mesa/x86/common_x86.c | 12 +- mesalib/src/mesa/x86/mmx.h | 10 +- mesalib/src/mesa/x86/sse.c | 20 +- mesalib/src/mesa/x86/x86_xform.c | 8 +- mesalib/src/mesa/x86/x86_xform.h | 30 +- mesalib/src/util/Makefile.am | 4 +- mesalib/src/util/Makefile.sources | 1 + mesalib/src/util/macros.h | 14 +- mesalib/src/util/roundeven_test.c | 140 +++ mesalib/src/util/rounding.h | 78 ++ mesalib/src/util/u_atomic.h | 2 + xkbcomp/parseutils.c | 1 - xorg-server/Xext/xtest.c | 2 +- xorg-server/autogen.sh | 8 +- xorg-server/dix/devices.c | 2 +- xorg-server/dix/getevents.c | 40 +- xorg-server/hw/dmx/input/dmxevents.c | 7 +- xorg-server/hw/kdrive/src/kinput.c | 2 +- xorg-server/hw/xfree86/common/xf86Events.c | 2 +- xorg-server/hw/xfree86/common/xf86Module.h | 2 +- xorg-server/hw/xfree86/common/xf86Xinput.c | 41 +- xorg-server/hw/xfree86/common/xf86Xinput.h | 13 +- xorg-server/hw/xfree86/int10/generic.c | 2 +- .../hw/xfree86/os-support/linux/int10/linux.c | 2 +- xorg-server/hw/xfree86/sdksyms.sh | 14 +- xorg-server/hw/xnest/Events.c | 2 +- xorg-server/hw/xquartz/darwinEvents.c | 6 +- xorg-server/hw/xwayland/xwayland-input.c | 12 +- xorg-server/hw/xwin/winkeybd.c | 2 +- xorg-server/include/input.h | 7 +- xorg-server/os/access.c | 2 +- xorg-server/os/connection.c | 9 +- 150 files changed, 3979 insertions(+), 2155 deletions(-) create mode 100644 mesalib/docs/relnotes/10.4.6.html create mode 100644 mesalib/docs/relnotes/10.4.7.html create mode 100644 mesalib/docs/relnotes/10.5.1.html create mode 100644 mesalib/include/no_extern_c.h create mode 100644 mesalib/src/util/roundeven_test.c create mode 100644 mesalib/src/util/rounding.h diff --git a/X11/extensions/randrproto.txt b/X11/extensions/randrproto.txt index 864268e5d..190048299 100644 --- a/X11/extensions/randrproto.txt +++ b/X11/extensions/randrproto.txt @@ -1,6 +1,6 @@ The X Resize, Rotate and Reflect Extension - Version 1.4.0 - 2012-07-03 + Version 1.4.1 + 2015-03-14 Jim Gettys Jim.Gettys@hp.com diff --git a/fontconfig/README b/fontconfig/README index 6ac164469..4a4dc307b 100644 --- a/fontconfig/README +++ b/fontconfig/README @@ -1,12 +1,45 @@ Fontconfig Font configuration and customization library - Version 2.11.92 (2.12 RC2) - 2015-01-13 + Version 2.11.93 (2.12 RC3) + 2015-03-09 Check INSTALL for compilation and installation instructions. Report bugs to https://bugs.freedesktop.org in the fontconfig module. +2.11.93 (2.12 RC3) + +Akira TAGOH (18): + Fix a typo in docs + Add pkg.m4 to git + Fix a build fail on some non-POSIX platforms + ifdef'd the unnecessary code for win32 + Fix pointer cast warning on win32 + filter can be null + Copy the real size of struct dirent + Rework again to copy the struct dirent + Hardcode the blanks in the library + Update the script to recognize the escaped space + Fix a build issue when $(srcdir) != $(builddir) + Don't add FC_LANG when it has "und" + Fix the array allocation + Improve the performance on searching blanks + Fix a segfault when OOM happened. + Fix a bug in the previous change forFcBlanksIsMember() + Fix an infinite loop in FcBlanksIsMember() + Fix a trivial bug for dist + +Alan Coopersmith (1): + Fix configure to work with Solaris Studio compilers + +Behdad Esfahbod (3): + Fix symbol cmap handling + Remove dead code after previous commit + Simplify some more + +Michael Haubenwallner (1): + Ensure config.h is included first, bug#89336. + 2.11.92 (2.12 RC2) Akira TAGOH (1): diff --git a/fontconfig/configure.ac b/fontconfig/configure.ac index 8f0150ef5..bb9880487 100644 --- a/fontconfig/configure.ac +++ b/fontconfig/configure.ac @@ -33,7 +33,7 @@ dnl This is the package version number, not the shared library dnl version. This same version number must appear in fontconfig/fontconfig.h dnl Yes, it is a pain to synchronize version numbers. Unfortunately, it's dnl not possible to extract the version number here from fontconfig.h -AC_INIT([fontconfig], [2.11.92], [https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig]) +AC_INIT([fontconfig], [2.11.93], [https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig]) AM_INIT_AUTOMAKE([1.11 parallel-tests dist-bzip2]) m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) @@ -73,11 +73,11 @@ dnl libtool versioning dnl bump revision when fixing bugs dnl bump current and age, reset revision to zero when adding APIs dnl bump current, leave age, reset revision to zero when changing/removing APIS -LIBT_CURRENT=9 +LIBT_CURRENT=10 LIBT_REVISION=0 AC_SUBST(LIBT_CURRENT) AC_SUBST(LIBT_REVISION) -LIBT_AGE=8 +LIBT_AGE=9 LIBT_VERSION_INFO="$LIBT_CURRENT:$LIBT_REVISION:$LIBT_AGE" AC_SUBST(LIBT_VERSION_INFO) diff --git a/fontconfig/fc-blanks/Makefile.am b/fontconfig/fc-blanks/Makefile.am index 5b9700031..e9de1fe16 100644 --- a/fontconfig/fc-blanks/Makefile.am +++ b/fontconfig/fc-blanks/Makefile.am @@ -32,6 +32,7 @@ $(BLANKS_H): $(TMPL) $(BLANKSPY) mv $(BLANKS_H).tmp $(BLANKS_H) || ($(RM) $(BLANKS_H).tmp && false) EXTRA_DIST = \ + $(BLANKSPY) \ $(BLANKS_H) \ $(TMPL) \ $(NULL) diff --git a/fontconfig/fontconfig/fontconfig.h b/fontconfig/fontconfig/fontconfig.h index 600ed6881..b14c9616c 100644 --- a/fontconfig/fontconfig/fontconfig.h +++ b/fontconfig/fontconfig/fontconfig.h @@ -52,7 +52,7 @@ typedef int FcBool; #define FC_MAJOR 2 #define FC_MINOR 11 -#define FC_REVISION 92 +#define FC_REVISION 93 #define FC_VERSION ((FC_MAJOR * 10000) + (FC_MINOR * 100) + (FC_REVISION)) diff --git a/fontconfig/src/fcblanks.c b/fontconfig/src/fcblanks.c index f163a8f40..5132a510f 100644 --- a/fontconfig/src/fcblanks.c +++ b/fontconfig/src/fcblanks.c @@ -93,8 +93,7 @@ FcBlanksIsMember (FcBlanks *b, FcChar32 ucs4) middle = (lower + higher) / 2; if (b->blanks[middle] == ucs4) return FcTrue; - if (middle == lower || - middle == higher) + if (lower >= higher) break; if (b->blanks[middle] < ucs4) lower = middle + 1; diff --git a/fontconfig/src/fcinit.c b/fontconfig/src/fcinit.c index db62c21f2..6134ed40d 100644 --- a/fontconfig/src/fcinit.c +++ b/fontconfig/src/fcinit.c @@ -209,6 +209,8 @@ FcInitBringUptoDate (void) FcConfig *config = FcConfigGetCurrent (); time_t now; + if (!config) + return FcFalse; /* * rescanInterval == 0 disables automatic up to date */ diff --git a/libX11/configure.ac b/libX11/configure.ac index 047917dd8..92b791c29 100644 --- a/libX11/configure.ac +++ b/libX11/configure.ac @@ -1,7 +1,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) -AC_INIT([libX11], [1.6.2], +AC_INIT([libX11], [1.6.3], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libX11]) AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_HEADERS([src/config.h include/X11/XlibConf.h]) diff --git a/libXdmcp/configure.ac b/libXdmcp/configure.ac index d117aa1e7..608bab99e 100644 --- a/libXdmcp/configure.ac +++ b/libXdmcp/configure.ac @@ -22,7 +22,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) -AC_INIT([libXdmcp], [1.1.1], +AC_INIT([libXdmcp], [1.1.2], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libXdmcp]) AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_HEADERS([config.h]) diff --git a/libxcb/src/c_client.py b/libxcb/src/c_client.py index 8a2900c62..e55fc3c6b 100644 --- a/libxcb/src/c_client.py +++ b/libxcb/src/c_client.py @@ -1,12 +1,9 @@ #!/usr/bin/env python -from xml.etree.cElementTree import * -from os.path import basename -from functools import reduce +from __future__ import print_function import getopt import os import sys import errno -import time import re # Jump to the bottom of this file for the main routine @@ -529,7 +526,6 @@ def _c_type_setup(self, name, postfix): if not module.namespace.is_ext or self.name[:2] == module.namespace.prefix: finished_sizeof.append(self.c_sizeof_name) _c_serialize('sizeof', self) -# _c_type_setup() # Functions for querying field properties def _c_field_needs_list_accessor(field): @@ -590,7 +586,6 @@ def _c_helper_fieldaccess_expr(prefix, field=None): prefix_str += last_sep + _cpp(field.field_name) return prefix_str -# _c_absolute_name def _c_helper_field_mapping(complex_type, prefix, flat=False): """ @@ -606,7 +601,7 @@ def _c_helper_field_mapping(complex_type, prefix, flat=False): else: bitcase_prefix = prefix - if (True==flat and not b.type.has_name) or False==flat: + if (flat and not b.type.has_name) or not flat: all_fields.update(_c_helper_field_mapping(b.type, bitcase_prefix, flat)) else: for f in complex_type.fields: @@ -615,7 +610,7 @@ def _c_helper_field_mapping(complex_type, prefix, flat=False): raise Exception("field name %s has been registered before" % f.field_name) all_fields[f.field_name] = (fname, f) - if f.type.is_container and flat==False: + if f.type.is_container and not flat: if f.type.is_case_or_bitcase and not f.type.has_name: new_prefix = prefix elif f.type.is_switch and len(f.type.parents)>1: @@ -626,7 +621,6 @@ def _c_helper_field_mapping(complex_type, prefix, flat=False): all_fields.update(_c_helper_field_mapping(f.type, new_prefix, flat)) return all_fields -# _c_field_mapping() def _c_helper_resolve_field_names (prefix): """ @@ -647,7 +641,6 @@ def _c_helper_resolve_field_names (prefix): all_fields.update(_c_helper_field_mapping(obj, tmp_prefix, flat=True)) return all_fields -# _c_helper_resolve_field_names def get_expr_fields(self): """ @@ -692,13 +685,12 @@ def get_expr_fields(self): prefix.append(('', '', self)) all_fields = _c_helper_resolve_field_names (prefix) - resolved_fields_names = list(filter(lambda x: x in all_fields.keys(), unresolved_fields_names)) + resolved_fields_names = [x for x in unresolved_fields_names if x in all_fields] if len(unresolved_fields_names) != len(resolved_fields_names): raise Exception("could not resolve all fields for %s" % self.name) resolved_fields = [all_fields[n][1] for n in resolved_fields_names] return resolved_fields -# get_expr_fields() def resolve_expr_fields(complex_obj): """ @@ -721,7 +713,6 @@ def resolve_expr_fields(complex_obj): if e not in all_fields and e not in unresolved: unresolved.append(e) return unresolved -# resolve_expr_fields() def resolve_expr_fields_list(self, parents): """ @@ -825,7 +816,6 @@ def get_serialize_params(context, self, buffer_var='_buffer', aux_var='_aux'): add_param(params, (p.c_field_const_type, '*', p.c_field_name)) return (param_fields, wire_fields, params) -# get_serialize_params() def _c_serialize_helper_insert_padding(context, code_lines, space, postpone, is_case_or_bitcase): code_lines.append('%s /* insert padding */' % space) @@ -836,7 +826,6 @@ def _c_serialize_helper_insert_padding(context, code_lines, space, postpone, is_ else: code_lines.append( '%s xcb_pad = -xcb_block_len & (xcb_align_to - 1);' % space) -# code_lines.append('%s printf("automatically inserting padding: %%%%d\\n", xcb_pad);' % space) code_lines.append('%s xcb_buffer_len += xcb_block_len + xcb_pad;' % space) if not postpone: @@ -858,7 +847,6 @@ def _c_serialize_helper_insert_padding(context, code_lines, space, postpone, is_ # keep tracking of xcb_parts entries for serialize return 1 -# _c_serialize_helper_insert_padding() def _c_serialize_helper_switch(context, self, complex_name, code_lines, temp_vars, @@ -911,14 +899,12 @@ def _c_serialize_helper_switch(context, self, complex_name, # code_lines.append('%s xcb_buffer_len += xcb_block_len + xcb_pad;' % space) return count -# _c_serialize_helper_switch def _c_serialize_helper_switch_field(context, self, field, c_switch_variable, prefix): """ handle switch by calling _serialize() or _unpack(), depending on context """ # switch is handled by this function as a special case - param_fields, wire_fields, params = get_serialize_params(context, self) field_mapping = _c_helper_field_mapping(self, prefix) prefix_str = _c_helper_fieldaccess_expr(prefix) @@ -955,7 +941,6 @@ def _c_serialize_helper_switch_field(context, self, field, c_switch_variable, pr length = "%s(xcb_tmp, %s)" % (field.type.c_sizeof_name, my_c_field_names) return length -# _c_serialize_helper_switch_field() def _c_get_additional_type_params(type): """ @@ -979,8 +964,8 @@ def _c_serialize_helper_list_field(context, self, field, param_names = [p[2] for p in params] expr_fields_names = [f.field_name for f in get_expr_fields(field.type)] - resolved = list(filter(lambda x: x in param_names, expr_fields_names)) - unresolved = list(filter(lambda x: x not in param_names, expr_fields_names)) + resolved = [x for x in expr_fields_names if x in param_names] + unresolved = [x for x in expr_fields_names if x not in param_names] field_mapping = {} for r in resolved: @@ -993,8 +978,8 @@ def _c_serialize_helper_list_field(context, self, field, field.c_field_name) field_mapping.update(_c_helper_resolve_field_names(prefix)) - resolved += list(filter(lambda x: x in field_mapping, unresolved)) - unresolved = list(filter(lambda x: x not in field_mapping, unresolved)) + resolved += [x for x in unresolved if x in field_mapping] + unresolved = [x for x in unresolved if x not in field_mapping] if len(unresolved)>0: raise Exception('could not resolve the length fields required for list %s' % field.c_field_name) @@ -1040,7 +1025,6 @@ def _c_serialize_helper_list_field(context, self, field, code_lines.append('%s xcb_block_len = xcb_parts[xcb_parts_idx].iov_len;' % space) return length -# _c_serialize_helper_list_field() def _c_serialize_helper_fields_fixed_size(context, self, field, code_lines, temp_vars, @@ -1050,7 +1034,7 @@ def _c_serialize_helper_fields_fixed_size(context, self, field, code_lines.append('%s /* %s.%s */' % (space, self.c_type, field.c_field_name)) else: scoped_name = [p[2].c_type if idx==0 else p[0] for idx, p in enumerate(prefix)] - typename = reduce(lambda x,y: "%s.%s" % (x, y), scoped_name) + typename = ".".join(scoped_name) code_lines.append('%s /* %s.%s */' % (space, typename, field.c_field_name)) abs_field_name = _c_helper_fieldaccess_expr(prefix, field) @@ -1110,7 +1094,6 @@ def _c_serialize_helper_fields_fixed_size(context, self, field, length = '%d' % field.type.nmemb return (value, length) -# _c_serialize_helper_fields_fixed_size() def _c_serialize_helper_fields_variable_size(context, self, field, code_lines, temp_vars, @@ -1163,7 +1146,6 @@ def _c_serialize_helper_fields_variable_size(context, self, field, length = "%s(%s)" % (field.type.c_sizeof_name, var_field_name) return (value, length) -# _c_serialize_helper_fields_variable_size def _c_serialize_helper_fields(context, self, code_lines, temp_vars, @@ -1265,7 +1247,6 @@ def _c_serialize_helper_fields(context, self, _c_pre.pop_indent() return count -# _c_serialize_helper_fields() def _c_serialize_helper(context, complex_type, code_lines, temp_vars, @@ -1305,7 +1286,6 @@ def _c_serialize_helper(context, complex_type, count += _c_serialize_helper_insert_padding(context, code_lines, space, False, self.is_switch) return count -# _c_serialize_helper() def _c_serialize(context, self): """ @@ -1339,8 +1319,7 @@ def _c_serialize(context, self): if not field.type.fixed_size() or self.is_switch: variable_size_fields += 1 # determine maxtypelen - for p in params: - maxtypelen = max(maxtypelen, len(p[0]) + len(p[1])) + maxtypelen = max(len(p[0]) + len(p[1]) for p in params) # write to .c/.h indent = ' '*(len(func_name)+2) @@ -1351,7 +1330,7 @@ def _c_serialize(context, self): param_str.append("%s%s%s %s%s /**< */" % (indent, typespec, spacing, pointerspec, field_name)) # insert function name param_str[0] = "%s (%s" % (func_name, param_str[0].strip()) - param_str = list(map(lambda x: "%s," % x, param_str)) + param_str = ["%s," % x for x in param_str] for s in param_str[:-1]: _hc(s) _h("%s);" % param_str[-1].rstrip(',')) @@ -1407,13 +1386,13 @@ def _c_serialize(context, self): if self.is_switch: # switch: call _unpack() _c(' %s _aux;', self.c_type) - _c(' return %s(%s, &_aux);', self.c_unpack_name, reduce(lambda x,y: "%s, %s" % (x, y), param_names)) + _c(' return %s(%s, &_aux);', self.c_unpack_name, ", ".join(param_names)) _c('}') _c_pre.redirect_end() return elif self.c_var_followed_by_fixed_fields: # special case: call _unserialize() - _c(' return %s(%s, NULL);', self.c_unserialize_name, reduce(lambda x,y: "%s, %s" % (x, y), param_names)) + _c(' return %s(%s, NULL);', self.c_unserialize_name, ", ".join(param_names)) _c('}') _c_pre.redirect_end() return @@ -1440,7 +1419,7 @@ def _c_serialize(context, self): if not (self.is_switch or self.c_var_followed_by_fixed_fields): # look if we have to declare an '_aux' variable at all - if len(list(filter(lambda x: x.find('_aux')!=-1, code_lines)))>0: + if any('_aux' in x for x in code_lines): if not self.c_var_followed_by_fixed_fields: _c(' const %s *_aux = (%s *)_buffer;', self.c_type, self.c_type) else: @@ -1514,7 +1493,6 @@ def _c_serialize(context, self): _c('') _c(' return xcb_buffer_len;') _c('}') -# _c_serialize() def _c_iterator_get_end(field, accum): ''' @@ -1672,7 +1650,6 @@ def _c_accessor_get_expr(expr, field_mapping): return c_name elif expr.op == 'sumof': # locate the referenced list object - list_obj = expr.lenfield_type field = None for f in expr.lenfield_parent.fields: if f.field_name == expr.lenfield_name: @@ -1813,14 +1790,13 @@ def _c_accessors_list(self, field): ''' def get_align_pad(field): - prev = field.prev_varsized_field - prev_prev = field.prev_varsized_field.prev_varsized_field - - if (prev.type.is_pad and prev.type.align > 0 and prev_prev is not None): - return (prev_prev, '((-prev.index) & (%d - 1))' % prev.type.align) - else: - return (prev, None) + prev = field.prev_varsized_field + prev_prev = field.prev_varsized_field.prev_varsized_field + if prev.type.is_pad and prev.type.align > 0 and prev_prev is not None: + return (prev_prev, '((-prev.index) & (%d - 1))' % prev.type.align) + else: + return (prev, None) list = field.type c_type = self.c_type @@ -1857,8 +1833,7 @@ def _c_accessors_list(self, field): fields.update(_c_helper_field_mapping(toplevel_switch, [('S', '->', toplevel_switch)], flat=True)) # initialize prefix for everything "below" S - prefix_str = '/* %s */ S' % toplevel_switch.name[-1] - prefix = [(prefix_str, '->', toplevel_switch)] + prefix = [('S', '->', toplevel_switch)] # look for fields in the remaining containers for p in parents[2:] + [self]: @@ -2071,12 +2046,8 @@ def _c_complex(self, force_packed = False): struct_fields = [] maxtypelen = 0 - varfield = None for field in self.fields: - if not field.type.fixed_size() and not self.is_switch and not self.is_union: - varfield = field.c_field_name - continue - if field.wire: + if field.wire and (field.type.fixed_size() or self.is_switch or self.is_union): struct_fields.append(field) for field in struct_fields: @@ -2130,7 +2101,7 @@ def c_union(self, name): _c_complex(self) _c_iterator(self, name) -def _c_request_helper(self, name, cookie_type, void, regular, aux=False, reply_fds=False): +def _c_request_helper(self, name, void, regular, aux=False, reply_fds=False): ''' Declares a request function. ''' @@ -2268,7 +2239,7 @@ def _c_request_helper(self, name, cookie_type, void, regular, aux=False, reply_f _h(' * placed in the event queue.') _h(' */') _c('') - _hc('%s', cookie_type) + _hc('%s', func_cookie) spacing = ' ' * (maxtypelen - len('xcb_connection_t')) comma = ',' if len(param_fields) else ');' @@ -2305,10 +2276,10 @@ def _c_request_helper(self, name, cookie_type, void, regular, aux=False, reply_f _c('{') _c(' static const xcb_protocol_request_t xcb_req = {') - _c(' /* count */ %d,', count) - _c(' /* ext */ %s,', func_ext_global) - _c(' /* opcode */ %s,', self.c_request_name.upper()) - _c(' /* isvoid */ %d', 1 if void else 0) + _c(' .count = %d,', count) + _c(' .ext = %s,', func_ext_global) + _c(' .opcode = %s,', self.c_request_name.upper()) + _c(' .isvoid = %d', 1 if void else 0) _c(' };') _c('') @@ -2328,8 +2299,6 @@ def _c_request_helper(self, name, cookie_type, void, regular, aux=False, reply_f _c(' unsigned int xcb_tmp_len;') _c(' char *xcb_tmp;') _c('') - # simple request call tracing -# _c(' printf("in function %s\\n");' % func_name) # fixed size fields for field in wire_fields: @@ -2351,7 +2320,7 @@ def _c_request_helper(self, name, cookie_type, void, regular, aux=False, reply_f serialize_args = get_serialize_params(context, type_obj, c_field_name, aux_var)[2] - return reduce(lambda x,y: "%s, %s" % (x,y), [a[2] for a in serialize_args]) + return ", ".join(a[2] for a in serialize_args) # calls in order to free dyn. all. memory free_calls = [] @@ -2379,7 +2348,6 @@ def _c_request_helper(self, name, cookie_type, void, regular, aux=False, reply_f else: list_length = _c_accessor_get_expr(field.type.expr, None) - length = '' _c(" xcb_parts[%d].iov_len = 0;" % count) _c(" xcb_tmp = (char *)%s;", field.c_field_name) _c(" for(i=0; i<%s; i++) {" % list_length) @@ -2526,10 +2494,7 @@ def _c_reply(self, name): _c('}') def _c_reply_has_fds(self): - for field in self.fields: - if field.isfd: - return True - return False + return any(field.isfd for field in self.fields) def _c_reply_fds(self, name): ''' @@ -2581,7 +2546,7 @@ def _c_cookie(self, name): _h(' unsigned int sequence; /**< */') _h('} %s;', self.c_cookie_type) -def _man_request(self, name, cookie_type, void, aux): +def _man_request(self, name, void, aux): param_fields = [f for f in self.fields if f.visible] func_name = self.c_request_name if not aux else self.c_aux_name @@ -2627,7 +2592,8 @@ def _man_request(self, name, cookie_type, void, aux): f.write('.SS Request function\n') f.write('.HP\n') base_func_name = self.c_request_name if not aux else self.c_aux_name - f.write('%s \\fB%s\\fP(xcb_connection_t\\ *\\fIconn\\fP, %s\n' % (cookie_type, base_func_name, prototype)) + func_cookie = 'xcb_void_cookie_t' if void else self.c_cookie_type + f.write('%s \\fB%s\\fP(xcb_connection_t\\ *\\fIconn\\fP, %s\n' % (func_cookie, base_func_name, prototype)) create_link('%s_%s' % (base_func_name, ('checked' if void else 'unchecked'))) if not void: f.write('.PP\n') @@ -2674,8 +2640,7 @@ def _man_request(self, name, cookie_type, void, aux): for field in b.type.fields: _c_complex_field(self, field, space) if b.type.has_name: - print >> sys.stderr, 'ERROR: New unhandled documentation case' - pass + print('ERROR: New unhandled documentation case\n', file=sys.stderr) f.write('} \\fB%s\\fP;\n' % self.reply.c_type) f.write('.fi\n') @@ -2744,8 +2709,6 @@ def _man_request(self, name, cookie_type, void, aux): # 'R': parents[0] is always the 'toplevel' container type params.append(('const %s *\\fIreply\\fP' % parents[0].c_type, parents[0])) fields.update(_c_helper_field_mapping(parents[0], [('R', '->', parents[0])], flat=True)) - # auxiliary object for 'R' parameters - R_obj = parents[0] if switch_obj is not None: # now look where the fields are defined that are needed to evaluate @@ -2758,8 +2721,7 @@ def _man_request(self, name, cookie_type, void, aux): fields.update(_c_helper_field_mapping(toplevel_switch, [('S', '->', toplevel_switch)], flat=True)) # initialize prefix for everything "below" S - prefix_str = '/* %s */ S' % toplevel_switch.name[-1] - prefix = [(prefix_str, '->', toplevel_switch)] + prefix = [('S', '->', toplevel_switch)] # look for fields in the remaining containers for p in parents[2:] + [self]: @@ -2769,9 +2731,6 @@ def _man_request(self, name, cookie_type, void, aux): prefix.append((p.name[-1], '.', p)) fields.update(_c_helper_field_mapping(p, prefix, flat=True)) - # auxiliary object for 'S' parameter - S_obj = parents[1] - if list.member.fixed_size(): idx = 1 if switch_obj is not None else 0 f.write('.HP\n') @@ -2930,7 +2889,7 @@ def _man_request(self, name, cookie_type, void, aux): 'handle errors in the event loop instead, use ' '\\fI%s_unchecked\\fP. See \\fBxcb-requests(%s)\\fP for ' 'details.\n') % - (cookie_type, self.c_reply_name, base_func_name, section)) + (self.c_cookie_type, self.c_reply_name, base_func_name, section)) f.write('.SH ERRORS\n') if hasattr(self, "doc") and self.doc: for errtype, errtext in sorted(self.doc.errors.items()): @@ -3012,7 +2971,7 @@ def _man_event(self, name): spacing = ' ' * (maxtypelen - len(field.c_field_type)) f.write('%s %s%s \\fI%s\\fP%s;\n' % (space, field.c_field_type, spacing, field.c_field_name, field.c_subscript)) else: - print >> sys.stderr, 'ERROR: New unhandled documentation case' + print('ERROR: New unhandled documentation case', file=sys.stderr) if not self.is_switch: for field in struct_fields: @@ -3025,7 +2984,7 @@ def _man_event(self, name): for field in b.type.fields: _c_complex_field(self, field, space) if b.type.has_name: - print >> sys.stderr, 'ERROR: New unhandled documentation case' + print('ERROR: New unhandled documentation case', file=sys.stderr) pass f.write('} \\fB%s\\fP;\n' % self.c_type) @@ -3120,11 +3079,11 @@ def c_request(self, name): _c_complex(self.reply) # Request prototypes has_fds = _c_reply_has_fds(self.reply) - _c_request_helper(self, name, self.c_cookie_type, False, True, False, has_fds) - _c_request_helper(self, name, self.c_cookie_type, False, False, False, has_fds) + _c_request_helper(self, name, void=False, regular=True, aux=False, reply_fds=has_fds) + _c_request_helper(self, name, void=False, regular=False, aux=False, reply_fds=has_fds) if self.c_need_aux: - _c_request_helper(self, name, self.c_cookie_type, False, True, True, has_fds) - _c_request_helper(self, name, self.c_cookie_type, False, False, True, has_fds) + _c_request_helper(self, name, void=False, regular=True, aux=True, reply_fs=has_fds) + _c_request_helper(self, name, void=False, regular=False, aux=True, reply_fs=has_fds) # Reply accessors _c_accessors(self.reply, name + ('reply',), name) _c_reply(self, name) @@ -3132,17 +3091,16 @@ def c_request(self, name): _c_reply_fds(self, name) else: # Request prototypes - _c_request_helper(self, name, 'xcb_void_cookie_t', True, False) - _c_request_helper(self, name, 'xcb_void_cookie_t', True, True) + _c_request_helper(self, name, void=True, regular=False) + _c_request_helper(self, name, void=True, regular=True) if self.c_need_aux: - _c_request_helper(self, name, 'xcb_void_cookie_t', True, False, True) - _c_request_helper(self, name, 'xcb_void_cookie_t', True, True, True) + _c_request_helper(self, name, void=True, regular=False, aux=True) + _c_request_helper(self, name, void=True, regular=True, aux=True) _c_accessors(self, name, name) # We generate the manpage afterwards because _c_type_setup has been called. # TODO: what about aux helpers? - cookie_type = self.c_cookie_type if self.reply else 'xcb_void_cookie_t' - _man_request(self, name, cookie_type, not self.reply, False) + _man_request(self, name, void=not self.reply, aux=False) def c_event(self, name): ''' diff --git a/mesalib/autogen.sh b/mesalib/autogen.sh index 626d21334..c8960971d 100644 --- a/mesalib/autogen.sh +++ b/mesalib/autogen.sh @@ -6,8 +6,8 @@ test -z "$srcdir" && srcdir=. ORIGDIR=`pwd` cd "$srcdir" -autoreconf -v --install || exit 1 -cd $ORIGDIR || exit $? +autoreconf --force --verbose --install || exit 1 +cd "$ORIGDIR" || exit $? if test -z "$NOCONFIGURE"; then "$srcdir"/configure "$@" diff --git a/mesalib/common.py b/mesalib/common.py index 1d2d586a8..7a939417e 100644 --- a/mesalib/common.py +++ b/mesalib/common.py @@ -26,28 +26,28 @@ else: target_platform = host_platform _machine_map = { - 'x86': 'x86', - 'i386': 'x86', - 'i486': 'x86', - 'i586': 'x86', - 'i686': 'x86', - 'BePC': 'x86', - 'Intel': 'x86', - 'ppc' : 'ppc', - 'BeBox': 'ppc', - 'BeMac': 'ppc', - 'AMD64': 'x86_64', - 'x86_64': 'x86_64', - 'sparc': 'sparc', - 'sun4u': 'sparc', + 'x86': 'x86', + 'i386': 'x86', + 'i486': 'x86', + 'i586': 'x86', + 'i686': 'x86', + 'BePC': 'x86', + 'Intel': 'x86', + 'ppc': 'ppc', + 'BeBox': 'ppc', + 'BeMac': 'ppc', + 'AMD64': 'x86_64', + 'x86_64': 'x86_64', + 'sparc': 'sparc', + 'sun4u': 'sparc', } # find host_machine value if 'PROCESSOR_ARCHITECTURE' in os.environ: - host_machine = os.environ['PROCESSOR_ARCHITECTURE'] + host_machine = os.environ['PROCESSOR_ARCHITECTURE'] else: - host_machine = _platform.machine() + host_machine = _platform.machine() host_machine = _machine_map.get(host_machine, 'generic') default_machine = host_machine @@ -65,7 +65,8 @@ else: default_llvm = 'no' try: if target_platform != 'windows' and \ - subprocess.call(['llvm-config', '--version'], stdout=subprocess.PIPE) == 0: + subprocess.call(['llvm-config', '--version'], + stdout=subprocess.PIPE) == 0: default_llvm = 'yes' except: pass @@ -75,30 +76,38 @@ else: # Common options def AddOptions(opts): - try: - from SCons.Variables.BoolVariable import BoolVariable as BoolOption - except ImportError: - from SCons.Options.BoolOption import BoolOption - try: - from SCons.Variables.EnumVariable import EnumVariable as EnumOption - except ImportError: - from SCons.Options.EnumOption import EnumOption - opts.Add(EnumOption('build', 'build type', 'debug', - allowed_values=('debug', 'checked', 'profile', 'release'))) - opts.Add(BoolOption('verbose', 'verbose output', 'no')) - opts.Add(EnumOption('machine', 'use machine-specific assembly code', default_machine, - allowed_values=('generic', 'ppc', 'x86', 'x86_64'))) - 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)) - opts.Add(BoolOption('openmp', 'EXPERIMENTAL: compile with openmp (swrast)', 'no')) - opts.Add(BoolOption('debug', 'DEPRECATED: debug build', 'yes')) - opts.Add(BoolOption('profile', 'DEPRECATED: profile build', 'no')) - 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') + try: + from SCons.Variables.BoolVariable import BoolVariable as BoolOption + except ImportError: + from SCons.Options.BoolOption import BoolOption + try: + from SCons.Variables.EnumVariable import EnumVariable as EnumOption + except ImportError: + from SCons.Options.EnumOption import EnumOption + opts.Add(EnumOption('build', 'build type', 'debug', + allowed_values=('debug', 'checked', 'profile', + 'release'))) + opts.Add(BoolOption('verbose', 'verbose output', 'no')) + opts.Add(EnumOption('machine', 'use machine-specific assembly code', + default_machine, + allowed_values=('generic', 'ppc', 'x86', 'x86_64'))) + 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)) + opts.Add(BoolOption('openmp', 'EXPERIMENTAL: compile with openmp (swrast)', + 'no')) + opts.Add(BoolOption('debug', 'DEPRECATED: debug build', 'yes')) + opts.Add(BoolOption('profile', 'DEPRECATED: profile build', 'no')) + 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') diff --git a/mesalib/configure.ac b/mesalib/configure.ac index ad64df012..08378f570 100644 --- a/mesalib/configure.ac +++ b/mesalib/configure.ac @@ -46,6 +46,13 @@ AC_CONFIG_MACRO_DIR([m4]) AC_CANONICAL_SYSTEM AM_INIT_AUTOMAKE([foreign tar-ustar dist-xz]) +dnl We only support native Windows builds (MinGW/MSVC) through SCons. +case "$host_os" in +mingw*) + AC_MSG_ERROR([MinGW build not supported through autoconf/automake, use SCons instead]) + ;; +esac + # 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 @@ -61,7 +68,7 @@ AC_SUBST([OSMESA_VERSION]) dnl Versions for external dependencies LIBDRM_REQUIRED=2.4.38 LIBDRM_RADEON_REQUIRED=2.4.56 -LIBDRM_INTEL_REQUIRED=2.4.52 +LIBDRM_INTEL_REQUIRED=2.4.60 LIBDRM_NVVIEUX_REQUIRED=2.4.33 LIBDRM_NOUVEAU_REQUIRED="2.4.33 libdrm >= 2.4.41" LIBDRM_FREEDRENO_REQUIRED=2.4.57 @@ -79,6 +86,7 @@ XCBDRI2_REQUIRED=1.8 XCBGLX_REQUIRED=1.8.1 XSHMFENCE_REQUIRED=1.1 XVMC_REQUIRED=1.0.6 +PYTHON_MAKO_REQUIRED=0.3.4 dnl Check for progs AC_PROG_CPP @@ -114,7 +122,12 @@ if test "x$INDENT" != "xcat"; then fi fi -AX_CHECK_PYTHON_MAKO_MODULE(0.3.4) +AX_CHECK_PYTHON_MAKO_MODULE($PYTHON_MAKO_REQUIRED) +if test -n "$PYTHON2" -a "x$acv_mako_found" = "xyes"; then + AC_MSG_RESULT(yes) +else + AC_MSG_ERROR([Python mako module v$PYTHON_MAKO_REQUIRED or higher not found]) +fi AC_PROG_INSTALL @@ -189,6 +202,7 @@ AX_GCC_FUNC_ATTRIBUTE([flatten]) AX_GCC_FUNC_ATTRIBUTE([format]) AX_GCC_FUNC_ATTRIBUTE([malloc]) AX_GCC_FUNC_ATTRIBUTE([packed]) +AX_GCC_FUNC_ATTRIBUTE([unused]) AM_CONDITIONAL([GEN_ASM_OFFSETS], test "x$GEN_ASM_OFFSETS" = xyes) @@ -271,8 +285,20 @@ if test "x$GCC" = xyes; then # - non-Linux/Posix OpenGL portions needs to build on MSVC 2013 (which # supports most of C99) # - the rest has no compiler compiler restrictions - MSVC2013_COMPAT_CFLAGS="-Werror=vla -Werror=pointer-arith" - MSVC2013_COMPAT_CXXFLAGS="-Werror=vla -Werror=pointer-arith" + MSVC2013_COMPAT_CFLAGS="-Werror=pointer-arith" + MSVC2013_COMPAT_CXXFLAGS="-Werror=pointer-arith" + + # Enable -Werror=vla if compiler supports it + save_CFLAGS="$CFLAGS" + AC_MSG_CHECKING([whether $CC supports -Werror=vla]) + CFLAGS="$CFLAGS -Werror=vla" + AC_LINK_IFELSE([AC_LANG_PROGRAM()], + [MSVC2013_COMPAT_CFLAGS="$MSVC2013_COMPAT_CFLAGS -Werror=vla"; + MSVC2013_COMPAT_CXXFLAGS="$MSVC2013_COMPAT_CXXFLAGS -Werror=vla"; + AC_MSG_RESULT([yes])], + AC_MSG_RESULT([no])); + CFLAGS="$save_CFLAGS" + MSVC2008_COMPAT_CFLAGS="$MSVC2013_COMPAT_CFLAGS -Werror=declaration-after-statement" MSVC2008_COMPAT_CXXFLAGS="$MSVC2013_COMPAT_CXXFLAGS" fi @@ -632,7 +658,7 @@ AC_CHECK_FUNCS([dladdr]) LIBS="$save_LIBS" case "$host_os" in -darwin*|mingw*) +darwin*) ;; *) AC_CHECK_FUNCS([clock_gettime], [CLOCK_LIB=], @@ -646,13 +672,10 @@ dnl See if posix_memalign is available AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"]) dnl Check for pthreads -case "$host_os" in -mingw*) - ;; -*) - AX_PTHREAD - ;; -esac +AX_PTHREAD +if test "x$ax_pthread_ok" = xno; then + AC_MSG_ERROR([Building mesa on this platform requires pthreads]) +fi dnl AX_PTHREADS leaves PTHREAD_LIBS empty for gcc and sets PTHREAD_CFLAGS dnl to -pthread, which causes problems if we need -lpthread to appear in dnl pkgconfig files. @@ -883,7 +906,7 @@ AM_CONDITIONAL(HAVE_DRI_GLX, test "x$enable_glx" = xyes -a \ case "$host_os" in darwin*) dri_platform='apple' ;; -gnu*|mingw*|cygwin*) +gnu*|cygwin*) dri_platform='none' ;; *) dri_platform='drm' ;; @@ -1759,7 +1782,7 @@ for plat in $egl_platforms; do AC_MSG_ERROR([EGL platform drm requires libdrm >= $LIBDRM_REQUIRED]) ;; - android|fbdev|gdi|null) + android|gdi|null) ;; *) @@ -1788,7 +1811,6 @@ fi AM_CONDITIONAL(HAVE_EGL_PLATFORM_X11, echo "$egl_platforms" | grep -q 'x11') AM_CONDITIONAL(HAVE_EGL_PLATFORM_WAYLAND, echo "$egl_platforms" | grep -q 'wayland') AM_CONDITIONAL(HAVE_EGL_PLATFORM_DRM, echo "$egl_platforms" | grep -q 'drm') -AM_CONDITIONAL(HAVE_EGL_PLATFORM_FBDEV, echo "$egl_platforms" | grep -q 'fbdev') AM_CONDITIONAL(HAVE_EGL_PLATFORM_NULL, echo "$egl_platforms" | grep -q 'null') AM_CONDITIONAL(HAVE_EGL_DRIVER_DRI2, test "x$HAVE_EGL_DRIVER_DRI2" != "x") @@ -2347,7 +2369,6 @@ AC_CONFIG_FILES([Makefile src/gallium/auxiliary/Makefile src/gallium/auxiliary/pipe-loader/Makefile src/gallium/drivers/freedreno/Makefile - src/gallium/drivers/galahad/Makefile src/gallium/drivers/i915/Makefile src/gallium/drivers/ilo/Makefile src/gallium/drivers/llvmpipe/Makefile @@ -2396,10 +2417,8 @@ AC_CONFIG_FILES([Makefile src/gallium/winsys/radeon/drm/Makefile src/gallium/winsys/svga/drm/Makefile src/gallium/winsys/sw/dri/Makefile - src/gallium/winsys/sw/fbdev/Makefile src/gallium/winsys/sw/kms-dri/Makefile src/gallium/winsys/sw/null/Makefile - src/gallium/winsys/sw/wayland/Makefile src/gallium/winsys/sw/wrapper/Makefile src/gallium/winsys/sw/xlib/Makefile src/gallium/winsys/vc4/drm/Makefile diff --git a/mesalib/docs/GL3.txt b/mesalib/docs/GL3.txt index 43bbf854e..93fa60d25 100644 --- a/mesalib/docs/GL3.txt +++ b/mesalib/docs/GL3.txt @@ -21,23 +21,23 @@ Feature Status GL 3.0, GLSL 1.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe glBindFragDataLocation, glGetFragDataLocation DONE - Conditional rendering (GL_NV_conditional_render) DONE (r300, swrast) - 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) + Conditional rendering (GL_NV_conditional_render) DONE () + Map buffer subranges (GL_ARB_map_buffer_range) DONE () + Clamping controls (GL_ARB_color_buffer_float) DONE () + Float textures, renderbuffers (GL_ARB_texture_float) DONE () GL_EXT_packed_float DONE () - GL_EXT_texture_shared_exponent DONE (swrast) + GL_EXT_texture_shared_exponent DONE () Float depth buffers (GL_ARB_depth_buffer_float) DONE () - Framebuffer objects (GL_ARB_framebuffer_object) DONE (r300, swrast) + Framebuffer objects (GL_ARB_framebuffer_object) DONE () GL_ARB_half_float_pixel DONE (all drivers) - GL_ARB_half_float_vertex DONE (r300, swrast) + GL_ARB_half_float_vertex DONE () 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) + Per-buffer blend and masks (GL_EXT_draw_buffers2) DONE () + GL_EXT_texture_compression_rgtc DONE () + GL_ARB_texture_rg DONE () Transform feedback (GL_EXT_transform_feedback) DONE () - Vertex array objects (GL_ARB_vertex_array_object) DONE (all drivers) + Vertex array objects (GL_ARB_vertex_array_object) DONE () sRGB framebuffer format (GL_EXT_framebuffer_sRGB) DONE () glClearBuffer commands DONE glGetStringi command DONE @@ -45,7 +45,7 @@ GL 3.0, GLSL 1.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, soft glVertexAttribI commands DONE Depth format cube textures DONE () GLX_ARB_create_context (GLX 1.4 is required) DONE - Multisample anti-aliasing DONE (llvmpipe (*), softpipe (*), r300) + Multisample anti-aliasing DONE (llvmpipe (*), softpipe (*)) (*) llvmpipe and softpipe have fake Multisample anti-aliasing support @@ -53,28 +53,28 @@ GL 3.0, GLSL 1.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, soft GL 3.1, GLSL 1.40 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe 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) + Instanced drawing (GL_ARB_draw_instanced) DONE () + Buffer copying (GL_ARB_copy_buffer) DONE () + Primitive restart (GL_NV_primitive_restart) DONE () 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) + Rectangular textures (GL_ARB_texture_rectangle) DONE () + Uniform buffer objs (GL_ARB_uniform_buffer_object) DONE () + Signed normalized textures (GL_EXT_texture_snorm) DONE () GL 3.2, GLSL 1.50 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe Core/compatibility profiles 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) + BGRA vertex order (GL_ARB_vertex_array_bgra) DONE () + Base vertex offset(GL_ARB_draw_elements_base_vertex) DONE () + Frag shader coord (GL_ARB_fragment_coord_conventions) DONE () + Provoking vertex (GL_ARB_provoking_vertex) DONE () 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) + Frag depth clamp (GL_ARB_depth_clamp) DONE () + Fence objects (GL_ARB_sync) DONE () GLX_ARB_create_context_profile DONE @@ -82,13 +82,13 @@ GL 3.3, GLSL 3.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, soft GL_ARB_blend_func_extended DONE () GL_ARB_explicit_attrib_location DONE (all drivers that support GLSL) - GL_ARB_occlusion_query2 DONE (r300, swrast) + GL_ARB_occlusion_query2 DONE () 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_texture_swizzle DONE () GL_ARB_timer_query DONE () - GL_ARB_instanced_arrays DONE (r300) + GL_ARB_instanced_arrays DONE () GL_ARB_vertex_type_2_10_10_10_rev DONE () @@ -102,11 +102,11 @@ GL 4.0, GLSL 4.00: - Dynamically uniform UBO array indices DONE (r600) - Implicit signed -> unsigned conversions DONE - Fused multiply-add DONE () - - Packing/bitfield/conversion functions DONE (r600) + - Packing/bitfield/conversion functions DONE (r600, radeonsi) - Enhanced textureGather DONE (r600, radeonsi) - Geometry shader instancing DONE (r600) - Geometry shader multiple streams DONE () - - Enhanced per-sample shading DONE (r600) + - Enhanced per-sample shading DONE (r600, radeonsi) - Interpolation functions DONE (r600) - New overload resolution rules DONE GL_ARB_gpu_shader_fp64 DONE (nvc0, softpipe) @@ -123,7 +123,7 @@ GL 4.0, GLSL 4.00: GL 4.1, GLSL 4.10: - GL_ARB_ES2_compatibility DONE (i965, nv50, nvc0, r300, r600, radeonsi, llvmpipe, softpipe) + GL_ARB_ES2_compatibility DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe) GL_ARB_get_program_binary DONE (0 binary formats) GL_ARB_separate_shader_objects DONE (all drivers) GL_ARB_shader_precision started (Micah) @@ -142,7 +142,8 @@ GL 4.2, GLSL 4.20: 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, llvmpipe, softpipe) + GL_ARB_shading_language_packing DONE (all drivers) + GL_ARB_internalformat_query DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe) GL_ARB_map_buffer_alignment DONE (all drivers) @@ -175,38 +176,39 @@ GL 4.3, GLSL 4.30: GL 4.4, GLSL 4.40: GL_MAX_VERTEX_ATTRIB_STRIDE DONE (all drivers) - GL_ARB_buffer_storage DONE (i965, nv30, nv50, nvc0, r300, r600, radeonsi) + GL_ARB_buffer_storage DONE (i965, nv50, nvc0, r600, radeonsi) GL_ARB_clear_texture DONE (i965) 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, llvmpipe, softpipe) + GL_ARB_texture_mirror_clamp_to_edge DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe) GL_ARB_texture_stencil8 not started GL_ARB_vertex_type_10f_11f_11f_rev DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe) GL 4.5, GLSL 4.50: GL_ARB_ES3_1_compatibility not started - GL_ARB_clip_control DONE (nv50, nvc0, r300, r600, radeonsi, llvmpipe, softpipe) + GL_ARB_clip_control DONE (nv50, nvc0, r600, radeonsi, llvmpipe, softpipe) GL_ARB_conditional_render_inverted DONE (i965, nv50, nvc0, llvmpipe, softpipe) GL_ARB_cull_distance not started GL_ARB_derivative_control DONE (i965, nv50, nvc0, r600) GL_ARB_direct_state_access started - Transform Feedback object started (Martin Peres) - - Buffer object started (Laura Ekstrand) + - Buffer object DONE - Framebuffer object started (Laura Ekstrand) - Renderbuffer object started (Martin Peres) - - Texture object started (Laura Ekstrand) + - Texture object DONE - Vertex array object started (Fredrik Höglund) - Sampler object started (Martin Peres) - Program Pipeline object started (Martin Peres) - Query object started (Martin Peres) GL_ARB_get_texture_sub_image started (Brian Paul) GL_ARB_shader_texture_image_samples not started - GL_ARB_texture_barrier DONE (nv50, nvc0, r300, r600, radeonsi) + GL_ARB_texture_barrier DONE (nv50, nvc0, r600, radeonsi) GL_KHR_context_flush_control DONE (all - but needs GLX/EXT extension to be useful) GL_KHR_robust_buffer_access_behavior not started GL_KHR_robustness 90% done (the ARB variant) + GL_EXT_shader_integer_mix DONE (all drivers that support GLSL) These are the extensions cherry-picked to make GLES 3.1 GLES3.1, GLSL ES 3.1 @@ -219,11 +221,12 @@ GLES3.1, GLSL ES 3.1 GL_ARB_shader_atomic_counters DONE (i965) GL_ARB_shader_image_load_store in progress (curro) GL_ARB_shader_storage_buffer_object not started + GL_ARB_shading_language_packing DONE (all drivers) GL_ARB_separate_shader_objects DONE (all drivers) GL_ARB_stencil_texturing DONE (i965/gen8+, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe) GL_ARB_vertex_attrib_binding DONE (all drivers) GS5 Enhanced textureGather DONE (i965, nvc0, r600, radeonsi) - GS5 Packing/bitfield/conversion functions DONE (i965, nvc0, r600) + GS5 Packing/bitfield/conversion functions DONE (i965, nvc0, r600, radeonsi) GL_EXT_shader_integer_mix DONE (all drivers that support GLSL) diff --git a/mesalib/docs/dispatch.html b/mesalib/docs/dispatch.html index aacd01e0c..c96ec2de3 100644 --- a/mesalib/docs/dispatch.html +++ b/mesalib/docs/dispatch.html @@ -204,9 +204,8 @@ terribly relevant.

few preprocessor defines.

diff --git a/mesalib/docs/egl.html b/mesalib/docs/egl.html index a715a3ad3..d946bb0ae 100644 --- a/mesalib/docs/egl.html +++ b/mesalib/docs/egl.html @@ -88,8 +88,11 @@ types such as EGLNativeDisplayType or EGLNativeWindowType defined for.

The available platforms are x11, drm, -fbdev, and gdi. The gdi platform can -only be built with SCons. Unless for special needs, the build system should +wayland, null, android, +haiku, and gdi. The android platform +can only be built as a system component, part of AOSP, while the +haiku and gdi platforms can only be built with SCons. +Unless for special needs, the build system should select the right platforms automatically.

diff --git a/mesalib/docs/index.html b/mesalib/docs/index.html index 9b72bc1f2..9bc5843ff 100644 --- a/mesalib/docs/index.html +++ b/mesalib/docs/index.html @@ -16,6 +16,31 @@

News

+

March 20, 2015

+

+Mesa 10.4.7 is released. +This is a bug-fix release. +

+ +

March 13, 2015

+

+Mesa 10.5.1 is released. +This is a bug-fix release. +

+ +

March 06, 2015

+

+Mesa 10.5.0 is released. This is a new +development release. See the release notes for more information about +the release. +

+ +

March 06, 2015

+

+Mesa 10.4.6 is released. +This is a bug-fix release. +

+

February 21, 2015

Mesa 10.4.5 is released. diff --git a/mesalib/docs/install.html b/mesalib/docs/install.html index 9dbfce58b..a90c2b27d 100644 --- a/mesalib/docs/install.html +++ b/mesalib/docs/install.html @@ -55,8 +55,8 @@ Versions 2.5.35 and 2.4.1, respectively, (or later) should work.
On Windows with MinGW, install flex and bison with:

mingw-get install msys-flex msys-bison
-For MSVC on Windows, you can find flex/bison programs on the -Mesa ftp site. +For MSVC on Windows, install +Win flex-bison. diff --git a/mesalib/docs/relnotes.html b/mesalib/docs/relnotes.html index d4ba11005..023f7dd8f 100644 --- a/mesalib/docs/relnotes.html +++ b/mesalib/docs/relnotes.html @@ -21,6 +21,10 @@ The release notes summarize what's new or changed in each Mesa release.