Age | Commit message (Collapse) | Author |
|
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"
|
|
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
|
|
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>
|
|
|
|
|
|
Remove the unneeded ctx->Driver hooks for shader-related functions.
Move state and API-related things into main/.
|
|
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
|
|
Includes GL_ARB_transform_feedback2 which encapsulates transform feedback
state in objects.
|
|
Once upon a time some drivers hooked into these for GL_HP_occlusion_test
and GL_OES_read_format. They're not being used anymore so get rid of them.
|
|
Signed-off-by: Eric Anholt <eric@anholt.net>
|
|
Signed-off-by: Eric Anholt <eric@anholt.net>
|
|
|
|
Found while debugging bug #24119.
|
|
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>
|
|
These are used to inform the driver of the clear value for color-index
buffers and to control write-masking of bits in color-index buffers.
No driver use or need (not even Nouveau) these interfaces.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
|
|
More work is needed to support 3D mipmap generation. Disable unreachable
code until then.
See bug 26722.
|
|
This reverts part of commit 298be2b028263b2c343a707662c6fbfa18293cb2
|
|
|
|
|
|
|
|
This may break the SUNOS4 build, but it's no longer relevant.
|
|
|
|
Conflicts:
src/mesa/drivers/dri/i965/brw_wm_emit.c
|
|
_mesa_Ortho() takes GLdoubles.
|
|
Based on a patch submitted by Pierre Willenbrock <pierre@pirsoft.de>
|
|
This fixes mipmap levels being clipped to the last viewport.
Based on a patch submitted by Pierre Willenbrock <pierre@pirsoft.de>
|
|
Fixes regression in some DRI drivers since the GL_EXT_draw_buffers2 changes.
Signed-off-by: Brian Paul <brianp@vmware.com>
|
|
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().
|
|
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.
|
|
Conflicts:
src/mesa/main/version.h
src/mesa/state_tracker/st_atom_shader.c
|
|
|
|
If the active texture unit on entry to mipmap generation is not zero, bind the
texture to unit zero.
Fixes bug #24219.
|
|
|
|
|
|
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
|
|
|
|
It always just called _mesa_compressed_texture_size() anyway.
|
|
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.
|
|
|
|
|
|
|
|
|
|
We need to check that we can actually render to the texture's format
before doing mipmap generation.
This may fix bug 24219.
|
|
|
|
Conflicts:
src/mesa/drivers/common/meta.c
|
|
They're freed by the normal context deallocation code.
Fixes Blender crash, bug 24185.
|
|
|
|
If the src renderbuffer is actually a texture, we can directly use that
texture as the src and avoid a copy.
|
|
|
|
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.
|