[PATCH xserver] glx: Allow arbitrary context attributes for direct contexts

Adam Jackson ajax at redhat.com
Thu Jul 27 20:02:33 UTC 2017


For direct contexts, most context attributes don't require any
particular awareness on the part of the server. Examples include
GLX_ARB_create_context_no_error and GLX_ARB_context_flush_control, where
all of the behavior change lives in the renderer; since that's on the
client side for a direct context, there's no reason for the X server to
validate the attribute.

The context attributes will still be validated on the client side, and
we still validate attributes for indirect contexts since the server
implementation might need to handle them. For example, the indirect
code might internally use ARB_context_flush_control for all contexts, in
which case it would need to manually emit glFlush when the client
switches between two indirect contexts that didn't request the no-flush
attribute.

Signed-off-by: Adam Jackson <ajax at redhat.com>
---
 glx/createcontext.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/glx/createcontext.c b/glx/createcontext.c
index c8b36ebb0..068b35fa7 100644
--- a/glx/createcontext.c
+++ b/glx/createcontext.c
@@ -207,7 +207,9 @@ __glXDisp_CreateContextAttribsARB(__GLXclientState * cl, GLbyte * pc)
 #endif
 
         default:
-            return BadValue;
+            if (!req->isDirect)
+                return BadValue;
+            break;
         }
     }
 
-- 
2.13.3



More information about the xorg-devel mailing list