Re: [PATCH xf86-video-vmware] Remove unused variable.

2011-03-03 Thread Thomas Hellstrom

On 02/26/2011 01:57 PM, Cyril Brulebois wrote:

Signed-off-by: Cyril Bruleboisk...@debian.org
   


Pushed, Thanks!
Sorry for the delay.

Thomas

___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


[PATCH 00/11] GLX dispatch cleanup

2011-03-03 Thread Adam Jackson
In trying to figure out why the clutter FBO tests simply fell over in
indirect contexts, I got to discover exactly how disgusting this code is.
The glapi code appears to have been cargo-culted in from Mesa, but is
over-general for our purposes.  In particular, glapi goes through some
contortions to support the corner case semantics of glXGetProcAddress,
which is a thing that simply can not happen in xserver, and contains
much more threading support than can happen in xserver.

This patchset attempts to simplify some of that.  I've lightly tested it,
in the sense that glxinfo and glxgears still work in indirect contexts, but
I've not tried anything as robust as piglit yet.  There's more to come, in
the form of fixing and simplifying _glapi_add_dispatch for the xserver
environment, but that's proving a little tricker than I was hoping.

Nonetheless, the before-and-after is very pretty already:

   textdata bss dec hex filename
1833530   69920   49664 1953114  1dcd5a Xvfb-before
1741772   62928   49640 1854340  1c4b84 Xvfb-after

 b/glx/Makefile.am  |2 
 b/glx/glapi.c  |  417 --
 b/glx/glapi.h  |   28 
 b/glx/glthread.c   |  162 -
 b/glx/glthread.h   |   69 
 b/hw/xquartz/GL/indirect.c |9 
 glx/glapitemp.h| 6655 -
 7 files changed, 19 insertions(+), 7323 deletions(-)

- ajax

___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


[PATCH 01/11] glx: Remove unused _glapi_get_proc_offset and friends

2011-03-03 Thread Adam Jackson
Signed-off-by: Adam Jackson a...@redhat.com
---
 glx/glapi.c |  107 ---
 glx/glapi.h |   19 --
 2 files changed, 0 insertions(+), 126 deletions(-)

diff --git a/glx/glapi.c b/glx/glapi.c
index d6a568e..42bf6c1 100644
--- a/glx/glapi.c
+++ b/glx/glapi.c
@@ -336,11 +336,6 @@ _glapi_set_dispatch(struct _glapi_table *dispatch)
   /* use the no-op functions */
   dispatch = (struct _glapi_table *) __glapi_noop_table;
}
-#ifdef DEBUG
-   else {
-  _glapi_check_table(dispatch);
-   }
-#endif
 
 #if defined(GLX_USE_TLS)
_glapi_tls_Dispatch = dispatch;
@@ -867,26 +862,6 @@ _glapi_add_dispatch( const char * const * function_names,
return offset;
 }
 
-
-/**
- * Return offset of entrypoint for named function within dispatch table.
- */
-PUBLIC GLint
-_glapi_get_proc_offset(const char *funcName)
-{
-   /* search extension functions first */
-   GLuint i;
-   for (i = 0; i  NumExtEntryPoints; i++) {
-  if (strcmp(ExtEntryTable[i].name, funcName) == 0) {
- return ExtEntryTable[i].dispatch_offset;
-  }
-   }
-   /* search static functions */
-   return get_static_proc_offset(funcName);
-}
-
-
-
 /**
  * Return pointer to the named function.  If the function name isn't found
  * in the name of static functions, try generating a new API entrypoint on
@@ -965,88 +940,6 @@ _glapi_get_dispatch_table_size(void)
return DISPATCH_TABLE_SIZE;
 }
 
-
-
-/**
- * Make sure there are no NULL pointers in the given dispatch table.
- * Intended for debugging purposes.
- */
-void
-_glapi_check_table(const struct _glapi_table *table)
-{
-#ifdef DEBUG
-   const GLuint entries = _glapi_get_dispatch_table_size();
-   const void **tab = (const void **) table;
-   GLuint i;
-   for (i = 1; i  entries; i++) {
-  assert(tab[i]);
-   }
-
-   /* Do some spot checks to be sure that the dispatch table
-* slots are assigned correctly.
-*/
-   {
-  GLuint BeginOffset = _glapi_get_proc_offset(glBegin);
-  char *BeginFunc = (char*) table-Begin;
-  GLuint offset = (BeginFunc - (char *) table) / sizeof(void *);
-  assert(BeginOffset == _gloffset_Begin);
-  assert(BeginOffset == offset);
-   }
-   {
-  GLuint viewportOffset = _glapi_get_proc_offset(glViewport);
-  char *viewportFunc = (char*) table-Viewport;
-  GLuint offset = (viewportFunc - (char *) table) / sizeof(void *);
-  assert(viewportOffset == _gloffset_Viewport);
-  assert(viewportOffset == offset);
-   }
-   {
-  GLuint VertexPointerOffset = _glapi_get_proc_offset(glVertexPointer);
-  char *VertexPointerFunc = (char*) table-VertexPointer;
-  GLuint offset = (VertexPointerFunc - (char *) table) / sizeof(void *);
-  assert(VertexPointerOffset == _gloffset_VertexPointer);
-  assert(VertexPointerOffset == offset);
-   }
-   {
-  GLuint ResetMinMaxOffset = _glapi_get_proc_offset(glResetMinmax);
-  char *ResetMinMaxFunc = (char*) table-ResetMinmax;
-  GLuint offset = (ResetMinMaxFunc - (char *) table) / sizeof(void *);
-  assert(ResetMinMaxOffset == _gloffset_ResetMinmax);
-  assert(ResetMinMaxOffset == offset);
-   }
-   {
-  GLuint blendColorOffset = _glapi_get_proc_offset(glBlendColor);
-  char *blendColorFunc = (char*) table-BlendColor;
-  GLuint offset = (blendColorFunc - (char *) table) / sizeof(void *);
-  assert(blendColorOffset == _gloffset_BlendColor);
-  assert(blendColorOffset == offset);
-   }
-   {
-  GLuint secondaryColor3fOffset = 
_glapi_get_proc_offset(glSecondaryColor3fEXT);
-  char *secondaryColor3fFunc = (char*) table-SecondaryColor3fEXT;
-  GLuint offset = (secondaryColor3fFunc - (char *) table) / sizeof(void *);
-  assert(secondaryColor3fOffset == _gloffset_SecondaryColor3fEXT);
-  assert(secondaryColor3fOffset == offset);
-   }
-   {
-  GLuint pointParameterivOffset = 
_glapi_get_proc_offset(glPointParameterivNV);
-  char *pointParameterivFunc = (char*) table-PointParameterivNV;
-  GLuint offset = (pointParameterivFunc - (char *) table) / sizeof(void *);
-  assert(pointParameterivOffset == _gloffset_PointParameterivNV);
-  assert(pointParameterivOffset == offset);
-   }
-   {
-  GLuint setFenceOffset = _glapi_get_proc_offset(glSetFenceNV);
-  char *setFenceFunc = (char*) table-SetFenceNV;
-  GLuint offset = (setFenceFunc - (char *) table) / sizeof(void *);
-  assert(setFenceOffset == _gloffset_SetFenceNV);
-  assert(setFenceOffset == offset);
-   }
-#else
-   (void) table;
-#endif
-}
-
-
 #if defined(PTHREADS) || defined(GLX_USE_TLS)
 /**
  * Perform platform-specific GL API entry-point fixups.
diff --git a/glx/glapi.h b/glx/glapi.h
index 8f2cf66..9911e50 100644
--- a/glx/glapi.h
+++ b/glx/glapi.h
@@ -115,57 +115,38 @@ _glapi_set_warning_func(_glapi_warning_func func);
 extern void
 _glapi_check_multithread(void);
 
-
 extern void
 _glapi_set_context(void *context);
 
-
 extern void *
 

[PATCH 02/11] glx: unifdef SOLARIS_THREADS

2011-03-03 Thread Adam Jackson
Solaris 7 and older are not supported; Solaris 8 and later have (and
use) pthreads.

Signed-off-by: Adam Jackson a...@redhat.com
---
 glx/glthread.c |   70 
 glx/glthread.h |   25 +---
 2 files changed, 1 insertions(+), 94 deletions(-)

diff --git a/glx/glthread.c b/glx/glthread.c
index 8b9f618..2d76a49 100644
--- a/glx/glthread.c
+++ b/glx/glthread.c
@@ -114,76 +114,6 @@ _glthread_SetTSD(_glthread_TSD *tsd, void *ptr)
 
 #endif /* PTHREADS */
 
