[Mesa-dev] [PATCH 3/3] [Bug 38970] [bisected]piglit glx/glx-pixmap-multi failed

Nicolai Hähnle nhaehnle at gmail.com
Mon Oct 17 19:38:12 UTC 2016


On 29.09.2016 22:55, Anutex wrote:
> I tried to debug this issue with changing the condition to check only bad magic and Error.
> And the test passed.
>
> Though i am not sure what is the correct behaviour if we are in this condition.
> May be we should make some  other condition if the Hash Table have the bucket data.

The whole commit message needs to be cleaned up to. Also, mention:

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=38970

> ---
>  src/glx/dri2_glx.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c
> index af388d9..a1fd9ff 100644
> --- a/src/glx/dri2_glx.c
> +++ b/src/glx/dri2_glx.c
> @@ -411,12 +411,13 @@ dri2CreateDrawable(struct glx_screen *base, XID xDrawable,
>        return NULL;
>     }
>
> -   if (__glxHashInsert(pdp->dri2Hash, xDrawable, pdraw)) {
> +   if (__glxHashInsert(pdp->dri2Hash, xDrawable, pdraw) == -1) {
>        (*psc->core->destroyDrawable) (pdraw->driDrawable);
>        DRI2DestroyDrawable(psc->base.dpy, xDrawable);
>        free(pdraw);
>        return None;
>     }

This looks reasonable to me.

The information in the hash gets somewhat broken when multiple 
GLXPixmaps are created from the same Pixmap, but the hash is used to 
lookup drawables based on XID for flip-type events, which seems like it 
shouldn't happen for pixmaps anyway. So I wonder if pixmaps need to be 
added to the hash in the first place.

But I'm also not very familiar with all of this, so a second opinion 
would be nice :)

Cheers,
Nicolai

> +	
>
>     /*
>      * Make sure server has the same swap interval we do for the new
>


More information about the mesa-dev mailing list