i965: Enable flush control

Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Neil Roberts <neil@linux.intel.com>
This commit is contained in:
Neil Roberts 2014-10-01 20:00:50 +01:00 committed by Adam Jackson
parent 791d06b23b
commit 6ce9006d76
2 changed files with 21 additions and 1 deletions

View File

@ -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);

View File

@ -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