aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2013-10-02 11:13:08 +0200
committermarha <marha@users.sourceforge.net>2013-10-02 11:13:08 +0200
commitc3594c6c050a987fb891a1c7cf0c83102fbbec46 (patch)
tree33b215c07359fff941f32fc89a8cf3e968d334a9
parent1881d1a5c46cc9efb394f84b69f58c000ee1118b (diff)
parent8092f320c341a6b3a1b428fdd4473859d5db8b79 (diff)
downloadvcxsrv-c3594c6c050a987fb891a1c7cf0c83102fbbec46.tar.gz
vcxsrv-c3594c6c050a987fb891a1c7cf0c83102fbbec46.tar.bz2
vcxsrv-c3594c6c050a987fb891a1c7cf0c83102fbbec46.zip
Merge remote-tracking branch 'origin/released'
* origin/released: fontconfig mesa pixman xkeyboard-config git update 2 Okt 2013 Conflicts: mesalib/src/glsl/ast.h mesalib/src/glsl/glsl_parser_extras.h
-rw-r--r--fontconfig/fc-cache/fc-cache.c62
-rw-r--r--fontconfig/fontconfig/fontconfig.h3
-rw-r--r--fontconfig/src/fcstr.c6
-rw-r--r--mesalib/configure.ac8
-rwxr-xr-xmesalib/src/glsl/ast.h12
-rw-r--r--mesalib/src/glsl/glsl_parser_extras.cpp19
-rwxr-xr-xmesalib/src/glsl/glsl_parser_extras.h2
-rw-r--r--mesalib/src/glsl/ralloc.h26
-rw-r--r--mesalib/src/mesa/drivers/dri/swrast/Makefile.am3
-rw-r--r--mesalib/src/mesa/main/ff_fragment_shader.cpp1
-rw-r--r--mesalib/src/mesa/main/objectlabel.c51
-rw-r--r--mesalib/src/mesa/main/syncobj.c14
-rw-r--r--mesalib/src/mesa/main/syncobj.h5
-rw-r--r--mesalib/src/mesa/program/ir_to_mesa.cpp4
-rw-r--r--mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp4
-rw-r--r--pixman/configure.ac29
-rw-r--r--pixman/pixman/pixman-compiler.h2
-rw-r--r--pixman/pixman/pixman-vmx.c539
-rw-r--r--pixman/test/Makefile.am6
-rw-r--r--pixman/test/Makefile.sources1
-rw-r--r--pixman/test/thread-test.c197
-rw-r--r--xorg-server/xkeyboard-config/CREDITS0
-rw-r--r--xorg-server/xkeyboard-config/Makefile.am2
-rw-r--r--xorg-server/xkeyboard-config/symbols/af2
-rw-r--r--xorg-server/xkeyboard-config/symbols/al2
-rw-r--r--xorg-server/xkeyboard-config/symbols/am2
-rw-r--r--xorg-server/xkeyboard-config/symbols/ara2
-rw-r--r--xorg-server/xkeyboard-config/symbols/az2
-rw-r--r--xorg-server/xkeyboard-config/symbols/be2
-rw-r--r--xorg-server/xkeyboard-config/symbols/bg2
-rw-r--r--xorg-server/xkeyboard-config/symbols/brai2
-rw-r--r--xorg-server/xkeyboard-config/symbols/bt2
-rw-r--r--xorg-server/xkeyboard-config/symbols/bw2
-rw-r--r--xorg-server/xkeyboard-config/symbols/by2
-rw-r--r--xorg-server/xkeyboard-config/symbols/cd.in2
-rw-r--r--xorg-server/xkeyboard-config/symbols/ch2
-rw-r--r--xorg-server/xkeyboard-config/symbols/cn2
-rw-r--r--xorg-server/xkeyboard-config/symbols/cz2
-rw-r--r--xorg-server/xkeyboard-config/symbols/dk2
-rw-r--r--xorg-server/xkeyboard-config/symbols/ee2
-rw-r--r--xorg-server/xkeyboard-config/symbols/es2
-rw-r--r--xorg-server/xkeyboard-config/symbols/et2
-rw-r--r--xorg-server/xkeyboard-config/symbols/fi2
-rw-r--r--xorg-server/xkeyboard-config/symbols/fo2
-rw-r--r--xorg-server/xkeyboard-config/symbols/fr2
-rw-r--r--xorg-server/xkeyboard-config/symbols/gb2
-rw-r--r--xorg-server/xkeyboard-config/symbols/ge2
-rw-r--r--xorg-server/xkeyboard-config/symbols/gh2
-rw-r--r--xorg-server/xkeyboard-config/symbols/gn2
-rw-r--r--xorg-server/xkeyboard-config/symbols/ie2
-rw-r--r--xorg-server/xkeyboard-config/symbols/il2
-rw-r--r--xorg-server/xkeyboard-config/symbols/iq2
-rw-r--r--xorg-server/xkeyboard-config/symbols/ir2
-rw-r--r--xorg-server/xkeyboard-config/symbols/it2
-rw-r--r--xorg-server/xkeyboard-config/symbols/jp2
-rw-r--r--xorg-server/xkeyboard-config/symbols/ke2
-rw-r--r--xorg-server/xkeyboard-config/symbols/keypad2
-rw-r--r--xorg-server/xkeyboard-config/symbols/kg2
-rw-r--r--xorg-server/xkeyboard-config/symbols/kh2
-rw-r--r--xorg-server/xkeyboard-config/symbols/kz2
-rw-r--r--xorg-server/xkeyboard-config/symbols/la2
-rw-r--r--xorg-server/xkeyboard-config/symbols/latam2
-rw-r--r--xorg-server/xkeyboard-config/symbols/lk2
-rw-r--r--xorg-server/xkeyboard-config/symbols/lt2
-rw-r--r--xorg-server/xkeyboard-config/symbols/lv2
-rw-r--r--xorg-server/xkeyboard-config/symbols/ma2
-rw-r--r--xorg-server/xkeyboard-config/symbols/mao2
-rw-r--r--xorg-server/xkeyboard-config/symbols/md2
-rw-r--r--xorg-server/xkeyboard-config/symbols/mk2
-rw-r--r--xorg-server/xkeyboard-config/symbols/ml2
-rw-r--r--xorg-server/xkeyboard-config/symbols/mm2
-rw-r--r--xorg-server/xkeyboard-config/symbols/mn2
-rw-r--r--xorg-server/xkeyboard-config/symbols/mt2
-rw-r--r--xorg-server/xkeyboard-config/symbols/mv2
-rw-r--r--xorg-server/xkeyboard-config/symbols/ng2
-rw-r--r--xorg-server/xkeyboard-config/symbols/no2
-rw-r--r--xorg-server/xkeyboard-config/symbols/np2
-rw-r--r--xorg-server/xkeyboard-config/symbols/pc2
-rw-r--r--xorg-server/xkeyboard-config/symbols/ph2
-rw-r--r--xorg-server/xkeyboard-config/symbols/pk2
-rw-r--r--xorg-server/xkeyboard-config/symbols/pl2
-rw-r--r--xorg-server/xkeyboard-config/symbols/pt2
-rw-r--r--xorg-server/xkeyboard-config/symbols/ro2
-rw-r--r--xorg-server/xkeyboard-config/symbols/ru2
-rw-r--r--xorg-server/xkeyboard-config/symbols/se2
-rw-r--r--xorg-server/xkeyboard-config/symbols/sk2
-rw-r--r--xorg-server/xkeyboard-config/symbols/sn2
-rw-r--r--xorg-server/xkeyboard-config/symbols/sy2
-rw-r--r--xorg-server/xkeyboard-config/symbols/terminate2
-rw-r--r--xorg-server/xkeyboard-config/symbols/th2
-rw-r--r--xorg-server/xkeyboard-config/symbols/tj2
-rw-r--r--xorg-server/xkeyboard-config/symbols/tw2
-rw-r--r--xorg-server/xkeyboard-config/symbols/tz2
-rw-r--r--xorg-server/xkeyboard-config/symbols/ua2
-rw-r--r--xorg-server/xkeyboard-config/symbols/us2
-rw-r--r--xorg-server/xkeyboard-config/symbols/uz2
-rw-r--r--xorg-server/xkeyboard-config/symbols/vn2
-rw-r--r--xorg-server/xkeyboard-config/symbols/za2
98 files changed, 897 insertions, 249 deletions
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 242ee4883..2307a7878 100755
--- 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);
static void operator delete(void *table, void *ctx)
{
ralloc_free(table);
@@ -350,7 +350,7 @@ enum {
};
struct ast_type_qualifier {
- DECLARE_RZALLOC_CXX_OPERATORS(ast_type_qualifier);
+ DECLARE_RALLOC_CXX_OPERATORS(ast_type_qualifier);
union {
struct {
@@ -580,6 +580,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;
@@ -863,6 +867,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 3a228fde7..4833436a3 100755
--- 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);
static void operator delete(void *mem, void *ctx)
{
ralloc_free(mem);
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 <length> is NULL, no length is returned. The maximum number of
+ * characters that may be written into <label>, including the null
+ * terminator, is specified by <bufSize>. If no debug label was specified
+ * for the object then <label> will contain a null-terminated empty string,
+ * and zero will be returned in <length>. If <label> is NULL and <length>
+ * is non-NULL then no string will be returned and the length of the label
+ * will be returned in <length>."
+ */
- if (label) {
- if (bufSize <= labelLen)
- labelLen = bufSize-1;
+ if (src)
+ labelLen = strlen(src);
+
+ if (dst) {
+ if (src) {
+ if (bufSize <= labelLen)
+ labelLen = bufSize - 1;
- memcpy(label, *labelPtr, labelLen);
- label[labelLen] = '\0';
+ memcpy(dst, src, labelLen);
+ }
+
+ dst[labelLen] = '\0';
}
if (length)
@@ -207,7 +224,7 @@ get_label_pointer(struct gl_context *ctx, GLenum identifier, GLuint name,
}
if (NULL == labelPtr) {
- _mesa_error(ctx, GL_INVALID_VALUE, "glObjectLabel(name = %u)", name);
+ _mesa_error(ctx, GL_INVALID_VALUE, "%s(name = %u)", caller, name);
}
return labelPtr;
@@ -239,11 +256,17 @@ _mesa_GetObjectLabel(GLenum identifier, GLuint name, GLsizei bufSize,
GET_CURRENT_CONTEXT(ctx);
char **labelPtr;
+ if (bufSize < 0) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glGetObjectLabel(bufSize = %d)",
+ bufSize);
+ return;
+ }
+
labelPtr = get_label_pointer(ctx, identifier, name, "glGetObjectLabel");
if (!labelPtr)
return;
- copy_label(labelPtr, label, length, bufSize);
+ copy_label(*labelPtr, label, length, bufSize);
}
void GLAPIENTRY
@@ -271,6 +294,12 @@ _mesa_GetObjectPtrLabel(const void *ptr, GLsizei bufSize, GLsizei *length,
char **labelPtr;
struct gl_sync_object *const syncObj = (struct gl_sync_object *) ptr;
+ if (bufSize < 0) {
+ _mesa_error(ctx, GL_INVALID_VALUE, "glGetObjectPtrLabel(bufSize = %d)",
+ bufSize);
+ return;
+ }
+
if (!_mesa_validate_sync(ctx, syncObj)) {
_mesa_error(ctx, GL_INVALID_VALUE, "glGetObjectPtrLabel (not a valid sync object)");
return;
@@ -278,5 +307,5 @@ _mesa_GetObjectPtrLabel(const void *ptr, GLsizei bufSize, GLsizei *length,
labelPtr = &syncObj->Label;
- copy_label(labelPtr, label, length, bufSize);
+ copy_label(*labelPtr, label, length, bufSize);
}
diff --git a/mesalib/src/mesa/main/syncobj.c b/mesalib/src/mesa/main/syncobj.c
index 3157491bf..ae49db2e4 100644
--- a/mesalib/src/mesa/main/syncobj.c
+++ b/mesalib/src/mesa/main/syncobj.c
@@ -161,8 +161,16 @@ _mesa_free_sync_data(struct gl_context *ctx)
}
-int
-_mesa_validate_sync(struct gl_context *ctx, struct gl_sync_object *syncObj)
+/**
+ * Check if the given sync object is:
+ * - non-null
+ * - not in sync objects hash table
+ * - type is GL_SYNC_FENCE
+ * - not marked as deleted
+ */
+bool
+_mesa_validate_sync(struct gl_context *ctx,
+ const struct gl_sync_object *syncObj)
{
return (syncObj != NULL)
&& _mesa_set_search(ctx->Shared->SyncObjects,
@@ -410,7 +418,7 @@ _mesa_GetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length,
return;
}
- if (size > 0) {
+ if (size > 0 && bufSize > 0) {
const GLsizei copy_count = MIN2(size, bufSize);
memcpy(values, v, sizeof(GLint) * copy_count);
diff --git a/mesalib/src/mesa/main/syncobj.h b/mesalib/src/mesa/main/syncobj.h
index a6563b09d..1dbb7b14a 100644
--- a/mesalib/src/mesa/main/syncobj.h
+++ b/mesalib/src/mesa/main/syncobj.h
@@ -53,8 +53,9 @@ _mesa_ref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj);
extern void GLAPIENTRY
_mesa_unref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj);
-extern int
-_mesa_validate_sync(struct gl_context *ctx, struct gl_sync_object *syncObj);
+extern bool
+_mesa_validate_sync(struct gl_context *ctx,
+ const struct gl_sync_object *syncObj);
extern GLboolean GLAPIENTRY
_mesa_IsSync(GLsync sync);
diff --git a/mesalib/src/mesa/program/ir_to_mesa.cpp b/mesalib/src/mesa/program/ir_to_mesa.cpp
index 8cd42dfd2..b08107b1c 100644
--- a/mesalib/src/mesa/program/ir_to_mesa.cpp
+++ b/mesalib/src/mesa/program/ir_to_mesa.cpp
@@ -44,11 +44,11 @@
#include "main/mtypes.h"
#include "main/shaderobj.h"
+#include "main/uniforms.h"
#include "program/hash_table.h"
extern "C" {
#include "main/shaderapi.h"
-#include "main/uniforms.h"
#include "program/prog_instruction.h"
#include "program/prog_optimize.h"
#include "program/prog_print.h"
@@ -155,7 +155,7 @@ namespace {
class ir_to_mesa_instruction : public exec_node {
public:
- DECLARE_RZALLOC_CXX_OPERATORS(ir_to_mesa_instruction)
+ DECLARE_RALLOC_CXX_OPERATORS(ir_to_mesa_instruction)
enum prog_opcode op;
dst_reg dst;
diff --git a/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
index 53838b391..a5d0b84e3 100644
--- a/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
+++ b/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
@@ -43,11 +43,11 @@
#include "main/mtypes.h"
#include "main/shaderobj.h"
+#include "main/uniforms.h"
#include "program/hash_table.h"
extern "C" {
#include "main/shaderapi.h"
-#include "main/uniforms.h"
#include "program/prog_instruction.h"
#include "program/prog_optimize.h"
#include "program/prog_print.h"
@@ -217,7 +217,7 @@ st_dst_reg::st_dst_reg(st_src_reg reg)
class glsl_to_tgsi_instruction : public exec_node {
public:
- DECLARE_RZALLOC_CXX_OPERATORS(glsl_to_tgsi_instruction)
+ DECLARE_RALLOC_CXX_OPERATORS(glsl_to_tgsi_instruction)
unsigned op;
st_dst_reg dst;
diff --git a/pixman/configure.ac b/pixman/configure.ac
index 263c63edf..2dd477663 100644
--- a/pixman/configure.ac
+++ b/pixman/configure.ac
@@ -961,37 +961,38 @@ main ()
]]))
AC_DEFUN([PIXMAN_CHECK_PTHREAD],[dnl
- if test "z$support_for_pthread_setspecific" != "zyes"; then
+ if test "z$support_for_pthreads" != "zyes"; then
PIXMAN_LINK_WITH_ENV(
[$1], [pthread_test_program],
[PTHREAD_CFLAGS="$CFLAGS"
PTHREAD_LIBS="$LIBS"
PTHREAD_LDFLAGS="$LDFLAGS"
- support_for_pthread_setspecific=yes])
+ support_for_pthreads=yes])
fi
])
-if test $ac_cv_tls = none ; then
- support_for_pthread_setspecific=no
+support_for_pthreads=no
- AC_MSG_CHECKING(for pthread_setspecific)
+AC_MSG_CHECKING(for pthreads)
- PIXMAN_CHECK_PTHREAD([CFLAGS="-pthread"; LDFLAGS="-pthread"])
- PIXMAN_CHECK_PTHREAD([CFLAGS="-D_REENTRANT"; LIBS="-lpthread"])
- PIXMAN_CHECK_PTHREAD([CFLAGS="-D_REENTRANT"; LDFLAGS="-lroot"])
+PIXMAN_CHECK_PTHREAD([CFLAGS="-pthread"; LDFLAGS="-pthread"])
+PIXMAN_CHECK_PTHREAD([CFLAGS="-D_REENTRANT"; LIBS="-lpthread"])
+PIXMAN_CHECK_PTHREAD([CFLAGS="-D_REENTRANT"; LDFLAGS="-lroot"])
- if test $support_for_pthread_setspecific = yes; then
- CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
- AC_DEFINE([HAVE_PTHREAD_SETSPECIFIC], [], [Whether pthread_setspecific() is supported])
+if test $support_for_pthreads = yes; then
+ AC_DEFINE([HAVE_PTHREADS], [], [Whether pthreads is supported])
+ if test $ac_cv_tls = none ; then
+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
fi
-
- AC_MSG_RESULT($support_for_pthread_setspecific);
fi
+AC_MSG_RESULT($support_for_pthreads)
+
AC_SUBST(TOOLCHAIN_SUPPORTS__THREAD)
-AC_SUBST(HAVE_PTHREAD_SETSPECIFIC)
+AC_SUBST(HAVE_PTHREADS)
AC_SUBST(PTHREAD_LDFLAGS)
AC_SUBST(PTHREAD_LIBS)
+AC_SUBST(PTHREAD_CFLAGS)
dnl =====================================
dnl __attribute__((constructor))
diff --git a/pixman/pixman/pixman-compiler.h b/pixman/pixman/pixman-compiler.h
index 38e855519..938ebc21a 100644
--- a/pixman/pixman/pixman-compiler.h
+++ b/pixman/pixman/pixman-compiler.h
@@ -181,7 +181,7 @@
# define PIXMAN_GET_THREAD_LOCAL(name) \
(&name)
-#elif defined(HAVE_PTHREAD_SETSPECIFIC)
+#elif defined(HAVE_PTHREADS)
#include <pthread.h>
diff --git a/pixman/pixman/pixman-vmx.c b/pixman/pixman/pixman-vmx.c
index f629003ab..c33631c0e 100644
--- a/pixman/pixman/pixman-vmx.c
+++ b/pixman/pixman/pixman-vmx.c
@@ -134,15 +134,11 @@ over (vector unsigned int src,
source ## _mask = vec_lvsl (0, source);
#define COMPUTE_SHIFT_MASKS(dest, source) \
- dest ## _mask = vec_lvsl (0, dest); \
- source ## _mask = vec_lvsl (0, source); \
- store_mask = vec_lvsr (0, dest);
+ source ## _mask = vec_lvsl (0, source);
#define COMPUTE_SHIFT_MASKC(dest, source, mask) \
mask ## _mask = vec_lvsl (0, mask); \
- dest ## _mask = vec_lvsl (0, dest); \
- source ## _mask = vec_lvsl (0, source); \
- store_mask = vec_lvsr (0, dest);
+ source ## _mask = vec_lvsl (0, source);
/* notice you have to declare temp vars...
* Note: tmp3 and tmp4 must remain untouched!
@@ -151,23 +147,17 @@ over (vector unsigned int src,
#define LOAD_VECTORS(dest, source) \
tmp1 = (typeof(tmp1))vec_ld (0, source); \
tmp2 = (typeof(tmp2))vec_ld (15, source); \
- tmp3 = (typeof(tmp3))vec_ld (0, dest); \
v ## source = (typeof(v ## source)) \
vec_perm (tmp1, tmp2, source ## _mask); \
- tmp4 = (typeof(tmp4))vec_ld (15, dest); \
- v ## dest = (typeof(v ## dest)) \
- vec_perm (tmp3, tmp4, dest ## _mask);
+ v ## dest = (typeof(v ## dest))vec_ld (0, dest);
#define LOAD_VECTORSC(dest, source, mask) \
tmp1 = (typeof(tmp1))vec_ld (0, source); \
tmp2 = (typeof(tmp2))vec_ld (15, source); \
- tmp3 = (typeof(tmp3))vec_ld (0, dest); \
v ## source = (typeof(v ## source)) \
vec_perm (tmp1, tmp2, source ## _mask); \
- tmp4 = (typeof(tmp4))vec_ld (15, dest); \
tmp1 = (typeof(tmp1))vec_ld (0, mask); \
- v ## dest = (typeof(v ## dest)) \
- vec_perm (tmp3, tmp4, dest ## _mask); \
+ v ## dest = (typeof(v ## dest))vec_ld (0, dest); \
tmp2 = (typeof(tmp2))vec_ld (15, mask); \
v ## mask = (typeof(v ## mask)) \
vec_perm (tmp1, tmp2, mask ## _mask);
@@ -178,11 +168,7 @@ over (vector unsigned int src,
splat_alpha (v ## mask));
#define STORE_VECTOR(dest) \
- edges = vec_perm (tmp4, tmp3, dest ## _mask); \
- tmp3 = vec_perm ((vector unsigned char)v ## dest, edges, store_mask); \
- tmp1 = vec_perm (edges, (vector unsigned char)v ## dest, store_mask); \
- vec_st ((vector unsigned int) tmp3, 15, dest); \
- vec_st ((vector unsigned int) tmp1, 0, dest);
+ vec_st ((vector unsigned int) v ## dest, 0, dest);
static void
vmx_combine_over_u_no_mask (uint32_t * dest,
@@ -191,8 +177,19 @@ vmx_combine_over_u_no_mask (uint32_t * dest,
{
int i;
vector unsigned int vdest, vsrc;
- vector unsigned char tmp1, tmp2, tmp3, tmp4, edges,
- dest_mask, src_mask, store_mask;
+ vector unsigned char tmp1, tmp2, src_mask;
+
+ while (width && ((uintptr_t)dest & 15))
+ {
+ uint32_t s = *src++;
+ uint32_t d = *dest;
+ uint32_t ia = ALPHA_8 (~s);
+
+ UN8x4_MUL_UN8_ADD_UN8x4 (d, ia, s);
+
+ *dest++ = d;
+ width--;
+ }
COMPUTE_SHIFT_MASKS (dest, src);
@@ -230,8 +227,23 @@ vmx_combine_over_u_mask (uint32_t * dest,
{
int i;
vector unsigned int vdest, vsrc, vmask;
- vector unsigned char tmp1, tmp2, tmp3, tmp4, edges,
- dest_mask, src_mask, mask_mask, store_mask;
+ vector unsigned char tmp1, tmp2, src_mask, mask_mask;
+
+ while (width && ((uintptr_t)dest & 15))
+ {
+ uint32_t m = ALPHA_8 (*mask++);
+ uint32_t s = *src++;
+ uint32_t d = *dest;
+ uint32_t ia;
+
+ UN8x4_MUL_UN8 (s, m);
+
+ ia = ALPHA_8 (~s);
+
+ UN8x4_MUL_UN8_ADD_UN8x4 (d, ia, s);
+ *dest++ = d;
+ width--;
+ }
COMPUTE_SHIFT_MASKC (dest, src, mask);
@@ -286,8 +298,18 @@ vmx_combine_over_reverse_u_no_mask (uint32_t * dest,
{
int i;
vector unsigned int vdest, vsrc;
- vector unsigned char tmp1, tmp2, tmp3, tmp4, edges,
- dest_mask, src_mask, store_mask;
+ vector unsigned char tmp1, tmp2, src_mask;
+
+ while (width && ((uintptr_t)dest & 15))
+ {
+ uint32_t s = *src++;
+ uint32_t d = *dest;
+ uint32_t ia = ALPHA_8 (~d);
+
+ UN8x4_MUL_UN8_ADD_UN8x4 (s, ia, d);
+ *dest++ = s;
+ width--;
+ }
COMPUTE_SHIFT_MASKS (dest, src);
@@ -324,8 +346,21 @@ vmx_combine_over_reverse_u_mask (uint32_t * dest,
{
int i;
vector unsigned int vdest, vsrc, vmask;
- vector unsigned char tmp1, tmp2, tmp3, tmp4, edges,
- dest_mask, src_mask, mask_mask, store_mask;
+ vector unsigned char tmp1, tmp2, src_mask, mask_mask;
+
+ while (width && ((uintptr_t)dest & 15))
+ {
+ uint32_t m = ALPHA_8 (*mask++);
+ uint32_t s = *src++;
+ uint32_t d = *dest;
+ uint32_t ia = ALPHA_8 (~d);
+
+ UN8x4_MUL_UN8 (s, m);
+
+ UN8x4_MUL_UN8_ADD_UN8x4 (s, ia, d);
+ *dest++ = s;
+ width--;
+ }
COMPUTE_SHIFT_MASKC (dest, src, mask);
@@ -379,8 +414,17 @@ vmx_combine_in_u_no_mask (uint32_t * dest,
{
int i;
vector unsigned int vdest, vsrc;
- vector unsigned char tmp1, tmp2, tmp3, tmp4, edges,
- dest_mask, src_mask, store_mask;
+ vector unsigned char tmp1, tmp2, src_mask;
+
+ while (width && ((uintptr_t)dest & 15))
+ {
+ uint32_t s = *src++;
+ uint32_t a = ALPHA_8 (*dest);
+
+ UN8x4_MUL_UN8 (s, a);
+ *dest++ = s;
+ width--;
+ }
COMPUTE_SHIFT_MASKS (dest, src);
@@ -415,8 +459,20 @@ vmx_combine_in_u_mask (uint32_t * dest,
{
int i;
vector unsigned int vdest, vsrc, vmask;
- vector unsigned char tmp1, tmp2, tmp3, tmp4, edges,
- dest_mask, src_mask, mask_mask, store_mask;
+ vector unsigned char tmp1, tmp2, src_mask, mask_mask;
+
+ while (width && ((uintptr_t)dest & 15))
+ {
+ uint32_t m = ALPHA_8 (*mask++);
+ uint32_t s = *src++;
+ uint32_t a = ALPHA_8 (*dest);
+
+ UN8x4_MUL_UN8 (s, m);
+ UN8x4_MUL_UN8 (s, a);
+
+ *dest++ = s;
+ width--;
+ }
COMPUTE_SHIFT_MASKC (dest, src, mask);
@@ -468,8 +524,18 @@ vmx_combine_in_reverse_u_no_mask (uint32_t * dest,
{
int i;
vector unsigned int vdest, vsrc;
- vector unsigned char tmp1, tmp2, tmp3, tmp4, edges,
- dest_mask, src_mask, store_mask;
+ vector unsigned char tmp1, tmp2, src_mask;
+
+ while (width && ((uintptr_t)dest & 15))
+ {
+ uint32_t d = *dest;
+ uint32_t a = ALPHA_8 (*src++);
+
+ UN8x4_MUL_UN8 (d, a);
+
+ *dest++ = d;
+ width--;
+ }
COMPUTE_SHIFT_MASKS (dest, src);
@@ -505,8 +571,21 @@ vmx_combine_in_reverse_u_mask (uint32_t * dest,
{
int i;
vector unsigned int vdest, vsrc, vmask;
- vector unsigned char tmp1, tmp2, tmp3, tmp4, edges,
- dest_mask, src_mask, mask_mask, store_mask;
+ vector unsigned char tmp1, tmp2, src_mask, mask_mask;
+
+ while (width && ((uintptr_t)dest & 15))
+ {
+ uint32_t m = ALPHA_8 (*mask++);
+ uint32_t d = *dest;
+ uint32_t a = *src++;
+
+ UN8x4_MUL_UN8 (a, m);
+ a = ALPHA_8 (a);
+ UN8x4_MUL_UN8 (d, a);
+
+ *dest++ = d;
+ width--;
+ }
COMPUTE_SHIFT_MASKC (dest, src, mask);
@@ -559,8 +638,18 @@ vmx_combine_out_u_no_mask (uint32_t * dest,
{
int i;
vector unsigned int vdest, vsrc;
- vector unsigned char tmp1, tmp2, tmp3, tmp4, edges,
- dest_mask, src_mask, store_mask;
+ vector unsigned char tmp1, tmp2, src_mask;
+
+ while (width && ((uintptr_t)dest & 15))
+ {
+ uint32_t s = *src++;
+ uint32_t a = ALPHA_8 (~(*dest));
+
+ UN8x4_MUL_UN8 (s, a);
+
+ *dest++ = s;
+ width--;
+ }
COMPUTE_SHIFT_MASKS (dest, src);
@@ -596,8 +685,20 @@ vmx_combine_out_u_mask (uint32_t * dest,
{
int i;
vector unsigned int vdest, vsrc, vmask;
- vector unsigned char tmp1, tmp2, tmp3, tmp4, edges,
- dest_mask, src_mask, mask_mask, store_mask;
+ vector unsigned char tmp1, tmp2, src_mask, mask_mask;
+
+ while (width && ((uintptr_t)dest & 15))
+ {
+ uint32_t m = ALPHA_8 (*mask++);
+ uint32_t s = *src++;
+ uint32_t a = ALPHA_8 (~(*dest));
+
+ UN8x4_MUL_UN8 (s, m);
+ UN8x4_MUL_UN8 (s, a);
+
+ *dest++ = s;
+ width--;
+ }
COMPUTE_SHIFT_MASKC (dest, src, mask);
@@ -649,8 +750,18 @@ vmx_combine_out_reverse_u_no_mask (uint32_t * dest,
{
int i;
vector unsigned int vdest, vsrc;
- vector unsigned char tmp1, tmp2, tmp3, tmp4, edges,
- dest_mask, src_mask, store_mask;
+ vector unsigned char tmp1, tmp2, src_mask;
+
+ while (width && ((uintptr_t)dest & 15))
+ {
+ uint32_t d = *dest;
+ uint32_t a = ALPHA_8 (~(*src++));
+
+ UN8x4_MUL_UN8 (d, a);
+
+ *dest++ = d;
+ width--;
+ }
COMPUTE_SHIFT_MASKS (dest, src);
@@ -687,8 +798,21 @@ vmx_combine_out_reverse_u_mask (uint32_t * dest,
{
int i;
vector unsigned int vdest, vsrc, vmask;
- vector unsigned char tmp1, tmp2, tmp3, tmp4, edges,
- dest_mask, src_mask, mask_mask, store_mask;
+ vector unsigned char tmp1, tmp2, src_mask, mask_mask;
+
+ while (width && ((uintptr_t)dest & 15))
+ {
+ uint32_t m = ALPHA_8 (*mask++);
+ uint32_t d = *dest;
+ uint32_t a = *src++;
+
+ UN8x4_MUL_UN8 (a, m);
+ a = ALPHA_8 (~a);
+ UN8x4_MUL_UN8 (d, a);
+
+ *dest++ = d;
+ width--;
+ }
COMPUTE_SHIFT_MASKC (dest, src, mask);
@@ -741,8 +865,20 @@ vmx_combine_atop_u_no_mask (uint32_t * dest,
{
int i;
vector unsigned int vdest, vsrc;
- vector unsigned char tmp1, tmp2, tmp3, tmp4, edges,
- dest_mask, src_mask, store_mask;
+ vector unsigned char tmp1, tmp2, src_mask;
+
+ while (width && ((uintptr_t)dest & 15))
+ {
+ uint32_t s = *src++;
+ uint32_t d = *dest;
+ uint32_t dest_a = ALPHA_8 (d);
+ uint32_t src_ia = ALPHA_8 (~s);
+
+ UN8x4_MUL_UN8_ADD_UN8x4_MUL_UN8 (s, dest_a, d, src_ia);
+
+ *dest++ = s;
+ width--;
+ }
COMPUTE_SHIFT_MASKS (dest, src);
@@ -781,8 +917,25 @@ vmx_combine_atop_u_mask (uint32_t * dest,
{
int i;
vector unsigned int vdest, vsrc, vmask;
- vector unsigned char tmp1, tmp2, tmp3, tmp4, edges,
- dest_mask, src_mask, mask_mask, store_mask;
+ vector unsigned char tmp1, tmp2, src_mask, mask_mask;
+
+ while (width && ((uintptr_t)dest & 15))
+ {
+ uint32_t m = ALPHA_8 (*mask++);
+ uint32_t s = *src++;
+ uint32_t d = *dest;
+ uint32_t dest_a = ALPHA_8 (d);
+ uint32_t src_ia;
+
+ UN8x4_MUL_UN8 (s, m);
+
+ src_ia = ALPHA_8 (~s);
+
+ UN8x4_MUL_UN8_ADD_UN8x4_MUL_UN8 (s, dest_a, d, src_ia);
+
+ *dest++ = s;
+ width--;
+ }
COMPUTE_SHIFT_MASKC (dest, src, mask);
@@ -840,8 +993,20 @@ vmx_combine_atop_reverse_u_no_mask (uint32_t * dest,
{
int i;
vector unsigned int vdest, vsrc;
- vector unsigned char tmp1, tmp2, tmp3, tmp4, edges,
- dest_mask, src_mask, store_mask;
+ vector unsigned char tmp1, tmp2, src_mask;
+
+ while (width && ((uintptr_t)dest & 15))
+ {
+ uint32_t s = *src++;
+ uint32_t d = *dest;
+ uint32_t src_a = ALPHA_8 (s);
+ uint32_t dest_ia = ALPHA_8 (~d);
+
+ UN8x4_MUL_UN8_ADD_UN8x4_MUL_UN8 (s, dest_ia, d, src_a);
+
+ *dest++ = s;
+ width--;
+ }
COMPUTE_SHIFT_MASKS (dest, src);
@@ -880,8 +1045,25 @@ vmx_combine_atop_reverse_u_mask (uint32_t * dest,
{
int i;
vector unsigned int vdest, vsrc, vmask;
- vector unsigned char tmp1, tmp2, tmp3, tmp4, edges,
- dest_mask, src_mask, mask_mask, store_mask;
+ vector unsigned char tmp1, tmp2, src_mask, mask_mask;
+
+ while (width && ((uintptr_t)dest & 15))
+ {
+ uint32_t m = ALPHA_8 (*mask++);
+ uint32_t s = *src++;
+ uint32_t d = *dest;
+ uint32_t src_a;
+ uint32_t dest_ia = ALPHA_8 (~d);
+
+ UN8x4_MUL_UN8 (s, m);
+
+ src_a = ALPHA_8 (s);
+
+ UN8x4_MUL_UN8_ADD_UN8x4_MUL_UN8 (s, dest_ia, d, src_a);
+
+ *dest++ = s;
+ width--;
+ }
COMPUTE_SHIFT_MASKC (dest, src, mask);
@@ -939,8 +1121,20 @@ vmx_combine_xor_u_no_mask (uint32_t * dest,
{
int i;
vector unsigned int vdest, vsrc;
- vector unsigned char tmp1, tmp2, tmp3, tmp4, edges,
- dest_mask, src_mask, store_mask;
+ vector unsigned char tmp1, tmp2, src_mask;
+
+ while (width && ((uintptr_t)dest & 15))
+ {
+ uint32_t s = *src++;
+ uint32_t d = *dest;
+ uint32_t src_ia = ALPHA_8 (~s);
+ uint32_t dest_ia = ALPHA_8 (~d);
+
+ UN8x4_MUL_UN8_ADD_UN8x4_MUL_UN8 (s, dest_ia, d, src_ia);
+
+ *dest++ = s;
+ width--;
+ }
COMPUTE_SHIFT_MASKS (dest, src);
@@ -979,8 +1173,25 @@ vmx_combine_xor_u_mask (uint32_t * dest,
{
int i;
vector unsigned int vdest, vsrc, vmask;
- vector unsigned char tmp1, tmp2, tmp3, tmp4, edges,
- dest_mask, src_mask, mask_mask, store_mask;
+ vector unsigned char tmp1, tmp2, src_mask, mask_mask;
+
+ while (width && ((uintptr_t)dest & 15))
+ {
+ uint32_t m = ALPHA_8 (*mask++);
+ uint32_t s = *src++;
+ uint32_t d = *dest;
+ uint32_t src_ia;
+ uint32_t dest_ia = ALPHA_8 (~d);
+
+ UN8x4_MUL_UN8 (s, m);
+
+ src_ia = ALPHA_8 (~s);
+
+ UN8x4_MUL_UN8_ADD_UN8x4_MUL_UN8 (s, dest_ia, d, src_ia);
+
+ *dest++ = s;
+ width--;
+ }
COMPUTE_SHIFT_MASKC (dest, src, mask);
@@ -1038,8 +1249,18 @@ vmx_combine_add_u_no_mask (uint32_t * dest,
{
int i;
vector unsigned int vdest, vsrc;
- vector unsigned char tmp1, tmp2, tmp3, tmp4, edges,
- dest_mask, src_mask, store_mask;
+ vector unsigned char tmp1, tmp2, src_mask;
+
+ while (width && ((uintptr_t)dest & 15))
+ {
+ uint32_t s = *src++;
+ uint32_t d = *dest;
+
+ UN8x4_ADD_UN8x4 (d, s);
+
+ *dest++ = d;
+ width--;
+ }
COMPUTE_SHIFT_MASKS (dest, src);
/* printf ("%s\n",__PRETTY_FUNCTION__); */
@@ -1074,8 +1295,20 @@ vmx_combine_add_u_mask (uint32_t * dest,
{
int i;
vector unsigned int vdest, vsrc, vmask;
- vector unsigned char tmp1, tmp2, tmp3, tmp4, edges,
- dest_mask, src_mask, mask_mask, store_mask;
+ vector unsigned char tmp1, tmp2, src_mask, mask_mask;
+
+ while (width && ((uintptr_t)dest & 15))
+ {
+ uint32_t m = ALPHA_8 (*mask++);
+ uint32_t s = *src++;
+ uint32_t d = *dest;
+
+ UN8x4_MUL_UN8 (s, m);
+ UN8x4_ADD_UN8x4 (d, s);
+
+ *dest++ = d;
+ width--;
+ }
COMPUTE_SHIFT_MASKC (dest, src, mask);
@@ -1130,8 +1363,18 @@ vmx_combine_src_ca (pixman_implementation_t *imp,
{
int i;
vector unsigned int vdest, vsrc, vmask;
- vector unsigned char tmp1, tmp2, tmp3, tmp4, edges,
- dest_mask, mask_mask, src_mask, store_mask;
+ vector unsigned char tmp1, tmp2, mask_mask, src_mask;
+
+ while (width && ((uintptr_t)dest & 15))
+ {
+ uint32_t a = *mask++;
+ uint32_t s = *src++;
+
+ UN8x4_MUL_UN8x4 (s, a);
+
+ *dest++ = s;
+ width--;
+ }
COMPUTE_SHIFT_MASKC (dest, src, mask);
@@ -1170,8 +1413,22 @@ vmx_combine_over_ca (pixman_implementation_t *imp,
{
int i;
vector unsigned int vdest, vsrc, vmask;
- vector unsigned char tmp1, tmp2, tmp3, tmp4, edges,
- dest_mask, mask_mask, src_mask, store_mask;
+ vector unsigned char tmp1, tmp2, mask_mask, src_mask;
+
+ while (width && ((uintptr_t)dest & 15))
+ {
+ uint32_t a = *mask++;
+ uint32_t s = *src++;
+ uint32_t d = *dest;
+ uint32_t sa = ALPHA_8 (s);
+
+ UN8x4_MUL_UN8x4 (s, a);
+ UN8x4_MUL_UN8 (a, sa);
+ UN8x4_MUL_UN8x4_ADD_UN8x4 (d, ~a, s);
+
+ *dest++ = d;
+ width--;
+ }
COMPUTE_SHIFT_MASKC (dest, src, mask);
@@ -1214,8 +1471,21 @@ vmx_combine_over_reverse_ca (pixman_implementation_t *imp,
{
int i;
vector unsigned int vdest, vsrc, vmask;
- vector unsigned char tmp1, tmp2, tmp3, tmp4, edges,
- dest_mask, mask_mask, src_mask, store_mask;
+ vector unsigned char tmp1, tmp2, mask_mask, src_mask;
+
+ while (width && ((uintptr_t)dest & 15))
+ {
+ uint32_t a = *mask++;
+ uint32_t s = *src++;
+ uint32_t d = *dest;
+ uint32_t ida = ALPHA_8 (~d);
+
+ UN8x4_MUL_UN8x4 (s, a);
+ UN8x4_MUL_UN8_ADD_UN8x4 (s, ida, d);
+
+ *dest++ = s;
+ width--;
+ }
COMPUTE_SHIFT_MASKC (dest, src, mask);
@@ -1257,8 +1527,20 @@ vmx_combine_in_ca (pixman_implementation_t *imp,
{
int i;
vector unsigned int vdest, vsrc, vmask;
- vector unsigned char tmp1, tmp2, tmp3, tmp4, edges,
- dest_mask, mask_mask, src_mask, store_mask;
+ vector unsigned char tmp1, tmp2, mask_mask, src_mask;
+
+ while (width && ((uintptr_t)dest & 15))
+ {
+ uint32_t a = *mask++;
+ uint32_t s = *src++;
+ uint32_t da = ALPHA_8 (*dest);
+
+ UN8x4_MUL_UN8x4 (s, a);
+ UN8x4_MUL_UN8 (s, da);
+
+ *dest++ = s;
+ width--;
+ }
COMPUTE_SHIFT_MASKC (dest, src, mask);
@@ -1299,8 +1581,20 @@ vmx_combine_in_reverse_ca (pixman_implementation_t *imp,
{
int i;
vector unsigned int vdest, vsrc, vmask;
- vector unsigned char tmp1, tmp2, tmp3, tmp4, edges,
- dest_mask, mask_mask, src_mask, store_mask;
+ vector unsigned char tmp1, tmp2, mask_mask, src_mask;
+
+ while (width && ((uintptr_t)dest & 15))
+ {
+ uint32_t a = *mask++;
+ uint32_t d = *dest;
+ uint32_t sa = ALPHA_8 (*src++);
+
+ UN8x4_MUL_UN8 (a, sa);
+ UN8x4_MUL_UN8x4 (d, a);
+
+ *dest++ = d;
+ width--;
+ }
COMPUTE_SHIFT_MASKC (dest, src, mask);
@@ -1342,8 +1636,21 @@ vmx_combine_out_ca (pixman_implementation_t *imp,
{
int i;
vector unsigned int vdest, vsrc, vmask;
- vector unsigned char tmp1, tmp2, tmp3, tmp4, edges,
- dest_mask, mask_mask, src_mask, store_mask;
+ vector unsigned char tmp1, tmp2, mask_mask, src_mask;
+
+ while (width && ((uintptr_t)dest & 15))
+ {
+ uint32_t a = *mask++;
+ uint32_t s = *src++;
+ uint32_t d = *dest;
+ uint32_t da = ALPHA_8 (~d);
+
+ UN8x4_MUL_UN8x4 (s, a);
+ UN8x4_MUL_UN8 (s, da);
+
+ *dest++ = s;
+ width--;
+ }
COMPUTE_SHIFT_MASKC (dest, src, mask);
@@ -1386,8 +1693,21 @@ vmx_combine_out_reverse_ca (pixman_implementation_t *imp,
{
int i;
vector unsigned int vdest, vsrc, vmask;
- vector unsigned char tmp1, tmp2, tmp3, tmp4, edges,
- dest_mask, mask_mask, src_mask, store_mask;
+ vector unsigned char tmp1, tmp2, mask_mask, src_mask;
+
+ while (width && ((uintptr_t)dest & 15))
+ {
+ uint32_t a = *mask++;
+ uint32_t s = *src++;
+ uint32_t d = *dest;
+ uint32_t sa = ALPHA_8 (s);
+
+ UN8x4_MUL_UN8 (a, sa);
+ UN8x4_MUL_UN8x4 (d, ~a);
+
+ *dest++ = d;
+ width--;
+ }
COMPUTE_SHIFT_MASKC (dest, src, mask);
@@ -1430,8 +1750,23 @@ vmx_combine_atop_ca (pixman_implementation_t *imp,
{
int i;
vector unsigned int vdest, vsrc, vmask, vsrca;
- vector unsigned char tmp1, tmp2, tmp3, tmp4, edges,
- dest_mask, mask_mask, src_mask, store_mask;
+ vector unsigned char tmp1, tmp2, mask_mask, src_mask;
+
+ while (width && ((uintptr_t)dest & 15))
+ {
+ uint32_t a = *mask++;
+ uint32_t s = *src++;
+ uint32_t d = *dest;
+ uint32_t sa = ALPHA_8 (s);
+ uint32_t da = ALPHA_8 (d);
+
+ UN8x4_MUL_UN8x4 (s, a);
+ UN8x4_MUL_UN8 (a, sa);
+ UN8x4_MUL_UN8x4_ADD_UN8x4_MUL_UN8 (d, ~a, s, da);
+
+ *dest++ = d;
+ width--;
+ }
COMPUTE_SHIFT_MASKC (dest, src, mask);
@@ -1481,8 +1816,23 @@ vmx_combine_atop_reverse_ca (pixman_implementation_t *imp,
{
int i;
vector unsigned int vdest, vsrc, vmask;
- vector unsigned char tmp1, tmp2, tmp3, tmp4, edges,
- dest_mask, mask_mask, src_mask, store_mask;
+ vector unsigned char tmp1, tmp2, mask_mask, src_mask;
+
+ while (width && ((uintptr_t)dest & 15))
+ {
+ uint32_t a = *mask++;
+ uint32_t s = *src++;
+ uint32_t d = *dest;
+ uint32_t sa = ALPHA_8 (s);
+ uint32_t da = ALPHA_8 (~d);
+
+ UN8x4_MUL_UN8x4 (s, a);
+ UN8x4_MUL_UN8 (a, sa);
+ UN8x4_MUL_UN8x4_ADD_UN8x4_MUL_UN8 (d, a, s, da);
+
+ *dest++ = d;
+ width--;
+ }
COMPUTE_SHIFT_MASKC (dest, src, mask);
@@ -1529,8 +1879,23 @@ vmx_combine_xor_ca (pixman_implementation_t *imp,
{
int i;
vector unsigned int vdest, vsrc, vmask;
- vector unsigned char tmp1, tmp2, tmp3, tmp4, edges,
- dest_mask, mask_mask, src_mask, store_mask;
+ vector unsigned char tmp1, tmp2, mask_mask, src_mask;
+
+ while (width && ((uintptr_t)dest & 15))
+ {
+ uint32_t a = *mask++;
+ uint32_t s = *src++;
+ uint32_t d = *dest;
+ uint32_t sa = ALPHA_8 (s);
+ uint32_t da = ALPHA_8 (~d);
+
+ UN8x4_MUL_UN8x4 (s, a);
+ UN8x4_MUL_UN8 (a, sa);
+ UN8x4_MUL_UN8x4_ADD_UN8x4_MUL_UN8 (d, ~a, s, da);
+
+ *dest++ = d;
+ width--;
+ }
COMPUTE_SHIFT_MASKC (dest, src, mask);
@@ -1577,8 +1942,20 @@ vmx_combine_add_ca (pixman_implementation_t *imp,
{
int i;
vector unsigned int vdest, vsrc, vmask;
- vector unsigned char tmp1, tmp2, tmp3, tmp4, edges,
- dest_mask, mask_mask, src_mask, store_mask;
+ vector unsigned char tmp1, tmp2, mask_mask, src_mask;
+
+ while (width && ((uintptr_t)dest & 15))
+ {
+ uint32_t a = *mask++;
+ uint32_t s = *src++;
+ uint32_t d = *dest;
+
+ UN8x4_MUL_UN8x4 (s, a);
+ UN8x4_ADD_UN8x4 (s, d);
+
+ *dest++ = s;
+ width--;
+ }
COMPUTE_SHIFT_MASKC (dest, src, mask);
diff --git a/pixman/test/Makefile.am b/pixman/test/Makefile.am
index 5d901d572..88dc36d2a 100644
--- a/pixman/test/Makefile.am
+++ b/pixman/test/Makefile.am
@@ -1,8 +1,8 @@
include $(top_srcdir)/test/Makefile.sources
-AM_CFLAGS = $(OPENMP_CFLAGS)
-AM_LDFLAGS = $(OPENMP_CFLAGS) $(TESTPROGS_EXTRA_LDFLAGS)
-LDADD = libutils.la $(top_builddir)/pixman/libpixman-1.la -lm $(PNG_LIBS)
+AM_CFLAGS = $(OPENMP_CFLAGS) $(PTHREAD_CFLAGS)
+AM_LDFLAGS = $(OPENMP_CFLAGS) $(TESTPROGS_EXTRA_LDFLAGS) $(PTHREAD_LDFLAGS)
+LDADD = libutils.la $(top_builddir)/pixman/libpixman-1.la -lm $(PNG_LIBS) $(PTHREAD_LIBS)
AM_CPPFLAGS = -I$(top_srcdir)/pixman -I$(top_builddir)/pixman $(PNG_CFLAGS)
libutils_la_SOURCES = $(libutils_sources) $(libutils_headers)
diff --git a/pixman/test/Makefile.sources b/pixman/test/Makefile.sources
index 2fabdb574..2ae5d9f8d 100644
--- a/pixman/test/Makefile.sources
+++ b/pixman/test/Makefile.sources
@@ -13,6 +13,7 @@ TESTPROGRAMS = \
infinite-loop \
trap-crasher \
alpha-loop \
+ thread-test \
scaling-crash-test \
scaling-helpers-test \
gradient-crash-test \
diff --git a/pixman/test/thread-test.c b/pixman/test/thread-test.c
new file mode 100644
index 000000000..f24c31d06
--- /dev/null
+++ b/pixman/test/thread-test.c
@@ -0,0 +1,197 @@
+#include <config.h>
+
+#ifndef HAVE_PTHREADS
+
+int main ()
+{
+ printf ("Skipped thread-test - pthreads not supported\n");
+ return 0;
+}
+
+#else
+
+#include <stdlib.h>
+#include <pthread.h>
+#include "utils.h"
+
+typedef struct
+{
+ int thread_no;
+ uint32_t *dst_buf;
+} info_t;
+
+static const pixman_op_t operators[] =
+{
+ PIXMAN_OP_SRC,
+ PIXMAN_OP_OVER,
+ PIXMAN_OP_ADD,
+ PIXMAN_OP_CLEAR,
+ PIXMAN_OP_SRC,
+ PIXMAN_OP_DST,
+ PIXMAN_OP_OVER,
+ PIXMAN_OP_OVER_REVERSE,
+ PIXMAN_OP_IN,
+ PIXMAN_OP_IN_REVERSE,
+ PIXMAN_OP_OUT,
+ PIXMAN_OP_OUT_REVERSE,
+ PIXMAN_OP_ATOP,
+ PIXMAN_OP_ATOP_REVERSE,
+ PIXMAN_OP_XOR,
+ PIXMAN_OP_ADD,
+ PIXMAN_OP_SATURATE,
+ PIXMAN_OP_DISJOINT_CLEAR,
+ PIXMAN_OP_DISJOINT_SRC,
+ PIXMAN_OP_DISJOINT_DST,
+ PIXMAN_OP_DISJOINT_OVER,
+ PIXMAN_OP_DISJOINT_OVER_REVERSE,
+ PIXMAN_OP_DISJOINT_IN,
+ PIXMAN_OP_DISJOINT_IN_REVERSE,
+ PIXMAN_OP_DISJOINT_OUT,
+ PIXMAN_OP_DISJOINT_OUT_REVERSE,
+ PIXMAN_OP_DISJOINT_ATOP,
+ PIXMAN_OP_DISJOINT_ATOP_REVERSE,
+ PIXMAN_OP_DISJOINT_XOR,
+ PIXMAN_OP_CONJOINT_CLEAR,
+ PIXMAN_OP_CONJOINT_SRC,
+ PIXMAN_OP_CONJOINT_DST,
+ PIXMAN_OP_CONJOINT_OVER,
+ PIXMAN_OP_CONJOINT_OVER_REVERSE,
+ PIXMAN_OP_CONJOINT_IN,
+ PIXMAN_OP_CONJOINT_IN_REVERSE,
+ PIXMAN_OP_CONJOINT_OUT,
+ PIXMAN_OP_CONJOINT_OUT_REVERSE,
+ PIXMAN_OP_CONJOINT_ATOP,
+ PIXMAN_OP_CONJOINT_ATOP_REVERSE,
+ PIXMAN_OP_CONJOINT_XOR,
+ PIXMAN_OP_MULTIPLY,
+ PIXMAN_OP_SCREEN,
+ PIXMAN_OP_OVERLAY,
+ PIXMAN_OP_DARKEN,
+ PIXMAN_OP_LIGHTEN,
+ PIXMAN_OP_COLOR_DODGE,
+ PIXMAN_OP_COLOR_BURN,
+ PIXMAN_OP_HARD_LIGHT,
+ PIXMAN_OP_DIFFERENCE,
+ PIXMAN_OP_EXCLUSION,
+};
+
+static const pixman_format_code_t formats[] =
+{
+ PIXMAN_a8r8g8b8,
+ PIXMAN_r5g6b5,
+ PIXMAN_a8,
+ PIXMAN_a4,
+ PIXMAN_a1,
+ PIXMAN_b5g6r5,
+ PIXMAN_r8g8b8a8,
+ PIXMAN_a4r4g4b4
+};
+
+#define N_ROUNDS 8192
+
+#define RAND_ELT(arr) \
+ arr[prng_rand() % ARRAY_LENGTH (arr)]
+
+#define DEST_WIDTH (7)
+
+static void *
+thread (void *data)
+{
+ info_t *info = data;
+ uint32_t crc32 = 0x0;
+ uint32_t src_buf[64];
+ pixman_image_t *dst_img, *src_img;
+ int i;
+
+ prng_srand (info->thread_no);
+
+ for (i = 0; i < N_ROUNDS; ++i)
+ {
+ pixman_op_t op;
+ int rand1, rand2;
+
+ prng_randmemset (info->dst_buf, DEST_WIDTH * sizeof (uint32_t), 0);
+ prng_randmemset (src_buf, sizeof (src_buf), 0);
+
+ src_img = pixman_image_create_bits (
+ RAND_ELT (formats), 4, 4, src_buf, 16);
+ dst_img = pixman_image_create_bits (
+ RAND_ELT (formats), DEST_WIDTH, 1, info->dst_buf,
+ DEST_WIDTH * sizeof (uint32_t));
+
+ image_endian_swap (src_img);
+ image_endian_swap (dst_img);
+
+ rand2 = prng_rand() % 4;
+ rand1 = prng_rand() % 4;
+ op = RAND_ELT (operators);
+
+ pixman_image_composite32 (
+ op,
+ src_img, NULL, dst_img,
+ rand1, rand2, 0, 0, 0, 0, DEST_WIDTH, 1);
+
+ crc32 = compute_crc32_for_image (crc32, dst_img);
+
+ pixman_image_unref (src_img);
+ pixman_image_unref (dst_img);
+ }
+
+ return (void *)(uintptr_t)crc32;
+}
+
+static inline uint32_t
+byteswap32 (uint32_t x)
+{
+ return ((x & ((uint32_t)0xFF << 24)) >> 24) |
+ ((x & ((uint32_t)0xFF << 16)) >> 8) |
+ ((x & ((uint32_t)0xFF << 8)) << 8) |
+ ((x & ((uint32_t)0xFF << 0)) << 24);
+}
+
+int
+main (void)
+{
+ uint32_t dest[16 * DEST_WIDTH];
+ info_t info[16] = { { 0 } };
+ pthread_t threads[16];
+ void *retvals[16];
+ uint32_t crc32s[16], crc32;
+ int i;
+
+ for (i = 0; i < 16; ++i)
+ {
+ info[i].thread_no = i;
+ info[i].dst_buf = &dest[i * DEST_WIDTH];
+ }
+
+ for (i = 0; i < 16; ++i)
+ pthread_create (&threads[i], NULL, thread, &info[i]);
+
+ for (i = 0; i < 16; ++i)
+ pthread_join (threads[i], &retvals[i]);
+
+ for (i = 0; i < 16; ++i)
+ {
+ crc32s[i] = (uintptr_t)retvals[i];
+
+ if (is_little_endian())
+ crc32s[i] = byteswap32 (crc32s[i]);
+ }
+
+ crc32 = compute_crc32 (0, crc32s, sizeof crc32s);
+
+#define EXPECTED 0xFD497D8D
+
+ if (crc32 != EXPECTED)
+ {
+ printf ("thread-test failed. Got checksum 0x%08X, expected 0x%08X\n",
+ crc32, EXPECTED);
+ return 1;
+ }
+
+ return 0;
+}
+
+#endif
+
diff --git a/xorg-server/xkeyboard-config/CREDITS b/xorg-server/xkeyboard-config/CREDITS
deleted file mode 100644
index e69de29bb..000000000
--- a/xorg-server/xkeyboard-config/CREDITS
+++ /dev/null
diff --git a/xorg-server/xkeyboard-config/Makefile.am b/xorg-server/xkeyboard-config/Makefile.am
index ed3a0a326..e0b3168bc 100644
--- a/xorg-server/xkeyboard-config/Makefile.am
+++ b/xorg-server/xkeyboard-config/Makefile.am
@@ -5,7 +5,7 @@ SUBDIRS = compat geometry keycodes po rules symbols types docs man
pkgconfigdir = $(datadir)/pkgconfig
pkgconfig_DATA = xkeyboard-config.pc
-EXTRA_DIST=config.rpath COPYING CREDITS README \
+EXTRA_DIST=config.rpath COPYING README \
autogen.sh \
xkeyboard-config.pc.in \
intltool-extract.in intltool-merge.in intltool-update.in
diff --git a/xorg-server/xkeyboard-config/symbols/af b/xorg-server/xkeyboard-config/symbols/af
index c4355dd4e..265c18e87 100644
--- a/xorg-server/xkeyboard-config/symbols/af
+++ b/xorg-server/xkeyboard-config/symbols/af
@@ -10,7 +10,7 @@
//
// 2006-02-15 file created by M. Emal Alekozai <memala@gmx.net>
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Afghani";
diff --git a/xorg-server/xkeyboard-config/symbols/al b/xorg-server/xkeyboard-config/symbols/al
index 75e7f52de..ff3388647 100644
--- a/xorg-server/xkeyboard-config/symbols/al
+++ b/xorg-server/xkeyboard-config/symbols/al
@@ -3,7 +3,7 @@
// done by Pablo Saratxaga <pablo@mandrakesoft.com>
//
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin(type3)"
diff --git a/xorg-server/xkeyboard-config/symbols/am b/xorg-server/xkeyboard-config/symbols/am
index c3be81db0..9b092f4d6 100644
--- a/xorg-server/xkeyboard-config/symbols/am
+++ b/xorg-server/xkeyboard-config/symbols/am
@@ -1,6 +1,6 @@
// based on a keyboard map from an 'xkb/symbols/am' file
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Armenian";
diff --git a/xorg-server/xkeyboard-config/symbols/ara b/xorg-server/xkeyboard-config/symbols/ara
index f39fddb56..5ecffa4c3 100644
--- a/xorg-server/xkeyboard-config/symbols/ara
+++ b/xorg-server/xkeyboard-config/symbols/ara
@@ -1,6 +1,6 @@
// based on a keyboard map from an 'xkb/symbols/ar' file
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Arabic";
diff --git a/xorg-server/xkeyboard-config/symbols/az b/xorg-server/xkeyboard-config/symbols/az
index 2dab93a3c..cfdc93cea 100644
--- a/xorg-server/xkeyboard-config/symbols/az
+++ b/xorg-server/xkeyboard-config/symbols/az
@@ -1,7 +1,7 @@
// Symbols definition for a very simple Azerbaidjani keyboard layout.
// 2001 - Pablo Saratxaga <pablo@mandrakesoft.com>
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "latin" {
include "us"
diff --git a/xorg-server/xkeyboard-config/symbols/be b/xorg-server/xkeyboard-config/symbols/be
index c82cb7d6f..ffb89e420 100644
--- a/xorg-server/xkeyboard-config/symbols/be
+++ b/xorg-server/xkeyboard-config/symbols/be
@@ -1,6 +1,6 @@
// based on a keyboard map from an 'xkb/symbols/be' file
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin"
diff --git a/xorg-server/xkeyboard-config/symbols/bg b/xorg-server/xkeyboard-config/symbols/bg
index 2bef5eadb..3b7fd4be0 100644
--- a/xorg-server/xkeyboard-config/symbols/bg
+++ b/xorg-server/xkeyboard-config/symbols/bg
@@ -44,7 +44,7 @@
// Describes Bulgarian keyboard "BDS" modified according to the
// the new state standard BDS 5237:2006 and extended with symbols in
// levels 3 and 4.
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "bds" {
name[Group1]= "Bulgarian";
diff --git a/xorg-server/xkeyboard-config/symbols/brai b/xorg-server/xkeyboard-config/symbols/brai
index 2a7072d45..036b56ff9 100644
--- a/xorg-server/xkeyboard-config/symbols/brai
+++ b/xorg-server/xkeyboard-config/symbols/brai
@@ -1,5 +1,5 @@
// 10-dot patterns on the home row + v and n
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "home_row" {
include "brai(keypad)"
diff --git a/xorg-server/xkeyboard-config/symbols/bt b/xorg-server/xkeyboard-config/symbols/bt
index 980b5c690..f76f13a4c 100644
--- a/xorg-server/xkeyboard-config/symbols/bt
+++ b/xorg-server/xkeyboard-config/symbols/bt
@@ -13,7 +13,7 @@
// Version 1.0 2004-07-29 Some correction by Pema Geyleg <pema_geyleg@druknet.bt>
/////////////////////////////////////////////////////////////////
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Dzongkha";
diff --git a/xorg-server/xkeyboard-config/symbols/bw b/xorg-server/xkeyboard-config/symbols/bw
index 0baadbaa3..29fdc1c02 100644
--- a/xorg-server/xkeyboard-config/symbols/bw
+++ b/xorg-server/xkeyboard-config/symbols/bw
@@ -1,4 +1,4 @@
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "tswana" {
include "us"
diff --git a/xorg-server/xkeyboard-config/symbols/by b/xorg-server/xkeyboard-config/symbols/by
index 36994d3e1..443a76426 100644
--- a/xorg-server/xkeyboard-config/symbols/by
+++ b/xorg-server/xkeyboard-config/symbols/by
@@ -5,7 +5,7 @@
// Added third level with russian symbols
// See freedesktop.org bug #23604
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
include "ru(winkeys)"
name[Group1]= "Belarusian";
diff --git a/xorg-server/xkeyboard-config/symbols/cd.in b/xorg-server/xkeyboard-config/symbols/cd.in
index 384422ac4..e5b09e8a3 100644
--- a/xorg-server/xkeyboard-config/symbols/cd.in
+++ b/xorg-server/xkeyboard-config/symbols/cd.in
@@ -1,7 +1,7 @@
// based on us_intl keyboard map file and a Sinhala keyboard map
// version 0.3
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "French (Democratic Republic of the Congo)";
diff --git a/xorg-server/xkeyboard-config/symbols/ch b/xorg-server/xkeyboard-config/symbols/ch
index 59174076e..671c3c5e8 100644
--- a/xorg-server/xkeyboard-config/symbols/ch
+++ b/xorg-server/xkeyboard-config/symbols/ch
@@ -1,4 +1,4 @@
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin"
diff --git a/xorg-server/xkeyboard-config/symbols/cn b/xorg-server/xkeyboard-config/symbols/cn
index cceb64b7d..75ebbf66a 100644
--- a/xorg-server/xkeyboard-config/symbols/cn
+++ b/xorg-server/xkeyboard-config/symbols/cn
@@ -1,7 +1,7 @@
//
// Default Chinese is the same as American
//
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
include "us(basic)"
diff --git a/xorg-server/xkeyboard-config/symbols/cz b/xorg-server/xkeyboard-config/symbols/cz
index 336050ceb..3d3170029 100644
--- a/xorg-server/xkeyboard-config/symbols/cz
+++ b/xorg-server/xkeyboard-config/symbols/cz
@@ -1,4 +1,4 @@
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
// This layout conforms to a new cz compromise standard designed
diff --git a/xorg-server/xkeyboard-config/symbols/dk b/xorg-server/xkeyboard-config/symbols/dk
index 4e656b209..4619357a6 100644
--- a/xorg-server/xkeyboard-config/symbols/dk
+++ b/xorg-server/xkeyboard-config/symbols/dk
@@ -1,6 +1,6 @@
// based on a keyboard map from an 'xkb/symbols/dk' file
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin(type2)"
diff --git a/xorg-server/xkeyboard-config/symbols/ee b/xorg-server/xkeyboard-config/symbols/ee
index eb26d50bc..61d865cf1 100644
--- a/xorg-server/xkeyboard-config/symbols/ee
+++ b/xorg-server/xkeyboard-config/symbols/ee
@@ -2,7 +2,7 @@
// Estonian XKB-keymap by Ville Hallik <ville@linux.ee>
//
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
// Describes the differences between a very simple en_US
diff --git a/xorg-server/xkeyboard-config/symbols/es b/xorg-server/xkeyboard-config/symbols/es
index 4196762a6..b9066fb01 100644
--- a/xorg-server/xkeyboard-config/symbols/es
+++ b/xorg-server/xkeyboard-config/symbols/es
@@ -1,6 +1,6 @@
// Modified for a real Spanish keyboard by Jon Tombs.
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin(type4)"
diff --git a/xorg-server/xkeyboard-config/symbols/et b/xorg-server/xkeyboard-config/symbols/et
index 22ba892aa..a591a77a4 100644
--- a/xorg-server/xkeyboard-config/symbols/et
+++ b/xorg-server/xkeyboard-config/symbols/et
@@ -5,7 +5,7 @@
// 2007 Sergey Udaltsov <svu@gnome.org>
//
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
include "et(olpc)"
name[Group1]="Amharic";
diff --git a/xorg-server/xkeyboard-config/symbols/fi b/xorg-server/xkeyboard-config/symbols/fi
index b8b2183b4..4778f7d16 100644
--- a/xorg-server/xkeyboard-config/symbols/fi
+++ b/xorg-server/xkeyboard-config/symbols/fi
@@ -6,7 +6,7 @@
// Eliminate deadkeys alternative sent by Linus Torvalds
//
-partial alphanumeric_keys default
+default partial alphanumeric_keys
xkb_symbols "kotoistus" {
// Official keymap for Finland based on SFS 5966 standard
diff --git a/xorg-server/xkeyboard-config/symbols/fo b/xorg-server/xkeyboard-config/symbols/fo
index b0b24ce75..283e13d6d 100644
--- a/xorg-server/xkeyboard-config/symbols/fo
+++ b/xorg-server/xkeyboard-config/symbols/fo
@@ -1,4 +1,4 @@
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin(type2)"
diff --git a/xorg-server/xkeyboard-config/symbols/fr b/xorg-server/xkeyboard-config/symbols/fr
index 71b20b44b..e5e83eff4 100644
--- a/xorg-server/xkeyboard-config/symbols/fr
+++ b/xorg-server/xkeyboard-config/symbols/fr
@@ -1,4 +1,4 @@
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin"
diff --git a/xorg-server/xkeyboard-config/symbols/gb b/xorg-server/xkeyboard-config/symbols/gb
index 949b2491f..135583356 100644
--- a/xorg-server/xkeyboard-config/symbols/gb
+++ b/xorg-server/xkeyboard-config/symbols/gb
@@ -1,6 +1,6 @@
// based on a keyboard map from an 'xkb/symbols/gb' file
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
// Describes the differences between a very simple en_US
diff --git a/xorg-server/xkeyboard-config/symbols/ge b/xorg-server/xkeyboard-config/symbols/ge
index 57c02a0d6..5a5c69dae 100644
--- a/xorg-server/xkeyboard-config/symbols/ge
+++ b/xorg-server/xkeyboard-config/symbols/ge
@@ -15,7 +15,7 @@
// 1999, Pablo Saratxaga <srtxg@chanae.alphanet.ch>
//
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Georgian";
diff --git a/xorg-server/xkeyboard-config/symbols/gh b/xorg-server/xkeyboard-config/symbols/gh
index 93015a7ff..995abb829 100644
--- a/xorg-server/xkeyboard-config/symbols/gh
+++ b/xorg-server/xkeyboard-config/symbols/gh
@@ -1,4 +1,4 @@
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
include "us"
diff --git a/xorg-server/xkeyboard-config/symbols/gn b/xorg-server/xkeyboard-config/symbols/gn
index f85e98ec3..7f796c541 100644
--- a/xorg-server/xkeyboard-config/symbols/gn
+++ b/xorg-server/xkeyboard-config/symbols/gn
@@ -1,7 +1,7 @@
// based on us_intl keyboard map file and a Sinhala keyboard map
// version 0.3
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]="French (Guinea)";
diff --git a/xorg-server/xkeyboard-config/symbols/ie b/xorg-server/xkeyboard-config/symbols/ie
index 070c9d9a3..3e39d57f9 100644
--- a/xorg-server/xkeyboard-config/symbols/ie
+++ b/xorg-server/xkeyboard-config/symbols/ie
@@ -22,7 +22,7 @@
// without use of a deadkey.
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
// Modern keyboard for Irish and English
diff --git a/xorg-server/xkeyboard-config/symbols/il b/xorg-server/xkeyboard-config/symbols/il
index 78425339b..91da6db7a 100644
--- a/xorg-server/xkeyboard-config/symbols/il
+++ b/xorg-server/xkeyboard-config/symbols/il
@@ -4,7 +4,7 @@
// It does not implement changes to the English layout ("Alt-English"),
// as I believe that it is not the job of this layout to modify the English
// layout.
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
// uses the kbd layout in use in Israel.
diff --git a/xorg-server/xkeyboard-config/symbols/iq b/xorg-server/xkeyboard-config/symbols/iq
index 5430b53bf..597690d25 100644
--- a/xorg-server/xkeyboard-config/symbols/iq
+++ b/xorg-server/xkeyboard-config/symbols/iq
@@ -2,7 +2,7 @@
// 3-Level layout
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
include "ara(basic)"
name[Group1]= "Iraqi";
diff --git a/xorg-server/xkeyboard-config/symbols/ir b/xorg-server/xkeyboard-config/symbols/ir
index 519708d75..85396b915 100644
--- a/xorg-server/xkeyboard-config/symbols/ir
+++ b/xorg-server/xkeyboard-config/symbols/ir
@@ -12,7 +12,7 @@
// Author: Behnam Esfahbod <behnam@esfahbod.info>
//
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "pes" {
name[Group1]= "Persian";
diff --git a/xorg-server/xkeyboard-config/symbols/it b/xorg-server/xkeyboard-config/symbols/it
index d2a5461b5..7b9183a82 100644
--- a/xorg-server/xkeyboard-config/symbols/it
+++ b/xorg-server/xkeyboard-config/symbols/it
@@ -1,7 +1,7 @@
// based on a keyboard map from an 'xkb/symbols/it' file
// 17 May 2003 Modified by Sebastiano Vigna (vigna@dsi.unimi.it)
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin(type4)"
diff --git a/xorg-server/xkeyboard-config/symbols/jp b/xorg-server/xkeyboard-config/symbols/jp
index dfb56b7c2..deac93c7c 100644
--- a/xorg-server/xkeyboard-config/symbols/jp
+++ b/xorg-server/xkeyboard-config/symbols/jp
@@ -1,6 +1,6 @@
// Symbols for Japanese 106-keys keyboards (by tsuka@kawalab.dnj.ynu.ac.jp).
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "106" {
include "jp(common)"
diff --git a/xorg-server/xkeyboard-config/symbols/ke b/xorg-server/xkeyboard-config/symbols/ke
index 3ecf3de89..ec2ffd05e 100644
--- a/xorg-server/xkeyboard-config/symbols/ke
+++ b/xorg-server/xkeyboard-config/symbols/ke
@@ -3,7 +3,7 @@
// Please notify any corrections or omissions to
// Kevin Donnelly (kevin@dotmon.com)
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "swa" {
include "us"
diff --git a/xorg-server/xkeyboard-config/symbols/keypad b/xorg-server/xkeyboard-config/symbols/keypad
index 6c41f134f..51ea3f679 100644
--- a/xorg-server/xkeyboard-config/symbols/keypad
+++ b/xorg-server/xkeyboard-config/symbols/keypad
@@ -93,7 +93,7 @@ xkb_symbols "operators" {
};
};
-partial hidden default keypad_keys
+default partial hidden keypad_keys
xkb_symbols "x11" {
include "keypad(operators)"
diff --git a/xorg-server/xkeyboard-config/symbols/kg b/xorg-server/xkeyboard-config/symbols/kg
index bb1b2d538..1c2706017 100644
--- a/xorg-server/xkeyboard-config/symbols/kg
+++ b/xorg-server/xkeyboard-config/symbols/kg
@@ -18,7 +18,7 @@
// Kyrgyz standard keyboard
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Kyrgyz";
diff --git a/xorg-server/xkeyboard-config/symbols/kh b/xorg-server/xkeyboard-config/symbols/kh
index d93517a33..b25cf1330 100644
--- a/xorg-server/xkeyboard-config/symbols/kh
+++ b/xorg-server/xkeyboard-config/symbols/kh
@@ -24,7 +24,7 @@
// but with a leading 'XK_'
//
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Khmer (Cambodia)";
diff --git a/xorg-server/xkeyboard-config/symbols/kz b/xorg-server/xkeyboard-config/symbols/kz
index c6da615dc..276305693 100644
--- a/xorg-server/xkeyboard-config/symbols/kz
+++ b/xorg-server/xkeyboard-config/symbols/kz
@@ -10,7 +10,7 @@
// RST KazSSR 903-90
// levels 3 and 4 are non-standard extensions
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1] = "Kazakh";
diff --git a/xorg-server/xkeyboard-config/symbols/la b/xorg-server/xkeyboard-config/symbols/la
index b302f5e71..cd24a4e3e 100644
--- a/xorg-server/xkeyboard-config/symbols/la
+++ b/xorg-server/xkeyboard-config/symbols/la
@@ -1,6 +1,6 @@
// Lao keymap, by Anousak Souphavanh <anousak@muanglao.com>
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
// This keymap describes the Lao keyboard standard,
diff --git a/xorg-server/xkeyboard-config/symbols/latam b/xorg-server/xkeyboard-config/symbols/latam
index 6cc9c6850..4a30d6d4e 100644
--- a/xorg-server/xkeyboard-config/symbols/latam
+++ b/xorg-server/xkeyboard-config/symbols/latam
@@ -1,7 +1,7 @@
// based on a keyboard
// Modified for a real Latin American Keyboard by Fabian Mandelbaum
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin(type4)"
diff --git a/xorg-server/xkeyboard-config/symbols/lk b/xorg-server/xkeyboard-config/symbols/lk
index 356e060fe..b88dcdf1e 100644
--- a/xorg-server/xkeyboard-config/symbols/lk
+++ b/xorg-server/xkeyboard-config/symbols/lk
@@ -28,7 +28,7 @@
// rayanna = r
// yayanna = y
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "sin_phonetic" {
include "us"
diff --git a/xorg-server/xkeyboard-config/symbols/lt b/xorg-server/xkeyboard-config/symbols/lt
index 206611d9f..5610e6797 100644
--- a/xorg-server/xkeyboard-config/symbols/lt
+++ b/xorg-server/xkeyboard-config/symbols/lt
@@ -7,7 +7,7 @@
//
// If you want two layouts, use:
// Option "XkbLayout" "lt,lt(us)"
-partial default alphanumeric_keys modifier_keys
+default partial alphanumeric_keys modifier_keys
xkb_symbols "basic" {
include "latin"
diff --git a/xorg-server/xkeyboard-config/symbols/lv b/xorg-server/xkeyboard-config/symbols/lv
index 4b0ba6c04..f0b63368c 100644
--- a/xorg-server/xkeyboard-config/symbols/lv
+++ b/xorg-server/xkeyboard-config/symbols/lv
@@ -44,7 +44,7 @@
// Latvian QWERTY layout
// http://en.wikipedia.org/wiki/QWERTY
//
-partial default alphanumeric_keys modifier_keys
+default partial alphanumeric_keys modifier_keys
xkb_symbols "basic" {
name[Group1]= "Latvian";
diff --git a/xorg-server/xkeyboard-config/symbols/ma b/xorg-server/xkeyboard-config/symbols/ma
index ad3064f3f..2e3f4b1a3 100644
--- a/xorg-server/xkeyboard-config/symbols/ma
+++ b/xorg-server/xkeyboard-config/symbols/ma
@@ -1,5 +1,5 @@
// Arabic AZERTY with modern Latin digits
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "arabic" {
include "ara(azerty)"
diff --git a/xorg-server/xkeyboard-config/symbols/mao b/xorg-server/xkeyboard-config/symbols/mao
index ce1b2ea3c..4edc3b988 100644
--- a/xorg-server/xkeyboard-config/symbols/mao
+++ b/xorg-server/xkeyboard-config/symbols/mao
@@ -1,4 +1,4 @@
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
// Adds the macrons needed for the Maori language to
diff --git a/xorg-server/xkeyboard-config/symbols/md b/xorg-server/xkeyboard-config/symbols/md
index 18b32fdee..c23d1184d 100644
--- a/xorg-server/xkeyboard-config/symbols/md
+++ b/xorg-server/xkeyboard-config/symbols/md
@@ -1,4 +1,4 @@
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
include "ro"
diff --git a/xorg-server/xkeyboard-config/symbols/mk b/xorg-server/xkeyboard-config/symbols/mk
index ec92c0868..456c81c85 100644
--- a/xorg-server/xkeyboard-config/symbols/mk
+++ b/xorg-server/xkeyboard-config/symbols/mk
@@ -2,7 +2,7 @@
// Author: Damjan Georgievski <penguinista AT mail.net.mk>
// Revision: 1.5
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Macedonian";
diff --git a/xorg-server/xkeyboard-config/symbols/ml b/xorg-server/xkeyboard-config/symbols/ml
index a3a747c48..e310a0189 100644
--- a/xorg-server/xkeyboard-config/symbols/ml
+++ b/xorg-server/xkeyboard-config/symbols/ml
@@ -1,4 +1,4 @@
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
include "fr(basic)"
diff --git a/xorg-server/xkeyboard-config/symbols/mm b/xorg-server/xkeyboard-config/symbols/mm
index 060e76ade..9738ce911 100644
--- a/xorg-server/xkeyboard-config/symbols/mm
+++ b/xorg-server/xkeyboard-config/symbols/mm
@@ -1,4 +1,4 @@
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Burmese";
diff --git a/xorg-server/xkeyboard-config/symbols/mn b/xorg-server/xkeyboard-config/symbols/mn
index 943cc0c1f..f455dee8c 100644
--- a/xorg-server/xkeyboard-config/symbols/mn
+++ b/xorg-server/xkeyboard-config/symbols/mn
@@ -3,7 +3,7 @@
// Author Sanlig Badral <badral@chinggis.com>
// 2002/12/7 Version 1.0
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Mongolian";
diff --git a/xorg-server/xkeyboard-config/symbols/mt b/xorg-server/xkeyboard-config/symbols/mt
index d42064a0f..8a0cec3f9 100644
--- a/xorg-server/xkeyboard-config/symbols/mt
+++ b/xorg-server/xkeyboard-config/symbols/mt
@@ -1,7 +1,7 @@
// Maltese keyboard map (based on MSA Standard DMS100)
// by Ramon Casha (ramon.casha@linux.org.mt)
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin"
diff --git a/xorg-server/xkeyboard-config/symbols/mv b/xorg-server/xkeyboard-config/symbols/mv
index 5c9177b06..e34e063b4 100644
--- a/xorg-server/xkeyboard-config/symbols/mv
+++ b/xorg-server/xkeyboard-config/symbols/mv
@@ -1,6 +1,6 @@
// Keymap for Thaana/Dhivehi script (Dhivehi language).
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]="Dhivehi";
diff --git a/xorg-server/xkeyboard-config/symbols/ng b/xorg-server/xkeyboard-config/symbols/ng
index ecf5be79e..313941a91 100644
--- a/xorg-server/xkeyboard-config/symbols/ng
+++ b/xorg-server/xkeyboard-config/symbols/ng
@@ -1,4 +1,4 @@
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
include "us"
diff --git a/xorg-server/xkeyboard-config/symbols/no b/xorg-server/xkeyboard-config/symbols/no
index 5e4cffdcf..6ecdb9a7a 100644
--- a/xorg-server/xkeyboard-config/symbols/no
+++ b/xorg-server/xkeyboard-config/symbols/no
@@ -1,6 +1,6 @@
// based on a keyboard map from an 'xkb/symbols/no' file
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
// Describes the differences between a very simple en_US
diff --git a/xorg-server/xkeyboard-config/symbols/np b/xorg-server/xkeyboard-config/symbols/np
index ed7c2077a..5cebac4c8 100644
--- a/xorg-server/xkeyboard-config/symbols/np
+++ b/xorg-server/xkeyboard-config/symbols/np
@@ -1,6 +1,6 @@
// based on a keyboard map from an 'xkb/symbols/dev' file
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Nepali";
diff --git a/xorg-server/xkeyboard-config/symbols/pc b/xorg-server/xkeyboard-config/symbols/pc
index 20bb92f31..e95e2406e 100644
--- a/xorg-server/xkeyboard-config/symbols/pc
+++ b/xorg-server/xkeyboard-config/symbols/pc
@@ -1,4 +1,4 @@
-default partial alphanumeric_keys modifier_keys
+default partial alphanumeric_keys modifier_keys
xkb_symbols "pc105" {
key <ESC> { [ Escape ] };
diff --git a/xorg-server/xkeyboard-config/symbols/ph b/xorg-server/xkeyboard-config/symbols/ph
index 7b294948e..3aff18e24 100644
--- a/xorg-server/xkeyboard-config/symbols/ph
+++ b/xorg-server/xkeyboard-config/symbols/ph
@@ -41,7 +41,7 @@
// ┃Ctrl ┃Super ┃Alt ┃ ␣ Space Space ␣ ┃AltGr ⇮┃Meta ┃Menu ┃Ctrl ┃
// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹─────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛
//
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Filipino";
diff --git a/xorg-server/xkeyboard-config/symbols/pk b/xorg-server/xkeyboard-config/symbols/pk
index de800d4c7..b53e3aa3c 100644
--- a/xorg-server/xkeyboard-config/symbols/pk
+++ b/xorg-server/xkeyboard-config/symbols/pk
@@ -6,7 +6,7 @@
// Alt-key combinations are yet to be put in. The unavailable keys are
// those which do not have a corresponding glyph in Unicode.
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "urd-phonetic" {
name[Group1]= "Urdu (Pakistan)";
diff --git a/xorg-server/xkeyboard-config/symbols/pl b/xorg-server/xkeyboard-config/symbols/pl
index e2559b3ac..885a82afa 100644
--- a/xorg-server/xkeyboard-config/symbols/pl
+++ b/xorg-server/xkeyboard-config/symbols/pl
@@ -1,6 +1,6 @@
// based on a keyboard map from an 'xkb/symbols/pl' file
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
// Visualisation and description: http://podziemie.net/xkb/pl
diff --git a/xorg-server/xkeyboard-config/symbols/pt b/xorg-server/xkeyboard-config/symbols/pt
index 010445570..4b85598a5 100644
--- a/xorg-server/xkeyboard-config/symbols/pt
+++ b/xorg-server/xkeyboard-config/symbols/pt
@@ -1,6 +1,6 @@
// based on a keyboard map from an 'xkb/symbols/pt' file
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin(type4)"
diff --git a/xorg-server/xkeyboard-config/symbols/ro b/xorg-server/xkeyboard-config/symbols/ro
index 46e275b72..01fb8485c 100644
--- a/xorg-server/xkeyboard-config/symbols/ro
+++ b/xorg-server/xkeyboard-config/symbols/ro
@@ -16,7 +16,7 @@
// v 1.4
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
// This RO_US/Programmers layout, although the secondary layout in the
// Romanian standard, has always been the "de facto" standard in the
diff --git a/xorg-server/xkeyboard-config/symbols/ru b/xorg-server/xkeyboard-config/symbols/ru
index a761c30d0..d39f92672 100644
--- a/xorg-server/xkeyboard-config/symbols/ru
+++ b/xorg-server/xkeyboard-config/symbols/ru
@@ -5,7 +5,7 @@
// 2005/12/09 Valery Inozemtsev <shrek@altlinux.ru>
// Windows layout
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "winkeys" {
include "ru(common)"
diff --git a/xorg-server/xkeyboard-config/symbols/se b/xorg-server/xkeyboard-config/symbols/se
index ef5e797ba..d015d4015 100644
--- a/xorg-server/xkeyboard-config/symbols/se
+++ b/xorg-server/xkeyboard-config/symbols/se
@@ -1,6 +1,6 @@
// based on a keyboard map from an 'xkb/symbols/se' file
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin(type2)"
include "se(se)"
diff --git a/xorg-server/xkeyboard-config/symbols/sk b/xorg-server/xkeyboard-config/symbols/sk
index e33b74a5e..075281320 100644
--- a/xorg-server/xkeyboard-config/symbols/sk
+++ b/xorg-server/xkeyboard-config/symbols/sk
@@ -1,4 +1,4 @@
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
// This layout conforms to a new sk compromise standard designed
diff --git a/xorg-server/xkeyboard-config/symbols/sn b/xorg-server/xkeyboard-config/symbols/sn
index 5b0befc88..77495ad4d 100644
--- a/xorg-server/xkeyboard-config/symbols/sn
+++ b/xorg-server/xkeyboard-config/symbols/sn
@@ -1,4 +1,4 @@
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
include "latin"
diff --git a/xorg-server/xkeyboard-config/symbols/sy b/xorg-server/xkeyboard-config/symbols/sy
index a7d2fbc4e..a539f4019 100644
--- a/xorg-server/xkeyboard-config/symbols/sy
+++ b/xorg-server/xkeyboard-config/symbols/sy
@@ -1,4 +1,4 @@
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
include "ara(basic)"
name[Group1]= "Arabic (Syria)";
diff --git a/xorg-server/xkeyboard-config/symbols/terminate b/xorg-server/xkeyboard-config/symbols/terminate
index c74220bc7..60c24795c 100644
--- a/xorg-server/xkeyboard-config/symbols/terminate
+++ b/xorg-server/xkeyboard-config/symbols/terminate
@@ -1,4 +1,4 @@
-partial default modifier_keys
+default partial modifier_keys
xkb_symbols "ctrl_alt_bksp" {
key <BKSP> {
type="CTRL+ALT",
diff --git a/xorg-server/xkeyboard-config/symbols/th b/xorg-server/xkeyboard-config/symbols/th
index a23ff45a3..63fd281b5 100644
--- a/xorg-server/xkeyboard-config/symbols/th
+++ b/xorg-server/xkeyboard-config/symbols/th
@@ -1,6 +1,6 @@
// based on a keyboard map from an 'xkb/symbols/th' file
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Thai";
diff --git a/xorg-server/xkeyboard-config/symbols/tj b/xorg-server/xkeyboard-config/symbols/tj
index e4c4af4f6..76086056d 100644
--- a/xorg-server/xkeyboard-config/symbols/tj
+++ b/xorg-server/xkeyboard-config/symbols/tj
@@ -11,7 +11,7 @@
// --------------------------------------------------------------------
//
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic"
{
name[Group1] = "Tajik";
diff --git a/xorg-server/xkeyboard-config/symbols/tw b/xorg-server/xkeyboard-config/symbols/tw
index c01024a81..e136319c1 100644
--- a/xorg-server/xkeyboard-config/symbols/tw
+++ b/xorg-server/xkeyboard-config/symbols/tw
@@ -1,4 +1,4 @@
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "tw" {
name[Group1]= "Taiwanese";
diff --git a/xorg-server/xkeyboard-config/symbols/tz b/xorg-server/xkeyboard-config/symbols/tz
index e4d50539f..60ff033be 100644
--- a/xorg-server/xkeyboard-config/symbols/tz
+++ b/xorg-server/xkeyboard-config/symbols/tz
@@ -3,7 +3,7 @@
// Please notify any corrections or omissions to
// Kevin Donnelly (kevin@dotmon.com)
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "swa" {
name[Group1]= "Swahili (Tanzania)";
diff --git a/xorg-server/xkeyboard-config/symbols/ua b/xorg-server/xkeyboard-config/symbols/ua
index f7a2a59a4..331cbfcb3 100644
--- a/xorg-server/xkeyboard-config/symbols/ua
+++ b/xorg-server/xkeyboard-config/symbols/ua
@@ -5,7 +5,7 @@
// Unicode - 3d level added with some Unicode symbols (typographic quotes, m-dash, n-dash etc),
// some often used cyrillics from other slavic languages and some ASCII symbols used often (slash, brackets...)
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "unicode" {
include "ua(winkeys)"
diff --git a/xorg-server/xkeyboard-config/symbols/us b/xorg-server/xkeyboard-config/symbols/us
index 73673882d..b70cb016a 100644
--- a/xorg-server/xkeyboard-config/symbols/us
+++ b/xorg-server/xkeyboard-config/symbols/us
@@ -1,5 +1,5 @@
default
-partial alphanumeric_keys modifier_keys
+partial alphanumeric_keys modifier_keys
xkb_symbols "basic" {
name[Group1]= "English (US)";
diff --git a/xorg-server/xkeyboard-config/symbols/uz b/xorg-server/xkeyboard-config/symbols/uz
index f0e07ede1..d4cf48fbf 100644
--- a/xorg-server/xkeyboard-config/symbols/uz
+++ b/xorg-server/xkeyboard-config/symbols/uz
@@ -30,7 +30,7 @@
// apostrophe is replaced with U02BB.
//
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "cyrillic" {
name[Group1]= "Uzbek";
diff --git a/xorg-server/xkeyboard-config/symbols/vn b/xorg-server/xkeyboard-config/symbols/vn
index 58eb595da..10a6d2634 100644
--- a/xorg-server/xkeyboard-config/symbols/vn
+++ b/xorg-server/xkeyboard-config/symbols/vn
@@ -8,7 +8,7 @@
// July 2009
-partial default alphanumeric_keys
+default partial alphanumeric_keys
xkb_symbols "basic" {
include "us"
diff --git a/xorg-server/xkeyboard-config/symbols/za b/xorg-server/xkeyboard-config/symbols/za
index c5f699463..74abc8271 100644
--- a/xorg-server/xkeyboard-config/symbols/za
+++ b/xorg-server/xkeyboard-config/symbols/za
@@ -1,6 +1,6 @@
// based on the Latvian and GB keyboard maps
-partial default alphanumeric_keys modifier_keys
+default partial alphanumeric_keys modifier_keys
xkb_symbols "basic" {
// Describes the differences between an en_US