summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/llvmpipe/lp_state_fs.c
AgeCommit message (Collapse)Author
2010-11-02llvmpipe: add a castBrian Paul
2010-11-02llvmpipe: assign context's frag shader pointer before using itBrian Paul
The call to draw_bind_fragment_shader() was using the old fragment shader. This bug would have really only effected the draw module's use of the fragment shader in the wide point stage.
2010-10-28gallivm: Remove the EMMS opcodes.José Fonseca
Unnecessary now that lp_set_target_options() successful disables MMX code emission.
2010-10-17Merge remote branch 'origin/master' into lp-setup-llvmKeith Whitwell
Conflicts: src/gallium/drivers/llvmpipe/lp_setup_coef.c src/gallium/drivers/llvmpipe/lp_setup_coef.h src/gallium/drivers/llvmpipe/lp_setup_coef_intrin.c src/gallium/drivers/llvmpipe/lp_setup_point.c src/gallium/drivers/llvmpipe/lp_setup_tri.c src/gallium/drivers/llvmpipe/lp_state_derived.c src/gallium/drivers/llvmpipe/lp_state_fs.h
2010-10-17llvmpipe: Fix bad refactoring.José Fonseca
'i' and 'chan' have random values here, which could cause a buffer overflow in debug builds, if chan > 4.
2010-10-15llvmpipe: validate color outputs against key->nr_cbufsKeith Whitwell
2010-10-15llvmpipe: check shader outputs are non-null before usingKeith Whitwell
2010-10-15llvmpipe: don't pass frontfacing as a floatKeith Whitwell
2010-10-14llvmpipe: code to dump bytecode to file (disabled)Brian Paul
2010-10-14llvmpipe: don't try to emit non-existent color outputsKeith Whitwell
2010-10-13llvmpipe: Unbreak Z32_FLOAT.José Fonseca
Z32_FLOAT uses <4 x float> as intermediate/destination type, instead of <4 x i32>. The necessary bitcasts got removed with commit 5b7eb868fde98388d80601d8dea39e679828f42f Also use depth/stencil type and build contexts consistently, and make the depth pointer argument a ordinary <i8 *>, to catch this sort of issues in the future (and also to pave way for Z16 and Z32_FLOAT_S8_X24 support).
2010-10-11llvmpipe: Use lp_tgsi_info.José Fonseca
2010-10-09gallivm: Cleanup the rest of the flow module.José Fonseca
2010-10-09gallivm: Remove support for Phi generation.José Fonseca
Simply rely on mem2reg pass. It's easier and more reliable.
2010-10-09gallivm: Don't generate Phis for execution mask.José Fonseca
2010-10-09llvmpipe: clean up shader pre/postamble, try to catch more early-zKeith Whitwell
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.
2010-10-09llvmpipe: try to be sensible about whether to branch after mask updatesKeith Whitwell
Don't branch more than once in quick succession. Don't branch at the end of the shader.
2010-10-09gallivm: specialized x8z24 depthtest pathKeith Whitwell
Avoid unnecessary masking of non-existant stencil component.
2010-10-09llvmpipe: dump fragment shader ir and asm when LP_DEBUG=fsKeith Whitwell
Better than GALLIVM_DEBUG if you're only interested in fragment shaders.
2010-10-09llvmpipe: use alloca for fs color outputsKeith Whitwell
Don't try to emit our own phi's, let llvm mem2reg do it for us.
2010-10-09llvmpipe: defer attribute interpolation until after mask and ztestKeith Whitwell
Don't calculate 1/w for quads which aren't visible...
2010-10-06gallivm: Only apply min/max_lod when necessary.José Fonseca
2010-10-06llvmpipe: Dump a few missing shader key flags.José Fonseca
2010-10-06llvmpipe: make debug_fs_variant respect variant->nr_samplersKeith Whitwell
2010-09-22llvmpipe: Make rgb/alpha bland func/factors match, when there is no alpha.José Fonseca
Makes AoS blending easier, and state more canonical.
2010-09-21llvmpipe: When failing free fs shader too.José Fonseca
2010-09-20llvmpipe: maintain fragment shader state for draw moduleBrian Paul
2010-09-18llvmpipe: use llvm for attribute interpolant calculationKeith Whitwell
Basically no change relative to hard-coded version, but this will be useful for other changes later.
2010-09-16llvmpipe: add DEBUG_FS to dump variant informationKeith Whitwell
2010-09-14llvmpipe: Initialize variable for potentially unhandled switch case.Vinson Lee
2010-09-12llvmpipe: pass linear masks to fragment shaderKeith Whitwell
Fragment shader can extract the correct bits for each quad.
2010-09-12llvmpipe: Only generate the whole shader specialization for opaque shaders.José Fonseca
If not opaque, then the color buffer will have to be read any way, therefore the specialization is pointless.
2010-09-11llvmpipe: Don't store display the alpha ref value in the key.José Fonseca
It's never used.
2010-09-09llvmpipe: remove redundant tgsi_dup_tokens() callBrian Paul
We were calling this twice so the first allocation was orphaned/leaked.
2010-09-07llvmpipe: use opcodes instead of function pointers in binsKeith Whitwell
Also, move some state from rasterizer struct to the scene.
2010-09-07llvmpipe: put fs variant dumping in a functionKeith Whitwell
2010-09-05llvmpipe: Relax the colormask constraint on opaque.José Fonseca
Also, include the color buffer in the key. Not having it there causes a tight knots in the logic to determine when it is OK or not to discard previous color buffer contents.
2010-08-25llvmpipe: fence debugging, add llvmpipe_finishKeith Whitwell
2010-08-22llvmpipe: reduce size of fragment shader variant keyKeith Whitwell
Don't spend as much time comparing them.
2010-07-30llvmpipe: Fix implicit declaration of lp_func_delete_body warnings.Vinson Lee
2010-07-30llvmpipe: delete function bodies after generating machine codeZack Rusin
2010-07-29llvmpipe: Avoid corrupting the FPU stack with MMX instructions on 32bit OSes.José Fonseca
Unfortunately LLVM doesn't emit EMMS itself, and there is no easy/effective way to disable MMX. http://llvm.org/bugs/show_bug.cgi?id=3287
2010-07-13llvmpipe: pass mask into fragment shaderKeith Whitwell
Move this code back out to C for now, will generate separately. Shader now takes a mask parameter instead of C0/C1/C2/etc. Shader does not currently use that parameter and rasterizes whole pixel stamps always.
2010-06-22llvmpipe: make geometry shaders and stream output workZack Rusin
2010-06-21llvmpipe: s/lpfs/shader/José Fonseca
2010-06-18llvmpipe: Fix pointer dereference after free.José Fonseca
2010-06-18llvmpipe: limit the number of fragment shader variants kept aroundRoland Scheidegger
llvmpipe can create a large number of shader variants for a single shader (which are quite big), and they were only ever deleted if the shader itself was deleted. This is especially apparent in things like glean blendFunc where a new variant is created for every different subtest, chewing up all memory. This change limits the numbers of fragment shader variants (for all shaders) which are kept around to a fixed number. If that would be exceeded a fixed portion of the cached variants is deleted (since without tracking the used variants this involves flushing we don't want to delete only one). Always the least recently used variants (from all shaders together) are deleted. For now this is all per-context. Both the number of how many variants are cached (1024) as well as how many will be deleted at once (1/4 of the cache size) are just rough guesses and subject to further optimization.
2010-06-07llvmpipe: hook up basic gs and multiple constant buffer supportKeith Whitwell
2010-06-03llvmpipe: Number shaders/variants for more reproducible function names in ↵José Fonseca
the IR.
2010-06-02llvmpipe: Centralize all position interpolation in lp_bld_interp.c.José Fonseca