Browse Source

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>
tags/18.0-branchpoint
Neil Roberts 11 years ago
parent
commit
6ce9006d76
2 changed files with 21 additions and 1 deletions
  1. 19
    1
      src/mesa/drivers/dri/i965/brw_context.c
  2. 2
    0
      src/mesa/drivers/dri/i965/intel_screen.c

+ 19
- 1
src/mesa/drivers/dri/i965/brw_context.c 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);


+ 2
- 0
src/mesa/drivers/dri/i965/intel_screen.c 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

Loading…
Cancel
Save