78a997f72841310620d18daa9015633343d04db1 |
|
13-Nov-2016 |
Roland Scheidegger <sroland@vmware.com> |
draw: drop unnecessary index overflow handling from vsplit code This was kind of strange, since it replaced indices which were only overflowing due to bias with MAX_UINT. This would cause an overflow later in the shader, except if stride was 0, however the vertex id would be essentially random then (-1 + eltBias). No test cared about it, though. So, drop this and just use ordinary int arithmetic wraparound as usual. This is much simpler to understand and the results are "more correct" or at least more consistent (vertex id as well as actual fetch results just correspond to wrapped around arithmetic). There's only one catch, it is now possible to hit the cache initialization value also with ushort and ubyte elts path (this wouldn't be an issue if we'd simply handle the eltBias itself later in the shader). Hence, we need to make sure the cache logic doesn't think this element has already been emitted when it has not (I believe some seriously bad things could happen otherwise). So, borrow the logic which handled this from the uint case, but not before fixing it up... Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h
|
7a55c436c64a8bb031c8823522cde8f3adc67d89 |
|
12-Nov-2016 |
Roland Scheidegger <sroland@vmware.com> |
draw: simplify vsplit elts code a bit vsplit_get_base_idx explicitly returned idx 0 and set the ofbit in case of overflow. We'd then check the ofbit and use idx 0 instead of looking it up. This was necessary because DRAW_GET_IDX used to return DRAW_MAX_FETCH_IDX and not 0 in case of overflows. However, this is all unnecessary, we can just let DRAW_GET_IDX return 0 in case of overflow. In fact before bbd1e60198548a12be3405fc32dd39a87e8968ab the code already did that, not sure why this particular bit was changed (might have been one half of an attempt to get these indices to actual draw shader execution - in fact I think this would make things less awkward, it would require moving the eltBias handling to the shader as well). Note there's other callers of DRAW_GET_IDX - those code paths however explicitly do not handle index buffer overflows, therefore the overflow value doesn't matter for them. Also do some trivial simplification - for (unsigned) a + b, checking res < a is sufficient for overflow detection, we don't need to check for res < b too (similar for signed). And an index buffer overflow check looked bogus - eltMax is the number of elements in the index buffer, not the maximum element which can be fetched. (Drop the start check against the idx buffer though, this is already covered by end check and end < start). Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h
|
b48e16fa2f8b96bb36a6e0a92b6d842c1c246006 |
|
17-Oct-2015 |
Brian Paul <brianp@vmware.com> |
draw: fix splitting of line loops (v2) When the draw module splits long line loops, the sections are emitted as line strips. But the primitive type wasn't set correctly so each section was being drawn as a loop, introducing extra line segments. To fix this, we pass a new DRAW_LINE_LOOP_AS_STRIP flag to the run() function. The linear/elt_run() functions have to check for this flag and set their primitive type accordingly. No piglit regressions. Fixes piglit's lineloop with -count 4097 or higher. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=81174 Reviewed-by: Roland Scheidegger <sroland@vmware.com>
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h
|
a2a1a5805fd617e7f3cc8be44dd79b50da07ebb9 |
|
21-Jul-2015 |
Ilia Mirkin <imirkin@alum.mit.edu> |
gallium: replace INLINE with inline Generated by running: git grep -l INLINE src/gallium/ | xargs sed -i 's/\bINLINE\b/inline/g' git grep -l INLINE src/mesa/state_tracker/ | xargs sed -i 's/\bINLINE\b/inline/g' git checkout src/gallium/state_trackers/clover/Doxyfile and manual edits to src/gallium/include/pipe/p_compiler.h src/gallium/README.portability to remove mentions of the inline define. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Acked-by: Marek Olšák <marek.olsak@amd.com>
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h
|
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_vsplit_tmp.h
|
bbd1e60198548a12be3405fc32dd39a87e8968ab |
|
03-Jul-2013 |
Zack Rusin <zackr@vmware.com> |
draw: fix overflows in the indexed rendering paths The semantics for overflow detection are a bit tricky with indexed rendering. If the base index in the elements array overflows, then the index of the first element should be used, if the index with bias overflows then it should be treated like a normal overflow. Also overflows need to be checked for in all paths that either the bias, or the starting index location. Signed-off-by: Zack Rusin <zackr@vmware.com> Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-by: Roland Scheidegger <sroland@vmware.com>
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h
|
3998cfa933dcd9134b75d9f0ae2c9cfcd6f2ee45 |
|
05-Jun-2013 |
Rico Schüller <kgbricola@web.de> |
mesa: remove outdated version lines in comments Signed-off-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h
|
1883e1d3e972f552aaf6225390a4dc17484fcd3c |
|
15-May-2013 |
José Fonseca <jfonseca@vmware.com> |
draw: Fix vsplit regression when the ib can be used directly. `ib` no longer is offseted by `istart`. Trivial.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h
|
5104ed3dbf18d47736fc67a8e3e317ea18360fa8 |
|
14-May-2013 |
Zack Rusin <zackr@vmware.com> |
draw: try to prevent overflows on index buffers Pass in the size of the index buffer, when available, and use it to handle out of bounds conditions. The behavior in the case of an overflow needs to be the same as with other overflows in the vertex processing pipeline meaning that a vertex should still be generated but all attributes in it set to zero. 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_vsplit_tmp.h
|
94f9ea03a12fe1adf90c0e5defb0063cd568b537 |
|
02-Nov-2012 |
Roland Scheidegger <sroland@vmware.com> |
draw: fix crashes with out-of-bounds indices The passthrough pipeline needs to check index values (which might be passed through) as they can be invalid (which causes crashes and various assertion failures if the clip code runs). Obviously, rendering won't be well-defined, but those bogus indices might come directly from apps. There were already debug printfs which reported the out-of-bounds indices but we really ought to not crash. While checking at that point doesn't seem like the most efficient solution, it seems there isn't really another appropriate function to do it. Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-by: José Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h
|
f03191048668ebcda56053f4c908e1ac0d98edd0 |
|
17-Oct-2012 |
Brian Paul <brianp@vmware.com> |
draw: silence MSVC signed/unsigned comparison warnings Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h
|
185ed2105829d6f5eb19edb9abbf0d7977e157c3 |
|
25-May-2012 |
Brian Paul <brianp@vmware.com> |
draw: simplify index buffer specification Replace draw_set_index_buffer() and draw_set_mapped_index_buffer() with draw_set_indexes() which simply takes a pointer and an index size.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h
|
dcbc9be38ecea30506198d0db037cbf532f070e4 |
|
05-Apr-2011 |
José Fonseca <jose.r.fonseca@gmail.com> |
draw: Fix thinko in debug warnings.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h
|
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_vsplit_tmp.h
|
3dedd39cdd198afa54ba5b53384d6be2040f9485 |
|
31-Mar-2011 |
José Fonseca <jfonseca@vmware.com> |
draw: Revert code reorg in previous change. Because fetch_count = max_index - min_index + 1 overflows for min_index = 0 and max_index = 0xffffffff. Fixes fdo 35815.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h
|
dcad6fb670ccc533167d1ae360833989c1eb4823 |
|
30-Mar-2011 |
José Fonseca <jfonseca@vmware.com> |
draw: Forgot to remove one istart usage.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h
|
713230ff39cd22a2082c12b937889c3ef81973ac |
|
29-Mar-2011 |
José Fonseca <jfonseca@vmware.com> |
draw: Fix bug when drawing ushort indices. When the condition min_index == 0 && sizeof(ib[0]) == sizeof(draw_elts[0]) was true, we were wrongly ignoring istart and processing indices 0. Reorder some statements to make the code easier to understand.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h
|
abbb1c8f084c6739bc9d6f559caf26f3f71b2fab |
|
13-Jan-2011 |
Chia-I Wu <olv@lunarg.com> |
draw: Fix an off-by-one bug in a vsplit assertion. When use_spoken is true, istart (the first vertex of this segment) is replaced by i0 (the spoken vertex of the fan). There are still icount vertices. Thanks to Brian Paul for spotting this.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h
|
4f024e0f642f4f743e4d051ec71c00e45bfd361f |
|
25-Aug-2010 |
Chia-I Wu <olv@lunarg.com> |
draw: Add draw_set_index_buffer and others. 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.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h
|
a072f0e186522f9de2848989422ad0244f65c961 |
|
13-Aug-2010 |
Chia-I Wu <olv@lunarg.com> |
drwa: Add PRIMITIVE macro to vsplit. PRIMITIVE is used by the indexed path to flush the entire primitive with custom vertex count checks. It replaces the existing fast path.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h
|
04bc530dbdbe5d004219c9100e35f5d56cfedd80 |
|
06-Aug-2010 |
Chia-I Wu <olv@lunarg.com> |
draw: Add vsplit frontend. vsplit is based on varray. It sets the split flags when a primitive is splitted. It also has support for indexed primitives. For indexed primitives, unlike vcache, vsplit splits the primitives instead of decomposes them.
/external/mesa3d/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h
|