<ajax>
> by this point, the pipe_resource objects kopper created for the swapchain have had all their references removed
LexSfX has joined #zink
<ajax>
which deref is going to 0 here specifically?
<zmike>
?
<ajax>
i'm just confused because
<ajax>
at the glx level nothing is getting destroyed. the glx and glxdri drawable state looks like it lives long enough to preserve the framebuffer for each window even though you switch "current" away
<ajax>
so i don't understand why any swapchains are getting culled
<zmike>
in my debugging, the refcounts for __GLXDRIdrawable were zero
<zmike>
and that destroyed the textures
<ajax>
interesting.
* ajax
pokes harder
<zmike>
you should be able to see the difference by forcing psc->base.keep_native_window_glx_drawable = 1; in driswCreateScreenDriver()
<ajax>
yeah okay, i see it nw
<ajax>
so i have to run away, but
<ajax>
i think the createDrawable() dance at the bottom of driFetchDrawable() should probably done as a call to CreateDRIDrawable instead
<ajax>
_and then_ it should still bump the refcount
<ajax>
because you get to that path by looking up a naked Window (like the test does), which means the only thing holding the reference is the binding to the context
<ajax>
if this were a GLXWindow you'd have already created it, so the hash lookup would succeed, and refcount would be 2 by the time you get back from MakeCurrent
<ajax>
but here, since it's a naked window, it's just 1
<ajax>
the call to CreateDRIDrawable should set the refcount to one for the "glx drawable", and driFetchDrawable should bump it once for the context bind.
fahien has quit [Quit: fahien]
<ajax>
hopefully that made sense, if not, hopefully irssi will still have it in my scrollback when i get back so i can figure out wtf i meant
<zmike>
I'm clocked out for the week, so we'll both have to come back to this at a later point