summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary
AgeCommit message (Collapse)Author
2010-09-30Prefer intrinsics to handrolled atomic ops.Tom Fogal
2010-09-30Implement x86_64 atomics for compilers w/o intrinsics.Tom Fogal
Really old gcc's (3.3, at least) don't have support for the intrinsics we need. This implements a fallback for that case.
2010-09-30gallivm: check for level=0 case in lp_build_minify()Brian Paul
This lets us avoid the shift and max() operations.
2010-09-30gallivm: More comprehensive border usage logic.José Fonseca
2010-09-30gallium/util: remove duplicated includeNicolas Kaiser
Remove duplicated include. Signed-off-by: Brian Paul <brianp@vmware.com>
2010-09-30gallium/rtasm: remove duplicated includeNicolas Kaiser
Remove duplicated include. Signed-off-by: Brian Paul <brianp@vmware.com>
2010-09-29gallivm: Use SSE4.1's ROUNDSS/ROUNDSD for scalar rounding.José Fonseca
2010-09-29draw: pass sampler state down to llvm jit stateBrian Paul
Fixes a regression caused from the change to make min/max lod dynamic state. https://bugs.freedesktop.org/show_bug.cgi?id=30437
2010-09-27llvmpipe: fix swizzling of texture border colorBrian Paul
The pipe_sampler_view's swizzle terms also apply to the texture border color. Simply move the apply_sampler_swizzle() call after we fetch the border color. Fixes many piglit texwrap failures.
2010-09-27ureg: support centroid interpolationLuca Barbieri
2010-09-26util/u_blitter: fix leakJoakim Sindholt
2010-09-25gallivm: fix repeat() function for NPOT texturesBrian Paul
The trick of casting the coord to an unsigned value only works for POT textures. Add a bias instead. This fixes a few piglit texwrap failures.
2010-09-25gallivm: Remove dead experimental code.José Fonseca
2010-09-25gallivm: Fetch the lod from the dynamic state when min_lod == max_lod.José Fonseca
2010-09-25draw: Fullfil the new min_lod/max_lod/lod_bias/border_color dynamic stateJosé Fonseca
2010-09-25gallivm: optimize yuv decodingRoland Scheidegger
this is more a proof to show vector shifts on x86 with per-element shift count are evil. Since we can avoid the shift with a single compare/select, use that instead. Replaces more than 20 instructions (and slow ones at that) with about 3, and cuts compiled shader size with mesa's yuvsqure demo by over 10% (no performance measurements done - but selection is blazing fast). Might want to revisit that for future cpus - unfortunately AVX won't have vector shifts neither, but AMD's XOP will, but even in that case using selection here is probably not slower.
2010-09-25gallivm: don't use URem/UDiv when calculating offsets for blocksRoland Scheidegger
While it's true that llvm can and will indeed replace this with bit arithmetic (since block height/width is POT), it does so (llvm 2.7) by element and hence extracts/shifts/reinserts each element individually. This costs about 16 instructions (and extract is not really fast) vs. 1...
2010-09-25gallivm: fix copy&paste bugRoland Scheidegger
looks like pot_depth should be used, not pot_height (found by accident, not verified)
2010-09-25util: fix util_pack_color for B4G4R4A4Marek Olšák
NOTE: This is a candidate for the 7.9 branch.
2010-09-24llvmpipe: make texture border_color dynamic stateBrian Paul
2010-09-24llvmpipe: make min/max lod and lod bias dynamic stateBrian Paul
Before, changing any of these sampler values triggered generation of new JIT code. Added a new flag for the special case of min_lod == max_lod which is hit during auto mipmap generation.
2010-09-24util: make calling remove_from_list multiple times in a row safeMarek Olšák
This commit fixes an infinite loop in foreach_s if remove_from_list is used more than once on the same item with other list operations in between. NOTE: This is a candidate for the 7.9 branch because the commit "r300g: fixup long-lived BO maps being incorrectly unmapped when flushing" depends on it.
2010-09-23draw: Prevent clipped vertices overflow.José Fonseca
Some pathological triangles cause a theoritically impossible number of clipped vertices. The clipper will still assert, but at least release builds will not crash, while this problem is further investigated.
2010-09-23draw: don't apply flatshading to clipped tris with <3 vertsKeith Whitwell
If a triangle was completely culled by clipping, we would still try to fix up its provoking vertex.
2010-09-23u_blitter: add a custom blitter call passing a dsa csoDave Airlie
reimplement the flush stage added for r300 to allow a custom DSA stage to be used in the pipeline, this allows for r600 hw DB->CB flushes.
2010-09-22tgsi: Fix missing test before checkJakob Bornecrantz
As introduced with commit d21301675c249602e19310d5b62fad424f2f2ac2 NOTE: This is a candidate for the 7.9 branch.
2010-09-22gallivm: Add unorm support to lp_build_lerp()José Fonseca
Unfortunately this can cause segfault with LLVM 2.6, if x is a constant.
2010-09-21gallivm: fix lp_build_sample_compare()Brian Paul
The old code didn't really make sense. We only need to compare the X channel of the texture (depth) against the texcoord. For (bi)linear sampling we should move the calls to this function and compute the final result as (s1+s2+s3+s4) * 0.25. Someday. This fixes the glean glsl1 shadow2D() tests. See fd.o bug 29307.
2010-09-21draw: new draw_fs.[ch] filesBrian Paul
2010-09-21Merge branch 'sprite-coord'Brian Paul
2010-09-20tgsi: Remove duplicate case value.Vinson Lee
2010-09-21tgsi: Actually care what check_soa_dependencies saysJakob Bornecrantz
Thanks to José for the more complete list of supported opcodes. NOTE: This is a candidate for the 7.9 branch.
2010-09-21tgsi: Don't ignore indirect registers in tgsi_check_soa_dependenciesJosé Fonseca
NOTE: This is a candidate for the 7.9 branch.
2010-09-20draw: check bitshift against PIPE_MAX_SHADER_OUTPUSBrian Paul
2010-09-20draw: fix test for using the wide-point stageBrian Paul
As it was, we weren't obeying the draw->pipeline.point_sprite state. Fixes point sprites in llvmpipe driver.
2010-09-20tgsi: add switch/case opcodes to tgsi_opcode_tmp.hLuca Barbieri
2010-09-20gallivm: remove debug codeBrian Paul
2010-09-20util/r300g: split the r300 index buffer modifier functions out to utilDave Airlie
These can be used by other drivers, like r600g. Signed-off-by: Dave Airlie <airlied@redhat.com>
2010-09-20rbug: Add function to get opcode name stringJakob Bornecrantz
2010-09-20rbug: Cast opcode to corrent int sizeJakob Bornecrantz
2010-09-19auxiliary: fix depth-only and stencil-only clearsLuca Barbieri
Depth-only and stencil-only clears should mask out depth/stencil from the output, mask out stencil/input from input, and OR or ADD them together. However, due to a typo they were being ANDed, resulting in zeroing the buffer.
2010-09-17gallium: rework handling of sprite_coord_enable stateBrian Paul
Implement the pipe_rasterizer_state::sprite_coord_enable field in the draw module (and softpipe) according to what's specified in the documentation. The draw module can now add any number of extra vertex attributes to a post-transformed vertex and generate texcoords for those attributes per sprite_coord_enable. Auto-generated texcoords for sprites only worked for one texcoord unit before. The frag shader gl_PointCoord input is now implemented like any other generic/texcoord attribute. The draw module now needs to be informed about fragment shaders since we need to look at the fragment shader's inputs to know which ones need auto-generated texcoords. Only softpipe has been updated so far.
2010-09-17util: linearized sRGB values don't fit into 8bitsJosé Fonseca
Fixes glean texture_srgb test.
2010-09-17gallivm: added missing case for PIPE_TEXTURE_RECTBrian Paul
Fixes fd.o bug 30245
2010-09-16tgsi/sse: fix aos_to_soa() loop to handle num_inputs==0Brian Paul
Basically, change the loop from: do {...} while (--num_inputs != 0) into: while (num_inputs != 0) { ... --num_inputs; } Fixes fd.o bug 29987.
2010-09-16gallivm: Remove unnecessary header.Vinson Lee
2010-09-16gallivm: fix wrong return value in bitwise functionsBrian Paul
2010-09-16gallivm: Clamp indirect register indices to file_max.José Fonseca
Prevents crashes with bogus data, or bad shader translation.
2010-09-16gallivm: Start collecting bitwise arithmetic helpers in a new module.José Fonseca
2010-09-16gallivm: Fix address register swizzle.José Fonseca
We're actually doing a double swizzling: indirect_reg->Swizzle[indirect_reg->SwizzleX] instead of simply indirect_reg->SwizzleX