-
-
-/*
- * Solaris/Unix International Threads -- Use only if POSIX threads
- *   aren't available on your Unix platform.  Solaris 2.[34] are examples
- *   of platforms where this is the case.  Be sure to use -mt and/or
- *   -D_REENTRANT when compiling.
- */
-#ifdef SOLARIS_THREADS
-#define USE_LOCK_FOR_KEY   /* undef this to try a version without
-  lock for the global key... */
-
-_X_EXPORT unsigned long
-_glthread_GetID(void)
-{
-   OsAbort();   /* XXX not implemented yet */
-   return (unsigned long) 0;
-}
-
-
-void
-_glthread_InitTSD(_glthread_TSD *tsd)
-{
-   if ((errno = mutex_init(tsd-keylock, 0, NULL)) != 0 ||
-  (errno = thr_keycreate((tsd-key), free)) != 0) {
-  perror(INIT_TSD_ERROR);
-  exit(-1);
-   }
-   tsd-initMagic = INIT_MAGIC;
-}
-
-
-void *
-_glthread_GetTSD(_glthread_TSD *tsd)
-{
-   void* ret;
-   if (tsd-initMagic != INIT_MAGIC) {
-  _glthread_InitTSD(tsd);
-   }
-#ifdef USE_LOCK_FOR_KEY
-   mutex_lock(tsd-keylock);
-   thr_getspecific(tsd-key, ret);
-   mutex_unlock(tsd-keylock);
-#else
-   if ((errno = thr_getspecific(tsd-key, ret)) != 0) {
-  perror(GET_TSD_ERROR);
-  exit(-1);
-   }
-#endif
-   return ret;
-}
-
-
-void
-_glthread_SetTSD(_glthread_TSD *tsd, void *ptr)
-{
-   if (tsd-initMagic != INIT_MAGIC) {
-  _glthread_InitTSD(tsd);
-   }
-   if ((errno = thr_setspecific(tsd-key, ptr)) != 0) {
-  perror(SET_TSD_ERROR);
-  exit(-1);
-   }
-}
-
-#undef USE_LOCK_FOR_KEY
-#endif /* SOLARIS_THREADS */
-
-
-
 /*
  * Win32 Threads.  The only available option for Windows 95/NT.
  * Be sure that you compile using the Multithreaded runtime, otherwise
diff --git a/glx/glthread.h b/glx/glthread.h
index e2765ce..e7e2385 100644
--- a/glx/glthread.h
+++ b/glx/glthread.h
@@ -68,9 +68,7 @@
 #define _glapi_Dispatch _mglapi_Dispatch
 #endif
 
-
-
-#if (defined(PTHREADS) || defined(SOLARIS_THREADS) ||\
+#if (defined(PTHREADS) || \
  defined(WIN32_THREADS) || defined(USE_XTHREADS) || defined(BEOS_THREADS)) 
\
  !defined(THREADS)
 # define THREADS
@@ -127,27 +125,6 @@ typedef pthread_mutex_t _glthread_Mutex;
  * Be sure to compile with -mt on the Solaris compilers, or
  * use -D_REENTRANT if using gcc.
  */
-#ifdef SOLARIS_THREADS
-#include thread.h
-
-typedef struct {
-   thread_key_t key;
-   mutex_t  keylock;
-   int  initMagic;
-} _glthread_TSD;
-
-typedef thread_t _glthread_Thread;
-
-typedef mutex_t _glthread_Mutex;
-
-/* XXX need to really implement mutex-related macros */
-#define _glthread_DECLARE_STATIC_MUTEX(name)  static _glthread_Mutex name = 0
-#define _glthread_INIT_MUTEX(name)  (void) name
-#define _glthread_DESTROY_MUTEX(name) (void) name
-#define _glthread_LOCK_MUTEX(name)  (void) name
-#define _glthread_UNLOCK_MUTEX(name)  (void) name
-
-#endif /* SOLARIS_THREADS */
 
 
 
-- 
1.7.3.5

___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


[PATCH 03/11] glx: unifdef USE_XTHREADS

2011-03-03 Thread Adam Jackson
xthreads is an ancient wrapper around a half dozen or so common thread
APIs, including pthreads.  Just use pthreads directly if you have it; if
you don't, get with the times.

Signed-off-by: Adam Jackson a...@redhat.com
---
 glx/glthread.c |   51 ---
 glx/glthread.h |   46 +-
 2 files changed, 1 insertions(+), 96 deletions(-)

diff --git a/glx/glthread.c b/glx/glthread.c
index 2d76a49..a2d95b5 100644
--- a/glx/glthread.c
+++ b/glx/glthread.c
@@ -179,57 +179,6 @@ _glthread_SetTSD(_glthread_TSD *tsd, void *ptr)
 
 #endif /* WIN32_THREADS */
 
-
-
-/*
- * XFree86 has its own thread wrapper, Xthreads.h
- * We wrap it again for GL.
- */
-#ifdef USE_XTHREADS
-
-_X_EXPORT unsigned long
-_glthread_GetID(void)
-{
-   return (unsigned long) xthread_self();
-}
-
-
-void
-_glthread_InitTSD(_glthread_TSD *tsd)
-{
-   if (xthread_key_create(tsd-key, NULL) != 0) {
-  perror(INIT_TSD_ERROR);
-  exit(-1);
-   }
-   tsd-initMagic = INIT_MAGIC;
-}
-
-
-void *
-_glthread_GetTSD(_glthread_TSD *tsd)
-{
-   void *ptr;
-   if (tsd-initMagic != INIT_MAGIC) {
-  _glthread_InitTSD(tsd);
-   }
-   xthread_get_specific(tsd-key, ptr);
-   return ptr;
-}
-
-
-void
-_glthread_SetTSD(_glthread_TSD *tsd, void *ptr)
-{
-   if (tsd-initMagic != INIT_MAGIC) {
-  _glthread_InitTSD(tsd);
-   }
-   xthread_set_specific(tsd-key, ptr);
-}
-
-#endif /* XTHREAD */
-
-
-
 /*
  * BeOS threads
  */
diff --git a/glx/glthread.h b/glx/glthread.h
index e7e2385..782a2a3 100644
--- a/glx/glthread.h
+++ b/glx/glthread.h
@@ -68,8 +68,7 @@
 #define _glapi_Dispatch _mglapi_Dispatch
 #endif
 
-#if (defined(PTHREADS) || \
- defined(WIN32_THREADS) || defined(USE_XTHREADS) || defined(BEOS_THREADS)) 
\
+#if (defined(PTHREADS) || defined(WIN32_THREADS) || defined(BEOS_THREADS)) \
  !defined(THREADS)
 # define THREADS
 #endif
@@ -154,49 +153,6 @@ typedef CRITICAL_SECTION _glthread_Mutex;
 
 #endif /* WIN32_THREADS */
 
