[Mesa-dev] [PATCH] st/dri: Invalidate drawables on context switch

Benjamin Franzke benjaminfranzke at googlemail.com
Tue Jun 21 04:49:41 PDT 2011


This fixes gears from the wayland-demos, where the cairo-gl context
and the gears context render to the same surface, but the gears
context renders to old buffers, because of the missing invalidate.
So yea, fixes a bug.

2011/6/21 Jakob Bornecrantz <wallbraker at gmail.com>:
> On Tue, Jun 21, 2011 at 1:40 PM, Benjamin Franzke
> <benjaminfranzke at googlemail.com> wrote:
>> Actually I wasnt sure, but theres nothing like that in glx/dri2_glx.c
>> or egl_dri2.
>> Furthermore the intel driver does sth similar.
>
> I was talking about st/mesa (GL), I'm not to familiar with the
> st_manager.c and/or the drawable code but doesn't this happen already
> or does this fix a bug?
>
> Cheers Jakob.
>
>> 2011/6/21 Jakob Bornecrantz <wallbraker at gmail.com>:
>>> On Tue, Jun 21, 2011 at 1:32 PM, Benjamin Franzke
>>> <benjaminfranzke at googlemail.com> wrote:
>>>> ---
>>>>  .../state_trackers/dri/common/dri_context.c        |    5 +++++
>>>>  1 files changed, 5 insertions(+), 0 deletions(-)
>>>>
>>>> diff --git a/src/gallium/state_trackers/dri/common/dri_context.c b/src/gallium/state_trackers/dri/common/dri_context.c
>>>> index e23c1bc..0f9e4e5 100644
>>>> --- a/src/gallium/state_trackers/dri/common/dri_context.c
>>>> +++ b/src/gallium/state_trackers/dri/common/dri_context.c
>>>> @@ -192,6 +192,11 @@ dri_make_current(__DRIcontext * cPriv,
>>>>    }
>>>>
>>>>    ctx->stapi->make_current(ctx->stapi, ctx->st, &draw->base, &read->base);
>>>> +   if (old_st && old_st != ctx->st) {
>>>> +      ctx->st->notify_invalid_framebuffer(ctx->st, &draw->base);
>>>> +      if (draw != read)
>>>> +         ctx->st->notify_invalid_framebuffer(ctx->st, &read->base);
>>>> +   }
>>>
>>> Shouldn't the client api state tracker be smart enough to do this in
>>> the make_current call?
>>>
>>> Cheers Jakob.
>>>
>>
>


More information about the mesa-dev mailing list