History log of /external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
150c289f6067cb1ba4572f9124948a94ef94c839 04-Dec-2015 Edward O'Callaghan <eocallaghan@alterapraxis.com> gallium/auxiliary: Sanitize NULL checks into canonical form

Use NULL tests of the form `if (ptr)' or `if (!ptr)'.
They do not depend on the definition of the symbol NULL.
Further, they provide the opportunity for the accidental
assignment, are clear and succinct.

Signed-off-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
877128505431adaf817dc8069172ebe4a1cdf5d8 17-Jan-2014 José Fonseca <jfonseca@vmware.com> s/Tungsten Graphics/VMware/

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>
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
2ab4e1d1e6091f2170b1395b8d1bb30d42f133a7 18-Sep-2013 José Fonseca <jfonseca@vmware.com> draw: Ensure draw_pt_middle_end::bind_parameters is never NULL.

Prevents calling NULL pointer with softpipe in certain cases.

Trivial.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
1c2e5c223da28cdffe156b6b430fcdf638909021 28-Jun-2013 Zack Rusin <zackr@vmware.com> draw/translate: fix instancing

We were incorrectly computing the buffer offset when using the
instances. The buffer offset is always equal to:
start_instance * stride + (instance_num / instance_divisor) *
stride
We were completely ignoring the start instance quite
often producing instances that completely wrong, e.g. if
start instance = 5, instance divisor = 2, then on the first
iteration it should be:
5 * stride, not (5/2) * stride as we'd have currently, and if
start instance = 1, instance divisor = 3, then on the first
iteration it should be:
1 * stride, not 0 as we'd have.
This fixes it and adjusts all the code to the changes.

Signed-off-by: Zack Rusin <zackr@vmware.com>
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
29853ab7b8656cee9b92a53bec43f6e9f1e49691 09-May-2013 Zack Rusin <zackr@vmware.com> draw: don't crash on vertex buffer overflow

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>
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
f0f623a9075107461438468e1aea6bca3a3234f3 07-Jan-2012 Brian Paul <brianp@vmware.com> draw: replace assert(0) with debug_warn_once()

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.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
994c33db875c6af2f5b535a7a173ff3bfa24fc32 07-Jan-2012 Brian Paul <brianp@vmware.com> draw: whitespace fixes, etc.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
488dd2c1912132fe7ee5e81b05fb64ba62a46098 07-Jan-2012 Brian Paul <brianp@vmware.com> gallium: make vbuf_render::set_primitive() return void

All the implementations of this function always return TRUE.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
3733da31e8b4405b65e1b6ca3b6599ecc5af5fe7 31-Mar-2011 José Fonseca <jfonseca@vmware.com> draw: Prevent out-of-bounds vertex buffer access.

Based on some code and ideas from Keith Whitwell.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
cdca3c58aa2d9549f5188910e2a77b438516714f 10-Jan-2011 Marek Olšák <maraeo@gmail.com> gallium: remove pipe_vertex_buffer::max_index

This is redundant to pipe_draw_info::max_index and doesn't really fit
in the optimizations I plan.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
d29d7807c1e2c53336b1adaf0ecdeb3e35b39969 07-Aug-2010 Chia-I Wu <olv@lunarg.com> draw: Remove UNDEFINED_VERTEX_ID checks in emit pathes.

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).
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
aaf51ed7c24a5d9488f8225972e5d5d108c6c197 09-Aug-2010 Chia-I Wu <olv@lunarg.com> draw: No need to make max_vertices even.

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.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
f132498347c41294042db0cc6830abe928d827de 07-Aug-2010 Chia-I Wu <olv@lunarg.com> draw: Add prim flags to middle ends.

Update the middle end interface to pass the primitive flags from the
frontends to the pipeline. No frontend sets the flags yet.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
64682da8ab7aff7b4ce651db99a32ed1fd8b178c 23-Jun-2010 Keith Whitwell <keithw@vmware.com> draw: don't try to precalculate the pipeline output primitive

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.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
d4ef0f6c67aefe06d8dd647acf8d9005df39a709 09-Jun-2010 Zack Rusin <zack@kde.org> geometry shaders: make gs work with changable primitives and variable number 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.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
740e50c60f03d194aafab93d5251699964800979 05-May-2010 Brian Paul <brianp@vmware.com> gallium: rename draw() to draw_elements() in vbuf code

