summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/draw/draw_private.h
AgeCommit message (Collapse)Author
2011-01-24draw: Init llvm if not providedJakob Bornecrantz
2010-11-30gallivm/llvmpipe: squash merge of the llvm-context branchBrian Paul
This branch defines a gallivm_state structure which contains the LLVMBuilderRef, LLVMContextRef, etc. All data structures built with this object can be periodically freed during a "garbage collection" operation. The gallivm_state object has to be passed to most of the builder functions where LLVMBuilderRef used to be used. Conflicts: src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c src/gallium/drivers/llvmpipe/lp_state_setup.c
2010-10-10draw: some changes to allow for runtime changes to userclip planesdelphi
2010-09-17gallium: rework handling of sprite_coord_enable stateBrian Paul
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.
2010-08-25draw: specialized cliptesting routinesKeith Whitwell
2010-08-25draw: Add draw_set_index_buffer and others.Chia-I Wu
This commit adds draw_set_index_buffer, draw_set_mapped_index_buffer, and draw_vbo. The idea behind the new functions is that an index buffer should be a state. draw_arrays and draw_set_mapped_element_buffer are preserved, but the latter will be removed soon.
2010-08-16draw: Remove DRAW_PIPE_MAX_VERTICES and DRAW_PIPE_FLAG_MASK.Chia-I Wu
The higher bits of draw elements are no longer used for the stipple or edge flags.
2010-08-16draw: Replace vcache by vsplit.Chia-I Wu
vcache decomposes primitives while vsplit splits primitives. Splitting is generally easier to do and is faster. More importantly, vcache depends on flatshade_first to decompose. The outputs may have incorrect vertex order which is significant to GS.
2010-08-16draw: Replace varray by vsplit.Chia-I Wu
vsplit is a superset of varray. It sets the split flags comparing to varray.
2010-08-16draw: Add flags to draw_prim_info.Chia-I Wu
A primitive may be splitted in frontends. The splitted primitives should convey certain flag bits so that the decomposer can correctly decide the stipple or edge flags. This commit adds flags to draw_prim_info and updates the decomposer to honor the flags. Frontends and middle ends will be updated later.
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-07-21draw: disable depth clipping if depth clamp is enabledMarek Olšák
2010-07-06draw: implement vertex texture sampling using llvmZack Rusin
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-06-15gs: make sure we end primitives when finishing executing shadersZack Rusin
2010-06-15draw: finish the new pipeline setupZack Rusin
Keith came up with a new way of running the pipeline which involves passing a few info structs around (for fetch, vertices and prims) and allows us to correctly handle cases where we endup with multiple primitives generated by the pipeline itself.
2010-06-15draw wipKeith Whitwell
2010-06-10draw: geometry shader fixesZack Rusin
don't overwrite the inputs and make sure the correct primitive is used on entry
2010-06-08gallium: basic and initial implementation of the stream output interfaceZack Rusin
aka transform feedback
2010-04-26draw: Always use the llvm middle end when available & enabled.José Fonseca
2010-04-21gallium/draw: fix point sprite handlingBrian Paul
New draw API function to indicate whether or not to convert points to quads for sprite rasterization. Fix point-to-quad conversion regression in the wide-point stage. We need to check the pipe_rasterizer_state::point_quad_rasterization flag.
2010-04-20Merge branch 'gallium-index-bias'José Fonseca
2010-04-19draw llvm: fix typo (boolean, not bool)Zack Rusin
2010-04-19draw llvm: allow runtime switching of pipelines (yes/no to llvm)Zack Rusin
use DRAW_USE_LLVM to disable or enable (default) llvm
2010-04-19draw: Implement index bias.José Fonseca
2010-04-19Merge branch '7.8'Brian Paul
Conflicts: src/gallium/auxiliary/draw/draw_context.c src/gallium/auxiliary/draw/draw_pipe_aaline.c src/gallium/drivers/llvmpipe/lp_context.c
2010-04-19gallium/draw: use correct rasterization state for wide/AA points/linesBrian Paul
When points or lines are decomposed into triangles, we need to be sure to disable polygon culling, stippling, "un-filled" modes, etc. This patch sets the rasterization state to disable those things prior to drawing points/lines with triangles, then restores the previous state afterward. The new piglit point-no-line-cull test checks this problem & solution.
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-02-02draw: add const qualifiers, fix return typesBrian Paul
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
2010-01-16draw: Fix memory leak in gs codeJakob Bornecrantz
2010-01-15draw: Add GALLIUM_DUMP_VS environment variable.Luca Barbieri
Add GALLIUM_DUMP_VS to dump the vertex shader to the console like GALLIUM_DUMP_FS in softpipe.
2010-01-05Merge branch 'master' into instanced-arraysMichal Krol
Conflicts: src/gallium/auxiliary/tgsi/tgsi_dump.c src/gallium/include/pipe/p_shader_tokens.h
2009-12-29Implement draw_arrays_instanced() in softpipe.Michal Krol
Modify the translate module to respect instance divisors and accept instance id as a parameter to calculate input vertex offset.
2009-12-25gallium: add geometry shader support to galliumZack Rusin
2009-12-14gallium: more work for edgeflags changesRoland Scheidegger
fixes, cleanups, etc. not working yet
2009-12-09gallium: first steps to treat edgeflags as regular vertex elementKeith Whitwell
The idea here is to eliminate the set_edgeflags() call in pipe_context by treating edgeflags as a regular vertex element. Edgeflags provoke special treatment in hardware, which means we need to label them in some way, in this case we'll be passing them through the vertex shader and labelling the vertex shader output with a new TGSI semantic (TGSI_SEMANTIC_EDGEFLAG).
2009-07-16gallium: reduce recursive include of tgsi_exec.hKeith Whitwell
A lot of draw code no longer needs to see this header.
2009-07-16gallium: proper constructor and destructor for tgsi_exec_machineKeith Whitwell
Centralize the creation, initialization and destruction of this struct. Use align_malloc instead of home-brew alternatives.
2008-12-10Merge commit 'origin/gallium-0.1' into gallium-0.2Brian Paul
2008-12-10gallium: added draw_set_mrd() function to fix polygon offsetBrian Paul
The Minimum Resolvable Depth factor depends on the driver and can't just be computed from the number of Z buffer bits. Glean's polygon offset test now passes with softpipe. Still need to determine the MRD factor for other gallium drivers, if they use the draw module's polygon offset stage...
2008-12-04gallium: added draw_texture_samplers() to support texture fetches from ↵Brian
vertex shaders This may only be practical for the softpipe driver at this time.
2008-10-10Merge commit 'origin/gallium-0.1' into gallium-0.2Keith Whitwell
Conflicts: src/gallium/auxiliary/gallivm/instructionssoa.cpp src/gallium/auxiliary/gallivm/soabuiltins.c src/gallium/auxiliary/rtasm/rtasm_x86sse.c src/gallium/auxiliary/rtasm/rtasm_x86sse.h src/mesa/main/texenvprogram.c src/mesa/shader/arbprogparse.c src/mesa/shader/prog_statevars.c src/mesa/state_tracker/st_draw.c src/mesa/vbo/vbo_exec_draw.c
2008-10-10gallium: silence warningAlan Hourihane
2008-10-07draw: add switch for drivers to force vertex data passthroughKeith Whitwell
2008-07-28Merge tgsi/exec and tgsi/util directories.José Fonseca
2008-06-11draw: don't assume vertex position is in data[0]Keith Whitwell