-
-
-
-/*
- * XFree86 has its own thread wrapper, Xthreads.h
- * We wrap it again for GL.
- */
-#ifdef USE_XTHREADS
-#include X11/Xthreads.h
-
-typedef struct {
-   xthread_key_t key;
-   int initMagic;
-} _glthread_TSD;
-
-typedef xthread_t _glthread_Thread;
-
-typedef xmutex_rec _glthread_Mutex;
-
-#ifdef XMUTEX_INITIALIZER
-#define _glthread_DECLARE_STATIC_MUTEX(name) \
-   static _glthread_Mutex name = XMUTEX_INITIALIZER
-#else
-#define _glthread_DECLARE_STATIC_MUTEX(name) \
-   static _glthread_Mutex name
-#endif
-
-#define _glthread_INIT_MUTEX(name) \
-   xmutex_init((name))
-
-#define _glthread_DESTROY_MUTEX(name) \
-   xmutex_clear((name))
-
-#define _glthread_LOCK_MUTEX(name) \
-   (void) xmutex_lock((name))
-
-#define _glthread_UNLOCK_MUTEX(name) \
-   (void) xmutex_unlock((name))
-
-#endif /* USE_XTHREADS */
-
-
-
 /*
  * BeOS threads. R5.x required.
  */
-- 
1.7.3.5

___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


[PATCH 04/11] glx: unifdef BEOS_THREADS

2011-03-03 Thread Adam Jackson
We don't support BeOS, so, no.

Signed-off-by: Adam Jackson a...@redhat.com
---
 glx/glthread.c |   41 -
 glx/glthread.h |2 +-
 2 files changed, 1 insertions(+), 42 deletions(-)

diff --git a/glx/glthread.c b/glx/glthread.c
index a2d95b5..5da7e43 100644
--- a/glx/glthread.c
+++ b/glx/glthread.c
@@ -179,49 +179,8 @@ _glthread_SetTSD(_glthread_TSD *tsd, void *ptr)
 
 #endif /* WIN32_THREADS */
 
-/*
- * BeOS threads
- */
-#ifdef BEOS_THREADS
-
-unsigned long
-_glthread_GetID(void)
-{
-   return (unsigned long) find_thread(NULL);
-}
-
-void
-_glthread_InitTSD(_glthread_TSD *tsd)
-{
-   tsd-key = tls_allocate();
-   tsd-initMagic = INIT_MAGIC;
-}
-
-void *
-_glthread_GetTSD(_glthread_TSD *tsd)
-{
-   if (tsd-initMagic != (int) INIT_MAGIC) {
-  _glthread_InitTSD(tsd);
-   }
-   return tls_get(tsd-key);
-}
-
-void
-_glthread_SetTSD(_glthread_TSD *tsd, void *ptr)
-{
-   if (tsd-initMagic != (int) INIT_MAGIC) {
-  _glthread_InitTSD(tsd);
-   }
-   tls_set(tsd-key, ptr);
-}
-
-#endif /* BEOS_THREADS */
-
-
-
 #else  /* THREADS */
 
-
 /*
  * no-op functions
  */
diff --git a/glx/glthread.h b/glx/glthread.h
index 782a2a3..28793fc 100644
--- a/glx/glthread.h
+++ b/glx/glthread.h
@@ -68,7 +68,7 @@
 #define _glapi_Dispatch _mglapi_Dispatch
 #endif
 
-#if (defined(PTHREADS) || defined(WIN32_THREADS) || defined(BEOS_THREADS)) \
+#if (defined(PTHREADS) || defined(WIN32_THREADS)) \
  !defined(THREADS)
 # define THREADS
 #endif
-- 
1.7.3.5

___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


[PATCH 05/11] glx: Simplify _glapi_check_multithread

2011-03-03 Thread Adam Jackson
We can guarantee that the X server does not call DRI driver services
from multiple threads, so _glapi_check_multithread need never do
anything special.  As a result, ThreadSafe is always false, so remove it
and simplify expressions where it appeared to match.

Signed-off-by: Adam Jackson a...@redhat.com
---
 glx/glapi.c |   49 -
 1 files changed, 4 insertions(+), 45 deletions(-)

diff --git a/glx/glapi.c b/glx/glapi.c
index 42bf6c1..fde5d76 100644
--- a/glx/glapi.c
+++ b/glx/glapi.c
@@ -175,12 +175,6 @@ static GLint NoOpUnused(void)
  * static dispatch functions access these variables via \c _glapi_get_dispatch
  * and \c _glapi_get_context.
  *
- * There is a race condition in setting \c _glapi_Dispatch to \c NULL.  It is
- * possible for the original thread to be setting it at the same instant a new
- * thread, perhaps running on a different processor, is clearing it.  Because
- * of that, \c ThreadSafe, which can only ever be changed to \c GL_TRUE, is
- * used to determine whether or not the application is multithreaded.
- * 
  * In the TLS case, the variables \c _glapi_Dispatch and \c _glapi_Context are
  * hardcoded to \c NULL.  Instead the TLS variables \c _glapi_tls_Dispatch and
  * \c _glapi_tls_Context are used.  Having \c _glapi_Dispatch and
@@ -204,7 +198,6 @@ PUBLIC const void *_glapi_Context = NULL;
 
 #if defined(THREADS)
 
-static GLboolean ThreadSafe = GL_FALSE;  /** In thread-safe mode? */
 _glthread_TSD _gl_DispatchTSD;   /** Per-thread dispatch pointer */
 static _glthread_TSD ContextTSD; /** Per-thread context pointer */
 
@@ -243,37 +236,14 @@ str_dup(const char *str)
 }
 
 
-
-/**
- * We should call this periodically from a function such as glXMakeCurrent
- * in order to test if multiple threads are being used.
+/*
+ * xserver's gl is not multithreaded, we promise.
  */
 PUBLIC void
 _glapi_check_multithread(void)
 {
-#if defined(THREADS)  !defined(GLX_USE_TLS)
-   if (!ThreadSafe) {
-  static unsigned long knownID;
-  static GLboolean firstCall = GL_TRUE;
-  if (firstCall) {
- knownID = _glthread_GetID();
- firstCall = GL_FALSE;
-  }
-  else if (knownID != _glthread_GetID()) {
- ThreadSafe = GL_TRUE;
- _glapi_set_dispatch(NULL);
- _glapi_set_context(NULL);
-  }
-   }
-   else if (!_glapi_get_dispatch()) {
-  /* make sure that this thread's dispatch pointer isn't null */
-  _glapi_set_dispatch(NULL);
-   }
-#endif
 }
 
-
-
 /**
  * Set the current context pointer for this thread.
  * The context pointer is an opaque type which should be cast to
@@ -287,7 +257,7 @@ _glapi_set_context(void *context)
_glapi_tls_Context = context;
 #elif defined(THREADS)
_glthread_SetTSD(ContextTSD, context);
-   _glapi_Context = (ThreadSafe) ? NULL : context;
+   _glapi_Context = context;
 #else
_glapi_Context = context;
 #endif
@@ -305,13 +275,6 @@ _glapi_get_context(void)
 {
 #if defined(GLX_USE_TLS)
return _glapi_tls_Context;
-#elif defined(THREADS)
-   if (ThreadSafe) {
-  return _glthread_GetTSD(ContextTSD);
-   }
-   else {
-  return _glapi_Context;
-   }
 #else
return _glapi_Context;
 #endif
@@ -341,7 +304,7 @@ _glapi_set_dispatch(struct _glapi_table *dispatch)
_glapi_tls_Dispatch = dispatch;
 #elif defined(THREADS)
_glthread_SetTSD(_gl_DispatchTSD, (void *) dispatch);
-   _glapi_Dispatch = (ThreadSafe) ? NULL : dispatch;
+   _glapi_Dispatch = dispatch;
 #else /*THREADS*/