Now we have draw_elements() and draw_arrays() to be consistent with the
pipe_context drawing functions.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
2a30d3d74a0b87f8066659952628ccd072a4e2b0 26-Apr-2010 José Fonseca <jfonseca@vmware.com> draw: Pass-through pipe_buffer::max_index to translate.

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.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
84a8347b9f6ef0c1b2519e9bd5fef2ce3c85afb7 25-Mar-2010 Jakob Bornecrantz <wallbraker@gmail.com> draw: Use translate function instead of switch cases
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
543b9566bdaa48fea2df1866fa1310c1cdbcde27 30-Dec-2009 Michal Krol <michal@vmware.com> Add lame support for instanceID to draw module.

It's all screaming for integer support -- fake it with float for now.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
5007e39f76c897b8f3aa4acf6086c8b7ac30bdef 30-Dec-2009 Michal Krol <michal@vmware.com> Implement instanced indexed draw.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
7ca0ce38340144794267609646048b3820d594ab 29-Dec-2009 Michal Krol <michal@vmware.com> Implement draw_arrays_instanced() in softpipe.

Modify the translate module to respect instance divisors and accept
instance id as a parameter to calculate input vertex offset.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
713b636a0e0356266b714548886b66864b830fff 28-May-2009 Mike Kaplinksiy <mike.kaplinskiy@gmail.com> draw: Fix assertion failure at fetch_emit_prepare
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
1c4f67b980b6bec5788336a9cdd18c4fcec5e492 17-Feb-2009 Keith Whitwell <keith@tungstengraphics.com> draw: second argument to unmap is max, not count
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
befa4ff50ec4728de70c04532f8c7342fbd70147 17-Feb-2009 Keith Whitwell <keithw@vmware.com> draw: add map/unmap directives for swtnl driver interface

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.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
872b515e8f0bb1be5bad85fd9d01529c71f07ba2 26-Jan-2009 Zack Rusin <zack@tungstengraphics.com> gallium: standardize on stride instead of pitch in the interface
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
ce3436795c0ddc110d83a5658e5ff10c202a4490 11-Dec-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: added missing brace to fix broken build
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
b716de47798defa7d22b0f15b201af6fba27f0b9 10-Dec-2008 Alan Hourihane <alanh@tungstengraphics.com> gallium: change 65535 to UNDEFINED_VERTEX_ID
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
a8e7852b05f95cc695f3a05692a6ccd36298faf7 10-Dec-2008 Alan Hourihane <alanh@tungstengraphics.com> gallium: more vertex count checks
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
e3f5370d637f367dbfe7d21f726e84185ad1e07d 10-Dec-2008 Alan Hourihane <alanh@tungstengraphics.com> gallium: temporary check for > 65535 vertices
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
53d4706c6c0922160f310834daaec5718ff1c511 10-Sep-2008 Keith Whitwell <keith@tungstengraphics.com> make draw's vertex_info struct smaller/quicker to compare with memcmp()
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
e6887a5752774c18cf527477fdd3e57e4893ff3b 25-Aug-2008 Keith Whitwell <keith@tungstengraphics.com> draw: attempt atomic submit of large drawelements calls
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
4f25420bdd834e81a3e22733304efc5261c2998a 25-Aug-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: refactor/replace p_util.h with util/u_memory.h and util/u_math.h

Also, rename p_tile.[ch] to u_tile.[ch]
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
f1401385587882bb9d18a5f5b01dcbb71ddf0a2f 18-Jun-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: additional fixes to ensure even number of vertices per buffer
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
0a4aea0e86a897d9afb9f2a0ec27f03faf8f1b21 02-Jun-2008 Keith Whitwell <keith@tungstengraphics.com> draw: respect driver's max vertex buffer size
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
82605d7bcd533d7c96cc619c45970efd7229dc3b 29-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: draw_range_elements trial
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
7ddb925b8bc6c18eba953e34d2b630a3a6593f05 09-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: mimize cost of translate key compares, use cache universally
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
501be9c7dd0cc5f985c708fa0e5f35d7fd20deb4 09-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: fix translate double-free, minor cleanups
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
fe586f8612dd517b9a1f0d87fbaf3a75e3caf588 07-May-2008 Zack Rusin <zack@tungstengraphics.com> redo the linear paths
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
a24cb269e1ba5434acf8c94abd03517c149b9c51 04-May-2008 Zack Rusin <zack@tungstengraphics.com> implement linear path for fetch_emit pipeline
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
95f8f8863a80ce1e584160d4d085213a9bbaef12 23-Apr-2008 Zack Rusin <zack@tungstengraphics.com> Add translate cache to fetch_emit stage and add out of memory
checks to code creating the cache.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
e406ad5912985920a0d796f1ada58b40316590ed 21-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: squash a couple of memory leaks
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
0d4ece4c5a243dc4b684331bad49f220311e5520 21-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: propogate lots of errors
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
68a7cb21fa14eac9e38bf398623739a892cc0d52 19-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: rearrange debug code
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
bfd179776f5ded75c2134a54f0a57a1579118cd0 19-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: add missing translate->set_buffer for fetch emit path
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
7d72607e142c0412b88183b849fd701e698b8f79 19-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: move incoming vertex state into draw->pt

This state is effectively private to the vertex processing part
of the draw module.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
6d9132de04fc190fea56978849dfc427e5359912 19-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: make draw_pt_fetch_emit use translate facility
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
49becd2d7c751e563ce6be9051dd8e6dad88d1f7 17-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: add comment
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
a8582efaca35d09c8ca18918a243a9284583356d 16-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: make pt run pipeline when need_pipeline is true, not just when clipped
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
2ba6e1fa71be07a2d75abe2d085d485046c0932b 14-Apr-2008 Zack Rusin <zack@tungstengraphics.com> silence some warnings
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
a82e4996a13ef3cae1497fef95c2fca7631cd889 14-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: flush pipeline before trying to allocate more hw vertices
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
c95dcc49629b72b95826e87e067d7a48753605fb 08-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> remove usage of vertex_header
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
a8a5376406cabf5aa6a44f7d37f5f8abbb4adf56 07-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: strip edgeflags out of fetch-emit path
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
d2cb4ba0bb2388c784f145c59f3798f914dc7f39 03-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: add passthrough path to the pipeline

This handles the case where bypass_vs is set, but vertices need to go
through the pipeline for some reason - eg unfilled polygon mode.

Demonstrates how to drive the pipeline from inside one of these things.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
add46fbc8cc04d3bce303815541a7bc5d0b33953 02-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: add missing break statement
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
ae3c91e98ce3355bca22738440f8ba313b3b8b23 02-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: Set the backend prim in the pt 'prepare' operation

Leaving it until 'run' is bad as the primitive is pretty much state
for some drivers and so needs to get set early. In some drivers
this is used to determine things like vertex format, etc -- by the
time we get to 'run', it's too late to change this.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
39038c11699bbc9baab744542e96d54e91cb452a 28-Mar-2008 Brian <brian.paul@tungstengraphics.com> gallium: replace PIPE_ATTRIB_MAX with PIPE_MAX_ATTRIBS

The later follows the naming scheme of other limits.
Keep the old definition until all possible usage is updated.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
743e990831d74ff764f4677836b7bd9b044d39af 23-Mar-2008 Keith Whitwell <keith@tungstengraphics.com> draw: rename emit functions to match pipe_format names
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
899fcde366646a3ab3e42ae819620e790161ac75 23-Mar-2008 Keith Whitwell <keith@tungstengraphics.com> draw: restructure fetch/emit as a pair of function calls
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c
f40357e25c0520ef1d64ffab03501da4c8b93529 23-Mar-2008 Keith Whitwell <keith@tungstengraphics.com> gallium: beginnings of draw module vertex rework

Trying to put a structure in place that we can actually optimize.
Initially just implementing a passthrough mode, this will fairly soon
replace all the vertex_cache/prim_queue/shader_queue stuff that's so
hard to understand...

Split the vertex processing into a couple of distinct stages:
- Frontend
- Prepares two lists of elements (fetch and draw) to be processed
by the next stage. This stage doesn't fetch or draw vertices, but
makes the decision which to draw. Multiple implementations of this
will implement different strategies, currently just a vcache
implementation.
- MiddleEnd
- Takes the list of fetch elements, fetches them, runs the vertex
shader, cliptest, viewport transform on them to produce a
linear array of vertex_header vertices.
- Passes that list of vertices, plus the draw_elements (which index
into that list) onto the backend
- Backend
- Either the existing primitive/clipping pipeline, or the vbuf_render
hardware backend provided by the driver.

Currently, the middle-end is the old passthrough code, and it build hardware
vertices, not vertex_header vertices as above. It may be that passthrough
is a special case in this respect.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_fetch_emit.c