summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/texstate.c
Commit message (Collapse)AuthorAgeFilesLines
* Replace the _mesa_*printf() wrappers with the plain libc versionsKristian Høgsberg2010-02-191-19/+19
|
* mesa: increase number of texture units to MAX_COMBINED_TEXTURE_IMAGE_UNITSBrian Paul2010-02-031-10/+19
| | | | | | | | | | | | | | | | | | | We were misinterpretting GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS previously. It's the number of texture units for which we need to keep state; not just the total number of texture units addressable by the vertex shader plus fragment shader. Since sw Mesa independently supports 16 texture units in vertex shaders and 16 texture units in fragment shaders, the max combined units is 32. Note that the docs for glActiveTexture() indicate the max legal unit is MAX(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, MAX_TEXTURE_COORDS) - 1. A new piglit test (texunits.c) tests the various texture unit limits. I'm pretty sure I've got this all right now, but additional reviews are welcome...
* mesa: add out of bounds assertions for accessing texture matrix stackBrian Paul2010-02-031-0/+2
|
* mesa: more info in glActiveTexture error msgBrian Paul2010-01-271-1/+2
|
* mesa: Remove unnecessary headers from texstate.c.Vinson Lee2010-01-171-2/+0
|
* mesa: avoid redundant state setting in glClientActiveTextureBrian Paul2009-10-271-0/+7
| | | | Plus add code for verbose/debugging.
* mesa: remove unused ctx->Driver.TextureMatrix() hookBrian Paul2009-10-141-7/+0
|
* Merge branch 'mesa_7_6_branch'Brian Paul2009-09-291-8/+14
|\ | | | | | | | | | | | | | | | | | | | | Conflicts: Makefile configs/default docs/relnotes.html src/gallium/drivers/softpipe/sp_context.c src/gallium/drivers/softpipe/sp_tile_cache.c src/mesa/main/version.h
| * mesa: work-around glXCopyContext() bug in _mesa_copy_texture_state()Brian Paul2009-09-291-8/+14
| | | | | | | | See bug 24217.
* | mesa/main: Make FEATURE_colortable follow feature conventions.Chia-I Wu2009-09-241-6/+0
|/ | | | | As shown in mfeatures.h, this allows users of colortab.h to work without knowing if the feature is available.
* mesa: remove redundant assignmentsBrian Paul2009-09-011-8/+1
|
* mesa: Fixed a texture memory leakRobert Ellison2009-05-081-0/+3
| | | | | | | | | | | | The current texture for any particular texture unit is given an additional reference in update_texture_state(); but if the context is closed before that texture can be released (which is quite frequent in normal use, unless a program unbinds and deletes the texture and renders without it to force a call to update_texture_state(), the memory is lost. This affects general Mesa; but the i965 is particularly affected because it allocates a considerable amount of additional memory for each allocated texture.
* mesa: only use fallback texture when using shaders, not fixed-function (take ↵Brian Paul2009-05-051-8/+14
| | | | | | | | | | | two) The semantics are a little different for shaders vs. fixed-function when trying to use an incomplete texture. The fallback texture returning (0,0,0,1) should only be used with shaders. For fixed function, the texture unit is truly disabled/ignored. Fixes glean fbo test regression.
* Revert "mesa: only use fallback texture when using shaders, not fixed-function"Brian Paul2009-05-051-14/+8
| | | | | | This reverts commit a0edbfb28fb2e670c657d52190a7e8b1ccf4f46e. This patch didn't completely fix the problem. The next patch will.
* mesa: only use fallback texture when using shaders, not fixed-functionBrian Paul2009-05-051-8/+14
| | | | | | | | The semantics are a little different for shaders vs. fixed-function when trying to use an incomplete texture. The fallback texture returning (0,0,0,1) should only be used with shaders. Fixes glean fbo test regression.
* mesa: only use fallback texture when using shaders, not fixed-functionBrian Paul2009-05-051-4/+4
| | | | | | | | The semantics are a little different for shaders vs. fixed-function when trying to use an incomplete texture. The fallback texture returning (0,0,0,1) should only be used with shaders. Fixes glean fbo test regression.
* mesa: create/use a fallback texture when bound texture is incompleteBrian Paul2009-05-011-2/+7
| | | | | | | | | | | | | | When a GLSL sampler reads from an incomplete texture it should return (0,0,0,1). Instead of jumping through hoops in all the drivers to make this happen, just create/install a fallback texture with those texel values. Fixes piglit/fp-incomplete-tex on i965 and more importantly, fixes some GPU lockups when trying to sample from missing surfaces. If a binding table entry is NULL, it seems that sampling sometimes works, but not always (lockup). Todo: create a fallback texture for each type of texture target?
* mesa: improve another _mesa_problem() callBrian Paul2009-03-131-1/+2
|
* mesa: add GL_DUDV_ATI cases in calculate_derived_texenv()Brian Paul2009-03-131-0/+3
|
* mesa: more info in _mesa_problem() callBrian Paul2009-03-131-1/+3
|
* mesa: add support for ATI_envmap_bumpmapRoland Scheidegger2009-03-121-0/+20
| | | | | | | | add new entrypoints, new texture format, etc translate in texenvprogram.c for drivers using the mesa-generated tex env fragment program also handled in swrast, but not tested (cannot work due to negative texel results not handled correctly)
* mesa: remove gl_texture_object::_Function field and associated codeBrian Paul2009-03-111-32/+0
| | | | It was only used in one place in swrast.
* mesa: move call to update_texture_compare_function()Brian Paul2009-03-021-3/+1
| | | | Another conditional can be avoided.
* mesa: fix texture enable regressionBrian Paul2009-03-021-2/+3
| | | | | | | Need to clear the _ReallyEnabled field before possibly continuing the loop. Also, set _Current pointer to NULL if the unit is no longer enabled. Fixes piglit lodbias regression
* mesa: use _mesa_reference_texobj() when setting texUnit->Current pointerBrian Paul2009-03-021-2/+1
| | | | Fixes piglit copytexsubimage regression.
* mesa: fixed computation of _EnabledCoordUnitsBrian Paul2009-03-021-8/+18
| | | | | This field should not include vertex textures. It indicates the coord inputs for fragment / fixed-function processing.
* mesa: move texture_override() code into calling loopBrian Paul2009-03-021-30/+19
| | | | We can avoid a few iterations this way.
* mesa: move update_texture_compare_function() call out of loopBrian Paul2009-03-021-1/+3
|
* mesa: move _GenFlags = 0x0 to texgen loopBrian Paul2009-02-281-1/+2
|
* mesa: move a bunch of compiler-related stuff into new compiler.h headerBrian Paul2009-02-221-0/+1
| | | | This trims down and cleans up imports.h and glheader.h quite a bit.
* mesa: assorted clean-ups, var renaming, etc.Brian Paul2009-02-221-59/+59
|
* mesa: simplify texture combine state copying in _mesa_copy_texture_state()Brian Paul2009-02-221-8/+1
| | | | Just copy the whole struct.
* mesa: remove redundant assertions (same asserts in context.c)Brian Paul2009-02-221-3/+0
|
* mesa: use enums for TEXTURE_x_INDEX valuesBrian Paul2009-02-211-17/+3
| | | | | Plus, put them in the order of highest to lowest priority to simplify the texture_override() loop.
* mesa: use an array for current texture objectsBrian Paul2009-02-211-66/+37
| | | | Use loops to consolidate lots of texture object code.
* mesa: use an array for default texture objectsBrian Paul2009-02-211-15/+23
| | | | | Replace Default1D/2D/3D/Cube/etc with DefaultTex[TEXTURE_x_INDEX]. The same should be done with the Current1D/2D/3D/etc pointers...
* mesa: re-org texgen stateBrian Paul2009-02-211-39/+26
| | | | New gl_texgen struct allows quite a bit of code reduction.
* mesa: don't include m_xform.h where not neededBrian Paul2009-02-121-1/+0
|
* mesa: code refactoring: move texcombine code into update_tex_combine()Brian Paul2009-02-071-75/+92
|
* mesa: minor clean-ups, remove unneeded conditionalBrian Paul2009-02-071-5/+5
|
* mesa: fix logic error in computing enableBits in update_texture_state()Brian Paul2009-02-071-10/+12
| | | | | | | If we had a vertex shader but no fragment shader (i.e. fixed function) we didn't get the right enabled texture targets. Fixes blank/white texture problem.
* mesa: remove GL_SGIX_shadow, GL_SGIX_shadow_ambient and GL_SGIX_depth_textureBrian Paul2009-01-281-10/+0
| | | | Everyone should be using the newer/better ARB versions of these extensions.
* mesa: update state setup/validation for GL_NV_texture_env_combine4Brian Paul2009-01-231-7/+18
|
* mesa: add some debug assertions to detect null current texture object pointersBrian Paul2009-01-211-0/+8
| | | | See bug #17895. These assertions could be removed when this is resolved.
* mesa: increase max texture image units and GLSL samplers to 16Brian Paul2008-12-311-6/+5
| | | | | | | | | | | | | | | | The max texture coord units is still 8. All the fixed-function paths are still limited to 8 too. But GLSL shaders can use more samplers now. Note that some texcoord-related data structures are declared to be 16 elements in size rather than 8. This just simplifies the code in a few places; the extra elements aren't accessible to the user. These changes haven't been extensively tested yet, but sanity checking has been done. It should be possible to increase the max image units/samplers to 32 without doing anything special. Beyond that we'll need longer bitfields in a few places.
* mesa: refactor: move various ENUM_TO_x macros into macros.hBrian Paul2008-09-211-3/+0
|
* mesa: refactor: move glTexParameter-related functions into new texparam.c fileBrian Paul2008-09-211-1000/+0
|
* mesa: refactor: move glTexEnv-related functions into new texenv.c fileBrian Paul2008-09-211-823/+0
| | | | (cherry picked from commit 7ecac78ab53016ae3db3dd601b187cb050037463)
* mesa: refactor: move glTexGen-related functions into new texgen.c fileBrian Paul2008-09-211-568/+0
| | | | (cherry picked from commit 27049189d6221fefe43eb55846efaa51742dcdf4)
* mesa: refactor: move #define FEATURE flags into new mfeatures.h fileKeith Whitwell2008-09-211-3/+11
| | | | | | | | | | | | | Also, check the FEATURE flags in many places. (cherry picked from commit 40d1a40f294f1ed2dacfad6f5498322fc08cc2d1) Conflicts: src/mesa/main/config.h src/mesa/main/context.c src/mesa/main/texobj.c src/mesa/main/texstate.c src/mesa/main/texstore.c