_glapi_Dispatch = dispatch;
 #endif /*THREADS*/
@@ -358,10 +321,6 @@ _glapi_get_dispatch(void)
struct _glapi_table * api;
 #if defined(GLX_USE_TLS)
api = _glapi_tls_Dispatch;
-#elif defined(THREADS)
-   api = (ThreadSafe)
- ? (struct _glapi_table *) _glthread_GetTSD(_gl_DispatchTSD)
- : _glapi_Dispatch;
 #else
api = _glapi_Dispatch;
 #endif
-- 
1.7.3.5

___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


[PATCH 06/11] glx: Remove unused _glapi_get_proc_name

2011-03-03 Thread Adam Jackson
Signed-off-by: Adam Jackson a...@redhat.com
---
 glx/glapi.c |   49 -
 glx/glapi.h |3 ---
 2 files changed, 0 insertions(+), 52 deletions(-)

diff --git a/glx/glapi.c b/glx/glapi.c
index fde5d76..209ae50 100644
--- a/glx/glapi.c
+++ b/glx/glapi.c
@@ -426,26 +426,6 @@ get_static_proc_address(const char *funcName)
 
 #endif /* !defined(XFree86Server)  !defined(XGLServer) */
 
-
-
-/**
- * Return the name of the function at the given offset in the dispatch
- * table.  For debugging only.
- */
-static const char *
-get_static_proc_name( GLuint offset )
-{
-   GLuint i;
-   for (i = 0; static_functions[i].Name_offset = 0; i++) {
-  if (static_functions[i].Offset == offset) {
-return gl_string_table + static_functions[i].Name_offset;
-  }
-   }
-   return NULL;
-}
-
-
-
 /**
  * Extension function management.
  */
@@ -860,35 +840,6 @@ _glapi_get_proc_address(const char *funcName)
return (entry == NULL) ? NULL : entry-dispatch_stub;
 }
 
-
-
-/**
- * Return the name of the function at the given dispatch offset.
- * This is only intended for debugging.
- */
-const char *
-_glapi_get_proc_name(GLuint offset)
-{
-   GLuint i;
-   const char * n;
-
-   /* search built-in functions */
-   n = get_static_proc_name(offset);
-   if ( n != NULL ) {
-  return n;
-   }
-
-   /* search added extension functions */
-   for (i = 0; i  NumExtEntryPoints; i++) {
-  if (ExtEntryTable[i].dispatch_offset == offset) {
- return ExtEntryTable[i].name;
-  }
-   }
-   return NULL;
-}
-
-
-
 /**
  * Return size of dispatch table struct as number of functions (or
  * slots).
diff --git a/glx/glapi.h b/glx/glapi.h
index 9911e50..80b53aa 100644
--- a/glx/glapi.h
+++ b/glx/glapi.h
@@ -146,7 +146,4 @@ _glapi_add_dispatch( const char * const * function_names,
 extern _glapi_proc
 _glapi_get_proc_address(const char *funcName);
 
-extern const char *
-_glapi_get_proc_name(GLuint offset);
-
 #endif
-- 
1.7.3.5

___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


[PATCH 08/11] glx: Remove unused _glapi_set_warning_func and friends

2011-03-03 Thread Adam Jackson
These could only have been hit from the (now-removed) noop dispatch
table.

Signed-off-by: Adam Jackson a...@redhat.com
---
 glx/glapi.c  |   23 ---
 glx/glapi.h  |6 --
 hw/xquartz/GL/indirect.c |9 -
 3 files changed, 0 insertions(+), 38 deletions(-)

diff --git a/glx/glapi.c b/glx/glapi.c
index 9c588a6..a706438 100644
--- a/glx/glapi.c
+++ b/glx/glapi.c
@@ -72,11 +72,6 @@
 #include glapioffsets.h
 #include glapitable.h
 
-/* BEGIN NO-OP DISPATCH */
-
-static GLboolean WarnFlag = GL_FALSE;
-static _glapi_warning_func warning_func;
-
 #if defined(PTHREADS) || defined(GLX_USE_TLS)
 static void init_glapi_relocs(void);
 #endif
@@ -84,24 +79,6 @@ static void init_glapi_relocs(void);
 static _glapi_proc generate_entrypoint(GLuint functionOffset);
 static void fill_in_entrypoint_offset(_glapi_proc entrypoint, GLuint offset);
 
-/*
- * Enable/disable printing of warning messages.
- */
-PUBLIC void
-_glapi_noop_enable_warnings(GLboolean enable)
-{
-   WarnFlag = enable;
-}
-
-/*
- * Register a callback function for reporting errors.
- */
-PUBLIC void
-_glapi_set_warning_func( _glapi_warning_func func )
-{
-   warning_func = func;
-}
-
 /**
  * \name Current dispatch and current context control variables
  *
diff --git a/glx/glapi.h b/glx/glapi.h
index 80b53aa..b6eedc7 100644
--- a/glx/glapi.h
+++ b/glx/glapi.h
@@ -107,12 +107,6 @@ extern struct _glapi_table *_glapi_Dispatch;
  **/
 
 extern void
-_glapi_noop_enable_warnings(GLboolean enable);
-
-extern void
-_glapi_set_warning_func(_glapi_warning_func func);
-
-extern void
 _glapi_check_multithread(void);
 
 extern void
diff --git a/hw/xquartz/GL/indirect.c b/hw/xquartz/GL/indirect.c
index bdc7c3d..1375bea 100644
--- a/hw/xquartz/GL/indirect.c
+++ b/hw/xquartz/GL/indirect.c
@@ -681,17 +681,8 @@ GLuint __glFloorLog2(GLuint val)
 return c;
 }
 
