Re: [PATCH xf86-video-vmware] Remove unused variable.
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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.
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.
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.
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
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
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.
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()
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
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
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
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
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
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
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
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
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
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