On Feb 26, 2016, at 5:29 PM, Miklós Máté <mtmkls(a)gmail.com> wrote:
> @@ -2320,6 +2322,7 @@ static BOOL X11DRV_wglDestroyPbufferARB( struct wgl_pbuffer *object )
> TRACE("(%p)\n", object);
>
> pglXDestroyPbuffer(gdi_display, object->drawable);
> + pglXDestroyContext(gdi_display, object->tmp_context);
I think you need to check if object->tmp_context is non-zero before calling glXDestroyContext() to avoid a GLXBadContext error.
> + if (!…
[View More]object->tmp_context) {
> + object->tmp_context = pglXCreateNewContext(gdi_display, object->fmt->fbconfig, object->fmt->render_type, prev_context, True);
> + object->prev_context = prev_context;
> + } else if (object->prev_context != prev_context) {
> + pglXDestroyContext(gdi_display, object->tmp_context);
> + object->tmp_context = pglXCreateNewContext(gdi_display, object->fmt->fbconfig, object->fmt->render_type, prev_context, True);
> + object->prev_context = prev_context;
> + }
Those two branches are mostly the same. This could be reduced to:
if (!object->tmp_context || object->prev_context != prev_context) {
if (object->tmp_context)
pglXDestroyContext(gdi_display, object->tmp_context);
object->tmp_context = pglXCreateNewContext(gdi_display, object->fmt->fbconfig, object->fmt->render_type, prev_context, True);
object->prev_context = prev_context;
}
Is it necessary, when a context is destroyed, to go through all wgl_pbuffer structs looking for any whose prev_context matches the one being destroyed and clear it? Otherwise, you risk having a stale reference that could be reused for a different context and not realize you need to recreate tmp_context. Of course, enumerating all of them in a thread-safe manner is going to require a lot of added infrastructure and complexity.
-Ken
[View Less]
Hi,
While running your changed tests on Windows, I think I found new failures.
Being a bot and all I'm not very good at pattern recognition, so I might be
wrong, but could you please double-check?
Full results can be found at
https://testbot.winehq.org/JobDetails.pl?Key=21002
Your paranoid android.
=== w864 (32 bit msg) ===
msg.c:6360: Test failed: Update region shouldn't be empty
msg.c:6594: Test failed: InvalidateErase: 0: the msg sequence is not complete: expected 0085 - actual 0000
msg.…
[View More]c:6596: Test failed: Paint: 0: the msg sequence is not complete: expected 000f - actual 0000
msg.c:6366: Test failed: Regions are different
msg.c:6366: Test failed: Regions are different
msg.c:6366: Test failed: Regions are different
=== w1064 (32 bit msg) ===
msg.c:6360: Test failed: Update region shouldn't be empty
msg.c:6594: Test failed: InvalidateErase: 0: the msg sequence is not complete: expected 0085 - actual 0000
msg.c:6596: Test failed: Paint: 0: the msg sequence is not complete: expected 000f - actual 0000
msg.c:6366: Test failed: Regions are different
msg.c:6366: Test failed: Regions are different
msg.c:6366: Test failed: Regions are different
=== w1064 (64 bit msg) ===
msg.c:6360: Test failed: Update region shouldn't be empty
msg.c:6594: Test failed: InvalidateErase: 0: the msg sequence is not complete: expected 0085 - actual 0000
msg.c:6596: Test failed: Paint: 0: the msg sequence is not complete: expected 000f - actual 0000
msg.c:6366: Test failed: Regions are different
msg.c:6366: Test failed: Regions are different
msg.c:6366: Test failed: Regions are different
[View Less]
Hi,
While running your changed tests on Windows, I think I found new failures.
Being a bot and all I'm not very good at pattern recognition, so I might be
wrong, but could you please double-check?
Full results can be found at
https://testbot.winehq.org/JobDetails.pl?Key=20990
Your paranoid android.
=== wvistau64 (32 bit font) ===
An error occurred while waiting for the test to complete: network read timed out (Connect:AgentVersion.h:0/9)
Hi,
While running your changed tests on Windows, I think I found new failures.
Being a bot and all I'm not very good at pattern recognition, so I might be
wrong, but could you please double-check?
Full results can be found at
https://testbot.winehq.org/JobDetails.pl?Key=20992
Your paranoid android.
=== wxppro (32 bit tooltips) ===
tooltips.c:471: Test failed: Adding the tool to the tooltip failed!
=== w2003std (32 bit tooltips) ===
tooltips.c:471: Test failed: Adding the tool to the …
[View More]tooltip failed!
=== wvistau64 (32 bit tooltips) ===
tooltips.c:471: Test failed: Adding the tool to the tooltip failed!
=== w2008s64 (32 bit tooltips) ===
tooltips.c:471: Test failed: Adding the tool to the tooltip failed!
=== w7u (32 bit tooltips) ===
tooltips.c:471: Test failed: Adding the tool to the tooltip failed!
=== w7pro64 (32 bit tooltips) ===
tooltips.c:471: Test failed: Adding the tool to the tooltip failed!
=== w8 (32 bit tooltips) ===
tooltips.c:471: Test failed: Adding the tool to the tooltip failed!
=== w864 (32 bit tooltips) ===
tooltips.c:471: Test failed: Adding the tool to the tooltip failed!
=== w1064 (32 bit tooltips) ===
tooltips.c:471: Test failed: Adding the tool to the tooltip failed!
=== wvistau64 (64 bit tooltips) ===
tooltips.c:471: Test failed: Adding the tool to the tooltip failed!
=== w2008s64 (64 bit tooltips) ===
tooltips.c:471: Test failed: Adding the tool to the tooltip failed!
=== w7pro64 (64 bit tooltips) ===
tooltips.c:471: Test failed: Adding the tool to the tooltip failed!
=== w864 (64 bit tooltips) ===
tooltips.c:471: Test failed: Adding the tool to the tooltip failed!
=== w1064 (64 bit tooltips) ===
tooltips.c:471: Test failed: Adding the tool to the tooltip failed!
[View Less]
Hi,
While running your changed tests on Windows, I think I found new failures.
Being a bot and all I'm not very good at pattern recognition, so I might be
wrong, but could you please double-check?
Full results can be found at
https://testbot.winehq.org/JobDetails.pl?Key=20991
Your paranoid android.
=== wvistau64 (32 bit font) ===
An error occurred while waiting for the test to complete: network read timed out (Connect:AgentVersion.h:0/9)