summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/draw/draw_pt_fetch_shade_emit.c
Commit message (Collapse)AuthorAgeFilesLines
* draw: implement TGSI_PROPERTY_VS_WINDOW_SPACE_POSITIONMarek Olšák2014-12-091-1/+1
| | | | | | | Required by Nine. Tested with util_run_tests. It's added to softpipe, llvmpipe, and r300g/swtcl. Tested-by: David Heidelberg <david@ixit.cz>
* s/Tungsten Graphics/VMware/José Fonseca2014-01-171-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tungsten Graphics Inc. was acquired by VMware Inc. in 2008. Leaving the old copyright name is creating unnecessary confusion, hence this change. This was the sed script I used: $ cat tg2vmw.sed # Run as: # # git reset --hard HEAD && find include scons src -type f -not -name 'sed*' -print0 | xargs -0 sed -i -f tg2vmw.sed # # Rename copyrights s/Tungsten Gra\(ph\|hp\)ics,\? [iI]nc\.\?\(, Cedar Park\)\?\(, Austin\)\?\(, \(Texas\|TX\)\)\?\.\?/VMware, Inc./g /Copyright/s/Tungsten Graphics\(,\? [iI]nc\.\)\?\(, Cedar Park\)\?\(, Austin\)\?\(, \(Texas\|TX\)\)\?\.\?/VMware, Inc./ s/TUNGSTEN GRAPHICS/VMWARE/g # Rename emails s/alanh@tungstengraphics.com/alanh@vmware.com/ s/jens@tungstengraphics.com/jowen@vmware.com/g s/jrfonseca-at-tungstengraphics-dot-com/jfonseca-at-vmware-dot-com/ s/jrfonseca\?@tungstengraphics.com/jfonseca@vmware.com/g s/keithw\?@tungstengraphics.com/keithw@vmware.com/g s/michel@tungstengraphics.com/daenzer@vmware.com/g s/thomas-at-tungstengraphics-dot-com/thellstom-at-vmware-dot-com/ s/zack@tungstengraphics.com/zackr@vmware.com/ # Remove dead links s@Tungsten Graphics (http://www.tungstengraphics.com)@Tungsten Graphics@g # C string src/gallium/state_trackers/vega/api_misc.c s/"Tungsten Graphics, Inc"/"VMware, Inc"/ Reviewed-by: Brian Paul <brianp@vmware.com>
* draw: Ensure draw_pt_middle_end::bind_parameters is never NULL.José Fonseca2013-09-201-0/+7
| | | | | | Prevents calling NULL pointer with softpipe in certain cases. Trivial.
* draw: don't crash on vertex buffer overflowZack Rusin2013-05-141-1/+1
| | | | | | | | | | | | | | We would crash when stride was bigger than the size of the buffer. The correct behavior is to just fetch zero's in this case. Unfortunatly with user_buffer's there's no way to validate the size because currently we're just not getting it. Adjust the draw interface to pass the size along the mapped buffer, which works perfectly for buffer backed vertex_buffers and, in future, it will allow us to plumb user_buffer sizes through the same interface. Signed-off-by: Zack Rusin <zackr@vmware.com> Reviewed-by: José Fonseca <jfonseca@vmware.com> Reviewed-by: Roland Scheidegger <sroland@vmware.com>
* draw: replace assert(0) with debug_warn_once()Brian Paul2012-01-071-2/+2
| | | | | | If the assertion was hit, it probably meant that we were unable to allocate or map a vertex buffer. Instead of dying in a debug build, issue a warning and continue.
* draw: whitespace fixes, etc.Brian Paul2012-01-071-61/+56
|
* gallium: make vbuf_render::set_primitive() return voidBrian Paul2012-01-071-5/+1
| | | | All the implementations of this function always return TRUE.
* draw: Prevent out-of-bounds vertex buffer access.José Fonseca2011-04-011-1/+1
| | | | Based on some code and ideas from Keith Whitwell.
* gallium: remove pipe_vertex_buffer::max_indexMarek Olšák2011-02-141-1/+1
| | | | | This is redundant to pipe_draw_info::max_index and doesn't really fit in the optimizations I plan.
* draw: s/varient/variant/Brian Paul2010-12-161-3/+3
|
* draw: specialized cliptesting routinesKeith Whitwell2010-08-251-1/+1
|
* draw: Remove UNDEFINED_VERTEX_ID checks in emit pathes.Chia-I Wu2010-08-251-9/+0
| | | | | | UNDEFINED_VERTEX_ID is used by draw_pipe_vbuf to decide whether a vertex has been emitted or not. The non-pipeline pathes do not use it (they tell the frontend the max vertex count when prepare() is called).
* draw: No need to make max_vertices even.Chia-I Wu2010-08-161-9/+0
| | | | | | | | | Triangle strip alternates the front/back orientation of its triangles. max_vertices was made even so that varray never splitted a triangle strip at the wrong positions. It did not work with triangle strips with adjacencies. And it is no longer relevant with vsplit.
* draw: Add prim flags to middle ends.Chia-I Wu2010-08-161-3/+6
| | | | | Update the middle end interface to pass the primitive flags from the frontends to the pipeline. No frontend sets the flags yet.
* draw: don't try to precalculate the pipeline output primitiveKeith Whitwell2010-06-231-3/+5
| | | | | | | | | | | | | | | | We were previously calculating a value which was either the geometry shader output primitive or the application's input primitive, and passing that to the various front/middle/back components for use as the ultimate rendering primtive. Unfortunately, this was not correct -- if the vcache decomposition path is active and geometry shaders are *not* active, we can end up with a third primitive -- specifically the decomposed version of the input primitive. Rather than trying to precalculate this, just let the individual components inform their successors about which primitive type they are recieving.
* geometry shaders: make gs work with changable primitives and variable number ↵Zack Rusin2010-06-091-6/+5
| | | | | | | | of vertices lots and lots of fixes for geometry shaders. in particular now we work when the gs emits a different primitive than the one the pipeline was started with and also we work when gs emits more vertices than would fit in the original buffer.
* gallium: rename draw() to draw_elements() in vbuf codeBrian Paul2010-05-051-6/+6
| | | | | Now we have draw_elements() and draw_arrays() to be consistent with the pipe_context drawing functions.
* draw: Pass-through pipe_buffer::max_index to translate.José Fonseca2010-04-261-1/+2
| | | | | | | | | | max_index must be observed to prevent crashes due to bad index data. I've been using this patch for some time without regressions. Some places, where we use internal vertex buffer, it is not entirely clear what max_index should be, so passing just ~0 to avoid regressions for now.
* draw: Use translate function instead of switch casesJakob Bornecrantz2010-03-261-25/+4
|
* gallium: Remove bypass_vs_clip_and_viewport from rasteriser state.Michal Krol2010-02-221-2/+1
| | | | Needs testing.
* draw: Remove unnecessary headers.Vinson Lee2010-01-211-1/+0
|
* gallium: remove // comment and extra whitespaceBrian Paul2009-10-021-7/+0
|
* gallium: consolidate bypass_vs and bypass_clipping flagsKeith Whitwell2009-03-131-1/+2
| | | | | | | | | 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.
* draw: second argument to unmap is max, not countKeith Whitwell2009-02-171-3/+3
|
* draw: add map/unmap directives for swtnl driver interfaceKeith Whitwell2009-02-171-49/+55
| | | | | | | | | | Previously draw module asked for a pointer into (mapped) vertex data, which it would incrementally fill and emit draw commands against. This was hard for the drivers to deal with, especially in the case where a draw command would force a flush and thus an unmap of the vertex data. With this change, the draw module explicitly maps & then unmaps vertex data prior to emitting draw commands.
* gallium: standardize on stride instead of pitch in the interfaceZack Rusin2009-01-271-2/+2
|
* gallium: change 65535 to UNDEFINED_VERTEX_IDAlan Hourihane2008-12-101-3/+3
|
* gallium: more vertex count checksAlan Hourihane2008-12-101-2/+12
|
* gallium: temporary check for > 65535 verticesAlan Hourihane2008-12-101-0/+3
|
* make draw's vertex_info struct smaller/quicker to compare with memcmp()Keith Whitwell2008-10-061-3/+3
|
* draw: don't keep refetching constant inputsKeith Whitwell2008-10-021-18/+19
|
* draw: attempt atomic submit of large drawelements callsKeith Whitwell2008-08-261-3/+4
|
* gallium: refactor/replace p_util.h with util/u_memory.h and util/u_math.hBrian Paul2008-08-241-1/+2
| | | | Also, rename p_tile.[ch] to u_tile.[ch]
* gallium: split long prims into chunks with an even number of verticesBrian Paul2008-06-181-0/+9
| | | | | | This fixes culling "parity" errors when splitting long tri strips. Splitting strips into chunks with an odd number of vertices causes front/back-face orientation to get reversed and upsets culling.
* draw: fix intermediate buffer confusion in draw_vs_varient.cKeith Whitwell2008-06-061-0/+7
| | | | | | The final output buffer can't be used to hold intermediate results as the intermediate vertex size may be greater than the final vertex size, and in any case the output buffer may be uncached in hw drivers.
* draw: respect driver's max vertex buffer sizeKeith Whitwell2008-06-041-7/+10
|
* draw: draw_range_elements trialKeith Whitwell2008-05-291-0/+49
|
* draw: share machineKeith Whitwell2008-05-291-6/+0
|
* draw: support psize in vs_varient pathsKeith Whitwell2008-05-271-32/+3
| | | | | Preserve the vinfo "EMIT_*" format descriptors in the varient key, and deal with PSIZE directly in each implementation.
* draw: add disabled debug codeKeith Whitwell2008-05-271-1/+27
|
* draw: ensure vs outputs mapped correctly to vinfo attribsKeith Whitwell2008-05-271-0/+1
|
* draw: explicitly list nr_inputs, outputs in varient keyKeith Whitwell2008-05-271-5/+9
|
* draw: Fix for EMIT_4UB caseJakob Bornecrantz2008-05-271-1/+4
|
* draw: hook up viewport / rhw emit to varient key stateKeith Whitwell2008-05-271-2/+2
|
* draw: fse works with elts, remove assertKeith Whitwell2008-05-231-8/+2
|
* draw: add viewport to varient stateKeith Whitwell2008-05-231-1/+8
|
* draw: create specialized vs varients incorporating fetch & emitKeith Whitwell2008-05-231-0/+338
|
* draw: get rid of fetch-shade-emit frontend hackKeith Whitwell2008-05-231-677/+0
| | | | The code is now living in it's intended place as a pt middle end.
* draw: turn fse path into a middle endKeith Whitwell2008-05-121-38/+1
| | | | Also add some util functions in pt_util.c
* draw: add fetch-shade-emit pathKeith Whitwell2008-05-121-0/+714
Enable with TEST_FSE=t. Performs fetch from API-provided vertex buffers, transformation with one of three (two working) hard-coded shaders, and final emit to hardware vertices all in a single pass. Currently only really useful for profiling in conjunction with SP_NO_RAST=t.