summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/draw/draw_context.c
AgeCommit message (Collapse)Author
2011-02-11draw: Don't use the pipeline when drawing lines with fractional widths.José Fonseca
Spotted by Jakob Bornecrantz.
2011-01-24draw: Init llvm if not providedJakob Bornecrantz
2011-01-06gallium: drivers should reference vertex buffersMarek Olšák
So that a state tracker can unreference them after set_vertex_buffers.
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-19Merge branch 'llvm-cliptest-viewport'Keith Whitwell
2010-10-12draw/llvmpipe: replace DRAW_MAX_TEXTURE_LEVELS with PIPE_MAX_TEXTURE_LEVELSBrian Paul
There's no apparent reason for the former to exist. And they didn't even have the same value.
2010-10-10draw: some changes to allow for runtime changes to userclip planesdelphi
2010-09-29draw: pass sampler state down to llvm jit stateBrian Paul
Fixes a regression caused from the change to make min/max lod dynamic state. https://bugs.freedesktop.org/show_bug.cgi?id=30437
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-25gallium: Use draw_set_index_buffer and others.Chia-I Wu
Update all drivers to use draw_set_index_buffer, draw_set_mapped_index_buffer, and draw_vbo. Remove draw_set_mapped_element_buffer and draw_set_mapped_element_buffer_range.
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_llvm: fix segfaults on non-SSE2 CPUs where it is disabled (v2)Luca Barbieri
Changes in v2: - Change function name Currently draw_llvm refuses to create itself on non-SSE2 CPUs due to an alleged LLVM bug. However, this is implemented improperly, because other parts of draw still attempt to access draw->llvm, resulting in segfaults. Instead, put the check in debug_get_option_draw_use_llvm, check that before calling draw_llvm_create, and then check whether draw->llvm is non-null everywhere else.
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-11gallium/softpipe/draw: support samplers in geometry shadersZack Rusin
2010-06-08gallium: basic and initial implementation of the stream output interfaceZack Rusin
aka transform feedback
2010-05-14gallium: convert rasterizer state to use gl-style front/back conceptsKeith Whitwell
Use front/back instead of cw/ccw throughout. Also, use offset_point/line/fill instead of offset_cw/ccw. Brings gallium representation of this state into line with its main user, and also what turns out to be the most common hardware representation. This fixes a long-standing bias in the interface towards the architecture of the software rasterizer.
2010-04-21draw: Make LLVM integration work without llvmpipe too (e.g. sofptipe).José Fonseca
Prevents the assertion failure.
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-20draw llvm: Move dereference of pointer after NULL check.Vinson Lee
2010-04-19draw llvm: fix constructor messZack Rusin
use just one constructor to figure out whether to use 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-18draw: Cosmetic cleanups and comments.José Fonseca
2010-03-15Merge remote branch 'origin/master' into gallium_draw_llvmZack Rusin
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-22gallium: Remove bypass_vs_clip_and_viewport from rasteriser state.Michal Krol
Needs testing.
2010-02-02draw: add const qualifiers, fix return typesBrian Paul
2010-02-02draw: new, updated commentsBrian Paul
Try to avoid future confusion between different, but similar functions.
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-27gallium/draw: Remove unnecessary headers.Vinson Lee
2010-01-22Merge branch 'mesa_7_7_branch'Brian Paul
Conflicts: src/gallium/auxiliary/draw/draw_context.c src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline.c src/gallium/auxiliary/pipebuffer/Makefile src/gallium/auxiliary/pipebuffer/SConscript src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c src/gallium/auxiliary/tgsi/tgsi_scan.c src/gallium/drivers/i915/i915_surface.c src/gallium/drivers/i915/i915_texture.c src/gallium/drivers/llvmpipe/lp_setup.c src/gallium/drivers/llvmpipe/lp_tex_sample_c.c src/gallium/drivers/llvmpipe/lp_texture.c src/gallium/drivers/softpipe/sp_prim_vbuf.c src/gallium/state_trackers/xorg/xorg_dri2.c src/gallium/winsys/drm/intel/gem/intel_drm_api.c src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c src/gallium/winsys/drm/radeon/core/radeon_drm.c src/gallium/winsys/drm/vmware/core/vmw_screen_dri.c src/mesa/state_tracker/st_cb_clear.c
2010-01-21draw: Remove unnecessary headers.Vinson Lee
2010-01-16draw: Fix memory leak in gs codeJakob Bornecrantz
2009-12-25gallium: add geometry shader support to galliumZack Rusin
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-03-13gallium: consolidate bypass_vs and bypass_clipping flagsKeith Whitwell
The draw module provides a similar interface to the driver which is retained as various bits of hardware may be able to take on incremental parts of the vertex pipeline. However, there's no need to advertise all this complexity to the state tracker. There are basically two modes now - normal and passthrough/screen-coords.
2009-02-14draw: Fix segfault if rast is nullJakob Bornecrantz
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-10draw: add const qualifiersKeith Whitwell
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-07draw: add switch for drivers to force vertex data passthroughKeith Whitwell
2008-08-25gallium: added const qualifiers on some draw funcsBrian
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]