-void warn_func(void * p1, char *format, ...) {
-va_list v;
-va_start(v, format);
-vfprintf(stderr, format, v);
-va_end(v);
-}
-
 static void setup_dispatch_table(void) {
 struct _glapi_table *disp=_glapi_get_dispatch();
-_glapi_set_warning_func((_glapi_warning_func)warn_func);
-_glapi_noop_enable_warnings(TRUE);
 
 /* to update:
  * for f in $(grep 'define SET_' ../../../glx/dispatch.h  | cut -f2 -d' ' 
| cut -f1 -d\( | sort -u); do grep -q $f indirect.c || echo $f ; done | grep -v 
by_offset | sed 's:SET_\(.*\)$:SET_\1(disp, gl\1)\;:' | pbcopy
-- 
1.7.3.5

___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


[PATCH 09/11] glx: Lobotomize _glapi_get_proc_address

2011-03-03 Thread Adam Jackson
This isn't a meaningful thing in the indirect glx loader, so just warn
if it ever happens and move on.

Signed-off-by: Adam Jackson a...@redhat.com
---
 glx/glapi.c |   39 ++-
 1 files changed, 6 insertions(+), 33 deletions(-)

diff --git a/glx/glapi.c b/glx/glapi.c
index a706438..de5e7ea 100644
--- a/glx/glapi.c
+++ b/glx/glapi.c
@@ -54,6 +54,7 @@
 
 #include dix-config.h
 #include X11/Xfuncproto.h
+#include os.h
 #define PUBLIC _X_EXPORT
 
 #else
@@ -713,43 +714,15 @@ _glapi_add_dispatch( const char * const * function_names,
return offset;
 }
 
-/**
- * Return pointer to the named function.  If the function name isn't found
- * in the name of static functions, try generating a new API entrypoint on
- * the fly with assembly language.
+/*
+ * glXGetProcAddress doesn't exist in the protocol, the drivers never call
+ * this themselves, and neither does the server.  warn if it happens though.
  */
 _glapi_proc
 _glapi_get_proc_address(const char *funcName)
 {
-   struct _glapi_function * entry;
-   GLuint i;
-
-#ifdef MANGLE
-   if (funcName[0] != 'm' || funcName[1] != 'g' || funcName[2] != 'l')
-  return NULL;
-#else
-   if (funcName[0] != 'g' || funcName[1] != 'l')
-  return NULL;
-#endif
-
-   /* search extension functions first */
-   for (i = 0; i  NumExtEntryPoints; i++) {
-  if (strcmp(ExtEntryTable[i].name, funcName) == 0) {
- return ExtEntryTable[i].dispatch_stub;
-  }
-   }
-
-#if !defined( XFree86Server )  !defined( XGLServer )
-   /* search static functions */
-   {
-  const _glapi_proc func = get_static_proc_address(funcName);
-  if (func)
- return func;
-   }
-#endif /* !defined( XFree86Server ) */
-
-   entry = add_function_name(funcName);
-   return (entry == NULL) ? NULL : entry-dispatch_stub;
+ErrorF(_glapi_get_proc_address called!\n);
+return NULL;
 }
 
 /**
-- 
1.7.3.5

___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


[PATCH 10/11] glx: Update some glapi comments

2011-03-03 Thread Adam Jackson
Signed-off-by: Adam Jackson a...@redhat.com
---
 glx/glapi.c |   38 ++
 1 files changed, 6 insertions(+), 32 deletions(-)

diff --git a/glx/glapi.c b/glx/glapi.c
index de5e7ea..f421c24 100644
--- a/glx/glapi.c
+++ b/glx/glapi.c
@@ -22,47 +22,21 @@
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
 
-
 /*
- * This file manages the OpenGL API dispatch layer.
- * The dispatch table (struct _glapi_table) is basically just a list
- * of function pointers.
- * There are functions to set/get the current dispatch table for the
- * current thread and to manage registration/dispatch of dynamically
- * added extension functions.
- *
- * It's intended that this file and the other glapi*.[ch] files are
- * flexible enough to be reused in several places:  XFree86, DRI-
- * based libGL.so, and perhaps the SGI SI.
- *
- * NOTE: There are no dependencies on Mesa in this code.
+ * This file manages the OpenGL API dispatch layer.  There are functions
+ * to set/get the current dispatch table for the current thread and to
+ * manage registration/dispatch of dynamically added extension functions.
  *
- * Versions (API changes):
- *   2000/02/23  - original version for Mesa 3.3 and XFree86 4.0
- *   2001/01/16  - added dispatch override feature for Mesa 3.5
- *   2002/06/28  - added _glapi_set_warning_func(), Mesa 4.1.
- *   2002/10/01  - _glapi_get_proc_address() will now generate new entrypoints
- * itself (using offset ~0).  _glapi_add_entrypoint() can be
- * called afterward and it'll fill in the correct dispatch
- * offset.  This allows DRI libGL to avoid probing for DRI
- * drivers!  No changes to the public glapi interface.
+ * This code was originally general enough to be shared with Mesa, but
+ * they diverged long ago, so this is now just enough support to make
+ * indirect GLX work.
  */
 
-
-
-#ifdef HAVE_DIX_CONFIG_H
-
 #include dix-config.h
 #include X11/Xfuncproto.h
 #include os.h
 #define PUBLIC _X_EXPORT
 
-#else
-
-#include glheader.h
-
-#endif
-
 #include stdlib.h
 #include string.h
 #ifdef DEBUG
-- 
1.7.3.5

___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


[PATCH 11/11] glx: Flatten -DXFree86Server

2011-03-03 Thread Adam Jackson
Always defined by the makefile, so, just get rid of it.

Signed-off-by: Adam Jackson a...@redhat.com
---
 glx/Makefile.am |1 -
 glx/glapi.c |   43 ---
 2 files changed, 0 insertions(+), 44 deletions(-)

diff --git a/glx/Makefile.am b/glx/Makefile.am
index 8c7f7a5..72531f2 100644
--- a/glx/Makefile.am
+++ b/glx/Makefile.am
@@ -11,7 +11,6 @@ AM_CFLAGS = \
@XLIB_CFLAGS@ \
@LIBDRM_CFLAGS@ \
@DRIPROTO_CFLAGS@ \
-   -DXFree86Server \
@GLX_DEFINES@ \
@GLX_ARCH_DEFINES@
 
diff --git a/glx/glapi.c b/glx/glapi.c
index f421c24..c3447f5 100644
--- a/glx/glapi.c
+++ b/glx/glapi.c
@@ -231,9 +231,6 @@ _glapi_get_dispatch(void)
 # endif
 #endif
 
-#if !defined(DISPATCH_FUNCTION_SIZE)  !defined(XFree86Server)  
!defined(XGLServer)
-# define NEED_FUNCTION_POINTER
-#endif
 
 /* The code in this file is auto-generated with Python */
 #include glprocs.h
@@ -272,46 +269,6 @@ get_static_proc_offset(const char *funcName)
 }
 
 
