Age | Commit message (Collapse) | Author |
|
When glTexImage() is called we need to re-validate any FBOs that point to
the texture (i.e. render-to-texture) since changing the texture's size/format
will effect FBO completeness.
We don't keep a list of all FBOs rendering into each texture (which would be
a bit messy) so we check all FBOs in existance. To optimize this, the
gl_texture_object->_RenderToTexture flag is used to avoid checking textures
that have never been used as renderbuffers. So, we only walk over all FBOs
(there's usually only a few) when glTexImage() modifies a RTT texture.
Fixes a bug seen in shadowtex.c when toggling packed depth/stencil mode.
|
|
Update the visual info in the _mesa_test_framebuffer_completeness()
function when we've determined the FBO to be "complete".
Fixes regression seen in progs/demos/shadowtex.c
|
|
When we change a FBO's attachments, set _Status=0.
Before using an FBO, check if status != GL_FRAMEBUFFER_COMPLETE.
Also, fix missing GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE status.
|
|
Need to unbind buffers if referenced by the current read/draw pointers when
being deleted.
|
|
Used to set both the depth and stencil attachment points to one renderbuffer
of texture.
|
|
Plus some new comments.
|
|
Use a common helper routine for both functions.
|
|
|
|
|
|
Called from the _mesa_test_framebuffer_completeness() function to give the
driver the chance to make a framebuffer as incomplete if it doesn't meet
some specific hardware restriction.
|
|
|
|
It's illegal to bind a FBO/RB id that didn't come from glGenRender/Framebuffer().
|
|
and color format
|
|
The ctx->Driver.GenerateMipmap() hook only expects cubemap face enums, not
CUBE_MAP_ARB, so walk all faces when we encounter that. Fixes oglconform
fbo.c segfault with both swrast and i965 drivers.
|
|
(cherry picked from commit 74b14fe6ddbece8bc662aac4d3b2b18d8d853486)
|
|
|
|
|
|
Basically, set up no-op Delete() methods for the DummyFrame/Renderbuffer objects.
|
|
function."
This reverts commit c50ffc4cb89b67ae59208eb72cdb664c846ba987.
I'll fix this using the mipmap hooks I just picked from gallium-0.1
|
|
(cherry picked from commit c3395f4473c8fdf75d04c0dd72e687bc8d8127a7)
|
|
(cherry picked from commit 4c2f3dbca940f289e67248682b84a3516d5a3031)
Conflicts:
src/mesa/drivers/common/driverfuncs.c
|
|
This at least stops the compiz brain explosion we were seeing, I do wonder
though if we should somehow be calling intel_generate_mipmap somehow.
|
|
|
|
|
|
|
|
previously did.
Basically, in update_framebuffer() (which should be called after an FBO is bound
with MakeCurrent or BindFramebuffer) we check if the FBO is a window-system FBO.
If it is, update the FBO's GL_READ/DRAW_BUFFER state according to the context state.
Old code still in place but disabled with #if 0 / #endif.
|
|
Use new _mesa_reference_texobj() function for referencing/unreferencing
textures. Add new assertions/tests to try to detect invalid usage of
deleted textures.
|
|
Make sure the relevant fields in window fbs get updated at appropriate time
(those are NOT the same as fbos!!!), and fix up related code accordingly.
This is a bit ugly, but there's a reason the issues section in EXT_fbo is
a couple hundred pages long...
Hopefully correct now.
|
|
|
|
Make sure that we bind the right buffer (draw or read) when rebinding
the window framebuffer (the api doesn't allow binding different draw and
read buffers at the same time, but the default window framebuffer is basically
2 fb objects, one for read, one for write, which can be different). Pass both
of these two down the driver api (no driver uses this right now).
|
|
Shadow sampling from texture arrays is still not implemented. Everything
else should be there, though.
|
|
|
|
|
|
|
|
|
|
Use _mesa_reference_framebuffer() and _mesa_unreference_framebuffer() functions
to be sure reference counting is done correctly. Additional assertions are
done too. Note _mesa_dereference_framebuffer() renamed to "unreference" as
that's more accurate.
|
|
|
|
|
|
mipmap.c file.
|
|
|
|
|
|
|
|
generated the error GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT).
This was removed in version 117 of the GL_EXT_framebuffer_object spec.
|
|
|
|
teximage before calling ctx->Driver.RenderTexture()
|
|
|
|
- When deleting texture objects, unbind from FBOs if necessary.
- Changed driver hooks for starting/ending render to texture.
- Now properly handle case where gl[Copy]TexImage() is called after
glFramebufferTexture[123]D(). That didn't work before.
|
|
|
|
|
|
to fix some minor glitches
|