summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/texobj.c
Commit message (Collapse)AuthorAgeFilesLines
* mesa: Add skeleton implementations of glInvalidateTex{Sub,}ImageIan Romanick2012-08-141-0/+211
| | | | | | | | | | | | | These are part of GL_ARB_invalidate_subdata (but not OpenGL ES 3.0). v2: Add comment explaining why minimum dimensions are set to 1 for some texture targets. Add default case to switch statement to silence compiler warnings and detect new texture targets. Both changes suggested by Brian. Also use _mesa_is_desktop_gl as suggested by Ken. Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: Kill GL_ARB_shadow_ambient with fireIan Romanick2012-08-141-2/+0
| | | | | | | | | | No driver supports this extension, and it seems unlikely than any driver ever will. I think r300c may have supported it at one time, but that driver has already been removed. Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* mesa: Remove unnecessary parameters from TexImagePauli Nieminen2012-08-121-2/+1
| | | | | | | | | | | gl_texture_image structure always holds size and internal format before TexImage driver hook is called. Those passing same information in function parameters only duplicates information making the interface harder to understand. Signed-off-by: Pauli Nieminen <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: Move DepthMode to texture objectPauli Nieminen2012-08-011-2/+2
| | | | | | | | | | | | | | | | | | | | | | | GL_DEPTH_TEXTURE_MODE isn't meant to be part of sampler state based on compatibility profile specifications. OpenGL specification 4.1 compatibility 20100725 3.9.2: "... The values accepted in the pname parameter are TEXTURE_WRAP_S, TEXTURE_WRAP_T, TEXTURE_WRAP_R, TEXTURE_MIN_- FILTER, TEXTURE_MAG_FILTER, TEXTURE_BORDER_COLOR, TEXTURE_MIN_- LOD, TEXTURE_MAX_LOD, TEXTURE_LOD_BIAS, TEXTURE_COMPARE_MODE, and TEXTURE_COMPARE_FUNC. Texture state listed in table 6.25 but not listed here and in the sampler state in table 6.26 is not part of the sampler state, and remains in the texture object." The list of states is in Table 6.24 "Textures (state per texture object)" instead of 6.25 mentioned in the specification text. Same can be found from 3.3 compatibility specification. Signed-off-by: Pauli Nieminen <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: consolidate internal glTexImage1/2/3D codeBrian Paul2012-06-061-24/+4
| | | | | | | The functions for handling 1D, 2D and 3D texture images were nearly identical. This folds them all together. Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: Fix assertion failure when a cube face is not present.Eric Anholt2012-05-171-1/+2
| | | | | | Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* mesa: add DEBUG_INCOMPLETE_TEXTURE, DEBUG_INCOMPLETE_FBO flagsBrian Paul2012-05-111-8/+9
| | | | | | | Instead of having to hack the code to enable these debugging options, set them through the MESA_DEBUG env var. Reviewed-by: Eric Anholt <[email protected]>
* mesa: add _mesa_total_texture_memory() debug functionBrian Paul2012-04-111-0/+59
| | | | | This function can be called in gdb to find out how much memory is used by all texture objects.
* mesa: Track a gl_format for the texture buffer format.Eric Anholt2012-04-091-0/+1
| | | | | | | | | | | There was a function full of unused mappings from the GLenum to datatype/comps, but that wasn't all the information a driver would want, which includes the other fields that a gl_format has. Given that all the texture buffer formats were represented in gl_format, just use that as our description. Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: Handle updating texture state for buffer textures.Eric Anholt2012-04-091-0/+8
| | | | | | | | | We have to skip some work that wants to look at texture images, since buffer textures don't have any of that complexity. Reviewed-by: Dave Airlie <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: Create the default (name==0) buffer texture.Eric Anholt2012-04-091-0/+5
| | | | | | | | All that should be needed is that it exists. Fixes segfaults on first _mesa_update_context() with a samplerBuffer-using shader active but without a particular buffer texture enabled. Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: Set the correct initial value of the texture buffer object format.Eric Anholt2012-04-091-0/+1
| | | | | | | Fixes piglit GL_ARB_texture_buffer_object/get Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: set numFaces=6 for cube maps in _mesa_test_texobj_completeness()Brian Paul2012-03-231-1/+2
| | | | Reviewed-by: José Fonseca <[email protected]>
* mesa: only test cube face widths in _mesa_test_texobj_completeness()Brian Paul2012-03-201-5/+8
| | | | | | | As Eric pointed out, we know the cube faces are square at this point so we only need to test the texture widths for consistency. Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: add integer texture completeness checkBrian Paul2012-03-201-0/+6
| | | | | | | | Per the spec, only nearest filtering is supported for integer textures. Otherwise, the texture is incomplete. Reviewed-by: José Fonseca <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: rework texture completeness testingBrian Paul2012-03-201-25/+44
| | | | | | | | | | | | | | | | | | | Instead of gl_texture_object::_Complete there are now two fields: _BaseComplete and _MipmapComplete. The former indicates whether the base texture level is valid. The later indicates whether the whole mipmap is valid. With sampler objects, a single texture can appear to be both complete and incomplete at the same time. See the GL_ARB_sampler_objects spec for more details. To implement this we now check if the texture is complete with respect to a sampler state. Another benefit of this is we no longer need to invalidate a texture's completeness state when we change the minification/magnification filters with glTexParameter(). Reviewed-by: José Fonseca <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: rewrite/consolidate code in _mesa_test_texobj_completeness()Brian Paul2012-03-201-138/+45
| | | | | | | | Merge the mipmap level checking code that was separate cases for 1D, 2D, 3D and CUBE before. Reviewed-by: José Fonseca <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: use new baseImage var to simplify _mesa_test_texobj_completeness()Brian Paul2012-03-201-24/+27
| | | | | Reviewed-by: José Fonseca <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: add comments in _mesa_test_texobj_completeness() related to the specBrian Paul2012-03-201-2/+2
| | | | | Reviewed-by: José Fonseca <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: better debug message in _mesa_test_texobj_completeness()Brian Paul2012-03-201-1/+1
| | | | | Reviewed-by: José Fonseca <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: move some code in _mesa_test_texobj_completeness()Brian Paul2012-03-201-7/+7
| | | | | | | | Move the simple MaxLevel < BaseLevel test earlier to be closer to where we error-check BaseLevel. Also, use the local baseLevel var in more places. Reviewed-by: José Fonseca <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: use switch(target) in _mesa_test_texobj_completeness()Brian Paul2012-03-201-15/+19
| | | | | | | and add missing case for GL_TEXTURE_BUFFER. Reviewed-by: José Fonseca <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: use MAX3() macro for 3D texture in _mesa_test_texobj_completeness()Brian Paul2012-03-201-3/+3
| | | | | | Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: José Fonseca <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: fix _mesa_get_fallback_texture() to handle all texture targetsBrian Paul2012-02-151-29/+97
| | | | | | | | | | | | Previously, this function only handled 2D textures. The fallback texture is used when we try to sample from an incomplete texture object. GLSL says sampling an incomplete texture should return (0,0,0,1). v2: use a 1-texel texture image, per José. Reviewed-by: Jose Fonseca <[email protected]>
* mesa: use _mesa_is_user_fbo() and _mesa_is_winsys_fbo() functionsBrian Paul2012-01-121-1/+1
| | | | | | Rather than testing the fbo's name against zero. Reviewed-by: José Fonseca <[email protected]>
* mesa: fix cubemap depth completeness testDave Airlie2012-01-111-3/+5
| | | | | | | | This fixes the test to allow cube/depth combinations on GL3 or EXT_gpu_shader4. Signed-off-by: Dave Airlie <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: remove unused _mesa_init_teximage_fields() target parameterBrian Paul2012-01-041-1/+1
| | | | | Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Yuanhan Liu <[email protected]>
* mesa: simplify Driver.TexImage() parametersBrian Paul2011-12-301-2/+2
| | | | | | | | As with TexSubImage(), the target, level and texObj values can be obtained through the texImage pointer. Reviewed-by: Chad Versace <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: remove the ctx->Driver.IsTextureResident() hookBrian Paul2011-12-081-20/+3
| | | | | | | No driver implemented this and we always returned "True" for residence queries. Reviewed-by: Ian Romanick <[email protected]>
* mesa: check for immutable texture in _mesa_test_texobj_completeness()Brian Paul2011-11-071-4/+9
| | | | | | One of the points of GL_ARB_texture_storage is to make it impossible to have malformed mipmap stacks. If we know the texture object is immutable, we can skip a bunch of size checking.
* mesa: add support for GL_OES_EGL_image_externalChia-I Wu2011-11-031-3/+15
| | | | | | | | | This is an OpenGL ES specific extension. External textures are textures that may be sampled from, but not be updated (no glTexSubImage* and etc.). The image data are taken from an EGLImage. Reviewed-by: Brian Paul <[email protected]> Acked-by: Jakob Bornecrantz <[email protected]>
* mesa: add note about immutable textures for _mesa_test_texobj_completeness()Brian Paul2011-10-311-0/+4
|
* mesa: better debug messages in _mesa_test_texobj_completeness()Brian Paul2011-10-191-19/+22
| | | | And use a gl_texture_image var to simplify the code a bit.
* mesa: add new DeleteTextureImage() driver hookBrian Paul2011-09-171-1/+1
| | | | | | Matches the NewTextureImage() hook. With new subclasses of gl_texture_image coming we need a new hook to properly delete objects of those subclasses.
* mesa: Remove API facing bits of EXT_paletted_texture and ↵Ian Romanick2011-09-061-3/+0
| | | | | | | | | | | | | | EXT_shared_texture_palette This was also discussed at XDS 2010. However, actually making the change was delayed because several drivers still exposed these extensions to significant benefit (e.g., tdfx). Now that those drivers have been removed, this code can be removed as well. v2: A lot of bits that were missed in the previous patch have been removed. Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: don't use K&R style function pointer callsBrian Paul2011-08-041-3/+3
|
* mesa: use inline function wrapper for _mesa_reference_texobj()Brian Paul2011-07-141-6/+4
|
* mesa: Check the texture against all units in unbind_texobj_from_texunits().Henri Verbeet2011-07-071-1/+1
| | | | | | | | NOTE: This is a candidate for the 7.11 branch. Signed-off-by: Henri Verbeet <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* mesa: Flag _NEW_BUFFERS when unbinding an attachment on glDeleteTextures.Eric Anholt2011-06-181-0/+2
| | | | | | | | | | | The _ColorDrawBuffers[] wouldn't get updated despite us having updated what it depends on (Attachments[]->Renderbuffer). Other callers of _mesa_remove_attachment are already flagging _NEW_BUFFERS for other reasons. The specific bug report that led to this fix (and the fbo-finish-deleted testcase) was fixed by 23b6f9606dc247488835745668b3686218612536, though. Reviewed-by: Brian Paul <[email protected]>
* mesa: EXT_texture_sRGB_decode little fixupMarek Olšák2011-05-131-0/+1
| | | | It doesn't fix bug 37150 though.
* mesa: implement AMD_seamless_cubemap_per_textureMarek Olšák2011-05-061-0/+2
|
* mesa: move sampler state into new gl_sampler_object typeBrian Paul2011-04-101-44/+46
| | | | | | gl_texture_object contains an instance of this type for the regular texture object sampling state. glGenSamplers() generates new instances of gl_sampler_object which can override that state with glBindSampler().
* mesa: core support for GL_ARB_texture_buffer_objectBrian Paul2011-04-051-1/+8
| | | | No GLSL or driver support yet.
* mesa: use _mesa_get_current_tex_unit() helper in BindTexture()Brian Paul2011-03-161-2/+2
|
* mesa: remove unneeded local var in BindTexture()Brian Paul2011-03-161-3/+3
|
* mesa: clean up the glBindTexture early out code a bitBrian Paul2011-03-161-10/+12
|
* mesa/swrast: implement EXT_texture_sRGB_decodeDave Airlie2011-01-161-0/+1
| | | | | | | This implements the extension by choosing a different set of texture fetch functions when the texture parameter changes. Signed-off-by: Dave Airlie <[email protected]>
* mesa: Consider textures incomplete when maxlevel < baselevel.Eric Anholt2011-01-051-0/+6
| | | | | See section 3.8.10 of the GL 2.1 specification. There's no way to do anything sane with that, and drivers would get all sorts of angry.
* mesa: set gl_texture_object::_Complete=FALSE in incomplete()Brian Paul2010-12-061-27/+5
|
* mesa: test for cube map completeness in glGenerateMipmap()Brian Paul2010-12-061-0/+38
| | | | | | | The texture is not cube complete if the base level images aren't of the same size and format. NOTE: This is a candidate for the 7.9 branch.