Patches 7 & 8: Reviewed-by: Marek Olšák <marek.ol...@amd.com>
Marek On Tue, May 12, 2015 at 5:54 PM, Adam Jackson <a...@redhat.com> wrote: > This still doesn't do anything unless your driver exposes the flush > control extension. > > Signed-off-by: Adam Jackson <a...@redhat.com> > --- > src/gallium/include/state_tracker/st_api.h | 1 + > src/gallium/state_trackers/dri/dri_context.c | 7 ++++++- > src/mesa/state_tracker/st_manager.c | 3 +++ > 3 files changed, 10 insertions(+), 1 deletion(-) > > diff --git a/src/gallium/include/state_tracker/st_api.h > b/src/gallium/include/state_tracker/st_api.h > index 86fdc69..4e18f10 100644 > --- a/src/gallium/include/state_tracker/st_api.h > +++ b/src/gallium/include/state_tracker/st_api.h > @@ -89,6 +89,7 @@ enum st_api_feature > #define ST_CONTEXT_FLAG_DEBUG (1 << 0) > #define ST_CONTEXT_FLAG_FORWARD_COMPATIBLE (1 << 1) > #define ST_CONTEXT_FLAG_ROBUST_ACCESS (1 << 2) > +#define ST_CONTEXT_FLAG_RELEASE_NONE (1 << 3) > > /** > * Reasons that context creation might fail. > diff --git a/src/gallium/state_trackers/dri/dri_context.c > b/src/gallium/state_trackers/dri/dri_context.c > index f332ee9..3c0c1e7 100644 > --- a/src/gallium/state_trackers/dri/dri_context.c > +++ b/src/gallium/state_trackers/dri/dri_context.c > @@ -86,11 +86,16 @@ dri_create_context(gl_api api, const struct gl_config * > visual, > goto fail; > } > > - if (ctx_config->attribute_mask != 0) { > + if (ctx_config->attribute_mask & > + ~(__DRIVER_CONTEXT_ATTRIB_RELEASE_BEHAVIOR)) { > *error = __DRI_CTX_ERROR_UNKNOWN_ATTRIBUTE; > goto fail; > } > > + if ((ctx_config->attribute_mask & > __DRIVER_CONTEXT_ATTRIB_RELEASE_BEHAVIOR) > + && (ctx_config->release_behavior == __DRI_CTX_RELEASE_BEHAVIOR_NONE)) > + attribs.flags |= ST_CONTEXT_FLAG_RELEASE_NONE; > + > if (sharedContextPrivate) { > st_share = ((struct dri_context *)sharedContextPrivate)->st; > } > diff --git a/src/mesa/state_tracker/st_manager.c > b/src/mesa/state_tracker/st_manager.c > index 840f76a..c1987f3 100644 > --- a/src/mesa/state_tracker/st_manager.c > +++ b/src/mesa/state_tracker/st_manager.c > @@ -681,6 +681,9 @@ st_api_create_context(struct st_api *stapi, struct > st_manager *smapi, > if (attribs->flags & ST_CONTEXT_FLAG_FORWARD_COMPATIBLE) > st->ctx->Const.ContextFlags |= GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT; > > + if (attribs->flags & ST_CONTEXT_FLAG_RELEASE_NONE) > + st->ctx->Const.ContextReleaseBehavior = GL_NONE; > + > /* need to perform version check */ > if (attribs->major > 1 || attribs->minor > 0) { > /* Is the actual version less than the requested version? > -- > 2.4.0 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev