Adam Jackson <[email protected]> writes: > On Fri, 2017-07-28 at 09:56 -0700, Eric Anholt wrote: >> Adam Jackson <[email protected]> writes: >> >> > 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 <[email protected]> >> >> Does the client side even need to send the client-side attributes for >> direct contexts? > > It would probably be legal for it to not? The ARB_create_context spec, > discussing why direct/indirect is a parameter not an attribute, says > "... different paths to the server may be taken for creating direct > contexts, and parsing the attribute list in the client should not be > required". One could read that to mean that creating the server-side of > a direct context needn't be exactly like creating an indirect context, > that you could send only those attributes the server needs to be aware > of (although doing this would mean parsing the attribute list in the > client, which the issue is otherwise trying to avoid...) > > However, none of the GLX extensions that define new context attributes > seem to define whether that attrib is client or server state, and > Mesa's glXCreateContextAttribsARB does not edit the attribute list > before sending it to the server. It seems simpler to me for the server > ignore unknown attribs for direct contexts than for Mesa to grow a list > of attributes to censor, because e.g. ARB_create_context_no_error would > then be exactly as easy to wire up for direct GLX as for EGL.
My thinking was: if we do it client side, then new Mesa works even with old X. That said, the fix here is trivial, so let's do it anyway. Reviewed-by: Eric Anholt <[email protected]>
signature.asc
Description: PGP signature
_______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
