summaryrefslogtreecommitdiffstats
path: root/src/mesa
Commit message (Collapse)AuthorAgeFilesLines
* gallium: make max_anisotropy a unsigned bitfield memberRoland Scheidegger2010-02-121-1/+1
| | | | | | | saves us a dword in sampler state, hw can't do non-integer aniso degree anyway. To allow aniso 1x (which seems of dubious value but some hardware (radeons) have such a mode, and even d3d allows specifiying it) redefine anisotropic filtering as disabled only if max_anistropy is 0.
* gallium: give pipe_stencil_ref its own cso_save/restore functionsRoland Scheidegger2010-02-111-0/+2
| | | | seems cleaner, and other dynamic state like viewport is handled that way too
* gallium: also save/restore stencil_ref in cso_save/restore_depth_stencil_alphaRoland Scheidegger2010-02-111-17/+2
| | | | makes life of state trackers easier
* st/mesa: more fixes for stencil ref change.Roland Scheidegger2010-02-102-2/+20
| | | | | compiles. Might need to do something to make it possible to save/restore stencil ref.
* gallium: don't put stencil ref value in pipe_depth_stencil_alpha_stateRoland Scheidegger2010-02-091-1/+9
| | | | | | | | This will make driver's life a bit harder, however it makes sense that stencil reference value is not part of the pipe_depth_stencil_alpha_state, because it often (there are some algorithms which require this) changes more frequently than the rest of the dsa state. This is also encouraged by some graphic APIs. Treat it similar to pipe_blend_color.
* Merge branch 'gallium-nopointsizeminmax'Roland Scheidegger2010-02-096-16/+126
|\ | | | | | | | | | | | | Conflicts: src/gallium/drivers/nv10/nv10_state.c src/gallium/drivers/nv20/nv20_state.c src/gallium/drivers/nv50/nv50_program.c
| * st/mesa: fix wrong initialization of MaxPointSizeRoland Scheidegger2010-02-081-0/+4
| |
| * gallium: add point_quad_rasterization bit to rasterizer stateRoland Scheidegger2010-02-041-1/+2
| | | | | | | | | | This determines if points should be rasterized according to GL point rules or as normal quads (GL point sprites / d3d points / d3d point sprites).
| * gallium: add point size clamp to implementation limits in vertex shaderRoland Scheidegger2010-02-045-1/+108
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The point size min/max registers (unused by mesa state tracker) were removed since most hardware couldn't do much with them. However, we don't want to have to rely on hw to do point size clamping correctly to implementation dependent limits, hence have to do that in the vertex shader. This should also solve a potential problem with (non-AA) points smaller than 1.0 which according to OGL still have size 1.0. Note that OGL point rendering is odd, in particular point sprites are rasterized differently to points. Some hardware might support those different modes, but in any case the different clamping values used for smooth/multisampled/sprite enabled points might help a bit for hw which rasterizes points the same as point sprites. Also tweak mesa's ff to vertex shader translation so don't have to clamp twice in case of point attenuation.
| * gallium: clean up point sprite rasterizer stateRoland Scheidegger2010-02-031-12/+13
| | | | | | | | | | | | | | | | | | | | Don't need sprite coord origin per coord. Also, don't need separate sprite enable bit - if all coords have it diabled, then there are no point sprites (technically, there's a distinction in pre-GL3, but it only differs in having more leniency in clamping to max size, something the state tracker would need to handle and the hardware won't bother anyway). Also, use packed field for the per-coord enables. All in all, should save 3 dwords in rasterizer state (from 10 down to 7).
| * gallium: remove point_size_min and point_size_max from rasterizer stateRoland Scheidegger2010-01-121-3/+0
| | | | | | | | | | | | | | The state tracker is responsible for clamping to any graphics API enforced size min/max limits for both the static point_size setting as well as per vertex point size (in the vertex shader). Note that mesa state tracker didn't actually use these values.
* | Retire miniglx and move the actual glx code up to src/glxKristian Høgsberg2010-02-092-11/+11
| |
* | st/mesa: remove special-case cyl-wrap codeBrian Paul2010-02-091-9/+1
| | | | | | | | Cylinder wrap mode works with perspective interpolation now.
* | st/mesa: check for PROG_PARAM_BIT_CYL_WRAP flagBrian Paul2010-02-092-5/+22
| |
* | mesa: add back-door support for cylindrical texture wrap modeBrian Paul2010-02-092-0/+13
| | | | | | | | | | | | | | | | | | If the texture priority field is 0.125 set the PROG_PARAM_BIT_CYL_WRAP flag. The gallium state tracker will look for this flag. This feature is only for testing purposes and may be remove at some point. But if it's useful we could write a GL/Mesa extension to expose it properly.
* | mesa: Enable true refcounting for NullBufferObj.Michal Krol2010-02-098-10/+48
| | | | | | | | | | | | | | | | This object can be shared with another context, so we cannot just delete it when the owning context is being destroyed. Ensuring that buffer objects are properly refcounted guarantees NullBufferObj is destroyed when all references to it are removed.
* | mesa: Protect buffer objects reference counting with a mutex.Michal Krol2010-02-092-4/+7
| |
* | mesa: Ensure object refcount is null when destroying the buffer.José Fonseca2010-02-091-0/+2
| | | | | | | | | | | | | | | | Lets see if this is not too pedantic. Obj pointers are never exposed to GL apps so it should be possible to get this right. Furthermore apps with GL widgets and test suits create and destroy many contexts and objects, so bad reference counting is not really an option.
* | mesa: Fix null buffer object reference counting.José Fonseca2010-02-092-6/+19
| | | | | | | | | | | | | | | | Always use _mesa_reference_buffer_object, and never call ctx->Driver.DeleteBuffer() directly to prevent dangling pointers to the null buffer object. This fixes crash/assertions in sharedtex_mt and Autodesk Mudbox.
* | mesa: Always do proper ref counting of shared state.José Fonseca2010-02-093-23/+34
| |
* | radeon: fix UMS since stp addition.Dave Airlie2010-02-081-1/+2
| | | | | | | | | | | | UMS doesn't need the STP atom. Signed-off-by: Dave Airlie <[email protected]>
* | mesa: Fix mesa_next_pow_two to return same value if parameter is pow2.Pauli Nieminen2010-02-071-3/+5
| | | | | | | | | | Without subtracting one pow2 value would be rounded up to next pow2 which is not correct behaviour for the function.
* | r200: Fix LOD min/max emit.Pauli Nieminen2010-02-072-7/+30
| | | | | | | | | | | | Just emit minLod and maxLod to correct reisters. Fixes lodclamp and levelclamp test cases from piglit.
* | r100/r200/r300/r600: Set MaxCombinedTextureImageunits.Pauli Nieminen2010-02-074-0/+11
| | | | | | | | | | | | | | Fixes glActiveTexture to set GL_INVALID_ENUM when trying to activate texture unit that is not available. piglit test case general/texunit passes now.
* | r200: Fix lod bias correction.Pauli Nieminen2010-02-073-4/+7
| | | | | | | | | | | | glean/pointSprite shows that rv280 is trying to read from better quality mipmap level. We have to correct default lod bias to match required texture selection.
* | r200: Add some debug output to texture function.Pauli Nieminen2010-02-061-15/+30
| |
* | r300: Fix emit size prediction to know about primitive splitting.Pauli Nieminen2010-02-061-2/+12
| | | | | | | | Fixes ut2004 warnings about overflowing command buffer.
* | radeon: Add some debug output to texture function.\nPauli Nieminen2010-02-061-26/+84
| |
* | radeon: Use _mesa_next_pow_two_32 instead of own implementation.Pauli Nieminen2010-02-061-14/+1
| |
* | mesa/main: Add function to find next higher power of two.Pauli Nieminen2010-02-061-0/+46
| | | | | | | | | | | | | | | | | | With gcc implementation uses __builtin_clr which counts number of leading zeros. Fallback implementation uses bit manipulation. First it duplicates the highest bit to all lower bits and then adds one to get the power of two number.
* | radeon: Add some debug output to miptree code.Pauli Nieminen2010-02-061-23/+62
| |
* | radeon: Remove the loop from stride size calculation.Pauli Nieminen2010-02-061-8/+14
| | | | | | | | | | | | Changed stride size calculation to do the math by rounding the value instead of loop. r600 minimum stride is 256 which might might cause up to about 60 rounds of the loop.
* | intel: Allow L8 PBO blit uploads.Damien Lespiau2010-02-061-0/+5
| | | | | | | | Bug #32810
* | i965: Keep the CURBE BO mapped and memcpy instead of subdataing.Eric Anholt2010-02-063-11/+13
| | | | | | | | | | | | For the tiny bis of data we generally upload through the CURBEs, the overhead of the kernel's pagetable trickery is actually rather high. This improves cairo-gl gnome-terminal-vim performance by 3.8%.
* | i965: Reset the "need new CURBE BO" flag when we make a new CURBE bo.Eric Anholt2010-02-061-0/+1
| | | | | | | | Improves cairo-gl gnome-terminal-vim times by 11%.
* | intel: Check aperture size when doing a blit glClear.Eric Anholt2010-02-061-0/+10
| | | | | | | | Fixes failure in cairo-gl firefox-planet-gnome.
* | intel: Allow PBO acceleration for GL_RGBA8 MESA_FORMAT_ARGB8888.Eric Anholt2010-02-061-0/+1
| | | | | | | | This improves firefox-talos-svg runtimes on cairo-gl by 14%.
* | st/mesa: allow negative index for PROGRAM_STATE_VARBrian Paul2010-02-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | The piglit vp-address-01 test uses negative address-relative offsets. In this test we're indexing into PROGRAM_STATE_VAR which, in turn, contains references to ENV vars. We previously fixed this issue for PROGRAM_CONSTANT. piglit/vp-address-01 (the version from Feb 5) passes now. (cherry picked from commit 64be837b0b171c44f47a3c0b83f566d292ffff50)
* | mesa: debug output for ARLBrian Paul2010-02-051-0/+3
| |
* | osmesa: Add OSMesaColorClamp and OSMesaGetProcAddress to symbol defs.Brian Paul2010-02-051-0/+2
| | | | | | | | | | | | | | | | | | Without this patch, the two symbols get an underscore prepended and an "@4" appended when compiling with VC8. Signed-off-by: Brian Paul <[email protected]> (cherry picked from commit e65029e9b32ddabea0ec583c04484345b40f1557)
* | glapi: Add back the reduced Noop dispatchKristian Høgsberg2010-02-051-2/+18
| | | | | | | | This got "simplified" away in e4f168a6f4911a096be97d2e83ef8ad9c5862ec0.
* | st/mesa: 'fix' point coord semantic infoBrian Paul2010-02-051-1/+10
| | | | | | | | | | | | | | | | | | | | This fixes the progs/glsl/pointcoord.c demo. But this isn't a proper fix. We really need a TGSI_SEMANTIC_POINT_COORD label so that the draw module can determine which fragment input / vertex output slot needs to be set up with the point coordinate info. We've been using generic slot 0 so far. This would also require telling the draw module about fragment shaders (something it doesn't have at this time).
* | r200: Optimize polygon stipple emit.Pauli Nieminen2010-02-051-1/+10
| | | | | | | | Only emit polygon stipple when the state is enabled.
* | r200: Add trace logging to r200PointSize.Pauli Nieminen2010-02-051-0/+7
| |
* | Merge commit 'fj/mesa-next'Keith Whitwell2010-02-0555-0/+11114
|\ \
| * | Import a classic DRI driver for nv0x-nv2x.Francisco Jerez2010-02-0455-0/+11114
| | |
* | | r100: Add the polygon stipple state to the state list.Pauli Nieminen2010-02-051-0/+1
| | | | | | | | | | | | This fixes glean paths test case.
* | | mesa: change ctx->Driver.ProgramStringNotify() to return GLbooleanBrian Paul2010-02-0414-32/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GL_TRUE indicates that the driver accepts the program. GL_FALSE indicates the program can't be compiled/translated by the driver for some reason (too many resources used, etc). Propogate this result up to the GL API: set GL_INVALID_OPERATION error if glProgramString() was called. Set shader program link status to GL_FALSE if glLinkProgram() was called. At this point, drivers still don't do any program checking and always return GL_TRUE.
* | | r200: Add the polygon stipple state to the state list.Pauli Nieminen2010-02-041-0/+1
| | | | | | | | | | | | This fixes glean paths test case.
* | | r200: Add logging for glPolygonStripple.Pauli Nieminen2010-02-041-0/+6
| | |