summaryrefslogtreecommitdiff
path: root/src/mesa/swrast/s_span.c
AgeCommit message (Collapse)Author
2009-12-31Merge branch 'mesa_7_7_branch'Brian Paul
Conflicts: configs/darwin src/gallium/auxiliary/util/u_clear.h src/gallium/state_trackers/xorg/xorg_exa_tgsi.c src/mesa/drivers/dri/i965/brw_draw_upload.c
2009-12-31swrast: use different temp array in _swrast_get_dest_rgba()Brian Paul
When using multiple color drawbuffers with blending/logicop/masking we were overwriting color values which we still needed.
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-10-29mesa: Mostly fix swrast's ARB_depth_clamp support.Eric Anholt
I'd written a testcase for the hard part of the extension enablement, so naturally the easy stuff was completely broken. There are still issues, as I'm seeing FLOAT_TO_UINT(max_f) == 0x0 when max_f == 1.0, but it gets piglit depth-clamp-range closer to success.
2009-09-30mesa/main: New feature FEATURE_queryobj.Chia-I Wu
It merges FEATURE_ARB_occlusion_query and FEATURE_EXT_timer_query, and follows the feature conventions.
2009-09-08mesa: Add support for ARB_depth_clamp.Eric Anholt
This currently doesn't include fixing up the cliptests in the assembly paths to support ARB_depth_clamp, so enabling depth_clamp forces the C path.
2009-06-03swrast: always do span clipping in _swrast_write_rgba_span()Brian Paul
It's possible for mis-behaving vertex programs to produce vertex data with very large/NaN values. This doesn't get handled reliably by the clipper code so we may try to rasterize triangles that extend beyond the viewport/window. Always clip spans to avoid invalid memory accesses later.
2009-05-07swrast: fix span clipping bugBrian Paul
If a horizontal span of pixels was located at x < 0 we could sometimes read/write outside of renderbuffer bounds.
2009-04-07swrast: restore !shader check around add_specular()Brian Paul
Fixes a regression from commit 76ac75af8e5481b498981c133836efa2101be2dc.
2009-04-06swrast: fix secondary color add for glBitmapBrian Paul
Also, clean up the logic involved in choosing per-vertex vs. per-fragment primary+secondary color addition.
2009-04-01swrast: fix glDrawBuffer(GL_FRONT_AND_BACK)Brian Paul
We weren't putting the right colors into the back buffer in this mode.
2009-03-17swrast: use better _swrast_compute_lambda() functionBrian Paul
The MAX-based function can produce values that are non-monotonic for a span which causes glitches in texture filtering. The sqrt-based one avoids that. This is perhaps slightly slower than before, but the difference probably isn't noticable given we're doing software mipmap filtering. Issue reported by Nir Radian <nirr@horizonsemi.com>
2009-03-02mesa: use Stencil._Enabled field instead of Stencil.EnabledBrian Paul
2009-03-02swrast: use _EnabledCoordUnits for fixed-function texturingBrian Paul
Using _EnabledUnits was wrong because it included vertex texture units. This change plus the prev commit fixes occasional failures of glean/glsl1 vertex texture test failure.
2009-02-04swrast: add minor commentsBrian Paul
2009-01-20mesa: silence uninitialized var warningsBrian Paul
2008-09-18mesa: prefix a bunch of #include lines with "main/".Brian Paul
This is another step toward removing a whole bunch of -I flags from the cc commands. Still need to address driver code...
2008-05-14Updated GLSL uniform/sampler handling from gallium-0.1 branchBrian Paul
Previously, the shader linker combined the uniforms used by the vertex and fragment shaders into a combined set of uniforms. This made the implementation of glUniform*() simple, but was rather inefficient otherwise. Now each shader gets its own set of uniforms (no more modelview matrix showing up in the fragment shader uniforms, for example). cherry-picked by hand from gallium-0.1 branch
2008-04-14fix multi-draw buffer regressionBrian
2008-03-20mesa: The span array is only populated in single-pixelXiang, Haihao
point drawing function.
2008-01-06Simplify ctx->_NumColorDrawBuffers, _ColorDrawBuffers and fix bug 13835.Brian
These fields are no longer indexed by shader output. Now, we just have a simple array of renderbuffer pointers. If the shader writes to gl_FragData[i], send those colors to the N _ColorDrawBuffers. Otherwise, replicate the single gl_FragColor (or the fixed-function color) to the N _ColorDrawBuffers. A few more changes and simplifications can follow from this...
2007-10-24Implement gl_PointCoord attribute for GLSL fragment shaders.Brian
Contains the normalized fragment position within a point sprite.
2007-09-27mesa: make sure the gotten value isn't greater than theXiang, Haihao
max depth buffer value on 64bit system. fix bug #12095
2007-08-16remove reference to ctx->Color.DrawBufferBrian
2007-07-26fix color interpolation for CHAN_BITS==32Brian
2007-06-29Undo some prev glDraw/CopyPixel changes which fixed a bug in which colors ↵Brian
were overwritten by interpolating attributes. Now just set the span->arrayAttribs mask in glDraw/CopyPixels and be sure we don't overwrite the values in interpolate_active_attribs().
2007-06-22fix bug rendering points with fragment program (see #11330)Brian
2007-06-21fix rgba pointer bug hit on zoomed+fogged glDrawPixelsBrian
2007-06-21Another round of fixing attribute interpolation for glDraw/CopyPixels.Brian
Need to turn off FRAG_BIT_COL0 in swrast->_ActiveAttribMask when doing glRead/CopyPixels to prevent the user's colors from getting overwritten when a fragment program is active. This was happening in the DRI drivers when MaintainTexEnv program was used (the texenv fragment program was enabled when _swrast_DrawPixels was called). This still isn't an ideal solution, but fixes things for now.
2007-06-20fix glDrawPixels + fragment program problemBrian
2007-05-20Overhaul/simplify SWvertex and SWspan attribute handling.Brian
Instead of separate fog/specular/texcoord/varying code, just treat all of them as generic attributes. Simplifies the point/line/triangle functions.
2007-05-02changes to get DDX/DDY working againBrian
2007-04-21Fix color sum bug 10688.Brian
2007-04-19Don't allow deferredTexture if using occlusion query and a frag shader.Brian
Occlusion query might depend on the shader killing/discarding fragments. Helps fix depth peeling technique. Also, minor tweaks in interpolate_wpos().
2007-04-18check _PreferPixelFog in _swrast_span_default_fog(), see bug 10669Brian
2007-04-07fix comment typoBrian
2007-03-26Add _swrast_span_default_secondary_color() for use with glBitmap, ↵Brian
glDrawPixels, etc. Secondary color wasn't getting added to post-texture color when drawing bitmaps, images. See bug 10409.
2007-03-13be smarter about which fragment attribs are interpolated before running frag ↵Brian
progs
2007-03-11Implement support for GL_ARB_draw_buffers with GL_MAX_DRAW_BUFFERS > 1.Brian
GL_MAX_DRAW_BUFFERS is currently 4. Added gl_FragData[] output for fragment programs. In _swrast_write_rgba_span() loop over the color outputs/renderbuffers.
2007-03-07fix deferredTexture bugBrian
2007-02-02unroll inner loop of interpolate_varying()Brian
2007-02-02simplify interpolate_texcoords()Brian
2007-02-02Replace color, z, w, texture interpolants with new generic attrib interpolants.Brian
2007-02-02New span attrStart/attrStepX/attrStepY fields to replace fog, specular, etc. ↵Brian
fields. More to come.
2007-02-01commentsBrian
2007-02-01New SWspanarrays attribs[] array.Brian
Replace texcoord[], varying[], etc. arrays with single attribs[] array, indexed by FRAG_ATTRIB_* values. Eliminates need to copy data into fragment program machine input registers. Will lead to future clean-ups.
2007-01-25asst fixes, tranpose span->varying array indexesBrian
2006-12-19Overhaul of GLSL API functions, dispatching, etc.Brian
2006-12-15varying var changesBrian