History log of /external/mesa3d/src/gallium/auxiliary/draw/draw_pt_emit.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
afa035031ff9e0c07a2297d864e46c76f7bfff58 07-Jan-2016 Roland Scheidegger <sroland@vmware.com> draw: rework handling of non-existing outputs in emit code

Previously the code would just redirect requests for attributes which
don't exist to use output 0. Rework this to output all zeros instead which
seems more useful - in particular some extensions like
ARB_fragment_layer_viewport require 0 in the fs even if it wasn't output by
previous stages. That way, drivers don't have to special case this depending
if the vs/gs outputs some attribute or not.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_emit.c
13c0b1c7808dac7e84c9b3e1d2079f70bb0ade35 15-Dec-2015 Roland Scheidegger <sroland@vmware.com> draw: don't set start_instance and instance id for pt emit

This just adds confusion, these parameters are used when fetching vertices
by translate, but certainly not when emitting hw vertices for drivers, they
make no sense there (setting them has no consequences otherwise since there
won't be any elements with instance_divisor set). So just set them to 0 (the
draw_pipe_vbuf code for emitting vertices when the draw pipeline is run
already does exactly that).
Also while here do some whitespace cleanup.

Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_emit.c
27a34f62baa991eadd040302748c48b31ec21a0c 01-Mar-2015 Marek Olšák <marek.olsak@amd.com> draw: fix division-by-zero for empty geometry shaders

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89372

Reviewed-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_emit.c
1b6db3593ed716ff36f9300c2ad646a80682ea85 02-Dec-2014 Roland Scheidegger <sroland@vmware.com> draw: use the prim type from prim_info not emit in passthrough emit

The prim assembler may change the prim type when injecting prim ids now,
which isn't reflected by what's stored in emit.
This looks brittle and potentially dangerous (it is not obvious if such prim
type changes are really supported by pt emit, the prim type is actually also
set in prepare which would then be different).

This fixes piglit primitive-id-no-gs-first-vertex.shader_test.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_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_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_emit.c
df4ab7974a825bf686f9dfa3474f3648e9a3ca66 27-Jun-2013 Zack Rusin <zackr@vmware.com> draw: fix incorrect clipper invocation statistics

clipper invocations are computed earlier (of course
before the emittion) so this code was adding bogus
numbers to already computed clipper invocations.

Signed-off-by: Zack Rusin <zackr@vmware.com>
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_emit.c
0a3779d95537343505200ad096acf135dcd81b80 06-Jun-2013 Zack Rusin <zackr@vmware.com> draw: fix clipper invocation statistics

We need to figure out the number of invocations of the clipper
before the emit, because in the emit we are after clipping
where the number of primitives will be equal to number of clipper
invocations minus the clipped primitives. So our computations
were always off by the number of clipped primitives.

Signed-off-by: Zack Rusin <zackr@vmware.com>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_emit.c
80ee4a407a2668f6a6a410c3e56ae9910510f773 11-Apr-2013 Zack Rusin <zackr@vmware.com> draw: implement pipeline statistics in the draw module

This is a basic implementation of the pipeline statistics in the
draw module. The interface is similar to the stream output statistics
and also requires that the callers explicitly enable it.
Included is the implementation of the interface in llvmpipe and
softpipe. Only softpipe enables the pipeline statistics capability
though because llvmpipe is lacking gathering of the fragment shading
and rasterization statistics.

Signed-off-by: Zack Rusin <zackr@vmware.com>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_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_emit.c
994c33db875c6af2f5b535a7a173ff3bfa24fc32 07-Jan-2012 Brian Paul <brianp@vmware.com> draw: whitespace fixes, etc.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_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_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_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_emit.c
8c3cc83432bbbc190b0f71f87e3e9583ae11f0b2 04-Aug-2010 Brian Paul <brianp@vmware.com> draw: added a comment
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_emit.c
b85a361ccbac956d2842251395c048a4b3f4c440 14-Jun-2010 Keith Whitwell <keithw@vmware.com> draw wip
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_emit.c
c217d94cca357d38e244754747a1bd15e9cf2557 09-Jun-2010 Vinson Lee <vlee@vmware.com> draw: Remove unnecessary headers.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_emit.c
c9db97c8229689060fab0edee7df717f804b99ce 31-May-2010 Zack Rusin <zack@kde.org> gallium: a lot more complete implementation of stream output

