summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/draw/draw_vs_llvm.c
Commit message (Collapse)AuthorAgeFilesLines
* draw: fix draw_llvm_variant_key struct padding to avoid recompilesRoland Scheidegger2013-01-291-2/+3
| | | | | | | | | | | | | | The struct padding got broken by c789b981b244333cfc903bcd1e2fefc010500013. This caused serious performance regression because part of the key was uninitialized and hence the shader always recompiled (at least on release builds...). While here also fix key size calculation when the number of samplers and the number of sampler views are different. v2: add comment Reviewed-by: Jose Fonseca <jfonseca@vmware.com> Reviewed-by: Brian Paul <brianp@vmware.com>
* draw: add missing streamout state setup for draw/llvm.Dave Airlie2012-02-181-0/+1
| | | | Signed-off-by: Dave Airlie <airlied@redhat.com>
* draw: s/varient/variant/Brian Paul2010-12-161-1/+1
|
* draw/llvm: don't flush in vs_llvm_delete()Brian Paul2010-12-091-12/+0
| | | | | | | | | | | | | | | | | | 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).
* draw: Include missing header in draw_vs_llvm.c.Vinson Lee2010-08-281-0/+1
| | | | Include p_screen.h for completely type to pipe_screen.
* draw: reduce the size of the llvm variant keyKeith Whitwell2010-08-221-0/+5
|
* gallium: implement bounds checking for constant buffersBrian Paul2010-07-291-0/+1
| | | | | | 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.
* draw: Remove unnecessary header.Vinson Lee2010-06-261-1/+0
|
* draw: limit the number of vertex shader variants kept aroundZack Rusin2010-06-251-0/+121
| | | | | | | 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.
* draw: Remove draw_vs_llvm.c.José Fonseca2010-04-201-130/+0
| | | | | | To silence some warnings. Super-seeded by Zack's new llvm middle end.
* scons: Make LLVM a black-white dependency.José Fonseca2010-04-111-1/+1
| | | | | | | 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.
* gallium/draw: initial code to properly support llvm in the draw moduleZack Rusin2010-02-221-5/+4
| | | | | code generate big chunks of the vertex pipeline in order to speed up software vertex processing.
* llvmpipe: export the tgsi translation code to a common layerZack Rusin2010-02-081-31/+0
| | | | | | | 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.
* gallium: Rename PIPE_MAX_CONSTANT to PIPE_MAX_CONSTANT_BUFFERS.Michal Krol2010-01-281-1/+1
|
* gallium: Enable multiple constant buffers for vertex and geometry shaders.Michal Krol2010-01-281-2/+3
|
* draw: correct address for machine struct in llvm pathKeith Whitwell2009-07-231-1/+1
| | | | This changed after a recent commit.
* Gallivm: make it compile again, add some opcodes.Stephane Marchesin2008-10-021-0/+1
|
* gallium: refactor/replace p_util.h with util/u_memory.h and util/u_math.hBrian Paul2008-08-241-1/+0
| | | | Also, rename p_tile.[ch] to u_tile.[ch]
* Merge tgsi/exec and tgsi/util directories.José Fonseca2008-07-281-1/+1
|
* llvm: build fixes.Stephane Marchesin2008-07-131-5/+5
|
* draw: create specialized vs varients incorporating fetch & emitKeith Whitwell2008-05-231-0/+2
|
* move the swizzling code to gallivm in preperation for code-generating itZack Rusin2008-05-171-48/+10
| | | | also some minor cleanups
* gallium: in drivers, make copy of tokens passed to pipe->create_vs/fs_state()Brian Paul2008-05-171-2/+5
| | | | The caller can then free the token array immediately.
* actually write the resultsZack Rusin2008-04-211-8/+9
|
* make llvm draw paths compile with the latest changesZack Rusin2008-04-211-6/+7
| | | | | switch the method of distribution of builtins (to get rid of the llvm2cpp dependency)
* draw: remove draw_vertex_fetch.cKeith Whitwell2008-04-181-1/+0
|
* draw: remove old vertex_shader->run() functionsKeith Whitwell2008-04-181-108/+0
|
* draw: split off all the extra functionality in the vertex shaderKeith Whitwell2008-04-181-21/+18
| | | | | | | | | | 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.
* draw: add vertex shader run_linear functionKeith Whitwell2008-04-171-2/+64
|
* draw: move vertex header init out of fetch_shade_pipeline.cKeith Whitwell2008-04-141-0/+1
|
* Make shaders operate on a block of memory instead of arrays of vertex_header'sZack Rusin2008-04-141-1/+1
|
* return true if one of the vertices has been clippedZack Rusin2008-04-141-7/+11
|
* gallium: move duplicated compute_clipmask() code to draw_vs.hBrian2008-04-121-27/+0
|
* draw: associate rhw divide with clipping not viewport flagKeith Whitwell2008-04-011-6/+6
|
* gallium: move the test for bypass_vs into the vs_XXX_run() functionsBrian2008-03-311-15/+27
| | | | | | | | | | 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.
* gallium: replace PIPE_ATTRIB_MAX with PIPE_MAX_ATTRIBSBrian2008-03-271-2/+2
| | | | | The later follows the naming scheme of other limits. Keep the old definition until all possible usage is updated.
* gallium: make a copy of the vertex shader's token array.Brian2008-03-241-1/+6
| | | | | This solves problems when the state tracker frees the token array when the draw module still needs it.
* gallium: use the same bypass_clipping logic on all vs pathsKeith Whitwell2008-03-101-19/+29
|
* Update for llvm -> gallivm rename.José Fonseca2008-02-181-1/+1
|
* draw: subclass vertex shaders according to execution methodKeith Whitwell2008-02-151-0/+237
Create new files for shaders compiled/executed with llvm, sse, exec respectively