xserver: Branch 'glucose-2'

Alan Hourihane alanh at kemper.freedesktop.org
Mon Sep 10 14:59:38 PDT 2007


 glucose/glucose.c      |   15 +++++++++++++--
 glucose/glucose_info.c |   22 ++++++++++++++++++++++
 2 files changed, 35 insertions(+), 2 deletions(-)

New commits:
diff-tree 6728f372d6ef9d3867da1d417723de91f22ef901 (from da2c4faa9f09e2aba358f803070f687bed76da43)
Author: Alan Hourihane <alanh at localhost.(none)>
Date:   Mon Sep 10 23:59:02 2007 +0100

    Fix some error paths

diff --git a/glucose/glucose.c b/glucose/glucose.c
index b21ef59..9a3ea89 100644
--- a/glucose/glucose.c
+++ b/glucose/glucose.c
@@ -154,6 +154,7 @@ glucoseCreateScreenResources(ScreenPtr p
     __glXleaveServer();
     err = pScreenPriv->rootContext->makeCurrent(pScreenPriv->rootContext);
     if (!err) {
+    	__glXenterServer();
   	xf86DrvMsg(pScreen->myNum, X_WARNING, 
 		  "Glucose makeCurrent failed, err is %d\n",err);
 	pScreenPriv->rootContext->destroy(pScreenPriv->rootContext);
@@ -171,6 +172,7 @@ glucoseCreateScreenResources(ScreenPtr p
                                                     pPixmap->drawable.height);
 
     if (!drawable) {
+    	__glXenterServer();
         xf86DrvMsg(pScreen->myNum, X_ERROR,
 		  "Glucose could not create glitz drawable, not initializing.\n");
 
@@ -178,7 +180,6 @@ glucoseCreateScreenResources(ScreenPtr p
 	pScreenPriv->rootContext = NULL;
 	pScreenPriv->rootDrawable->destroy(pScreenPriv->rootDrawable);
 	pScreenPriv->rootDrawable = NULL;
-    	__glXenterServer();
 	return FALSE;
     }
 
@@ -189,7 +190,17 @@ glucoseCreateScreenResources(ScreenPtr p
     xf86DrvMsg(pScreen->myNum, X_INFO,
 		  "Glucose reports GLitz features as 0x%lx\n",xglScreenPriv->features);
 
-    glucoseFinishScreenInit(pScreen);
+    if (!glucoseFinishScreenInit(pScreen)) {
+    	__glXenterServer();
+        xf86DrvMsg(pScreen->myNum, X_ERROR,
+		  "Glucose could not initialize.\n");
+	pScreenPriv->rootContext->destroy(pScreenPriv->rootContext);
+	pScreenPriv->rootContext = NULL;
+	pScreenPriv->rootDrawable->destroy(pScreenPriv->rootDrawable);
+	pScreenPriv->rootDrawable = NULL;
+	return FALSE;
+    }
+
     __glXenterServer();
 
     /* now fixup root pixmap */
diff --git a/glucose/glucose_info.c b/glucose/glucose_info.c
index 5acbf4e..096dfda 100644
--- a/glucose/glucose_info.c
+++ b/glucose/glucose_info.c
@@ -489,48 +489,56 @@ static void
 glucoseGenPrograms( GLsizei n, GLuint *ids )
 {
 	CALL_GenProgramsNV( GET_DISPATCH(), (n, ids) );
+	glucoseFailure("GenProgramsNV");
 }
 
 static void
 glucoseDeletePrograms( GLsizei n, const GLuint *ids )
 {
 	CALL_DeleteProgramsNV( GET_DISPATCH(), (n, ids) );
+	glucoseFailure("DeleteProgramsNV");
 }
 
 static void
 glucoseProgramString( GLenum target, GLenum format, GLsizei len, const GLubyte *program )
 {
 	CALL_ProgramStringARB( GET_DISPATCH(), (target, format, len, program) );
+	glucoseFailure("ProgramStringARB");
 }
 
 static void
 glucoseBindProgram( GLenum target, GLuint id )
 {
 	CALL_BindProgramNV( GET_DISPATCH(), (target, id) );
+	glucoseFailure("BindProgramNV");
 }
 
 static void
 glucoseProgramLocalParameter4fv( GLenum target, GLuint id, const GLfloat *params )
 {
 	CALL_ProgramLocalParameter4fvARB( GET_DISPATCH(), (target, id, params) );
+	glucoseFailure("BindProgramNV");
 }
 
 static void
 glucoseGetProgramiv( GLuint program, GLenum pname, GLint *params )
 {
 	CALL_GetProgramiv( GET_DISPATCH(), (program, pname, params) );
+	glucoseFailure("GetProgramiv");
 }
 
 static void
 glucoseGenBuffers( GLsizei n, GLuint *buffers )
 {
 	CALL_GenBuffersARB( GET_DISPATCH(), (n, buffers) );
+	glucoseFailure("GenBuffersARB");
 }
 
 static void
 glucoseDeleteBuffers( GLsizei n, const GLuint *buffers )
 {
 	CALL_DeleteBuffersARB( GET_DISPATCH(), (n, buffers) );
+	glucoseFailure("DeleteBuffersARB");
 }
 
 static void
@@ -544,18 +552,21 @@ static void
 glucoseBufferData( GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage)
 {
 	CALL_BufferDataARB( GET_DISPATCH(), (target, size, data, usage) );
+	glucoseFailure("BufferDataARB");
 }
 
 static void
 glucoseBufferSubData( GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data )
 {
 	CALL_BufferSubDataARB( GET_DISPATCH(), (target, offset, size, data) );
+	glucoseFailure("BufferSubDataARB");
 }
 
 static void
 glucoseGetBufferSubData( GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data)
 {
 	CALL_GetBufferSubDataARB( GET_DISPATCH(), (target, offset, size, data) );
+	glucoseFailure("GetBufferSubDataARB");
 }
 
 static void
@@ -576,66 +587,77 @@ static void
 glucoseGenFramebuffers(GLsizei n, GLuint *framebuffers)
 {
 	CALL_GenFramebuffersEXT( GET_DISPATCH(), (n, framebuffers) );
+	glucoseFailure("GenFramebuffersEXT");
 }
 
 static void
 glucoseDeleteFramebuffers(GLsizei n, const GLuint *framebuffers)
 {
 	CALL_DeleteFramebuffersEXT( GET_DISPATCH(), (n, framebuffers) );
+	glucoseFailure("DeleteFramebuffersEXT");
 }
 
 static void
 glucoseBindFramebuffer(GLenum target, GLuint framebuffer)
 {
 	CALL_BindFramebufferEXT( GET_DISPATCH(), (target, framebuffer) );
+	glucoseFailure("BindFramebufferEXT");
 }
 
 static void
 glucoseFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
 {
 	CALL_FramebufferRenderbufferEXT( GET_DISPATCH(), (target, attachment, renderbuffertarget, renderbuffer) );
+	glucoseFailure("FramebufferRenderbufferEXT");
 }
 
 static void
 glucoseFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
 {
 	CALL_FramebufferTexture2DEXT( GET_DISPATCH(), (target, attachment, textarget, texture, level) );
+	glucoseFailure("FramebufferTexture2DEXT");
 }
 
 static void
 glucoseCheckFramebufferStatus(GLenum target)
 {
 	CALL_CheckFramebufferStatusEXT( GET_DISPATCH(), (target) );
+	glucoseFailure("CheckFramebufferStatusEXT");
 }
 
 static void
 glucoseGenRenderbuffers(GLsizei n, GLuint *renderbuffers)
 {
 	CALL_GenRenderbuffersEXT( GET_DISPATCH(), (n, renderbuffers) );
+	glucoseFailure("GenRenderbuffersEXT");
 }
 
 static void
 glucoseDeleteRenderbuffers(GLsizei n, const GLuint *renderbuffers)
 {
 	CALL_DeleteRenderbuffersEXT( GET_DISPATCH(), (n, renderbuffers) );
+	glucoseFailure("DeleteRenderbuffersEXT");
 }
 
 static void
 glucoseBindRenderbuffer(GLenum target, GLuint renderbuffer)
 {
 	CALL_BindRenderbufferEXT( GET_DISPATCH(), (target, renderbuffer) );
+	glucoseFailure("BindRenderbufferEXT");
 }
 
 static void
 glucoseRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
 {
 	CALL_RenderbufferStorageEXT( GET_DISPATCH(), (target, internalformat, width, height) );
+	glucoseFailure("RenderbufferStorageEXT");
 }
 
 static void
 glucoseGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint *params)
 {
 	CALL_GetRenderbufferParameterivEXT( GET_DISPATCH(), (target, pname, params) );
+	glucoseFailure("GetRenderbufferParameterivEXT");
 }
 
 glitz_gl_proc_address_list_t _glitz_glucose_gl_proc_address = {


More information about the xorg-commit mailing list