From 8092f320c341a6b3a1b428fdd4473859d5db8b79 Mon Sep 17 00:00:00 2001 From: marha Date: Wed, 2 Oct 2013 11:08:18 +0200 Subject: fontconfig mesa pixman xkeyboard-config git update 2 Okt 2013 xkeyboard-config commit e5a53229a9914235921911f05b31d6092e844ea1 pixman commit 7d05a7f4dc825f9c778e534fdabb749199c2e439 fontconfig commit 0203055520206028eecee5d261887cdc91500e15 mesa commit 848c0e72f36d0e1e460193a2d30b2f631529156f --- fontconfig/fc-cache/fc-cache.c | 62 ++- fontconfig/fontconfig/fontconfig.h | 3 + fontconfig/src/fcstr.c | 6 + mesalib/configure.ac | 8 +- mesalib/src/glsl/ast.h | 12 +- mesalib/src/glsl/glsl_parser_extras.cpp | 19 +- mesalib/src/glsl/glsl_parser_extras.h | 2 +- mesalib/src/glsl/ralloc.h | 26 +- mesalib/src/mesa/drivers/dri/swrast/Makefile.am | 3 - mesalib/src/mesa/main/ff_fragment_shader.cpp | 1 - mesalib/src/mesa/main/objectlabel.c | 51 +- mesalib/src/mesa/main/syncobj.c | 14 +- mesalib/src/mesa/main/syncobj.h | 5 +- mesalib/src/mesa/program/ir_to_mesa.cpp | 4 +- mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 4 +- pixman/configure.ac | 29 +- pixman/pixman/pixman-compiler.h | 2 +- pixman/pixman/pixman-vmx.c | 539 +++++++++++++++++---- pixman/test/Makefile.am | 6 +- pixman/test/Makefile.sources | 1 + pixman/test/thread-test.c | 197 ++++++++ xorg-server/xkeyboard-config/CREDITS | 0 xorg-server/xkeyboard-config/Makefile.am | 2 +- xorg-server/xkeyboard-config/symbols/af | 2 +- xorg-server/xkeyboard-config/symbols/al | 2 +- xorg-server/xkeyboard-config/symbols/am | 2 +- xorg-server/xkeyboard-config/symbols/ara | 2 +- xorg-server/xkeyboard-config/symbols/az | 2 +- xorg-server/xkeyboard-config/symbols/be | 2 +- xorg-server/xkeyboard-config/symbols/bg | 2 +- xorg-server/xkeyboard-config/symbols/brai | 2 +- xorg-server/xkeyboard-config/symbols/bt | 2 +- xorg-server/xkeyboard-config/symbols/bw | 2 +- xorg-server/xkeyboard-config/symbols/by | 2 +- xorg-server/xkeyboard-config/symbols/cd | 2 +- xorg-server/xkeyboard-config/symbols/ch | 2 +- xorg-server/xkeyboard-config/symbols/cn | 2 +- xorg-server/xkeyboard-config/symbols/cz | 2 +- xorg-server/xkeyboard-config/symbols/dk | 2 +- xorg-server/xkeyboard-config/symbols/ee | 2 +- xorg-server/xkeyboard-config/symbols/es | 2 +- xorg-server/xkeyboard-config/symbols/et | 2 +- xorg-server/xkeyboard-config/symbols/fi | 2 +- xorg-server/xkeyboard-config/symbols/fo | 2 +- xorg-server/xkeyboard-config/symbols/fr | 2 +- xorg-server/xkeyboard-config/symbols/gb | 2 +- xorg-server/xkeyboard-config/symbols/ge | 2 +- xorg-server/xkeyboard-config/symbols/gh | 2 +- xorg-server/xkeyboard-config/symbols/gn | 2 +- xorg-server/xkeyboard-config/symbols/ie | 2 +- xorg-server/xkeyboard-config/symbols/il | 2 +- xorg-server/xkeyboard-config/symbols/iq | 2 +- xorg-server/xkeyboard-config/symbols/ir | 2 +- xorg-server/xkeyboard-config/symbols/it | 2 +- xorg-server/xkeyboard-config/symbols/jp | 2 +- xorg-server/xkeyboard-config/symbols/ke | 2 +- xorg-server/xkeyboard-config/symbols/keypad | 2 +- xorg-server/xkeyboard-config/symbols/kg | 2 +- xorg-server/xkeyboard-config/symbols/kh | 2 +- xorg-server/xkeyboard-config/symbols/kz | 2 +- xorg-server/xkeyboard-config/symbols/la | 2 +- xorg-server/xkeyboard-config/symbols/latam | 2 +- xorg-server/xkeyboard-config/symbols/lk | 2 +- xorg-server/xkeyboard-config/symbols/lt | 2 +- xorg-server/xkeyboard-config/symbols/lv | 2 +- xorg-server/xkeyboard-config/symbols/ma | 2 +- xorg-server/xkeyboard-config/symbols/mao | 2 +- xorg-server/xkeyboard-config/symbols/md | 2 +- xorg-server/xkeyboard-config/symbols/mk | 2 +- xorg-server/xkeyboard-config/symbols/ml | 2 +- xorg-server/xkeyboard-config/symbols/mm | 2 +- xorg-server/xkeyboard-config/symbols/mn | 2 +- xorg-server/xkeyboard-config/symbols/mt | 2 +- xorg-server/xkeyboard-config/symbols/mv | 2 +- xorg-server/xkeyboard-config/symbols/ng | 2 +- xorg-server/xkeyboard-config/symbols/no | 2 +- xorg-server/xkeyboard-config/symbols/np | 2 +- xorg-server/xkeyboard-config/symbols/pc | 2 +- xorg-server/xkeyboard-config/symbols/ph | 2 +- xorg-server/xkeyboard-config/symbols/pk | 2 +- xorg-server/xkeyboard-config/symbols/pl | 2 +- xorg-server/xkeyboard-config/symbols/pt | 2 +- xorg-server/xkeyboard-config/symbols/ro | 2 +- xorg-server/xkeyboard-config/symbols/ru | 2 +- xorg-server/xkeyboard-config/symbols/se | 2 +- xorg-server/xkeyboard-config/symbols/sk | 2 +- xorg-server/xkeyboard-config/symbols/sn | 2 +- xorg-server/xkeyboard-config/symbols/sy | 2 +- xorg-server/xkeyboard-config/symbols/terminate | 2 +- xorg-server/xkeyboard-config/symbols/th | 2 +- xorg-server/xkeyboard-config/symbols/tj | 2 +- xorg-server/xkeyboard-config/symbols/tw | 2 +- xorg-server/xkeyboard-config/symbols/tz | 2 +- xorg-server/xkeyboard-config/symbols/ua | 2 +- xorg-server/xkeyboard-config/symbols/us | 2 +- xorg-server/xkeyboard-config/symbols/uz | 2 +- xorg-server/xkeyboard-config/symbols/vn | 2 +- xorg-server/xkeyboard-config/symbols/za | 2 +- 98 files changed, 897 insertions(+), 249 deletions(-) create mode 100644 pixman/test/thread-test.c delete mode 100644 xorg-server/xkeyboard-config/CREDITS diff --git a/fontconfig/fc-cache/fc-cache.c b/fontconfig/fc-cache/fc-cache.c index aeb0af29b..af7ba6dd6 100644 --- a/fontconfig/fc-cache/fc-cache.c +++ b/fontconfig/fc-cache/fc-cache.c @@ -118,7 +118,7 @@ usage (char *program, int error) static FcStrSet *processed_dirs; static int -scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force, FcBool verbose, int *changed) +scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force, FcBool verbose, FcBool recursive, int *changed) { int ret = 0; const FcChar8 *dir; @@ -141,7 +141,7 @@ scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force, fflush (stdout); } - if (FcStrSetMember (processed_dirs, dir)) + if (recursive && FcStrSetMember (processed_dirs, dir)) { if (verbose) printf ("skipping, looped directory detected\n"); @@ -213,32 +213,37 @@ scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force, ret++; } } - - subdirs = FcStrSetCreate (); - if (!subdirs) + + if (recursive) { - fprintf (stderr, "%s: Can't create subdir set\n", dir); - ret++; - FcDirCacheUnload (cache); - continue; - } - for (i = 0; i < FcCacheNumSubdir (cache); i++) - FcStrSetAdd (subdirs, FcCacheSubdir (cache, i)); + subdirs = FcStrSetCreate (); + if (!subdirs) + { + fprintf (stderr, "%s: Can't create subdir set\n", dir); + ret++; + FcDirCacheUnload (cache); + continue; + } + for (i = 0; i < FcCacheNumSubdir (cache); i++) + FcStrSetAdd (subdirs, FcCacheSubdir (cache, i)); - FcDirCacheUnload (cache); + FcDirCacheUnload (cache); - sublist = FcStrListCreate (subdirs); - FcStrSetDestroy (subdirs); - if (!sublist) - { - fprintf (stderr, "%s: Can't create subdir list\n", dir); - ret++; - continue; + sublist = FcStrListCreate (subdirs); + FcStrSetDestroy (subdirs); + if (!sublist) + { + fprintf (stderr, "%s: Can't create subdir list\n", dir); + ret++; + continue; + } + FcStrSetAdd (processed_dirs, dir); + ret += scanDirs (sublist, config, force, really_force, verbose, recursive, changed); + FcStrListDone (sublist); } - FcStrSetAdd (processed_dirs, dir); - ret += scanDirs (sublist, config, force, really_force, verbose, changed); + else + FcDirCacheUnload (cache); } - FcStrListDone (list); return ret; } @@ -366,7 +371,11 @@ main (int argc, char **argv) } changed = 0; - ret = scanDirs (list, config, force, really_force, verbose, &changed); + ret = scanDirs (list, config, force, really_force, verbose, FcTrue, &changed); + /* Update the directory cache again to avoid the race condition as much as possible */ + FcStrListFirst (list); + ret += scanDirs (list, config, FcTrue, really_force, verbose, FcFalse, &changed); + FcStrListDone (list); /* * Try to create CACHEDIR.TAG anyway. @@ -379,6 +388,8 @@ main (int argc, char **argv) cleanCacheDirectories (config, verbose); + FcConfigDestroy (config); + FcFini (); /* * Now we need to sleep a second (or two, to be extra sure), to make * sure that timestamps for changes after this run of fc-cache are later @@ -386,8 +397,7 @@ main (int argc, char **argv) * sleep(3) can't be interrupted by a signal here -- this isn't in the * library, and there aren't any signals flying around here. */ - FcConfigDestroy (config); - FcFini (); + /* the resolution of mtime on FAT is 2 seconds */ if (changed) sleep (2); if (verbose) diff --git a/fontconfig/fontconfig/fontconfig.h b/fontconfig/fontconfig/fontconfig.h index 58912f572..e58857972 100644 --- a/fontconfig/fontconfig/fontconfig.h +++ b/fontconfig/fontconfig/fontconfig.h @@ -974,6 +974,9 @@ FcStrSetDestroy (FcStrSet *set); FcPublic FcStrList * FcStrListCreate (FcStrSet *set); +FcPublic void +FcStrListFirst (FcStrList *list); + FcPublic FcChar8 * FcStrListNext (FcStrList *list); diff --git a/fontconfig/src/fcstr.c b/fontconfig/src/fcstr.c index 3a32031a2..570717243 100644 --- a/fontconfig/src/fcstr.c +++ b/fontconfig/src/fcstr.c @@ -1374,6 +1374,12 @@ FcStrListCreate (FcStrSet *set) return list; } +void +FcStrListFirst (FcStrList *list) +{ + list->n = 0; +} + FcChar8 * FcStrListNext (FcStrList *list) { diff --git a/mesalib/configure.ac b/mesalib/configure.ac index 1f0a646a6..e7c822338 100644 --- a/mesalib/configure.ac +++ b/mesalib/configure.ac @@ -1781,7 +1781,6 @@ if test "x$with_gallium_drivers" != x; then GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600" if test "x$enable_r600_llvm" = xyes -o "x$enable_opencl" = xyes; then radeon_llvm_check - R600_NEED_RADEON_GALLIUM=yes; LLVM_COMPONENTS="${LLVM_COMPONENTS} bitreader asmparser" fi if test "x$enable_r600_llvm" = xyes; then @@ -1824,7 +1823,6 @@ if test "x$with_gallium_drivers" != x; then if test "x$enable_dri" = xyes; then GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast" - HAVE_COMMON_DRI=yes fi if test "x$enable_vdpau" = xyes; then GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe" @@ -1938,7 +1936,6 @@ AM_CONDITIONAL(NEED_WINSYS_WRAPPER, test "x$HAVE_GALLIUM_I915" = xyes -o \ "x$HAVE_GALLIUM_SVGA" = xyes) AM_CONDITIONAL(NEED_WINSYS_XLIB, test "x$NEED_WINSYS_XLIB" = xyes) AM_CONDITIONAL(NEED_RADEON_LLVM, test x$NEED_RADEON_LLVM = xyes) -AM_CONDITIONAL(R600_NEED_RADEON_GALLIUM, test x$R600_NEED_RADEON_GALLIUM = xyes) AM_CONDITIONAL(USE_R600_LLVM_COMPILER, test x$USE_R600_LLVM_COMPILER = xyes) AM_CONDITIONAL(HAVE_LOADER_GALLIUM, test x$enable_gallium_loader = xyes) AM_CONDITIONAL(HAVE_DRM_LOADER_GALLIUM, test x$enable_gallium_drm_loader = xyes) @@ -2006,9 +2003,12 @@ AC_CONFIG_FILES([Makefile src/gallium/drivers/freedreno/Makefile src/gallium/drivers/freedreno/a2xx/Makefile src/gallium/drivers/freedreno/a3xx/Makefile + src/gallium/drivers/galahad/Makefile src/gallium/drivers/i915/Makefile + src/gallium/drivers/identity/Makefile src/gallium/drivers/ilo/Makefile src/gallium/drivers/llvmpipe/Makefile + src/gallium/drivers/noop/Makefile src/gallium/drivers/nouveau/Makefile src/gallium/drivers/r300/Makefile src/gallium/drivers/r600/Makefile @@ -2025,7 +2025,7 @@ AC_CONFIG_FILES([Makefile src/gallium/state_trackers/dri/sw/Makefile src/gallium/state_trackers/egl/Makefile src/gallium/state_trackers/gbm/Makefile - src/gallium/state_trackers/glx/Makefile + src/gallium/state_trackers/glx/xlib/Makefile src/gallium/state_trackers/osmesa/Makefile src/gallium/state_trackers/vdpau/Makefile src/gallium/state_trackers/vega/Makefile diff --git a/mesalib/src/glsl/ast.h b/mesalib/src/glsl/ast.h index c3361a106..97905c6a6 100644 --- a/mesalib/src/glsl/ast.h +++ b/mesalib/src/glsl/ast.h @@ -49,7 +49,7 @@ struct YYLTYPE; */ class ast_node { public: - DECLARE_RZALLOC_CXX_OPERATORS(ast_node); + DECLARE_RALLOC_CXX_OPERATORS(ast_node); /** * Print an AST node in something approximating the original GLSL code @@ -346,7 +346,7 @@ enum { }; struct ast_type_qualifier { - DECLARE_RZALLOC_CXX_OPERATORS(ast_type_qualifier); + DECLARE_RALLOC_CXX_OPERATORS(ast_type_qualifier); union { struct { @@ -576,6 +576,10 @@ public: virtual void print(void) const; bool has_qualifiers() const; + ast_fully_specified_type() : qualifier(), specifier(NULL) + { + } + const struct glsl_type *glsl_type(const char **name, struct _mesa_glsl_parse_state *state) const; @@ -859,6 +863,10 @@ public: class ast_function_definition : public ast_node { public: + ast_function_definition() : prototype(NULL), body(NULL) + { + } + virtual void print(void) const; virtual ir_rvalue *hir(exec_list *instructions, diff --git a/mesalib/src/glsl/glsl_parser_extras.cpp b/mesalib/src/glsl/glsl_parser_extras.cpp index e9922fc14..4f2f2893a 100644 --- a/mesalib/src/glsl/glsl_parser_extras.cpp +++ b/mesalib/src/glsl/glsl_parser_extras.cpp @@ -55,7 +55,7 @@ static unsigned known_desktop_glsl_versions[] = _mesa_glsl_parse_state::_mesa_glsl_parse_state(struct gl_context *_ctx, GLenum target, void *mem_ctx) - : ctx(_ctx) + : ctx(_ctx), switch_state() { switch (target) { case GL_VERTEX_SHADER: this->target = vertex_shader; break; @@ -66,10 +66,14 @@ _mesa_glsl_parse_state::_mesa_glsl_parse_state(struct gl_context *_ctx, this->scanner = NULL; this->translation_unit.make_empty(); this->symbols = new(mem_ctx) glsl_symbol_table; + + this->num_uniform_blocks = 0; + this->uniform_block_array_size = 0; + this->uniform_blocks = NULL; + this->info_log = ralloc_strdup(mem_ctx, ""); this->error = false; this->loop_nesting_ast = NULL; - this->switch_state.switch_nesting_ast = NULL; this->struct_specifier_depth = 0; this->num_builtins_to_link = 0; @@ -105,6 +109,13 @@ _mesa_glsl_parse_state::_mesa_glsl_parse_state(struct gl_context *_ctx, this->Const.MaxDrawBuffers = ctx->Const.MaxDrawBuffers; + this->current_function = NULL; + this->toplevel_ir = NULL; + this->found_return = false; + this->all_invariant = false; + this->user_structures = NULL; + this->num_user_structures = 0; + /* Populate the list of supported GLSL versions */ /* FINISHME: Once the OpenGL 3.0 'forward compatible' context or * the OpenGL 3.2 Core context is supported, this logic will need @@ -163,6 +174,7 @@ _mesa_glsl_parse_state::_mesa_glsl_parse_state(struct gl_context *_ctx, this->gs_input_prim_type_specified = false; this->gs_input_prim_type = GL_POINTS; + this->gs_input_size = 0; this->out_qualifier = new(this) ast_type_qualifier(); } @@ -1038,7 +1050,8 @@ ast_expression::print(void) const ast_expression::ast_expression(int oper, ast_expression *ex0, ast_expression *ex1, - ast_expression *ex2) + ast_expression *ex2) : + primary_expression() { this->oper = ast_operators(oper); this->subexpressions[0] = ex0; diff --git a/mesalib/src/glsl/glsl_parser_extras.h b/mesalib/src/glsl/glsl_parser_extras.h index cef4436f6..d557f8ba6 100644 --- a/mesalib/src/glsl/glsl_parser_extras.h +++ b/mesalib/src/glsl/glsl_parser_extras.h @@ -73,7 +73,7 @@ struct _mesa_glsl_parse_state { _mesa_glsl_parse_state(struct gl_context *_ctx, GLenum target, void *mem_ctx); - DECLARE_RZALLOC_CXX_OPERATORS(_mesa_glsl_parse_state); + DECLARE_RALLOC_CXX_OPERATORS(_mesa_glsl_parse_state); /** * Generate a string representing the GLSL version currently being compiled diff --git a/mesalib/src/glsl/ralloc.h b/mesalib/src/glsl/ralloc.h index 799d3a9b8..31682d515 100644 --- a/mesalib/src/glsl/ralloc.h +++ b/mesalib/src/glsl/ralloc.h @@ -404,10 +404,20 @@ bool ralloc_vasprintf_append(char **str, const char *fmt, va_list args); } /* end of extern "C" */ #endif -#define _RALLOC_OPS(ALLOC, TYPE) \ +/** + * Declare C++ new and delete operators which use ralloc. + * + * Placing this macro in the body of a class makes it possible to do: + * + * TYPE *var = new(mem_ctx) TYPE(...); + * delete var; + * + * which is more idiomatic in C++ than calling ralloc. + */ +#define DECLARE_RALLOC_CXX_OPERATORS(TYPE) \ static void* operator new(size_t size, void *mem_ctx) \ { \ - void *p = ALLOC(mem_ctx, size); \ + void *p = ralloc_size(mem_ctx, size); \ assert(p != NULL); \ return p; \ } \ @@ -417,17 +427,5 @@ bool ralloc_vasprintf_append(char **str, const char *fmt, va_list args); ralloc_free(p); \ } -/** - * Declare C++ new and delete operators which use ralloc. - * - * Placing one of these macros in the body of a class makes it possible to do: - * - * TYPE *var = new(mem_ctx) TYPE(...); - * delete var; - * - * which is more idiomatic in C++ than calling ralloc or rzalloc. - */ -#define DECLARE_RALLOC_CXX_OPERATORS(TYPE) _RALLOC_OPS(ralloc_size, TYPE) -#define DECLARE_RZALLOC_CXX_OPERATORS(TYPE) _RALLOC_OPS(rzalloc_size, TYPE) #endif diff --git a/mesalib/src/mesa/drivers/dri/swrast/Makefile.am b/mesalib/src/mesa/drivers/dri/swrast/Makefile.am index fb9b8a050..9652583f2 100644 --- a/mesalib/src/mesa/drivers/dri/swrast/Makefile.am +++ b/mesalib/src/mesa/drivers/dri/swrast/Makefile.am @@ -34,10 +34,7 @@ AM_CFLAGS = \ $(VISIBILITY_CFLAGS) dridir = $(DRI_DRIVER_INSTALL_DIR) - -if HAVE_SWRAST_DRI dri_LTLIBRARIES = swrast_dri.la -endif swrast_dri_la_SOURCES = \ $(SWRAST_C_FILES) diff --git a/mesalib/src/mesa/main/ff_fragment_shader.cpp b/mesalib/src/mesa/main/ff_fragment_shader.cpp index 86317efcd..01edd3ff8 100644 --- a/mesalib/src/mesa/main/ff_fragment_shader.cpp +++ b/mesalib/src/mesa/main/ff_fragment_shader.cpp @@ -32,7 +32,6 @@ extern "C" { #include "imports.h" #include "mtypes.h" #include "main/context.h" -#include "main/uniforms.h" #include "main/macros.h" #include "main/samplerobj.h" #include "program/program.h" diff --git a/mesalib/src/mesa/main/objectlabel.c b/mesalib/src/mesa/main/objectlabel.c index 90d9e09f5..e75fe3be2 100644 --- a/mesalib/src/mesa/main/objectlabel.c +++ b/mesalib/src/mesa/main/objectlabel.c @@ -86,21 +86,38 @@ set_label(struct gl_context *ctx, char **labelPtr, const char *label, /** * Helper for _mesa_GetObjectLabel() and _mesa_GetObjectPtrLabel(). + * \param src the src label (may be null) + * \param dst pointer to dest buffer (may be null) + * \param length returns length of label (may be null) + * \param bufsize size of dst buffer */ static void -copy_label(char **labelPtr, char *label, int *length, int bufSize) +copy_label(const GLchar *src, GLchar *dst, GLsizei *length, GLsizei bufSize) { int labelLen = 0; - if (*labelPtr) - labelLen = strlen(*labelPtr); + /* From http://www.opengl.org/registry/specs/KHR/debug.txt: + * "If is NULL, no length is returned. The maximum number of + * characters that may be written into