[Mesa-dev] [PATCH 6/9] glx: Implement ARB_context_flush_control in drisw too

Adam Jackson ajax at redhat.com
Tue May 12 08:54:47 PDT 2015


Signed-off-by: Adam Jackson <ajax at redhat.com>
---
 src/glx/drisw_glx.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c
index a07feb9..c2f8c4b 100644
--- a/src/glx/drisw_glx.c
+++ b/src/glx/drisw_glx.c
@@ -410,7 +410,7 @@ drisw_create_context_attribs(struct glx_screen *base,
    unsigned api;
    int reset;
    int release;
-   uint32_t ctx_attribs[2 * 4];
+   uint32_t ctx_attribs[2 * 5];
    unsigned num_ctx_attribs = 0;
 
    if (!psc->base.driScreen)
@@ -434,7 +434,8 @@ drisw_create_context_attribs(struct glx_screen *base,
    if (reset != __DRI_CTX_RESET_NO_NOTIFICATION)
       return NULL;
 
-   if (release != __DRI_CTX_RELEASE_BEHAVIOR_FLUSH)
+   if (release != __DRI_CTX_RELEASE_BEHAVIOR_FLUSH &&
+       release != __DRI_CTX_RELEASE_BEHAVIOR_NONE)
       return NULL;
 
    if (shareList) {
@@ -455,6 +456,10 @@ drisw_create_context_attribs(struct glx_screen *base,
    ctx_attribs[num_ctx_attribs++] = major_ver;
    ctx_attribs[num_ctx_attribs++] = __DRI_CTX_ATTRIB_MINOR_VERSION;
    ctx_attribs[num_ctx_attribs++] = minor_ver;
+   if (release != __DRI_CTX_RELEASE_BEHAVIOR_FLUSH) {
+       ctx_attribs[num_ctx_attribs++] = __DRI_CTX_ATTRIB_RELEASE_BEHAVIOR;
+       ctx_attribs[num_ctx_attribs++] = release;
+   }
 
    if (flags != 0) {
       ctx_attribs[num_ctx_attribs++] = __DRI_CTX_ATTRIB_FLAGS;
@@ -641,6 +646,10 @@ driswBindExtensions(struct drisw_screen *psc, const __DRIextension **extensions)
          psc->rendererQuery = (__DRI2rendererQueryExtension *) extensions[i];
          __glXEnableDirectExtension(&psc->base, "GLX_MESA_query_renderer");
       }
+      if (strcmp(extensions[i]->name, __DRI2_FLUSH_CONTROL) == 0) {
+	  __glXEnableDirectExtension(&psc->base,
+				     "GLX_ARB_context_flush_control");
+      }
    }
 }
 
-- 
2.4.0



More information about the mesa-dev mailing list