summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/fbobject.c
Commit message (Collapse)AuthorAgeFilesLines
* mesa: move assertions in test_attachment_completeness()Brian Paul2009-08-141-5/+7
| | | | Put the assertions after the error checks.
* mesa: generate GL_INVALID_OPERATION for missing z/stencil when blittingBrian Paul2009-08-051-2/+6
| | | | | | If glBlitFramebuffer() is called with GL_DEPTH_BUFFER_BIT or GL_STENCIL_BUFFER_BIT and the src/dst depth/stencil buffers are absent, report an error.
* mesa: Mark FBOs with compressed color attachments as FBO-incomplete.Eric Anholt2009-06-171-0/+5
| | | | | | | | | Both EXT_fbo and ARB_fbo agree on this. Fixes a segfault in the metaops mipmap generation in Intel for SGIS_generate_mipmap of S3TC textures in Regnum Online. Bug #21654. (cherry picked from commit 0307e609aa3e707eeb40051bd664d36f2340ba9b)
* mesa: allow depth/stencil textures to be attached to GL_STENCIL_ATTACHMENTMathias Fröhlich2009-05-191-4/+14
| | | | See sourceforge bug #2793846.
* mesa: protect driver.flush() with FLUSH_CURRENTKeith Whitwell2009-04-221-7/+6
| | | | | | Need to do this to ensure vbo code unmaps its buffers before calling the driver, which may be sitting on top of a memory manager which objects to firing commands from a mapped buffer.
* mesa: avoid extraneous calls to ctx->Driver.BindFramebuffer()Brian Paul2009-02-261-6/+13
| | | | Only call this driver function when we really need to bind different buffers.
* mesa: add some debug code to help diagnose incomplete FBO attachments (disabled)Brian Paul2009-02-171-0/+27
|
* Merge commit 'origin/gallium-master-merge'Brian Paul2009-02-101-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | This is the big merge of the gallium-0.2 branch into master. gallium-master-merge was just the staging area for it. Both gallium-0.2 and gallium-master-merge are considered closed now. Conflicts: progs/demos/Makefile src/mesa/main/state.c src/mesa/main/texenvprogram.c
| * mesa: merge gallium-0.2 into gallium-master-mergeBrian Paul2009-02-091-1/+1
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Merge commit 'origin/gallium-0.2' into gallium-master-merge Conflicts: Makefile docs/relnotes-7.4.html docs/relnotes.html src/mesa/drivers/dri/i965/brw_wm.h src/mesa/main/imports.c src/mesa/main/mtypes.h src/mesa/main/texcompress.c src/mesa/main/texenvprogram.c src/mesa/main/version.h src/mesa/vbo/vbo_exec_api.c src/mesa/vbo/vbo_save_draw.c
| | * Merge commit 'origin/master' into gallium-0.2Alan Hourihane2008-12-091-2/+10
| | |\
| | * \ Merge branch 'gallium-0.1' into gallium-0.2Keith Whitwell2008-09-111-1/+3
| | |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A first attempt at moving gallium onto a branch directly off master... It will be interesting to see how much work this takes to get running. Have resolved the conflicts semi-arbitarily, not compiled or tested. Conflicts: .gitignore Makefile configs/config.mgw configs/darwin configs/darwin-x86ppc configs/default configs/freebsd-dri configs/linux-dri configs/linux-dri-xcb configs/linux-fbdev configs/linux-static configs/linux-x86-64-static configs/linux-x86-static doxygen/Makefile include/GL/gl.h progs/demos/Makefile progs/demos/descrip.mms progs/demos/texenv.c progs/egl/.gitignore progs/egl/Makefile progs/glsl/.gitignore progs/glsl/Makefile progs/glsl/convolutions.c progs/samples/Makefile.mgw progs/tests/.gitignore progs/trivial/.gitignore progs/trivial/point-param.c progs/trivial/tri.c progs/xdemos/.gitignore progs/xdemos/glthreads.c src/egl/drivers/demo/Makefile src/egl/drivers/dri/Makefile src/egl/main/Makefile src/glu/Makefile src/glu/sgi/Makefile src/glu/sgi/Makefile.mgw src/glut/glx/Makefile.mgw src/glut/os2/WarpWin.cpp src/glut/os2/glut_cindex.cpp src/glut/os2/glut_gamemode.cpp src/glut/os2/glut_win.cpp src/glut/os2/glut_winmisc.cpp src/glut/os2/os2_glx.cpp src/glut/os2/os2_menu.cpp src/glut/os2/os2_winproc.cpp src/glw/Makefile src/glx/x11/dri_glx.c src/glx/x11/glxext.c src/mesa/Makefile src/mesa/Makefile.mgw src/mesa/descrip.mms src/mesa/drivers/beos/Makefile src/mesa/drivers/common/descrip.mms src/mesa/drivers/common/driverfuncs.c src/mesa/drivers/directfb/Makefile src/mesa/drivers/dri/Makefile.template src/mesa/drivers/dri/common/dri_bufmgr.c src/mesa/drivers/dri/common/dri_bufmgr.h src/mesa/drivers/dri/common/dri_util.c src/mesa/drivers/dri/common/extension_helper.h src/mesa/drivers/dri/common/mmio.h src/mesa/drivers/dri/common/utils.c src/mesa/drivers/dri/common/utils.h src/mesa/drivers/dri/glcore/Makefile src/mesa/drivers/dri/i810/i810screen.c src/mesa/drivers/dri/i915/intel_ioctl.c src/mesa/drivers/dri/i915/intel_ioctl.h src/mesa/drivers/dri/i915/intel_screen.c src/mesa/drivers/dri/i915/server/i830_common.h src/mesa/drivers/dri/i915/server/i830_dri.h src/mesa/drivers/dri/i965/intel_screen.c src/mesa/drivers/dri/i965/server/i830_common.h src/mesa/drivers/dri/i965/server/i830_dri.h src/mesa/drivers/dri/mach64/mach64_screen.c src/mesa/drivers/dri/nouveau/nouveau_context.h src/mesa/drivers/dri/nouveau/nouveau_fifo.c src/mesa/drivers/dri/nouveau/nouveau_fifo.h src/mesa/drivers/dri/nouveau/nouveau_screen.c src/mesa/drivers/dri/nouveau/nouveau_screen.h src/mesa/drivers/dri/r128/r128_tex.h src/mesa/drivers/dri/savage/savageioctl.h src/mesa/drivers/fbdev/Makefile src/mesa/drivers/osmesa/Makefile src/mesa/drivers/osmesa/descrip.mms src/mesa/drivers/x11/Makefile src/mesa/drivers/x11/descrip.mms src/mesa/drivers/x11/xm_dd.c src/mesa/glapi/glapi.c src/mesa/glapi/glthread.c src/mesa/main/api_validate.c src/mesa/main/attrib.c src/mesa/main/bufferobj.c src/mesa/main/bufferobj.h src/mesa/main/buffers.c src/mesa/main/config.h src/mesa/main/context.c src/mesa/main/descrip.mms src/mesa/main/drawpix.c src/mesa/main/enums.c src/mesa/main/fbobject.c src/mesa/main/glheader.h src/mesa/main/imports.c src/mesa/main/mipmap.c src/mesa/main/mm.c src/mesa/main/mm.h src/mesa/main/mtypes.h src/mesa/main/points.c src/mesa/main/sources src/mesa/main/state.c src/mesa/main/texcompress_fxt1.c src/mesa/main/texenvprogram.c src/mesa/main/texobj.c src/mesa/main/texstate.c src/mesa/main/texstore.c src/mesa/math/descrip.mms src/mesa/shader/arbprogram.c src/mesa/shader/descrip.mms src/mesa/shader/prog_execute.c src/mesa/shader/prog_statevars.c src/mesa/shader/prog_statevars.h src/mesa/shader/prog_uniform.c src/mesa/shader/program.c src/mesa/shader/program.h src/mesa/shader/shader_api.c src/mesa/shader/slang/descrip.mms src/mesa/shader/slang/library/slang_vertex_builtin_gc.h src/mesa/sources src/mesa/swrast/descrip.mms src/mesa/swrast/s_drawpix.c src/mesa/swrast/s_fragprog.c src/mesa/swrast/s_readpix.c src/mesa/swrast/s_span.c src/mesa/swrast_setup/descrip.mms src/mesa/tnl/descrip.mms src/mesa/tnl/t_context.h src/mesa/tnl/t_vp_build.c src/mesa/tnl/tnl.h src/mesa/vbo/descrip.mms src/mesa/vbo/vbo_context.c src/mesa/vbo/vbo_exec_array.c src/mesa/x86-64/xform4.S src/mesa/x86/rtasm/x86sse.c src/mesa/x86/rtasm/x86sse.h windows/VC6/progs/glut/glut.dsp windows/VC7/mesa/gdi/gdi.vcproj windows/VC7/mesa/glu/glu.vcproj windows/VC7/mesa/mesa.sln windows/VC7/mesa/mesa/mesa.vcproj windows/VC7/mesa/osmesa/osmesa.vcproj windows/VC7/progs/glut/glut.vcproj windows/VC8/mesa/gdi/gdi.vcproj windows/VC8/mesa/glu/glu.vcproj windows/VC8/mesa/mesa.sln windows/VC8/mesa/mesa/mesa.vcproj windows/VC8/progs/glut/glut.vcproj
| | | * | mesa: fix some feature testsBrian Paul2008-08-081-0/+2
| | | | |
| | | * | fix some FBO/texture queries (bug 15296)Brian Paul2008-08-061-2/+12
| | | | |
| | | * | mesa: Implement mutex/locking around texture object reference counting.Brian Paul2008-07-041-11/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use new _mesa_reference_texobj() function for referencing/unreferencing textures. Add new assertions/tests to try to detect invalid usage of deleted textures. cherry-picked from master (9e01b915f1243a3f551cb795b7124bd1e52ca15f)
| | | * | mesa: move assertionBrian Paul2008-07-041-2/+2
| | | | |
| | | * | mesa: fix problem freeing framebuffer/renderbuffer objectsBrian Paul2008-07-031-2/+23
| | | | | | | | | | | | | | | | | | | | Basically, set up no-op Delete() methods for the DummyFrame/Renderbuffer obj
| | | * | mesa: fix texture/renderbuffer mix-up in test_attachment_completeness()Brian Paul2008-03-281-1/+1
| | | | |
| | | * | Remove unused texunit parameter to ctx->Driver.GenerateMipmap()Brian2008-02-081-1/+1
| | | | |
| | | * | Added ctx->Driver.GenerateMipmap() driver hookBrian2008-02-061-1/+1
| | | | |
| | | * | in check_end_texture_render(), test for presence of a renderbuffer and texobjBrian2007-11-081-2/+1
| | | | |
* | | | | mesa: replace _mesa_unreference_framebuffer() with _mesa_reference_framebuffer()Brian Paul2009-02-091-1/+1
|/ / / /
* | | | mesa: allow glFramebufferTexture1/2/3D(target = GL_READ/DRAW_FRAMEBUFFER)Brian Paul2009-01-291-4/+19
| | | | | | | | | | | | | | | | This is part of GL_EXT_framebuffer_blit and GL_ARB_framebuffer_obbject.
* | | | mesa: fix a render to texture FBO validation bugBrian Paul2009-01-291-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | mesa: move call to _mesa_update_framebuffer_visual()Brian Paul2009-01-271-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | mesa: avoid calling _mesa_test_framebuffer_completeness() more than neededBrian Paul2009-01-221-2/+30
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | mesa: fix some renderbuffer/framebuffer delete semanticsBrian Paul2009-01-221-1/+33
| | | | | | | | | | | | | | | | | | | | Need to unbind buffers if referenced by the current read/draw pointers when being deleted.
* | | | mesa: add support for GL_DEPTH_STENCIL_ATTACHMENT point.Brian Paul2009-01-221-1/+46
| | | | | | | | | | | | | | | | | | | | Used to set both the depth and stencil attachment points to one renderbuffer of texture.
* | | | mesa: additional FBO error checking for multisample-related thingsBrian Paul2009-01-221-24/+98
| | | | | | | | | | | | | | | | Plus some new comments.
* | | | mesa: refactor glRenderbufferStorage(), glRenderbufferStorageMultisample() codeBrian Paul2009-01-221-13/+41
| | | | | | | | | | | | | | | | Use a common helper routine for both functions.
* | | | mesa: stub for _mesa_RenderbufferStorageMultisample()Brian Paul2009-01-221-1/+14
| | | |
* | | | mesa: call fbo_incomplete() if driver marks FBO as incomplete (debug only)Brian Paul2009-01-221-0/+3
| | | |
* | | | mesa: added ctx->Driver.ValidateFramebuffer() callbackBrian Paul2009-01-221-8/+18
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | mesa: add new ARB_fbo queries, fix some error testsBrian Paul2009-01-221-10/+97
| | | |
* | | | mesa: additional FBO/RB id error checking for ARB_fboBrian Paul2009-01-221-0/+10
| | | | | | | | | | | | | | | | It's illegal to bind a FBO/RB id that didn't come from glGenRender/Framebuffer().
* | | | mesa: for ARB_fbo, lift restriction that all FBO attachments are same size ↵Brian Paul2009-01-221-23/+45
| |_|/ |/| | | | | | | | and color format
* | | mesa: Fix GenerateMipmapEXT(GL_TEXTURE_CUBE_MAP_ARB).Eric Anholt2008-12-061-2/+10
| | | | | | | | | | | | | | | | | | 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.
* | | mesa: fix some feature testsBrian Paul2008-09-211-0/+2
|/ / | | | | | | (cherry picked from commit 74b14fe6ddbece8bc662aac4d3b2b18d8d853486)
* | fix some FBO/texture queries (bug 15296)Brian Paul2008-08-061-2/+12
| |
* | mesa: remove incorrect assertionBrian Paul2008-07-041-1/+0
| |
* | mesa: fix problem freeing framebuffer/renderbuffer objectsBrian Paul2008-07-031-2/+23
| | | | | | | | Basically, set up no-op Delete() methods for the DummyFrame/Renderbuffer objects.
* | Revert "mesa/intel: map/unmap texture objects around mipmap generation ↵Dave Airlie2008-05-091-6/+0
| | | | | | | | | | | | | | | | function." This reverts commit c50ffc4cb89b67ae59208eb72cdb664c846ba987. I'll fix this using the mipmap hooks I just picked from gallium-0.1
* | Remove unused texunit parameter to ctx->Driver.GenerateMipmap()Brian2008-05-091-1/+1
| | | | | | | | (cherry picked from commit c3395f4473c8fdf75d04c0dd72e687bc8d8127a7)
* | Added ctx->Driver.GenerateMipmap() driver hookDave Airlie2008-05-091-1/+1
| | | | | | | | | | | | | | | | (cherry picked from commit 4c2f3dbca940f289e67248682b84a3516d5a3031) Conflicts: src/mesa/drivers/common/driverfuncs.c
* | mesa/intel: map/unmap texture objects around mipmap generation function.Dave Airlie2008-05-091-0/+6
| | | | | | | | | | 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.
* | fix texture/renderbuffer mix-up in test_attachment_completeness()Brian2008-03-281-1/+1
| |
* | check for texture and renderbuffer in check_end_texture_render()Brian2007-11-091-2/+1
| |
* | remove dead code left over after fixing GL_READ/DRAW_BUFFER state issuesBrian2007-08-181-23/+0
| |
* | Rework the GL_READ_BUFFER, GL_DRAW_BUFFER state repairs that Roland ↵Brian2007-08-161-5/+16
| | | | | | | | | | | | | | | | | | 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.
* | Implement mutex/locking around texture object reference counting.Brian2007-08-131-13/+9
|/ | | | | | Use new _mesa_reference_texobj() function for referencing/unreferencing textures. Add new assertions/tests to try to detect invalid usage of deleted textures.
* fix mesa's handling of fbo's / window fb (again)Roland Scheidegger2007-07-191-7/+17
| | | | | | | | 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.