summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeil Roberts <neil@linux.intel.com>2017-11-02 15:01:48 -0400
committerDylan Baker <dylan@pnwbakers.com>2017-11-02 15:09:17 -0700
commit86e77d20ae6be18ba2bd6f900a6ceacdf2d20d0d (patch)
treebc68063c1f93c5cd3fb8b984feb57e4efca44f52
parent7ca75fbafd4d0b926b2c8db41650e44912309bcb (diff)
i965: Enable flush controlpatches-for-ajax
Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Neil Roberts <neil@linux.intel.com>
-rw-r--r--src/mesa/drivers/dri/i965/brw_context.c20
-rw-r--r--src/mesa/drivers/dri/i965/intel_screen.c2
2 files changed, 21 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c
index 60584e2744..8181cc376d 100644
--- a/src/mesa/drivers/dri/i965/brw_context.c
+++ b/src/mesa/drivers/dri/i965/brw_context.c
@@ -850,7 +850,9 @@ brwCreateContext(gl_api api,
return false;
}
- if (ctx_config->attribute_mask & ~__DRIVER_CONTEXT_ATTRIB_RESET_STRATEGY) {
+ if (ctx_config->attribute_mask &
+ ~(__DRIVER_CONTEXT_ATTRIB_RESET_STRATEGY |
+ __DRIVER_CONTEXT_ATTRIB_RELEASE_BEHAVIOR)) {
*dri_ctx_error = __DRI_CTX_ERROR_UNKNOWN_ATTRIBUTE;
return false;
}
@@ -859,6 +861,20 @@ brwCreateContext(gl_api api,
((ctx_config->attribute_mask & __DRIVER_CONTEXT_ATTRIB_RESET_STRATEGY) &&
ctx_config->reset_strategy != __DRI_CTX_RESET_NO_NOTIFICATION);
+ GLenum release_behavior = GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH;
+ if (ctx_config->attribute_mask & __DRIVER_CONTEXT_ATTRIB_RELEASE_BEHAVIOR) {
+ switch (ctx_config->release_behavior) {
+ case __DRI_CTX_RELEASE_BEHAVIOR_NONE:
+ release_behavior = GL_NONE;
+ break;
+ case __DRI_CTX_RELEASE_BEHAVIOR_FLUSH:
+ break;
+ default:
+ *dri_ctx_error = __DRI_CTX_ERROR_UNKNOWN_ATTRIBUTE;
+ return false;
+ }
+ }
+
struct brw_context *brw = rzalloc(NULL, struct brw_context);
if (!brw) {
fprintf(stderr, "%s: failed to alloc context\n", __func__);
@@ -1030,6 +1046,8 @@ brwCreateContext(gl_api api,
ctx->Const.RobustAccess = GL_TRUE;
}
+ ctx->Const.ContextReleaseBehavior = release_behavior;
+
if (INTEL_DEBUG & DEBUG_SHADER_TIME)
brw_init_shader_time(brw);
diff --git a/src/mesa/drivers/dri/i965/intel_screen.c b/src/mesa/drivers/dri/i965/intel_screen.c
index 10064c3236..f628effc5b 100644
--- a/src/mesa/drivers/dri/i965/intel_screen.c
+++ b/src/mesa/drivers/dri/i965/intel_screen.c
@@ -1431,6 +1431,7 @@ static const __DRIextension *screenExtensions[] = {
&intelRendererQueryExtension.base,
&dri2ConfigQueryExtension.base,
&dri2NoErrorExtension.base,
+ &dri2FlushControlExtension.base,
NULL
};
@@ -1441,6 +1442,7 @@ static const __DRIextension *intelRobustScreenExtensions[] = {
&intelImageExtension.base,
&intelRendererQueryExtension.base,
&dri2ConfigQueryExtension.base,
+ &dri2FlushControlExtension.base,
&dri2Robustness.base,
&dri2NoErrorExtension.base,
NULL