summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary
Commit message (Collapse)AuthorAgeFilesLines
* llvmpipe: fix swizzling of texture border colorBrian Paul2010-09-271-2/+2
| | | | | | | | 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.
* ureg: support centroid interpolationLuca Barbieri2010-09-272-9/+31
|
* util/u_blitter: fix leakJoakim Sindholt2010-09-261-1/+1
|
* gallivm: fix repeat() function for NPOT texturesBrian Paul2010-09-252-10/+17
| | | | | 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.
* gallivm: Remove dead experimental code.José Fonseca2010-09-252-78/+46
|
* gallivm: Fetch the lod from the dynamic state when min_lod == max_lod.José Fonseca2010-09-252-5/+4
|
* draw: Fullfil the new min_lod/max_lod/lod_bias/border_color dynamic stateJosé Fonseca2010-09-253-0/+33
|
* gallivm: optimize yuv decodingRoland Scheidegger2010-09-251-9/+55
| | | | | | | | | | | 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.
* gallivm: don't use URem/UDiv when calculating offsets for blocksRoland Scheidegger2010-09-251-1/+11
| | | | | | | 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...
* gallivm: fix copy&paste bugRoland Scheidegger2010-09-251-1/+1
| | | | | looks like pot_depth should be used, not pot_height (found by accident, not verified)
* util: fix util_pack_color for B4G4R4A4Marek Olšák2010-09-251-1/+1
| | | | NOTE: This is a candidate for the 7.9 branch.
* llvmpipe: make texture border_color dynamic stateBrian Paul2010-09-243-25/+53
|
* llvmpipe: make min/max lod and lod bias dynamic stateBrian Paul2010-09-244-20/+37
| | | | | | 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.
* util: make calling remove_from_list multiple times in a row safeMarek Olšák2010-09-241-0/+2
| | | | | | | | | 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.
* draw: Prevent clipped vertices overflow.José Fonseca2010-09-231-1/+13
| | | | | | | | 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.
* draw: don't apply flatshading to clipped tris with <3 vertsKeith Whitwell2010-09-231-17/+18
| | | | | If a triangle was completely culled by clipping, we would still try to fix up its provoking vertex.
* u_blitter: add a custom blitter call passing a dsa csoDave Airlie2010-09-232-14/+37
| | | | | 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.
* tgsi: Fix missing test before checkJakob Bornecrantz2010-09-221-1/+2
| | | | | | As introduced with commit d21301675c249602e19310d5b62fad424f2f2ac2 NOTE: This is a candidate for the 7.9 branch.
* gallivm: Add unorm support to lp_build_lerp()José Fonseca2010-09-221-9/+75
| | | | Unfortunately this can cause segfault with LLVM 2.6, if x is a constant.
* gallivm: fix lp_build_sample_compare()Brian Paul2010-09-211-17/+23
| | | | | | | | | | 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.
* draw: new draw_fs.[ch] filesBrian Paul2010-09-212-0/+115
|
* Merge branch 'sprite-coord'Brian Paul2010-09-219-83/+143
|\
| * draw: check bitshift against PIPE_MAX_SHADER_OUTPUSBrian Paul2010-09-201-1/+5
| |
| * draw: fix test for using the wide-point stageBrian Paul2010-09-201-2/+2
| | | | | | | | | | As it was, we weren't obeying the draw->pipeline.point_sprite state. Fixes point sprites in llvmpipe driver.
| * gallium: rework handling of sprite_coord_enable stateBrian Paul2010-09-178-81/+137
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | tgsi: Remove duplicate case value.Vinson Lee2010-09-201-1/+0
| |
* | tgsi: Actually care what check_soa_dependencies saysJakob Bornecrantz2010-09-211-17/+39
| | | | | | | | | | | | Thanks to José for the more complete list of supported opcodes. NOTE: This is a candidate for the 7.9 branch.
* | tgsi: Don't ignore indirect registers in tgsi_check_soa_dependenciesJosé Fonseca2010-09-211-2/+4
| | | | | | | | NOTE: This is a candidate for the 7.9 branch.
* | tgsi: add switch/case opcodes to tgsi_opcode_tmp.hLuca Barbieri2010-09-201-0/+4
| |
* | gallivm: remove debug codeBrian Paul2010-09-201-2/+0
| |
* | util/r300g: split the r300 index buffer modifier functions out to utilDave Airlie2010-09-204-0/+170
| | | | | | | | | | | | These can be used by other drivers, like r600g. Signed-off-by: Dave Airlie <[email protected]>
* | rbug: Add function to get opcode name stringJakob Bornecrantz2010-09-202-0/+69
| |
* | rbug: Cast opcode to corrent int sizeJakob Bornecrantz2010-09-204-28/+28
| |
* | auxiliary: fix depth-only and stencil-only clearsLuca Barbieri2010-09-191-1/+1
| | | | | | | | | | | | | | 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.
* | util: linearized sRGB values don't fit into 8bitsJosé Fonseca2010-09-171-0/+8
| | | | | | | | Fixes glean texture_srgb test.
* | gallivm: added missing case for PIPE_TEXTURE_RECTBrian Paul2010-09-171-0/+1
|/ | | | Fixes fd.o bug 30245
* tgsi/sse: fix aos_to_soa() loop to handle num_inputs==0Brian Paul2010-09-161-6/+9
| | | | | | | | | Basically, change the loop from: do {...} while (--num_inputs != 0) into: while (num_inputs != 0) { ... --num_inputs; } Fixes fd.o bug 29987.
* gallivm: Remove unnecessary header.Vinson Lee2010-09-161-1/+0
|
* gallivm: fix wrong return value in bitwise functionsBrian Paul2010-09-161-3/+3
|
* gallivm: Clamp indirect register indices to file_max.José Fonseca2010-09-161-60/+71
| | | | Prevents crashes with bogus data, or bad shader translation.
* gallivm: Start collecting bitwise arithmetic helpers in a new module.José Fonseca2010-09-167-30/+260
|
* gallivm: Fix address register swizzle.José Fonseca2010-09-161-2/+1
| | | | | | | | | | We're actually doing a double swizzling: indirect_reg->Swizzle[indirect_reg->SwizzleX] instead of simply indirect_reg->SwizzleX
* gallivm: make lp_build_sample_nop publicKeith Whitwell2010-09-162-6/+8
|
* gallivm: move i32_vec_type inside the #ifdefBrian Paul2010-09-161-1/+2
|
* gallivm: fix incorrect vector shuffle datatypeBrian Paul2010-09-161-1/+5
| | | | The permutation vector must always be a vector of int32 values.
* draw: Remove unnecessary header.Vinson Lee2010-09-151-1/+0
|
* gallivm: Remove unnecessary headers.Vinson Lee2010-09-151-2/+0
|
* gallivm: expand AoS sampling to cover all filtering modesBrian Paul2010-09-157-1029/+1919
| | | | ...and all texture targets (1D/2D/3D/CUBE).
* tgsi: fix incorrect usage_mask for shadow tex instructionsBrian Paul2010-09-151-5/+6
| | | | | | The shadow versions of the texture targets use an extra component (Z) to express distance from light source to the fragment. Fixes the shadowtex demo with llvmpipe.
* auxiliary: fix unintended fallthroughLuca Barbieri2010-09-141-0/+1
|