summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* gallivm: Remove unnecessary header.Vinson Lee2010-09-141-1/+0
|
* gallium: introduce get_shader_param (ALL DRIVERS CHANGED) (v3)Luca Barbieri2010-09-145-11/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changes in v3: - Also change trace, which I forgot about Changes in v2: - No longer adds tessellation shaders Currently each shader cap has FS and VS versions. However, we want a version of them for geometry, tessellation control, and tessellation evaluation shaders, and want to be able to easily query a given cap type for a given shader stage. Since having 5 duplicates of each shader cap is unmanageable, add a new get_shader_param function that takes both a shader cap from a new enum and a shader stage. Drivers with non-unified shaders will first switch on the shader and, within each case, switch on the cap. Drivers with unified shaders instead first check whether the shader is supported, and then switch on the cap. MAX_CONST_BUFFERS is now per-stage. The geometry shader cap is removed in favor of checking whether the limit of geometry shader instructions is greater than 0, which is also used for tessellation shaders. WARNING: all drivers changed and compiled but only nvfx tested