summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers
Commit message (Collapse)AuthorAgeFilesLines
* r600g: enable vertex samplers.Dave Airlie2010-10-114-9/+21
| | | | | | | | We need to move the texture sampler resources out of the range of the vertex attribs. We could probably improve this using an allocator but this is the simple answer for now. makes mesa-demos/src/glsl/vert-tex work.
* r600g: evergreen has no request size bit in texture word4Dave Airlie2010-10-112-4/+0
|
* r600g: fix input/output Z export mixup for evergreen.Dave Airlie2010-10-111-1/+1
|
* gallivm: Cleanup the rest of the flow module.José Fonseca2010-10-091-10/+2
|
* gallivm: Remove support for Phi generation.José Fonseca2010-10-091-4/+0
| | | | Simply rely on mem2reg pass. It's easier and more reliable.
* gallivm: Don't generate Phis for execution mask.José Fonseca2010-10-092-9/+7
|
* llvmpipe: Fix MSVC build. Enable the new SSE2 code on non SSE3 systems.José Fonseca2010-10-091-42/+44
|
* llvmpipe: simplified SSE2 swz/unswz routinesKeith Whitwell2010-10-092-146/+107
| | | | | | | | We've been using these in the linear path for a while now. Based on Chris's SSSE3 code, but using only sse2 opcodes. Speed seems to be identical, but code is simpler & removes dependency on SSE3. Should be easier to extend to other rgba8 formats.
* llvmpipe: clean up shader pre/postamble, try to catch more early-zKeith Whitwell2010-10-093-103/+193
| | | | | | | | | Specifically, can do early-depth-test even when alpahtest or kill-pixel are active, providing we defer the actual z write until the final mask is avaialable. Improves demos/fire.c especially in the case where you get close to the trees.
* llvmpipe: try to be sensible about whether to branch after mask updatesKeith Whitwell2010-10-095-29/+66
| | | | | Don't branch more than once in quick succession. Don't branch at the end of the shader.
* gallivm: specialized x8z24 depthtest pathKeith Whitwell2010-10-092-31/+94
| | | | Avoid unnecessary masking of non-existant stencil component.
* llvmpipe: dump fragment shader ir and asm when LP_DEBUG=fsKeith Whitwell2010-10-091-2/+2
| | | | Better than GALLIVM_DEBUG if you're only interested in fragment shaders.
* llvmpipe: use alloca for fs color outputsKeith Whitwell2010-10-091-4/+12
| | | | Don't try to emit our own phi's, let llvm mem2reg do it for us.
* llvmpipe: defer attribute interpolation until after mask and ztestKeith Whitwell2010-10-093-14/+34
| | | | Don't calculate 1/w for quads which aren't visible...
* llvmpipe: Prevent z > 1.0José Fonseca2010-10-091-6/+14
| | | | | | | | | | | | The current interpolation schemes causes precision loss. Changing the operation order helps, but does not completely avoid the problem. The only short term solution is to clamp z to 1.0. This is unfortunate, but probably unavoidable until interpolation is improved.
* llvmpipe: fix rasterization of vertical lines on pixel boundariesZack Rusin2010-10-091-2/+2
|
* gallivm: Avoid control flow for two-sided stencil test.José Fonseca2010-10-081-92/+58
|
* llvmpipe: fix off-by-one in tri_16Keith Whitwell2010-10-081-1/+1
|
* llvmpipe: add rast_tri_4_16 for small lines and pointsKeith Whitwell2010-10-087-148/+161
|
* llvmpipe: clean up setup_tri a littleKeith Whitwell2010-10-081-27/+26
|
* llvmpipe: avoid overflow in triangle cullingKeith Whitwell2010-10-081-40/+39
| | | | | | | | | | | Avoid multiplying fixed-point values. Calculate triangle area in floating point use that for culling. Lift area calculations up a level as we are already doing this in the triangle_both() case. Would like to share the calculated area with attribute interpolation, but the way the code is structured makes this difficult.
* llvmpipe: fail gracefully on oom in scene creationKeith Whitwell2010-10-086-42/+92
|
* r600g: drop width/height per level storage.Dave Airlie2010-10-082-6/+0
| | | | these aren't used anywhere, so just waste memory.
* r600g: add some RG texture format support.Dave Airlie2010-10-082-0/+28
|
* r600g: fix Z export enable bits.Dave Airlie2010-10-071-1/+1
| | | | | | we should be checking output array not input to decide. Signed-off-by: Dave Airlie <[email protected]>
* r600g: use format from the sampler view not from the texture.Dave Airlie2010-10-072-6/+6
| | | | | we want to use the format from the sampler view which isn't always the same as the texture format when creating sampler views.
* r600g: fix evergreen interpolation setupAndre Maasikas2010-10-071-0/+3
| | | | | | | | interp data is stored in gpr0 so first interp overwrote it and subsequent ones got wrong values reserve register 0 so it's not used for attribs. alternative is to interpolate attrib0 last (reverse, as r600c does)
* llvmpipe: Cleanup depth-stencil clears.José Fonseca2010-10-063-15/+34
| | | | Only cosmetic changes. No actual practical difference.
* gallivm: Only apply min/max_lod when necessary.José Fonseca2010-10-061-0/+4
|
* llvmpipe: Fix sprite coord perspective interpolation of Q.José Fonseca2010-10-061-9/+3
| | | | | Q coordinate's coefficients also need to be multiplied by w, otherwise it will have 1/w, causing problems with TXP.
* llvmpipe: Fix perspective interpolation for point sprites.José Fonseca2010-10-061-17/+54
| | | | | | | | | | | Once a fragment is generated with LP_INTERP_PERSPECTIVE set for an input, it will do a divide by w for that input. Therefore it's not OK to treat LP_INTERP_PERSPECTIVE as LP_INTERP_LINEAR or vice-versa, even if the attribute is known to not vary. A better strategy would be to take the primitive in consideration when generating the fragment shader key, and therefore avoid the per-fragment perspective divide.
* llvmpipe: Dump a few missing shader key flags.José Fonseca2010-10-061-0/+7
|
* llvmpipe: make debug_fs_variant respect variant->nr_samplersKeith Whitwell2010-10-061-25/+23
|
* r600g: add evergreen stencil support.Dave Airlie2010-10-062-2/+24
| | | | this sets the stencil up for evergreen properly.
* r600g: userspace fence to avoid kernel call for testing bo busy statusJerome Glisse2010-10-051-0/+4
| | | | Signed-off-by: Jerome Glisse <[email protected]>
* r600g: simplify block relocationJerome Glisse2010-10-051-3/+2
| | | | | | | Since flush rework there could be only one relocation per register in a block. Signed-off-by: Jerome Glisse <[email protected]>
* r600g: use dirty list to track dirty blocksBas Nieuwenhuizen2010-10-051-0/+2
| | | | Got a speed up by tracking the dirty blocks in a seperate list instead of looping through all blocks. This version should work with block that get their dirty state disabled again and I added a dirty check during the flush as some blocks were already dirty.
* nv50: fix always true conditional in shader optimizationNicolas Kaiser2010-10-051-1/+1
|
* r600g: improve bo flushingJerome Glisse2010-10-051-0/+3
| | | | | | | | | Flush read cache before writting register. Track flushing inside of a same cs and avoid reflushing same bo if not necessary. Allmost properly force flush if bo rendered too and then use as a texture in same cs (missing pipeline flush dunno if it's needed or not). Signed-off-by: Jerome Glisse <[email protected]>
* r600g: drop use_mem_constant.Dave Airlie2010-10-056-11/+3
| | | | since we plan on using dx10 constant buffers everywhere.
* r300g: fix microtiling for 16-bits-per-channel formatsMarek Olšák2010-10-051-3/+3
| | | | | | These texture formats (like R16G16B16A16_UNORM) were untested until now because st/mesa doesn't use them. I am testing this with a hacked st/mesa here.
* r600g: allow r600_bo to be a sub allocation of a big boJerome Glisse2010-10-044-24/+33
| | | | | | | Add bo offset everywhere needed if r600_bo is ever a sub bo of a bigger bo. Signed-off-by: Jerome Glisse <[email protected]>
* r600g: rename radeon_ws_bo to r600_boJerome Glisse2010-10-048-42/+42
| | | | Signed-off-by: Jerome Glisse <[email protected]>
* nvfx: Pair os_malloc_aligned() with os_free_aligned().Krzysztof Smiechowicz2010-10-041-1/+1
| | | | From AROS.
* r600g: the code to check whether a new vertex shader is needed was wrongDave Airlie2010-10-041-1/+3
| | | | | | | this code was memcmp'ing two structs, but refcounting one of them afterwards, so any subsequent memcmp was never going to work. again this stops unnecessary uploads of vertex program,
* r300g: add support for L8A8 colorbuffersMarek Olšák2010-10-021-0/+3
| | | | | Blending with DST_ALPHA is undefined. SRC_ALPHA works, though. I bet some other formats have similar limitations too.
* r300g: add support for R8G8 colorbuffersMarek Olšák2010-10-021-1/+11
| | | | | | | | The hw swizzles have been obtained by a brute force approach, and only C0 and C2 are stored in UV88, the other channels are ignored. R16G16 is going to be a lot trickier.
* r600g: Remove unnecessary headers.Vinson Lee2010-10-012-3/+0
|
* r600g: Remove unused variable.Vinson Lee2010-10-011-1/+1
| | | | | | Fixes this GCC warning. r600_shader.c: In function 'tgsi_split_literal_constant': r600_shader.c:818: warning: unused variable 'index'
* i965g: use Elements macro instead of manual sizeofsNicolas Kaiser2010-10-011-13/+7
| | | | | Signed-off-by: Nicolas Kaiser <[email protected]> Signed-off-by: Brian Paul <[email protected]>