[Mesa-dev] [PATCH 1/2] mesa: invalidate framebuffer if internal format of renderbuffer is changed
Brian Paul
brianp at vmware.com
Mon Mar 7 14:16:36 PST 2011
On 03/07/2011 02:46 PM, Ian Romanick wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 03/07/2011 07:16 AM, Brian Paul wrote:
>> On 03/05/2011 09:26 PM, Marek Olšák wrote:
>>> RenderTexture doesn't have to be called in invalidate_rb, I guess.
>>> ---
>>
>> The patch looks good but there's one simple optimization that could be
>> made. If glRenderBufferStorage() is called with a new width/height but
>> the internalFormat stays the same, we wouldn't have to invalidate the
>> parent FBO(s).
>>
>> I think changing the size of a renderbuffer would be more common than
>> channging its format.
>
> That's only true if the driver supports ARB_fbo. With EXT_fbo a
> framebuffer is incomplete if the attachments have mismatched sizes.
> This is one of the error conditions that was removed in the ARB version.
Grrr, right. Even for GL_ARB_fbo we'll need to revalidate FBOs when
renderbuffers are resized because we compute the FBO's width/height as
the min of the attached renderbuffers.
I'm a little concerned about the efficiency of walking over all FBOs
whenever we change a renderbuffer like this. If it turns out to be a
problem when there's many FBOs we may need to keep a list of parent
FBOs for each renderbuffer.
Marek, your first patch is probably what we should commit.
> There any drivers that support EXT_fbo and not ARB_fbo? If there are,
> can we fix them? :) This would allow some other code cleanups as well.
-Brian
More information about the mesa-dev
mailing list