interface wise we have everything needed by d3d10 and gl transform feedback.
the draw module misses implementation of some corner cases (e.g. when stream
output wants different number of components per output than normal rendering
paths)
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_emit.c
a45b7f47ee0e38b288cc8fc4f6a1c013e8c227bc 28-May-2010 Zack Rusin <zack@kde.org> gallium: basic and initial implementation of the stream output interface

aka transform feedback
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_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_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_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_emit.c
7a61722f693a39cdeb4f5ab2e905f563f742d2e3 01-Mar-2010 José Fonseca <jfonseca@vmware.com> draw: Rename pipe formats.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_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_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_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_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_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_emit.c
a8e7852b05f95cc695f3a05692a6ccd36298faf7 10-Dec-2008 Alan Hourihane <alanh@tungstengraphics.com> gallium: more vertex count checks
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_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_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_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_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_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_emit.c
fd20d1c7e8bbe2f40d73679b1514023772cfd8f6 27-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: add disabled debug code
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_emit.c
aa16e3a2750993afdba16c24237bb6d8d8e4d91a 26-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: defensively flush pipeline backend when setting primitive
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_emit.c
93bfc94c351a2eafd43ac7a20b362d969f98d86a 26-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: defensively reset render primitive some more
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_emit.c
d80c24a81a9a46c132fe877dde6919a57cacf8c0 26-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: defensively reset render primitive, which can get clobbered by clipping
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_emit.c
529762d5df6d9427f9fa0927e38b9886e412a6bc 26-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: add missing break
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_emit.c
09900df42967a0ba61e78038304fd6c54934ad0d 19-May-2008 Zack Rusin <zack@tungstengraphics.com> Merge commit 'origin/gallium-0.1' into gallium-vertex-linear
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_emit.c
7462f0557f9cce73ff2d32e62ef110b5d8622f87 09-May-2008 Michel Dänzer <michel@tungstengraphics.com> draw: Fix number of vertices allocated in draw_pt_emit().
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_emit.c
1a03812fb57e956b438cd42ac68978facb49a99d 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_emit.c
cec016271ccf38d2f32e426f96e7d5d1fdf962f7 08-May-2008 Keith Whitwell <keith@tungstengraphics.com> Merge branch 'gallium-0.1' into gallium-vertex-linear
b514f5f3ba4c9cf6c39cbcdf5bf0d2d8efb8d19b 08-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: only fill in / compare the part of the translate key we're using.

It's quite a big struct & we examine it a lot (too much). Reduce
the impact of this by just looking at the active part where possible.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_emit.c
66d72f176de2568f053c6dc54e93d423723ae8aa 04-May-2008 Zack Rusin <zack@tungstengraphics.com> silence debugging output
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_emit.c
abb08e9335b5d7cb004dc9e6cec390ab6968abe5 04-May-2008 Zack Rusin <zack@tungstengraphics.com> implement linear emition and fetching and plug it in the varray paths
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_emit.c
42fb48492e71016c5a2888cd3d2507a89dbd91f3 30-Apr-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: init hw_key with memset() to silence valgrind warnings

We shouldn't be hashing with keys that have uninitialized memory.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_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_emit.c
5fcd84ab39318a371253b1a7285bc657fb82efed 23-Apr-2008 Zack Rusin <zack@tungstengraphics.com> Create a sharable translate_cache and use it.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_emit.c
e1180c2d694851ed12e86027aa406ee20546e6d3 23-Apr-2008 Zack Rusin <zack@tungstengraphics.com> fix the simple hash finding function and use it
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_emit.c
f088b53769aacbee20135d912c33d688b6002011 23-Apr-2008 Zack Rusin <zack@tungstengraphics.com> Cache translate's structs for emits and fetches.

Results in a fair speed improvement.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_emit.c
cb9f0a589623397c3437911aeef39f189213527a 18-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: remove draw_vf code, use translate instead
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_emit.c
7400bc4b6fb0c20a935cd108afa92814eeafec6d 18-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> translate: add sse version based on old draw_vf_sse.c
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_emit.c
a773f06e969a3992451dd7fe6fd55ea96b2774fa 18-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: split off all the extra functionality in the vertex shader

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.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_emit.c
c503e55d74cf84f87f82b3dab3cb4d38b201d47a 17-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: move hw vertex emit to a new module
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_emit.c