summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/draw/draw_vs_llvm.c
AgeCommit message (Collapse)Author
2010-12-16draw: s/varient/variant/Brian Paul
2010-12-09draw/llvm: don't flush in vs_llvm_delete()Brian Paul
Fixes piglit glx-shader-sharing crash. When shaders are shared by multiple contexts, the shader's draw context pointer may point to a previously destroyed context. Dereferencing the context pointer will lead to a crash. In this case, simply removing the flushing code avoids the crash (the exec and sse shader paths don't flush here either). There's a deeper issue here, however, that needs examination. Shaders should not keep pointers to contexts since contexts might get destroyed at any time. NOTE: This is a candidate for the 7.10 branch (after this has been tested for a while).
2010-08-28draw: Include missing header in draw_vs_llvm.c.Vinson Lee
Include p_screen.h for completely type to pipe_screen.
2010-08-22draw: reduce the size of the llvm variant keyKeith Whitwell
2010-07-29gallium: implement bounds checking for constant buffersBrian Paul
Plumb the constant buffer sizes down into the tgsi interpreter where we can do bounds checking. Optional debug code warns upon out-of-bounds reading. Plus add a few other assertions in the TGSI interpreter.
2010-06-26draw: Remove unnecessary header.Vinson Lee
2010-06-25draw: limit the number of vertex shader variants kept aroundZack Rusin
we used to create and cache unltimited number of variant, this change limits the number of variants kept around to a fixed number. the change is based on a similar patch by Roland for llvmpipe fragment shaders.
2010-04-20draw: Remove draw_vs_llvm.c.José Fonseca
To silence some warnings. Super-seeded by Zack's new llvm middle end.
2010-04-11scons: Make LLVM a black-white dependency.José Fonseca
Now that draw depends on llvm it is very difficult to correctly handle broken llvm installations. Either the user requests LLVM and it needs to supply a working installation. Or it doesn't, and it gets no LLVM accelerate pipe drivers.
2010-02-22gallium/draw: initial code to properly support llvm in the draw moduleZack Rusin
code generate big chunks of the vertex pipeline in order to speed up software vertex processing.
2010-02-08llvmpipe: export the tgsi translation code to a common layerZack Rusin
the llvmpipe tgsi translation is a lot more complete than what was in gallivm so replacing the latter with the former. this is needed since the draw llvm paths will use the same code. effectively the proven llvmpipe code becomes gallivm.
2010-01-28gallium: Rename PIPE_MAX_CONSTANT to PIPE_MAX_CONSTANT_BUFFERS.Michal Krol
2010-01-28gallium: Enable multiple constant buffers for vertex and geometry shaders.Michal Krol
2009-07-23draw: correct address for machine struct in llvm pathKeith Whitwell
This changed after a recent commit.
2008-10-02Gallivm: make it compile again, add some opcodes.Stephane Marchesin
2008-08-24gallium: refactor/replace p_util.h with util/u_memory.h and util/u_math.hBrian Paul
Also, rename p_tile.[ch] to u_tile.[ch]
2008-07-28Merge tgsi/exec and tgsi/util directories.José Fonseca
2008-07-13llvm: build fixes.Stephane Marchesin
2008-05-23draw: create specialized vs varients incorporating fetch & emitKeith Whitwell
2008-05-17move the swizzling code to gallivm in preperation for code-generating itZack Rusin
also some minor cleanups
2008-05-17gallium: in drivers, make copy of tokens passed to pipe->create_vs/fs_state()Brian Paul
The caller can then free the token array immediately.
2008-04-21actually write the resultsZack Rusin
2008-04-21make llvm draw paths compile with the latest changesZack Rusin
switch the method of distribution of builtins (to get rid of the llvm2cpp dependency)
2008-04-18draw: remove draw_vertex_fetch.cKeith Whitwell
2008-04-18draw: remove old vertex_shader->run() functionsKeith Whitwell
2008-04-18draw: split off all the extra functionality in the vertex shaderKeith Whitwell
This will at least allow us to make the initial gains to get decent vertex performance much more quickly & with higher confidence of getting it right. At some later point can look again at code-generating all the fetch/cliptest/viewport extras in the same block as the vertex shader. For now, just need to get some decent baseline performance.
2008-04-17draw: add vertex shader run_linear functionKeith Whitwell
2008-04-14draw: move vertex header init out of fetch_shade_pipeline.cKeith Whitwell
2008-04-14Make shaders operate on a block of memory instead of arrays of vertex_header'sZack Rusin
2008-04-14return true if one of the vertices has been clippedZack Rusin
2008-04-12gallium: move duplicated compute_clipmask() code to draw_vs.hBrian
2008-04-01draw: associate rhw divide with clipping not viewport flagKeith Whitwell
2008-03-31gallium: move the test for bypass_vs into the vs_XXX_run() functionsBrian
Also: 1. Added an identity_viewport flag to skip viewport transformation when it has no effect. Might also add an explicit bypass_viewport flag someday. 2. Separate the code for computing clip codes and doing the viewport transform. Predicate them separately. Note: even if bypass_vs is set, we still look at the shader to determine the number of inputs and outputs.
2008-03-27gallium: replace PIPE_ATTRIB_MAX with PIPE_MAX_ATTRIBSBrian
The later follows the naming scheme of other limits. Keep the old definition until all possible usage is updated.
2008-03-24gallium: make a copy of the vertex shader's token array.Brian
This solves problems when the state tracker frees the token array when the draw module still needs it.
2008-03-10gallium: use the same bypass_clipping logic on all vs pathsKeith Whitwell
2008-02-18Update for llvm -> gallivm rename.José Fonseca
2008-02-15draw: subclass vertex shaders according to execution methodKeith Whitwell
Create new files for shaders compiled/executed with llvm, sse, exec respectively