-#if !defined(XFree86Server)  !defined(XGLServer)
-#ifdef USE_X86_ASM
-
-#if defined( GLX_USE_TLS )
-extern   GLubyte gl_dispatch_functions_start[];
-extern   GLubyte gl_dispatch_functions_end[];
-#else
-extern const GLubyte gl_dispatch_functions_start[];
-#endif
-
-#endif /* USE_X86_ASM */
-
-
-/**
- * Return dispatch function address for the named static (built-in) function.
- * Return NULL if function not found.
- */
-static _glapi_proc
-get_static_proc_address(const char *funcName)
-{
-   const glprocs_table_t * const f = find_entry( funcName );
-   if (f) {
-#if defined(DISPATCH_FUNCTION_SIZE)  defined(GLX_INDIRECT_RENDERING)
-  return (f-Address == NULL)
-? (_glapi_proc) (gl_dispatch_functions_start
- + (DISPATCH_FUNCTION_SIZE * f-Offset))
- : f-Address;
-#elif defined(DISPATCH_FUNCTION_SIZE)
-  return (_glapi_proc) (gl_dispatch_functions_start 
-+ (DISPATCH_FUNCTION_SIZE * f-Offset));
-#else
-  return f-Address;
-#endif
-   }
-   else {
-  return NULL;
-   }
-}
-
-#endif /* !defined(XFree86Server)  !defined(XGLServer) */
 
 /**
  * Extension function management.
-- 
1.7.3.5

___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: [PATCH 02/11] glx: unifdef SOLARIS_THREADS

2011-03-03 Thread Alan Coopersmith
On 03/ 3/11 11:07 AM, Adam Jackson wrote:
 Solaris 7 and older are not supported; Solaris 8 and later have (and
 use) pthreads.
 
 Signed-off-by: Adam Jackson a...@redhat.com

Acked-by: Alan Coopersmith alan.coopersm...@oracle.com

-- 
-Alan Coopersmith-alan.coopersm...@oracle.com
 Oracle Solaris Platform Engineering: X Window System

___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: Resend: [PATCH xev] Show RandR events.

2011-03-03 Thread Aaron Plattner
On Wed, Feb 16, 2011 at 04:00:25AM -0800, Michael Thayer wrote:
 Signed-off-by: Michael Thayer michael.tha...@oracle.com
 ---
 [Resending this as there were no responses the first time, but I don't
 know whether it was due to lack of interest or whether it just went down
 in the flood.]
 
 I think the subject line says it all.  I was wanting to see what RandR events
 clients were getting and saw that this was on the X.Org todo list.
 
  configure.ac |2 +-
  xev.c|  214 
 ++
  2 files changed, 215 insertions(+), 1 deletions(-)

[...]

 diff --git a/xev.c b/xev.c
 index c053171..667dc63 100644
 --- a/xev.c
 +++ b/xev.c

[...]

 @@ -935,6 +1124,20 @@ main (int argc, char **argv)
  }
  }
  
 +have_rr = XRRQueryExtension (dpy, rr_event_base, rr_error_base);
 +if (have_rr) {
 +int rr_major, rr_minor;
 +
 +if (XRRQueryVersion (dpy, rr_major, rr_minor)) {
 +int mask = RRScreenChangeNotifyMask;
 +
 +if (rr_major = 1  rr_minor = 2)

This check seems wrong, since it will include these event masks for RandR
version 2.2 but not 2.1 if we ever have a RandR 2.

 +mask |= RRCrtcChangeNotifyMask | RROutputChangeNotifyMask |
 +RROutputPropertyNotifyMask;
 +XRRSelectInput (dpy, w, mask);
 +}
 +}
 +
  for (done = 0; !done; ) {
   XEvent event;
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: [PATCH 01/11] glx: Remove unused _glapi_get_proc_offset and friends

2011-03-03 Thread Julien Cristau
On Thu, Mar  3, 2011 at 14:07:15 -0500, Adam Jackson wrote:

 Signed-off-by: Adam Jackson a...@redhat.com
 ---
  glx/glapi.c |  107 
 ---
  glx/glapi.h |   19 --
  2 files changed, 0 insertions(+), 126 deletions(-)
 
Reviewed-by: Julien Cristau jcris...@debian.org

Cheers,
Julien
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: [PATCH 03/11] glx: unifdef USE_XTHREADS

2011-03-03 Thread Julien Cristau
On Thu, Mar  3, 2011 at 14:07:17 -0500, Adam Jackson wrote:

 xthreads is an ancient wrapper around a half dozen or so common thread
 APIs, including pthreads.  Just use pthreads directly if you have it; if
 you don't, get with the times.
 
 Signed-off-by: Adam Jackson a...@redhat.com
 ---
  glx/glthread.c |   51 ---
  glx/glthread.h |   46 +-
  2 files changed, 1 insertions(+), 96 deletions(-)
 
Reviewed-by: Julien Cristau jcris...@debian.org

Cheers,
Julien
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: [PATCH 05/11] glx: Simplify _glapi_check_multithread

2011-03-03 Thread Julien Cristau
On Thu, Mar  3, 2011 at 14:07:19 -0500, Adam Jackson wrote:

 We can guarantee that the X server does not call DRI driver services
 from multiple threads, so _glapi_check_multithread need never do
 anything special.  As a result, ThreadSafe is always false, so remove it
 and simplify expressions where it appeared to match.
 
 Signed-off-by: Adam Jackson a...@redhat.com
 ---
  glx/glapi.c |   49 -
  1 files changed, 4 insertions(+), 45 deletions(-)
 
Reviewed-by: Julien Cristau jcris...@debian.org

Cheers,
Julien
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: [PATCH 06/11] glx: Remove unused _glapi_get_proc_name

2011-03-03 Thread Julien Cristau
On Thu, Mar  3, 2011 at 14:07:20 -0500, Adam Jackson wrote:

 Signed-off-by: Adam Jackson a...@redhat.com
 ---
  glx/glapi.c |   49 -
  glx/glapi.h |3 ---
  2 files changed, 0 insertions(+), 52 deletions(-)
 
Reviewed-by: Julien Cristau jcris...@debian.org

Cheers,
Julien
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: [PATCH 09/11] glx: Lobotomize _glapi_get_proc_address

2011-03-03 Thread Julien Cristau
On Thu, Mar  3, 2011 at 14:07:23 -0500, Adam Jackson wrote:

 This isn't a meaningful thing in the indirect glx loader, so just warn
 if it ever happens and move on.
 
 Signed-off-by: Adam Jackson a...@redhat.com
 ---
  glx/glapi.c |   39 ++-
  1 files changed, 6 insertions(+), 33 deletions(-)
 
 diff --git a/glx/glapi.c b/glx/glapi.c
 index a706438..de5e7ea 100644
 --- a/glx/glapi.c
 +++ b/glx/glapi.c
 @@ -54,6 +54,7 @@
  
  #include dix-config.h
  #include X11/Xfuncproto.h
 +#include os.h
  #define PUBLIC _X_EXPORT
  
  #else
 @@ -713,43 +714,15 @@ _glapi_add_dispatch( const char * const * 
 function_names,
 return offset;
  }
  
 -/**
 - * Return pointer to the named function.  If the function name isn't found
 - * in the name of static functions, try generating a new API entrypoint on
 - * the fly with assembly language.
 +/*
 + * glXGetProcAddress doesn't exist in the protocol, the drivers never call
 + * this themselves, and neither does the server.  warn if it happens though.
   */
  _glapi_proc
  _glapi_get_proc_address(const char *funcName)
  {

the function isn't _X_EXPORT, so it's not even possible to call it,
right?

Cheers,
Julien
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: [PATCH 10/11] glx: Update some glapi comments

2011-03-03 Thread Julien Cristau
On Thu, Mar  3, 2011 at 14:07:24 -0500, Adam Jackson wrote:

 Signed-off-by: Adam Jackson a...@redhat.com
 ---
  glx/glapi.c |   38 ++
  1 files changed, 6 insertions(+), 32 deletions(-)
 
Reviewed-by: Julien Cristau jcris...@debian.org

Cheers,
Julien
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: Resend: [PATCH xev] Show RandR events.

2011-03-03 Thread Michael Thayer
On Thu, 2011-03-03 at 11:37 -0800, Aaron Plattner wrote:
 On Wed, Feb 16, 2011 at 04:00:25AM -0800, Michael Thayer wrote:
  +if (rr_major = 1  rr_minor = 2)
 
 This check seems wrong, since it will include these event masks for RandR
 version 2.2 but not 2.1 if we ever have a RandR 2.
Fixed below.

Signed-off-by: Michael Thayer michael.tha...@oracle.com
---

I think the subject line says it all.  I was wanting to see what RandR events
clients were getting and saw that this was on the X.Org todo list.

 configure.ac |2 +-
 xev.c|  215
++
 2 files changed, 216 insertions(+), 1 deletions(-)

diff --git a/configure.ac b/configure.ac
index bc31f6c..1945711 100644
--- a/configure.ac
+++ b/configure.ac
@@ -36,7 +36,7 @@ XORG_MACROS_VERSION(1.8)
 XORG_DEFAULT_OPTIONS
 
 # Checks for pkg-config packages
-PKG_CHECK_MODULES(XEV, x11)
+PKG_CHECK_MODULES(XEV, xrandr = 1.2 xrender x11)
 
 AC_CONFIG_FILES([
Makefile
diff --git a/xev.c b/xev.c
index c053171..23abe74 100644
--- a/xev.c
+++ b/xev.c
@@ -40,6 +40,7 @@ from the X Consortium.
 #include X11/Xlib.h
 #include X11/Xutil.h
 #include X11/Xproto.h
+#include X11/extensions/Xrandr.h
 
 #define INNER_WINDOW_WIDTH 50
 #define INNER_WINDOW_HEIGHT 50
@@ -71,6 +72,9 @@ XIC xic = NULL;
 Atom wm_delete_window;
 Atom wm_protocols;
 
+Bool have_rr;
+int rr_event_base, rr_error_base;
+
 static void
 prologue (XEvent *eventp, char *event_name)
 {
@@ -620,6 +624,191 @@ do_MappingNotify (XEvent *eventp)
 XRefreshKeyboardMapping(e);
 }
 
+static void
+print_SubPixelOrder (SubpixelOrder subpixel_order)
+{
+switch (subpixel_order) {
+  case SubPixelUnknown:printf (SubPixelUnknown); return;
+  case SubPixelHorizontalRGB:  printf (SubPixelHorizontalRGB);
return;
+  case SubPixelHorizontalBGR:  printf (SubPixelHorizontalBGR);
return;
+  case SubPixelVerticalRGB:printf (SubPixelVerticalRGB);
return;
+  case SubPixelVerticalBGR:printf (SubPixelVerticalBGR);
return;
+  case SubPixelNone:   printf (SubPixelNone); return;
+  default: printf (%d, subpixel_order);
+}
+}
+
+static void
+print_Rotation (Rotation rotation)
+{
+if (rotation  RR_Rotate_0)
+printf (RR_Rotate_0);
+else if (rotation  RR_Rotate_90)
+printf (RR_Rotate_90);
+else if (rotation  RR_Rotate_180)
+printf (RR_Rotate_180);
+else if (rotation  RR_Rotate_270)
+printf (RR_Rotate_270);
+else {
+printf (%d, rotation);
+return;
+}
+if (rotation  RR_Reflect_X)
+printf (, RR_Reflect_X);
+if (rotation  RR_Reflect_Y)
+printf (, RR_Reflect_Y);
+}
+
+static void
+print_Connection (Connection connection)
+{
+switch (connection) {
+  case RR_Connected:  printf (RR_Connected); return;
+  case RR_Disconnected:   printf (RR_Disconnected); return;
+  case RR_UnknownConnection:  printf (RR_UnknownConnection);
return;
+  default:printf (%d, connection);
+}
+}
+
+static void
+do_RRScreenChangeNotify (XEvent *eventp)
+{
+XRRScreenChangeNotifyEvent *e = (XRRScreenChangeNotifyEvent *)
eventp;
+
+XRRUpdateConfiguration (eventp);
+printf (root 0x%lx, timestamp %lu, config_timestamp %lu\n,
+e-root, e-timestamp, e-config_timestamp);
+printf (size_index %hu, e-size_index);
+printf (, subpixel_order );
+print_SubPixelOrder (e-subpixel_order);
+printf (\nrotation );
+print_Rotation (e-rotation);
+printf(\nwidth %d, height %d, mwidth %d, mheight %d\n,
+   e-width, e-height, e-mwidth, e-mheight);
+}
+
+static void
+do_RRNotify_OutputChange (XEvent *eventp, XRRScreenResources
*screen_resources)
+{
+XRROutputChangeNotifyEvent *e = (XRROutputChangeNotifyEvent *)
eventp;
+XRROutputInfo *output_info = NULL;
+XRRModeInfo *mode_info = NULL;
+
+if (screen_resources) {
+int i;
+
+output_info = XRRGetOutputInfo (dpy, screen_resources,
e-output);
+for (i = 0; i  screen_resources-nmode; i++)
+if (screen_resources-modes[i].id == e-mode) {
+mode_info = screen_resources-modes[i]; break;
+}
+}
+printf (subtype XRROutputChangeNotifyEvent\n);
+if (output_info)
+printf (output %s, , output_info-name);
+else
+printf (output %lu, , e-output);
+if (e-crtc)
+printf(crtc %lu, , e-crtc);
+else
+printf(crtc None, );
+if (mode_info)
+printf (mode %s (%dx%d)\n, mode_info-name, mode_info-width,
+mode_info-height);
+else if (e-mode)
+printf (mode %lu\n, e-mode);
+else
+printf(mode None\n);
+printf (rotation );
+print_Rotation (e-rotation);
+printf (\nconnection );
+print_Connection (e-connection);
+printf (, subpixel_order );
+print_SubPixelOrder (e-subpixel_order);
+

Re: Resend: [PATCH xev] Show RandR events.

2011-03-03 Thread Aaron Plattner
On Thu, Mar 03, 2011 at 01:35:15PM -0800, Michael Thayer wrote:
 On Thu, 2011-03-03 at 11:37 -0800, Aaron Plattner wrote:
  On Wed, Feb 16, 2011 at 04:00:25AM -0800, Michael Thayer wrote:
   +if (rr_major = 1  rr_minor = 2)
  
  This check seems wrong, since it will include these event masks for RandR
  version 2.2 but not 2.1 if we ever have a RandR 2.
 Fixed below.
 
 Signed-off-by: Michael Thayer michael.tha...@oracle.com
 ---
 
 I think the subject line says it all.  I was wanting to see what RandR events
 clients were getting and saw that this was on the X.Org todo list.
 
  configure.ac |2 +-
  xev.c|  215 
 ++
  2 files changed, 216 insertions(+), 1 deletions(-)

The updated change looks good to me.

Reviewed-by: Aaron Plattner aplatt...@nvidia.com
Tested-by: Aaron Plattner aplatt...@nvidia.com

Do you have a freedesktop.org
account, or would you like me to submit this for you?

-- Aaron
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: Resend: [PATCH xev] Show RandR events.

2011-03-03 Thread Michael Thayer
On Thu, 2011-03-03 at 13:54 -0800, Aaron Plattner wrote:
 The updated change looks good to me.
 
 Reviewed-by: Aaron Plattner aplatt...@nvidia.com
 Tested-by: Aaron Plattner aplatt...@nvidia.com
 
 Do you have a freedesktop.org
 account, or would you like me to submit this for you?
Thanks for the review.  I don't have an fd.o account, so it would be
great if you could submit it.

Regards,

Michael
-- 
ORACLE Deutschland B.V.  Co. KG   Michael Thayer
Werkstrasse 24 VirtualBox engineer
71384 Weinstadt, Germany   mailto:michael.tha...@oracle.com

Hauptverwaltung: Riesstr. 25, D-80992 München
Registergericht: Amtsgericht München, HRA 95603

Komplementärin: ORACLE Deutschland Verwaltung B.V.
Rijnzathe 6, 3454PV De Meern, Niederlande
Handelsregister der Handelskammer Midden-Niederlande, Nr. 30143697
Geschäftsführer: Jürgen Kunz, Marcel van de Molen, Alexander van der Ven 

___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Re: [PATCH v4 xserver 0/3] Client ID tracking

2011-03-03 Thread Keith Packard
On Thu, 23 Dec 2010 14:11:37 +0200, Rami Ylimäki rami.ylim...@vincit.fi wrote:

 Rami Ylimäki (3):
   config: Fix linking order of Xnest libraries.
   os: Add facilities for client ID tracking.
   Xext: Use general OS functions to determine client command string in
 SELinux.

Merged.
   f3d19c0..8e4c3ce  master - master

-- 
keith.pack...@intel.com


pgpGSi5pq3r43.pgp
Description: PGP signature
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Re: [PULL] Server build fixes

2011-03-03 Thread Keith Packard
On Sat, 26 Feb 2011 11:01:38 -0800, Dan Nicholson dbn.li...@gmail.com wrote:

 It should get run every time config.status is run, which is every time
 configure runs. So, sdksyms.dep should get updated exactly when the
 Makefiles do. I do agree that sdksyms.c shouldn't be shipped in the
 tarball, but I think it should work anyway (patch attached).

Do you have a 'final' patch that you'd like me to merge at this point?

-- 
keith.pack...@intel.com


pgpAUjLhUHIuO.pgp
Description: PGP signature
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Re: Resend: [PATCH xev] Show RandR events.

2011-03-03 Thread Aaron Plattner
On Thu, Mar 03, 2011 at 02:08:49PM -0800, Michael Thayer wrote:
 On Thu, 2011-03-03 at 13:54 -0800, Aaron Plattner wrote:
  The updated change looks good to me.
 
  Reviewed-by: Aaron Plattner aplatt...@nvidia.com
  Tested-by: Aaron Plattner aplatt...@nvidia.com
 
  Do you have a freedesktop.org
  account, or would you like me to submit this for you?

 Thanks for the review.  I don't have an fd.o account, so it would be
 great if you could submit it.

Done.

To ssh://git.freedesktop.org/git/xorg/app/xev
   2e7b697..7965bc6  master - master
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: [PULL] Move trapezoids to pixman, delete RegionClipSpans()

2011-03-03 Thread Keith Packard
On Tue, 01 Mar 2011 14:08:13 +0100, Soeren Sandmann sandm...@cs.au.dk wrote:

 Søren Sandmann Pedersen (5):
   Require pixman 0.21.6
   Move miTrapezoids() into fb as fbTrapezoids()
   Move miTriangles to fb as fbTriangles()
   Implement fbAddTriangles() in terms of pixman_add_triangles()
   Delete RegionClipSpans()

Merged.
   8e4c3ce..3f41f4a  master - master

-- 
keith.pack...@intel.com


pgpGdeBApU3jf.pgp
Description: PGP signature
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Re: [PULL] Misc XQuartz changes for 1.11

2011-03-03 Thread Keith Packard
On Tue, 1 Mar 2011 20:07:11 -0800, Jeremy Huddleston jerem...@apple.com wrote:

 Jeremy Huddleston (6):
   XQuartz: RandR: Capture the display when switching modes with RandR
   XQuartz: RandR: Provide an alert box when entering a RandR mode for the 
 first time.
   XQuartz: RandR: Add RandR modes for the primary display in 
 multi-monitor configs
   Revert rootless: Remove ROOTLESS_WORKAROUND
   XQuartz: Don't use deprecated CoreGraphics API on SL and Lion
   XQuartz: pbproxy: Protect against possible collision between Cocoa and 
 X11 Cursor types

Merged.
   3f41f4a..0bc95d5  master - master

-- 
keith.pack...@intel.com


pgpfc8sh8IMLq.pgp
Description: PGP signature
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Re: [PULL] -next branch for 1.11

2011-03-03 Thread Keith Packard
On Tue, 1 Mar 2011 13:34:54 +1000, Peter Hutterer peter.hutte...@who-t.net 
wrote:

   git://people.freedesktop.org/~whot/xserver.git for-keith

Merged.
   0bc95d5..6c90e83  master - master

-- 
keith.pack...@intel.com


pgplFJTeohxnL.pgp
Description: PGP signature
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Re: Spinning in _XReply

2011-03-03 Thread Karl Tomlinson
On Thu, 24 Feb 2011 12:27:28 +1300, xm...@karlt.net wrote:

 Rami Ylimäki writes:

 On 02/22/2011 11:26 PM, xm...@karlt.net wrote:
 Although wrong, our code has been working well enough for us to get
 useful information.  If someone is able to point out a reason why
 this now works less successfully than previously, then that would
 bump up the priority at our end.

 By superficially looking at the Xlib code, the behavior in older
 Xlib version (1.3.3) is different depending on whether Xlib is
 configured --with-xcb or --without-xcb. When Xcb is disabled,
 error handler is called with display unlocked and _XReply seems to
 be prepared to handle requests from error handler. With Xcb, which
 is the default now with Xlib 1.4, the display remains locked
 during error handling and nested requests aren't allowed.

 It looks like the display locks are no-ops unless XInitThreads is
 called or when built with --enable-checked-locks.

 http://lists.x.org/archives/xorg-devel/2011-February/019533.html
 does seem to indicate another potential issue (breaking from the
 loop only when req == current).  I guess that hasn't bitten us
 because we don't return to the first _XReply.

That seems to have been the situation until
http://cgit.freedesktop.org/xorg/lib/libX11/commit/?id=933aee1d5c53b0cc7d608011a29188b594c8d70b

I see that we now spin even without XInitThreads.
That is version 1.3.4 --with-xcb.

I'm expecting to fix this as part of
https://bugzilla.mozilla.org/show_bug.cgi?id=576933
(Fall out from GDK not expecting input devices to disappear.)

I'm planning to open another connection to get the extension
codes.  Although there's no promise we'll get the right codes in
the future, it shouldn't hang.
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

[PATCH] configure.ac: bump version for 1.11 development

2011-03-03 Thread Julien Cristau
Signed-off-by: Julien Cristau jcris...@debian.org
---
 configure.ac |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/configure.ac b/configure.ac
index 8da6d21..681f9d9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,8 +26,8 @@ dnl
 dnl Process this file with autoconf to create configure.
 
 AC_PREREQ(2.57)
-AC_INIT([xorg-server], 1.10.0, 
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
-RELEASE_DATE=2011-2-25
+AC_INIT([xorg-server], 1.10.99.1, 
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
+RELEASE_DATE=unreleased
 AC_CONFIG_SRCDIR([Makefile.am])
 AM_INIT_AUTOMAKE([foreign dist-bzip2])
 AM_MAINTAINER_MODE
-- 
1.7.2.5

___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: RandR 1.4 restart

2011-03-03 Thread Soeren Sandmann
James Jones jajo...@nvidia.com writes:

 With a scheme like this, the Composite extension itself would become
 simply a way to support legacy applications since window redirection
 doesn't really mean anything for InputOnly windows.

 I would love to see the composite extension extended rather than
 replaced.

What I meant by simply a way to support legacy applications was just
that with the scheme described, if all applications were to magically be
ported over to the new way, there wouldn't be any need for Composite at
all, because there simply wouldn't be any InputOutput windows to
redirect.

 I think the API changes needed to implement the basics of this would
 be pretty minimal.

I believe the only new feature needed in the X server is a
client-visible refcount on Pictures, and this is only so that the
compositing manager can keep the pictures in the update requests around
without copying them.


Soren
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


auto generated glx code in X server

2011-03-03 Thread Dave Airlie
Hi guys,

I know this used to work, but it seems to be well busted now.

If you made glx changes in mesa you could just set XORG_BASE and run
make and it would regenerate all the files in the X server which
really are cryptic as all hell. Now when I do that stuff breaks all
over the place, missing include, glx code in X won't build anymore
etc.

Is this still supposed to work?

Dave.
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: [PATCH] configure.ac: bump version for 1.11 development

2011-03-03 Thread Keith Packard
On Fri,  4 Mar 2011 01:12:01 +0100, Julien Cristau jcris...@debian.org wrote:

 Signed-off-by: Julien Cristau jcris...@debian.org

Thanks for the reminder :-)

Merged.
   6c90e83..705f047  master - master

-- 
keith.pack...@intel.com


pgpv2UaEJUEVO.pgp
Description: PGP signature
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Re: [PULL] Server build fixes

2011-03-03 Thread Dan Nicholson
On Thu, Mar 3, 2011 at 2:10 PM, Keith Packard kei...@keithp.com wrote:
 On Sat, 26 Feb 2011 11:01:38 -0800, Dan Nicholson dbn.li...@gmail.com wrote:

 It should get run every time config.status is run, which is every time
 configure runs. So, sdksyms.dep should get updated exactly when the
 Makefiles do. I do agree that sdksyms.c shouldn't be shipped in the
 tarball, but I think it should work anyway (patch attached).

 Do you have a 'final' patch that you'd like me to merge at this point?

I think your original patch is the right way to go. sdksyms.dep _is_
needed as far as I can tell because we need sdksyms.c to depend on all
the headers. Say you add a new symbol in dix.h. That won't necessarily
mean that the *config.h files get rebuilt. However adding an explicit
dependency on *config.h means that you will definitely get sdksyms.c
regenerated after you run configure. That seems like a safe thing to
do. You can include my:

Reviewed-by: Dan Nicholson dbn.li...@gmail.com
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: [PULL] Server build fixes

2011-03-03 Thread Keith Packard
On Thu, 3 Mar 2011 20:42:55 -0800, Dan Nicholson dbn.li...@gmail.com wrote:

 I think your original patch is the right way to go.

Merged.
   705f047..628d16a  master - master


-- 
keith.pack...@intel.com


pgpXnnWjnLLDe.pgp
Description: PGP signature
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel