summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/common/meta.c
AgeCommit message (Collapse)Author
2010-07-20mesa: call ctx->Driver.ChooseTextureFormat() only when necessary.Brian Paul
When defining mipmap level 'L' and level L-1 exists and the new level's internalFormat matches level L-1's internalFormat, then use the same hw format. Otherwise, do the regular ctx->Driver.ChooseTextureFormat() call. This avoids a problem where we end up choosing different hw formats for different mipmap levels depending on how the levels are defined (glTexImage vs. glCopyTexImage vs. glGenerateMipmap, etc). The root problem is the ChooseTextureFormat() implementation in some drivers uses the user's glTexImage format/type parameters in the choosing heuristic. Later mipmap levels might be generated with different calls (ex: glCopyTexImage()) so we don't always have format/type info and the driver may choose a different format. For more background info see the July 2010 mesa-dev thread "Bug in _mesa_meta_GenerateMipmap"
2010-06-23Merge branch 'shader-file-reorg'Brian Paul
1. Move all GL entrypoint functions and files into src/mesa/main/ This includes the ARB vp/vp, NV vp/fp, ATI fragshader and GLSL bits that were in src/mesa/shader/ 2. Move src/mesa/shader/slang/ to src/mesa/slang/ to reduce the tree depth 3. Rename src/mesa/shader/ to src/mesa/program/ since all the remaining files are concerned with GPU programs. 4. Misc code refactoring. In particular, I got rid of most of the GLSL-related ctx->Driver hook functions. None of the drivers used them. Conflicts: src/mesa/drivers/dri/i965/brw_context.c
2010-06-19Revert "Fix image_matches_texture_obj() MaxLevel check"Will Dyson
This reverts commit a9ee95651131e27d5acf3d10909b5b7e5c8d3e92. It was based on a failure to understand how ther driver allocates memory, and causes a regression with Celestia. Set MaxLevel to dstLevel before allocating new mipmap level. The radeon driver will fail to allocate space for a new level that is outside of BaseLevel..MaxLevel. Set MaxLevel before allocating. Signed-off-by: Maciej Cencora <m.cencora@gmail.com>
2010-06-10mesa: rename src/mesa/shader/ to src/mesa/program/Brian Paul
2010-06-10mesa: move arbprogram.[ch] to main/Brian Paul
2010-06-10mesa: refactor shader api / object codeBrian Paul
Remove the unneeded ctx->Driver hooks for shader-related functions. Move state and API-related things into main/.
2010-05-24meta: Convert Z value from normalized to object-space in meta codeBrian Paul
Convert Z from a normalized value in the range [0, 1] to an object-space Z coordinate in [-1, +1] so that drawing at the new Z position with the default/identity ortho projection results in the original Z value. Used by the meta-Clear, Draw/CopyPixels and Bitmap functions where the Z value comes from the clear value or raster position. Fixes piglit tests fdo23670-depth_test, quad-invariance and glsl-orangebook-ch06-bump as well as oglc zbfunc.c. https://bugs.freedesktop.org/show_bug.cgi?id=23670
2010-04-27Disable scissor when begining meta operationsPierre Willenbrock
Signed-off-by: Eric Anholt <eric@anholt.net>
2010-04-27Don't set srcLevel on GL_TEXTURE_RECTANGLE_ARB targetsPierre Willenbrock
Signed-off-by: Eric Anholt <eric@anholt.net>
2010-03-16meta: Fix up restoration of state if _mesa_map_pbo_source() fails.Eric Anholt
2010-03-16meta: Properly refcount our saved programs and texobjs.Eric Anholt
Found while debugging bug #24119.
2010-03-05meta: Use the DrawBuffer's stencil sizeIan Romanick
Previously the code was erroneously using the stencil size of the context instead of the stencil size of the DrawBuffer. With FBOs these may be different. As a result, clearing the stencil buffer of an FBO bound to a context that doesn't have stencil would fail. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
2010-02-24mesa: disable unreachable meta mipmap gen codeBrian Paul
More work is needed to support 3D mipmap generation. Disable unreachable code until then. See bug 26722.
2010-02-19mesa: restore _mesa_snprintf() - it's needed for WindowsBrian Paul
This reverts part of commit 298be2b028263b2c343a707662c6fbfa18293cb2
2010-02-19Replace the _mesa_*printf() wrappers with the plain libc versionsKristian Høgsberg
2010-02-19Replace _mesa_malloc, _mesa_calloc and _mesa_free with plain libc versionsKristian Høgsberg
2010-02-19Remove _mesa_memcpy in favor of plain memcpy.Kenneth Graunke
This may break the SUNOS4 build, but it's no longer relevant.
2010-02-12mesa: Remove unnecessary headers.Vinson Lee
2010-01-08Merge branch 'mesa_7_7_branch'Brian Paul
Conflicts: src/mesa/drivers/dri/i965/brw_wm_emit.c
2010-01-06meta: remove F suffix from _mesa_Ortho() paramsBrian Paul
_mesa_Ortho() takes GLdoubles.
2010-01-06meta: move destination vertex/projection setup out of _mesa_meta_GenerateMipmapBrian Paul
Based on a patch submitted by Pierre Willenbrock <pierre@pirsoft.de>
2010-01-06meta: set viewport and projection matrix in _mesa_meta_GenerateMipmapBrian Paul
This fixes mipmap levels being clipped to the last viewport. Based on a patch submitted by Pierre Willenbrock <pierre@pirsoft.de>
2010-01-03mesa: fix blend enable/disable calls in meta.c codeFrancis Galiegue
Fixes regression in some DRI drivers since the GL_EXT_draw_buffers2 changes. Signed-off-by: Brian Paul <brianp@vmware.com>
2009-12-29mesa: implement per-buffer color maskingBrian Paul
This is part of the GL_EXT_draw_buffers2 extension and part of GL 3.0. The ctx->Color.ColorMask field is now a 2-D array. Until drivers are modified to support per-buffer color masking, they can just look at the 0th color mask. The new _mesa_ColorMaskIndexed() function will be called by glColorMaskIndexedEXT() or glColorMaski().
2009-12-29mesa: per-buffer blend enabled flagsBrian Paul
ctx->Color.BlendEnabled is now a GLbitfield instead of a GLboolean to indicate blend on/off status for each color/draw buffer. This is infrastructure for GL_EXT_draw_buffers2 and OpenGL 3.x New functions include _mesa_EnableIndexed(), _mesa_DisableIndexed(), and _mesa_IsEnabledIndexed(). The enable function corresponds to glEnableIndexedEXT() for GL_EXT_draw_buffers2 or glEnablei() for GL3. Note that there's quite a few tests for ctx->Color.BlendEnabled != 0 in drivers, etc. Those tests can remain as-is since the mask will be 0 or ~0 unless GL_EXT_draw_buffers2 is enabled.
2009-12-14mesa/meta: move BindTexture() call in _mesa_meta_GenerateMipmap()Brian Paul
This is a follow-up to commit e3fa700c178e11e6735430119232919176ab7b42. The call to _mesa_BindTexture() must be before we set any other texture object state, namely the _mesa_TexParameteri() calls. This fixes bug 25601 (piglit gen-nonzero-unit failure).
2009-12-09meta: Bind texture to unit 0 for mipmap generationIan Romanick
If the active texture unit on entry to mipmap generation is not zero, bind the texture to unit zero. Fixes bug #24219.
2009-11-02mesa: use _mesa_get_current_tex_object()Brian Paul
2009-10-28Merge branch 'texformat-rework'Brian Paul
Conflicts: src/mesa/drivers/dri/radeon/radeon_fbo.c src/mesa/drivers/dri/s3v/s3v_tex.c src/mesa/drivers/dri/s3v/s3v_xmesa.c src/mesa/drivers/dri/trident/trident_context.c src/mesa/main/debug.c src/mesa/main/mipmap.c src/mesa/main/texformat.c src/mesa/main/texgetimage.c
2009-10-27mesa: s/Bilt/BlitBrian Paul
2009-10-20meta: Fix the BufferSubData in meta clear to be BufferData.Eric Anholt
Fixes a 3.4% +/- 1.3% performance regression in my GL demo (n=3). The other meta code could probably also use the same treatment.
2009-10-14mesa: remove left-over debug printfBrian Paul
2009-10-13mesa: whitespace fixesBrian Paul
2009-10-13mesa: do RTT check in _mesa_meta_check_generate_mipmap_fallback()Brian Paul
We need to check that we can actually render to the texture's format before doing mipmap generation. This may fix bug 24219.
2009-10-12mesa: save/set/restore texture base/wrap state in blitframebuffer_texture()Brian Paul
2009-10-08Merge branch 'mesa_7_6_branch'Brian Paul
Conflicts: src/mesa/drivers/common/meta.c
2009-10-07mesa: don't need to free textures, VBOs, etc. in _mesa_meta_free()Brian Paul
They're freed by the normal context deallocation code. Fixes Blender crash, bug 24185.
2009-10-03meta: Make sure texImage->TexFormat is valid for CopyTex(Sub)Image.Michel Dänzer
2009-10-02mesa: optimized _mesa_meta_BlitFramebuffer() for src=texture caseBrian Paul
If the src renderbuffer is actually a texture, we can directly use that texture as the src and avoid a copy.
2009-10-02mesa: added _mesa_meta_check_generate_mipmap_fallback()Brian Paul
2009-09-30mesa: replace gl_texture_format with gl_formatBrian Paul
Now gl_texture_image::TexFormat is a simple MESA_FORMAT_x enum. ctx->Driver.ChooseTexture format also returns a MESA_FORMAT_x. gl_texture_format will go away next.
2009-09-28meta: Fix invalid PBO access from DrawPixels when trying to just alloc.Eric Anholt
This whole reuse of buffers (TexSubImage instead of TexImage, SubData instead of Data) is bad for hardware drivers, but it's even worse when we accidentally try to access the 2x2 PBO to fill the new 16x16 texture we're creating, producing GL errors. Fixes piglit pbo-drawpixels. Bug #14163.
2009-09-27mesa: use _mesa_get_format_base_format()Brian Paul
2009-09-24mesa: _mesa_meta_GenerateMipmap() now workingBrian Paul
Handles GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP. But GL_TEXTURE_3D and texture borders not supported yet.
2009-09-22Merge branch 'mesa_7_6_branch'Brian Paul
2009-09-22mesa: don't re-use the meta glDrawPixels VBO; create a new one each timeBrian Paul
This should help to work around bugs 24083 and 23670.
2009-09-20Merge branch 'mesa_7_6_branch'Brian Paul
Conflicts: src/mesa/drivers/dri/intel/intel_clear.c
2009-09-19mesa: remove redundant readbuffer checkBrian Paul
2009-09-19mesa: rename functions to be more consistant with rest of mesaBrian Paul
2009-09-19mesa: meta functions for glCopyColorTable, glCopyConvolutionFilter, etcBrian Paul