<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">On 01/06/2014 20:49, Jeremy Huddleston
Sequoia wrote :<br>
</div>
<blockquote
cite="mid:75F0F826-2DCE-43A9-A364-0E65F9FBDCF3@freedesktop.org"
type="cite">
<pre wrap="">I'm trying to take a stab at adding core profile support to XQuartz. As a first step, I'm trying to add GLX_ARB_create_context and GLX_ARB_create_context_profile.
For now, I want to make sure that GLX_ARB_create_context and GLX_ARB_create_context_profile are only advertised as being available when in a testing mode (so as to not enable breakage by default while working on these changes). To this end, I'm the following to applegl_create_screen:</pre>
</blockquote>
<br>
<blockquote
cite="mid:75F0F826-2DCE-43A9-A364-0E65F9FBDCF3@freedesktop.org"
type="cite">
<pre wrap="">
Unfortunately, it seems that GLX_ARB_create_context and GLX_ARB_create_context_profile are always advertised on current mesa. </pre>
</blockquote>
It looks like __glXCalculateUsableExtensions is always called with
"display_is_direct_capable = False" for GLX_USE_APPLEGL.<br>
<br>
Thus the following applies:<br>
" If the display is not capable of direct rendering, then the
extension<br>
* is enabled if and only if the client-side library and the
server<br>
* support it. "<br>
<br>
This seems conformant to the spec:<br>
<br>
"
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-1">
<pre style="color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; white-space: pre-wrap;">Direct rendering is requested if <direct> is True, and indirect
rendering if <direct> is False. If <direct> is True, the
implementation may nonetheless create an indirect rendering context
if any of the following conditions hold:
* The implementation does not support direct rendering.
* <display> is not a local X server.
* Implementation-dependent limits on the number of direct
rendering contexts that can be supported simultaneously are
exceeded.
</pre>
"<br>
<br>
In other words: you server advertises the extension and direct
rendering is not supported. The extension must be advertised, and
create an indirect context in all cases.<br>
<br>
Your glxinfo says that direct rendering is supported. I don't know
XQuartz, but perhaps __glXCalculateUsableExtensions should not get
called anymore with "display_is_direct_capable = False" for
GLX_USE_APPLEGL ?<br>
<br>
Axel Davy<br>
</body>
</html>