bb2c5e657b5f4c55bcec49a8d96f352ed4c1e013 |
|
15-Mar-2016 |
Roland Scheidegger <sroland@vmware.com> |
llvmpipe: fix lp_rast_plane alignment on 32bit Some rasterization code relies (for sse) on the first and third planes (but not the second for now) being 128bit aligned, and we didn't get that on 32bit - I mistakenly thought the 64bit number in the struct would get the thing aligned to 64bit even on 32bit archs. Stephane Marchesin really figured this out. Reviewed-by: Jose Fonseca <jfonseca@vmware.com> CC: <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
71dcc067a56e76246841ae9208893db186d4b73e |
|
19-Feb-2016 |
Brian Paul <brianp@vmware.com> |
llvmpipe: add a few const qualifiers Reviewed-by: Roland Scheidegger <sroland@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
848a023c053b312ba5e76a124d7088bbf0b69df0 |
|
03-Feb-2016 |
Roland Scheidegger <sroland@vmware.com> |
llvmpipe: use scissor_planes_needed helper function So it doesn't get out of sync in multiple places.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
99bd96abbb62d2c7da60c6102661b590e05bf143 |
|
02-Feb-2016 |
Roland Scheidegger <sroland@vmware.com> |
llvmpipe: drop scissor planes early if the tri is fully inside them If the tri is fully inside a scissor edge (or rather, we just use the bounding box of the tri for the comparison), then we can drop these additional scissor "planes" early. We do not even need to allocate space for them in the tri. The math actually appears to be slightly iffy due to bounding boxes being rounded, but it doesn't matter in the end. Those scissor rects are costly - the 4 planes from the scissor are already more expensive to calculate than the 3 planes from the tri itself, and it also prevents us from using the specialized raster code for small tris. This helps openarena performance by about 8% or so. Of course, it helps there that while openarena often enables scissoring (and even moves the scissor rect around) I have not seen a single tri actually hit the scissor rect, ever. v2: drop individual scissor edges, and do it earlier, not even allocating space for them. v3: help the compiler a bit with simpler code, suggested by Brian. Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
9d2a34e1054370663de06124aa1bc6282b450fe1 |
|
31-Jan-2016 |
Roland Scheidegger <sroland@vmware.com> |
llvmpipe: minor cleanup of sse2 for calc_fixed_position Just slightly simpler assembly. Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
529aa8249a29577f160e1f289472b0da7241b90f |
|
17-Jan-2016 |
Oded Gabbay <oded.gabbay@gmail.com> |
llvmpipe: fix arguments order given to vec_andc This patch fixes a classic "confuse the enemy" bug. _mm_andnot_si128 (SSE) and vec_andc (VMX) do the same operation, but the arguments are opposite. _mm_andnot_si128 performs "r = (~a) & b" while vec_andc performs "r = a & (~b)" To make sure this error won't return in another place, I added a wrapper function, vec_andnot_si128, in u_pwr8.h, which makes the swap inside. Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com> Reviewed-by: Roland Scheidegger <sroland@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
38cdcb000d6890f3bab479ab8061d9811ded9d39 |
|
13-Jan-2016 |
Roland Scheidegger <sroland@vmware.com> |
llvmpipe: (trivial) use cast wrapper for __m128d to __m128 casts some compiler was unhappy.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
16530fdc82cde61495c66abe704e88d7752dfdbf |
|
03-Jan-2016 |
Roland Scheidegger <sroland@vmware.com> |
llvmpipe: scale up bounding box planes to subpixel precision Otherwise some planes we get in rasterization have subpixel precision, others not. Doesn't matter so far, but will soon. (OpenGL actually supports viewports with subpixel accuracy, so could even do bounding box calcs with that). Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
0298f5aca761da1fdb7ded4d8943b2a7f9f4b36f |
|
02-Jan-2016 |
Roland Scheidegger <sroland@vmware.com> |
llvmpipe: add sse code for fixed position calculation This is quite a few less instructions, albeit still do the 2 64bit muls with scalar c code (they'd need way more shuffles, plus fixup for the signed mul so it totally doesn't seem worth it - x86 can do 32x32->64bit signed scalar muls natively just fine after all (even on 32bit). (This still doesn't have a very measurable performance impact in reality, although profiler seems to say time spent in setup indeed has gone down by 10% or so overall. Maybe good for a 3% or so improvement in openarena.) Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
2923c7a0ed92a29da029183356e81ad55e615cf7 |
|
02-Jan-2016 |
Roland Scheidegger <sroland@vmware.com> |
llvmpipe: do 64bit plane calculations in the sse path The sse path was pretty much disabled for practical purposes because the largest allowed fb size was 128x128. So, adapt it for 64bit plane calculations. This is actually not that difficult, though a problem is that we can't do a signed 32x32->64bit mul, only unsigned, so need to fix that up. Overall, the code still looks reasonable, though it's not like changes there in setup really make much of a difference in the end... Reviewed-by: Jose Fonseca <jfonseca@vmware.com> Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
fad283ba9e691d0d5d170f388e75542f2c39e559 |
|
02-Jan-2016 |
Roland Scheidegger <sroland@vmware.com> |
llvmpipe: don't store eo as 64bit int eo, just like dcdx and dcdy, cannot overflow 32bit. Store it as unsigned though just in case (it cannot be negative, but in theory twice as big as dcdx or dcdy so this gives it one more bit). This doesn't really change anything, albeit it might help minimally on 32bit archs. Reviewed-by: Jose Fonseca <jfonseca@vmware.com> Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
b61b9a377edb566af2f015c159f5f8779d9b27d9 |
|
31-Dec-2015 |
Roland Scheidegger <sroland@vmware.com> |
llvmpipe: use aligned data for the assembly program in setup Back in the day (before 24678700edaf5bb9da9be93a1367f1a24cfaa471) the values were not actually in a struct but even then I can't see why we didn't simply align the values. Especially since it's trivial to do so. (Not that it actually matters since the code is pretty much unused for now.) Reviewed-by: Oded Gabbay <oded.gabbay@gmail.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
3bbe16ea79bb5738109df36780cc99119a006d91 |
|
13-Dec-2015 |
Oded Gabbay <oded.gabbay@gmail.com> |
llvmpipe: Optimize do_triangle_ccw for POWER8 This patch converts the SSE optimization done in do_triangle_ccw to VMX/VSX. I measured the results on POWER8 machine with 32 cores at 3.4GHz and 16GB of RAM. FPS/Score Name Before After Delta ------------------------------------------------ glmark2 (score) 136.6 139.8 2.34% openarena 16.14 16.35 1.30% xonotic 4.655 4.707 1.11% v2: - Convert loads to use aligned loads - Make sure code is build only on POWER8 LE machine Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com> Reviewed-by: Roland Scheidegger <sroland@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
13eb5f596bc8ece3d1805b388aa53917e6158d7b |
|
04-Dec-2015 |
Edward O'Callaghan <eocallaghan@alterapraxis.com> |
gallium/drivers: 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/drivers/llvmpipe/lp_setup_tri.c
|
ddaf8d7b10c57cc44ed0d69554e54b3573007315 |
|
03-Dec-2015 |
Roland Scheidegger <sroland@vmware.com> |
llvmpipe: use provoking vertex for layer/viewport d3d10 actually requires using provoking (first) vertex. GL is happy with any vertex (as long as we say it's undefined in the corresponding queries). Up to now we actually used vertex 0 for viewport index, and vertex 1 for layer (for tris), which really didn't make sense (probably a typo). Also,$ since we reorder vertices of clockwise triangle, that actually meant we used a different vertex depending if the traingle was cw or ccw (still ok by gl). However, it should be consistent with what draw (clip) does, and using provoking vertex seems like the sensible choice (draw clip will be fixed next as it is totally broken there). While here, also use the correct viewport always even when not needed in setup (we pass it down to jit fragment shader it might be needed there for getting correct near/far depth values). No piglit changes. Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
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/drivers/llvmpipe/lp_setup_tri.c
|
a0ddc547779585b308feb70777f1f95f12c00a81 |
|
26-Nov-2014 |
José Fonseca <jfonseca@vmware.com> |
draw,gallivm,llvmpipe: Avoid implicit casts of 32-bit shifts to 64-bits. Addresses MSVC warnings "result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)", which can often be symptom of bugs, but in these cases were all benign. Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-by: Roland Scheidegger <sroland@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.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/drivers/llvmpipe/lp_setup_tri.c
|
37de6b06821b208920ccf6fb99fbc727d0344004 |
|
07-Jan-2014 |
José Fonseca <jfonseca@vmware.com> |
llvmpipe: Respect bottom_edge_rule when computing the rasterization bounding boxes. This was inadvertently forgotten when replacing gl_rasterization_rules with lower_left_origin and half_pixel_center (commit 2737abb44efebfa10ac84b183c20fc5818d1514e). This makes a difference when lower_left_origin != half_pixel_center, e.g, D3D10. Reviewed-by: Roland Scheidegger <sroland@vmware.com> Reviewed-by: Zack Rusin <zackr@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
bfcf1ba1c4879102eb05460528b02a23d81eac99 |
|
13-Dec-2013 |
Roland Scheidegger <sroland@vmware.com> |
llvmpipe: (trivial) get rid of triangle subdivision code This code was always problematic, and with 64bit rasterization we no longer need it at all. Reviewed-by: Zack Rusin <zackr@vmware.com> Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
0319ea9ff6a9cc2eba4879fbe09c6fac137d6ce1 |
|
26-Nov-2013 |
Matthew McClure <mcclurem@vmware.com> |
llvmpipe: clamp fragment shader depth write to the current viewport depth range. With this patch, generate_fs_loop will clamp any fragment shader depth writes to the viewport's min and max depth values. Viewport selection is determined by the geometry shader output for the viewport array index. If no index is specified, then the default viewport index is zero. Semantics for this path can be found in draw_clamp_viewport_idx and lp_clamp_viewport_idx. lp_jit_viewport was created to store viewport information visible to JIT code, and is validated when the LP_NEW_VIEWPORT dirty flag is set. lp_rast_shader_inputs is responsible for passing the viewport_index through the rasterizer stage to fragment stage (via lp_jit_thread_data). Reviewed-by: Roland Scheidegger <sroland@vmware.com> Reviewed-by: José Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
0510ec67e2c5b5ddb4755564314ccfe057555984 |
|
25-Oct-2013 |
Zack Rusin <zackr@vmware.com> |
llvmpipe: support 8bit subpixel precision 8 bit precision is required by d3d10 but unfortunately requires 64 bit rasterizer. This commit implements 64 bit rasterization with full support for 8bit subpixel precision. It's a combination of all individual commits from the llvmpipe-rast-64 branch. Signed-off-by: Zack Rusin <zackr@vmware.com> Reviewed-by: José Fonseca <jfonseca@vmware.com> Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-by: Roland Scheidegger <sroland@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
edde6c77bd1cb91f6f7c42010919e6f406f507ce |
|
26-Sep-2013 |
Zack Rusin <zackr@vmware.com> |
llvmpipe: abstract the code to set number of subpixel bits As we're moving towards expanding the number of subpixel bits and the width of the variables used in the computations we need to make this code a bit more centralized. Signed-off-by: Zack Rusin <zackr@vmware.com> Reviewed-by: José Fonseca <jfonseca@vmware.com> Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
60c448faea54a56047202204c486b8d399429909 |
|
19-Sep-2013 |
Zack Rusin <zackr@vmware.com> |
llvmpipe: count c_primitives before discarding null prims We need to count the clipper primitives before the rasterizer discards one it considers to be null. 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/drivers/llvmpipe/lp_setup_tri.c
|
71ecc2cf71e678daca347bb10dd48e037ecd10af |
|
24-Sep-2013 |
Zack Rusin <zackr@vmware.com> |
Revert "llvmpipe: increase number of subpixel bits to eight" This reverts commit 755c11dc5e94f17097c186edaaa39d818396f14c. We agreed that this is band-aid that's not very useful and the proper solution is to rewrite the rasterization algo so that it operates on 64 bit values. Signed-off-by: Zack Rusin <zackr@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
e5ec5aef2be4d667a1f28f0ee0105dd6dc204732 |
|
23-Sep-2013 |
Zack Rusin <zackr@vmware.com> |
llvmpipe: align the array used for subdivived vertices When subdiving a triangle we're using a temporary array to store the new coordinates for the subdivided triangles. Unfortunately the array used for that was not aligned properly causing random crashes in the llvm jit code which was trying to load vectors from it. Signed-off-by: Zack Rusin <zackr@vmware.com> Reviewed-by: Roland Scheidegger <sroland@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
755c11dc5e94f17097c186edaaa39d818396f14c |
|
19-Sep-2013 |
Zack Rusin <zackr@vmware.com> |
llvmpipe: increase number of subpixel bits to eight Unfortunately d3d10 requires a lot higher precision (e.g. wgf11clipping tests for it). The smallest number of precision bits with which it passes is 8. That means that we need to decrease the maximum length of an edge that we can handle without subdivision by 4 bits. Abstracted the code a bit to make it easier to change once to switch to 64bit rasterization. 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/drivers/llvmpipe/lp_setup_tri.c
|
27cedd8aecccea808a35ef297477cac5fe87e476 |
|
13-Aug-2013 |
Zack Rusin <zackr@vmware.com> |
llvmpipe: fix pipeline statistics with a null ps If the fragment shader is null then pixel shader invocations have to be equal to zero. And if we're running a null ps then clipper invocations and primitives should be equal to zero but only if both stancil and depth testing are disabled. Signed-off-by: Zack Rusin <zackr@vmware.com> Reviewed-by: Roland Scheidegger <sroland@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
59b8689d3706fbb739d9b15943907ae67f35de95 |
|
27-Jun-2013 |
Roland Scheidegger <sroland@vmware.com> |
llvmpipe: fix a bug in opaque optimization If there are queries active the opaque optimization reseting the bin needs to be disabled. (Not really tested since the bug was discovered by code inspection not an actual test failure.) Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
2e4da1f59444c550e4b1e31dd5cfec39d7ef2a26 |
|
26-Jun-2013 |
Roland Scheidegger <sroland@vmware.com> |
llvmpipe: add support for nested / overlapping queries OpenGL doesn't support this but d3d10 does. It is a bit of a pain as it is necessary to keep track of queries still active at the end of a scene, which is also why I cheat a bit and limit the amount of simultaneously active queries to (arbitrary) 16 (simplifies things because don't have to deal with a real list that way). I can't think of a reason why you'd really want large numbers of overlapping/nested queries so it is hopefully fine. (This only affects queries which need to be binned.) v2: don't copy remainder of array when deleting an entry simply replace the deleted entry with the last one (order doesn't matter). Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
08203428800554215657f1ebf19d74328103800e |
|
25-Jun-2013 |
Roland Scheidegger <sroland@vmware.com> |
llvmpipe: rework query logic Previously lp_rast_begin_query commands were always inserted into each bin, and re-issued if the scene was restarted, while lp_rast_end_query commands were executed for each still active query at the end of tile rasterization. Also, the ps_invocations and vis_counter were set to zero when the respective command was encountered. This however cannot work for multiple queries of the same type (note that occlusion counter and occlusion predicate while different type were also affected). So, change the logic to always set the ps_invocations and vis_counter to zero at the start of tile rasterization, and then use "start" and "end" per-thread query values when encountering the begin/end query commands instead, which should work for multiple queries of the same type. This also means queries do not have to be reissued in a new scene, however they still need to be finished at end of tile rasterization, so a list of queries still active at the end of a scene needs to be maintained. Also while here don't bin the queries which don't do anything in rasterization. (This change does not actually handle multiple queries of the same type yet, as the list of active queries is just a simple fixed array and setup can still only have one query active per type.) Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
dc5dc4fd943e1da5207e0489c355e9a7ba1dff87 |
|
19-Jun-2013 |
Roland Scheidegger <sroland@vmware.com> |
llvmpipe: handle more queries Handle PIPE_QUERY_GPU_FINISHED and PIPE_QUERY_TIMESTAMP_DISJOINT, and also fill out the ps_invocations and c_primitives from the PIPE_QUERY_PIPELINE_STATISTICS (the others in there should already be handled). Note that ps_invocations isn't pixel exact, just 16 pixel exact but I guess it's better than nothing. Doesn't really seem to work correctly but there's probably bugs elsewhere. Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
d8146f240e628e70d4c07f7e805a179f70c36e23 |
|
07-Jun-2013 |
Roland Scheidegger <sroland@vmware.com> |
llvmpipe: add support for layered rendering Mostly just make sure the layer parameter gets passed through to the right places (and get clamped, can do this at setup time), fix up clears to clear all layers and disable opaque optimization. Luckily don't need to touch the jitted code. (Clears invoked via pipe's clear_render_target method will not work however since the pipe_util_clear function used for it doesn't handle clearing multiple layers yet.) v2: per Brian's suggestion, prettify var initialization and add some comments, add assertion for impossible layer specification for surface. Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
c88ce3480c715ab40f4d488c86c90213b1472613 |
|
25-May-2013 |
Zack Rusin <zackr@vmware.com> |
llvmpipe: clamp scissors to be between 0 and max We need to clamp to make sure invalid shader doesn't crash our driver. The spec says to return 0-th index for everything that's out of bounds. Signed-off-by: Zack Rusin <zackr@vmware.com> Reviewed-by: José Fonseca<jfonseca@vmware.com> Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
97b8ae429ec64003e258764db12ea69d4e978f6d |
|
24-May-2013 |
Zack Rusin <zackr@vmware.com> |
llvmpipe: implement support for multiple viewports Largely related to making sure the rasterizer can correctly pick out the correct scissor box for the current viewport. Signed-off-by: Zack Rusin <zackr@vmware.com> Reviewed-by: José Fonseca<jfonseca@vmware.com> Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-by: Roland Scheidegger <sroland@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
2737abb44efebfa10ac84b183c20fc5818d1514e |
|
23-Apr-2013 |
José Fonseca <jfonseca@vmware.com> |
gallium: Replace gl_rasterization_rules with lower_left_origin and half_pixel_center. Squashed commit of the following: commit 04c5fa2cbb8e89d6f2fa5a75af1cca03b1f6b852 Author: José Fonseca <jfonseca@vmware.com> Date: Tue Apr 23 17:37:18 2013 +0100 gallium: s/lower_left_origin/bottom_edge_rule/ commit 4dff4f64fa83b9737def136fffd161d55e4f1722 Author: José Fonseca <jfonseca@vmware.com> Date: Tue Apr 23 17:35:04 2013 +0100 gallium: Move diagram to docs. commit 442a63012c8c3c3797f45e03f2ca20ad5f399832 Author: James Benton <jbenton@vmware.com> Date: Fri May 11 17:50:55 2012 +0100 gallium: Replace gl_rasterization_rules with lower_left_origin and half_pixel_center. This change is necessary to achieve correct results when using OpenGL FBOs. Reviewed-by: Marek Olšák <maraeo@gmail.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
1165ff1af1853c9f1156221e1225ed5fb92a4507 |
|
26-Mar-2013 |
Brian Paul <brianp@vmware.com> |
llvmpipe: use triangle subdivision to avoid fixed-point overflow issues If we're drawing to a surface that's 2048 x 2048 pixels or larger there's danger of fixed-point overflow in the triangle rasterization code. That leads to various rendering glitches. Rather than implement some intricate changes to the rasterization code, simply subdivide triangles into smaller subtriangles to avoid the issue. Only do this when the drawing surface is larger than 2048 by 2048. Reviewed-by: José Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
e90c56bc4eb6d6f33861eb1b89ee9127e361e407 |
|
29-Mar-2013 |
Brian Paul <brianp@vmware.com> |
llvmpipe: add 'f' suffix to 1.0 in fixed_to_float()
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
1ec421823b1263a7b482adf48a15b186ea91efd2 |
|
17-May-2012 |
Olivier Galibert <galibert@pobox.com> |
llvmpipe: Don't mess with the provoking vertex when inverting a triangle. Fixes a bunch of piglit tests related to flat interpolation of floats. Signed-off-by: Olivier Galibert <galibert@pobox.com> Signed-off-by: José Fonseca <jose.r.fonseca@gmail.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
24678700edaf5bb9da9be93a1367f1a24cfaa471 |
|
14-May-2012 |
James Benton <jbenton@vmware.com> |
llvmpipe: Calculate fixed point coordinates for triangle setup earlier. This allows us to calculate the triangle's area using fixed point, previously it was cacluated in floating point space. It was possible that a triangle which had negative area in floating point space had a positive area in fixed point space. Fixes fdo 40920. Reviewed-by: Jose Fonseca <jfonseca@vmware.com> Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
11aa82cc0bda6bd9162f76553a3f68e28978edae |
|
10-May-2012 |
James Benton <jbenton@vmware.com> |
llvmpipe: Fix triangle bounding box calculation to be correctly inclusive or exclusive Tested with custom rasterisation test tool added to piglit suite, reduced errors Signed-off-by: José Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
e2072a1046039403d814613553e7b3b563d43dfc |
|
05-Oct-2011 |
José Fonseca <jfonseca@vmware.com> |
llvmpipe: Fix the 4 planes (lines) case properly. The previous change was not effective for lines, because there is no 4 planes 4x4 block rasterization path: it is handled by the 16x16 block case too, and the 16x16 block was not being budged as it should. This fixes assertion failures on line rasterization.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
c620087432b2055aa9301f19f8b6444080698c90 |
|
05-Oct-2011 |
José Fonseca <jfonseca@vmware.com> |
llvmpipe: Ensure the 16x16 special rasterization path does not touch outside the tile. llvmpipe has a few special rasterization paths for triangles contained in 16x16 blocks, but it allows the 16x16 block to be aligned only to a 4x4 grid. Some 16x16 blocks could actually intersect the tile if the triangle is 16 pixels in one dimension but 4 in the other, causing a buffer overflow. The fix consists of budging the 16x16 blocks back inside the tile.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
c8f1687ce70c3a2e0de7a7d50e1619cb4cf8cc50 |
|
05-Nov-2010 |
Brian Paul <brianp@vmware.com> |
llvmpipe: added some debug assertions, but disabled
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
98445b43071414a6bd82d0618002611c6ad70257 |
|
02-Nov-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: avoid generating tri_16 for tris which extend past tile bounds Don't trim triangle bounding box to scissor/draw-region until after the logic for emitting tri_16. Don't generate tri_16 commands for triangles with untrimmed bounding boxes outside the current tile. This is important as the tri-16 itself can extend past tile bounds and we don't want to add code to it to check against tile bounds (slow) or restrict it to locations within a tile (pessimistic).
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
9da17fed2e7645a401a378ae690eb23513948e18 |
|
18-Oct-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: remove unused arg from jit_setup_tri function
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
0072acd447dc6be652e63752e50215c3105322c8 |
|
18-Oct-2010 |
Keith Whitwell <keithw@vmware.com> |
Merge remote branch 'origin/master' into lp-setup-llvm Conflicts: src/gallium/drivers/llvmpipe/lp_setup_coef.c src/gallium/drivers/llvmpipe/lp_setup_coef.h src/gallium/drivers/llvmpipe/lp_setup_coef_intrin.c src/gallium/drivers/llvmpipe/lp_setup_point.c src/gallium/drivers/llvmpipe/lp_setup_tri.c src/gallium/drivers/llvmpipe/lp_state_derived.c src/gallium/drivers/llvmpipe/lp_state_fs.h
|
ca2b2ac131933b4171b519813df1aaa3a81621cd |
|
18-Oct-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: fail cleanly on malloc failure in lp_setup_alloc_triangle
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
392b0954c265fdd66b2de99ab677d2e662935682 |
|
15-Oct-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: use aligned loads/stores for plane values
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
9f9a17eba8d6080bf30f17c8a7eaed97b10a559f |
|
12-Oct-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: do plane calculations with intrinsics This is a step towards moving this code into the rasterizer.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
8965f042b327ad8697963e757f4607f4bb13a045 |
|
15-Oct-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: don't store plane.ei value in binned data Further reduce the size of a binned triangle.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
9bf8a55c4b29d55320fc2e7875ecf0e9ca164ee8 |
|
15-Oct-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: slightly shrink the size of a binned triangle
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
0a1c9001037a13b69b157994e7983aa3dee158d3 |
|
15-Oct-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: don't pass frontfacing as a float
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
4195febeecd2d2f5571afdb90cbb185a4759f50a |
|
15-Oct-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: reintroduce SET_STATE binner command But bin lazily only into bins which are receiving geometry.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
0ca0382d1bfd1e9128fa4b588ce1411f7b8a85df |
|
12-Oct-2010 |
Keith Whitwell <keithw@vmware.com> |
Revert "llvmpipe: try to keep plane c values small" This reverts commit 9773722c2b09d5f0615a47cecf4347859474dc56. Looks like there are some floor/rounding issues here that need to be better understood.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
9773722c2b09d5f0615a47cecf4347859474dc56 |
|
12-Oct-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: try to keep plane c values small Avoid accumulating more and more fixed point bits.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
0ff132e5a633170afaed0aea54d01438c895b8ab |
|
08-Oct-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: add rast_tri_4_16 for small lines and points
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
eeb13e2352d7a44881b011cb3232bb80aee0c826 |
|
23-Sep-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: clean up setup_tri a little
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
29d6a1483d6c4ecb9c34989423e025b3784ec019 |
|
08-Oct-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: avoid overflow in triangle culling Avoid multiplying fixed-point values. Calculate triangle area in floating point use that for culling. Lift area calculations up a level as we are already doing this in the triangle_both() case. Would like to share the calculated area with attribute interpolation, but the way the code is structured makes this difficult.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
ad6730fadbbeacea96322e31064ede9ea7ebad6f |
|
08-Oct-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: fail gracefully on oom in scene creation
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
72258387786332c49b3275b8136a99be7591bf7f |
|
24-Sep-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: handle up to 8 planes in triangle binner
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
5b4c43d98556c5a4806757513bcb196a724518c5 |
|
05-Sep-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: use llvm for attribute interpolant calculation Basically no change relative to hard-coded version, but this will be useful for other changes later.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
59ca1ae84b2c15c8a94211da158f563e45560bcd |
|
15-Sep-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: return zero from floor_pot(zero)
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
c40858fa0dac28dc5096973ac267630ba5725003 |
|
13-Sep-2010 |
Witold Baryluk <baryluk@smp.if.uj.edu.pl> |
llvmpipe: Change asm to __asm__. According to gcc documentation both are equivalent, second are prefered as first can make conflict with existing symbols. Signed-off-by: José Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
501d43028e8e551dd36ede00fb85095183c32037 |
|
13-Sep-2010 |
José Fonseca <jfonseca@vmware.com> |
llvmpipe: Unbreak rasterization on 64bit.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
b97c75e6a3a95be503f0509be0791a21b4d0f8d8 |
|
13-Sep-2010 |
José Fonseca <jfonseca@vmware.com> |
llvmpipe: use gcc asm only with gcc
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
c4046d4fda2fe838659bff99bfa17f57f895a943 |
|
08-Sep-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: introduce tri_3_4 for tiny triangles
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
4b56e86e67d281b1c57f1f5e6b1a686d0dcd6ebb |
|
08-Sep-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: allow tri_3_16 at any 4-aligned location within a tile Doesn't require 16-alignment, so catch more cases.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
9df8a7565db608eaccf917632bf6c702203531b8 |
|
01-Sep-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: move more coef setup into lp_setup_coef.c
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
9f6e8e1d6b8696a3ee96cba01b2466ba7a1a8ef6 |
|
07-Sep-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: use opcodes instead of function pointers in bins Also, move some state from rasterizer struct to the scene.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
6419ecd02ce43a2614822e228f306d4db589f317 |
|
27-Aug-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: enforce fixed memory limit on scenes
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
5024d9b90e88cdc3d8aca14d45cf845efbfb8633 |
|
27-Aug-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: move whole-tile emit into a function
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
3783053fa59fceef59fe0356af5c8dbc095e9adf |
|
26-Aug-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: update line rasterization code to current master
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
5286dd701640976ffc328e8e85fb3830746851a1 |
|
19-Jul-2010 |
Hui Qi Tay <hqtay@vmware.com> |
llvmpipe: native rasterization for lines Rasterize lines directly by treating them as 4-sided polygons. Still need to check the exact pixel rasteration.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
0be0ad5d58806bc12ec2c7bb3c00e7f8c7a6d6c4 |
|
22-Aug-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: intrinsics version of triangle coeficient calculation Looks nice, but makes almost no impact on performance - maybe a percent or so in isosurf, nothing elsewhere. May be of use later on.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
29bcbf5e797a18430285c75abb8a9300c8defe1d |
|
24-Aug-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: track drawing region as a single u_rect
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
d808f7b53ec71a7684bac7e6b536911fc27d5238 |
|
24-Aug-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: better triangle debugging
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
c25151dd6a06acd93c8bf0d9e79fdcf134ffe818 |
|
20-Aug-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: cull zero-area triangles early
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
c9b7bece0569d9e193591ebff329acd1d9bd9e3c |
|
15-Aug-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: special case triangles which fall in a single 16x16 block Check for these and route them to a dedicated handler with one fewer levels of recursive rasterization.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
ff26594a92df37608a3efe47e4d4f3a55bcd6bc1 |
|
15-Aug-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: remove all traces of step arrays, pos_tables No need to calculate these values any longer, nor to store them in the bin data. Improves isosurf a bit more, 115->123 fps.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
66f57235d5e507b17f3cbf1329a803337ca08666 |
|
11-Aug-2010 |
José Fonseca <jfonseca@vmware.com> |
llvmpipe: Debug code to dump interpolation coefficients.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
3deca2e284f0709e94bec5267febc7ccb34c17b8 |
|
11-Aug-2010 |
José Fonseca <jfonseca@vmware.com> |
llvmpipe: Use single precision divide for one over area computation.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
d023fb39288be943d1c8ec5a60e9ff5778f4642f |
|
14-Jul-2010 |
José Fonseca <jfonseca@vmware.com> |
llvmpipe: Remove redundant alignments. The lp_rast_shader_inputs' alignment is irrelevant now that it contains pointers instead of actual data. Likewise, lp_rast_triangle's size alignment is meaningless.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
e21e7ab4da859198dfa9845b4a7207c49db54771 |
|
10-Jul-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: eliminate the set_state rasterizer command Just put a pointer to the state in the tri->inputs struct. Remove some complex logic for eliminating unused statechanges in bins at the expense of a slightly larger triangle struct.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
d4b64167b56f780d0dea73193c345622888fbc16 |
|
17-Jun-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: pass mask into fragment shader Move this code back out to C for now, will generate separately. Shader now takes a mask parameter instead of C0/C1/C2/etc. Shader does not currently use that parameter and rasterizes whole pixel stamps always.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
4ca3e0d84ba21ac4e37ecea0eed05a0bfcb3f098 |
|
24-Jun-2010 |
José Fonseca <jfonseca@vmware.com> |
llvmpipe: Don't reset the bin when there's a zsbuf bound. The previous rendering may have secondary effects on the zsbuf. Fixes the missing tiles on gearbox.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
6ce68ad3ca242076bbb93fdd99bb448f87a31d15 |
|
01-Jun-2010 |
José Fonseca <jfonseca@vmware.com> |
llvmpipe: Use struct lp_shader_input in the interpolator. Eliminates all this identical yet slightly different code to decide how shader inputs should be interpolated. As bonus, don't interpolate the position twice when it is listed in the TGSI shader inputs.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
149cb7682e37ce719d693f120e68dde60ba73bdf |
|
01-Jun-2010 |
José Fonseca <jfonseca@vmware.com> |
llvmpipe: Don't waste time interpolating unused input channels.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
18fb9ff6d8f58a08e559070cf29f26ed0caa567f |
|
26-May-2010 |
José Fonseca <jfonseca@vmware.com> |
llvmpipe: Pass the fs variant to the rasterizer.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
151b3bb3af722f0e14e209171acc2239d3cf2817 |
|
28-May-2010 |
Brian Paul <brianp@vmware.com> |
llvmpipe: add out of memory checking to triangle setup path
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
e5ee8b4fae2983512f9c70f2f021fc8c35e62a75 |
|
17-May-2010 |
Brian Paul <brianp@vmware.com> |
llvmpipe: fix front/back tri culling mix-up
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
0bd1cbcd0d28dbadfb0c3e1f8b048a18b56bc72c |
|
14-May-2010 |
Keith Whitwell <keithw@vmware.com> |
gallium: convert rasterizer state to use gl-style front/back concepts 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.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
246d39059e21bdc840128d448bcd79a957bbd1d1 |
|
05-May-2010 |
Brian Paul <brianp@vmware.com> |
llvmpipe: update driver's provoking vertex code Note that the lp_setup_vbuf.c code is very, very similar to the corresponding code in softpipe. It could probably be shared.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
db4ccc004a96255f3ad0dc26467f2243a133c24b |
|
20-Apr-2010 |
Brian Paul <brianp@vmware.com> |
llvmpipe: fix incorrect front-facing value for fragment shader The TGSI convention is +1 for front-facing, -1 for back-facing Fixes glean glsl1 gl_FrontFacing tests.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
a59771fb5305a4a8bda35bc7175eceecd0a950ee |
|
17-Apr-2010 |
Brian Paul <brianp@vmware.com> |
llvmpipe: triangle function comments
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
8ba14fab9a8fb4b7e7224062693ab4d487a138b8 |
|
16-Apr-2010 |
Brian Paul <brianp@vmware.com> |
llvmpipe: print_triangle() func (disabled)
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
22e6dc387039e79f6d1435ae8b7422a6514d5d10 |
|
18-Mar-2010 |
Brian Paul <brianp@vmware.com> |
gallivm/llvmpipe: added lp_rast_shader_inputs::facing and pass through The triangle rasterizer sets this field to indicate front/back-facing. It gets passed into the generated fragment code as another parameter. Used now for stencil front/back selection but will also be used for fragment shaders in general (see TGSI_SEMANTIC_FACE). With this commit two-sided stenciling mostly works but there's still a bug or two...
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
a80e33f40731f07e8a39896bfdcd1b1504aedc1f |
|
13-Mar-2010 |
José Fonseca <jfonseca@vmware.com> |
llvmpipe: Obey rasterization rules. Replicates softpipe.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
3160cbabccf1f7d8bdf344242507b9c3082f15c6 |
|
13-Mar-2010 |
José Fonseca <jfonseca@vmware.com> |
llvmpipe: setup_context -> lp_setup_context Otherwise IDEs and debuggers have trouble distinguishing from softpipe's setup_context.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
4053d337035a17c3bded6458093acf56d1878cba |
|
03-Mar-2010 |
José Fonseca <jfonseca@vmware.com> |
llvmpipe: Store the original triangle coordinates in the debug build. For debugging purposes only.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
764c172aa96d48e1cf18b903661064c1ef8df1b5 |
|
11-Feb-2010 |
José Fonseca <jfonseca@vmware.com> |
llvmpipe: Clamp both extremes of triangles to framebuffer size. Fix segmentation fault when triangles crossed the axis.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
1d23954a0848f8dd87b214f3a7ec3ae3c04ab0c1 |
|
22-Jan-2010 |
Brian Paul <brianp@vmware.com> |
llvmpipe: s/inline/INLINE/
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
e24ea786faad502da63cc4d59b0c30e3f1915c45 |
|
22-Jan-2010 |
Brian Paul <brianp@vmware.com> |
llvmpipe: consolidate lp_scene_alloc_aligned() calls Use just one call instead of four. Good for a few more fps.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
798a9d3f942df1953a538073c85d6a6fed3775db |
|
22-Jan-2010 |
Brian Paul <brianp@vmware.com> |
llvmpipe: re-use a1 var in linear_coef()
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
ff9b55da9a6e3b5aa2d42eac7d79c675a679af57 |
|
22-Jan-2010 |
Brian Paul <brianp@vmware.com> |
llvmpipe: area is an int here, not float
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
a904a7b99043c19493db5c0945b046795a5932b1 |
|
22-Jan-2010 |
Brian Paul <brianp@vmware.com> |
llvmpipe: manually unroll the inputs.step[] setup code Good for a few more fps in some tests.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
cd9d9e2436a0815f6ed3a61d2cdf8fad53278506 |
|
21-Jan-2010 |
Brian Paul <brianp@vmware.com> |
llvmpipe: added simple perf/statistics counting facility Currently counting number of tris, how many tiles of each size are fully covered, partially covered or empty, etc. Set LP_DEBUG=counters to enable. Results are printed upon context destruction.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
75f262b8b441e05f5b8811db1c205220200d64ad |
|
19-Jan-2010 |
Brian Paul <brianp@vmware.com> |
llvmpipe: updated comments
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
fdfe06ad804ea13e6e436d66c1bcafe0bde2f545 |
|
15-Jan-2010 |
Brian Paul <brianp@vmware.com> |
llvmpipe: implement scissor test in triangle setup
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
adb48d535082f5a311751e1866997e381b2d3038 |
|
15-Jan-2010 |
Brian Paul <brianp@vmware.com> |
llvmpipe: remove lp_rast_triangle::min/max fields These values aren't needed outside the do_triangle_ccw() function.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
4bef3575e605d890d9f228391b4724d27b025f49 |
|
15-Jan-2010 |
Brian Paul <brianp@vmware.com> |
llvmpipe: change 'in' to boolean, add comments
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
ca12e30d97b83fb33e1f8f83da05b5ed2809b0af |
|
15-Jan-2010 |
Brian Paul <brianp@vmware.com> |
llvmpipe: minor comment update
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
f19f218e7aad76639a6aacabda8101ba87bb4896 |
|
14-Jan-2010 |
Brian Paul <brianp@vmware.com> |
llvmpipe: minor assorted clean-ups
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
a1acbff299c444913418e65da473745cd901a2db |
|
13-Jan-2010 |
José Fonseca <jfonseca@vmware.com> |
llvmpipe: Reset the bin when shading a whole tile with an opaque shader.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
212f3a6cb3cb49127a6e5588553fe2d327f46563 |
|
13-Jan-2010 |
Brian Paul <brianp@vmware.com> |
llvmpipe: tweak subpixel_snap() arithmetic This adjustment fixes some rasterization differences between llvmpipe and softpipe (and other renderers).
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
214ffad01598c8780417b9fa9df75e951c8ac049 |
|
13-Jan-2010 |
Brian Paul <brianp@vmware.com> |
llvmpipe: clamp maxx,maxy to framebuffer size (in terms of tiles) In some corner cases the right-most / bottom-most vertex can be right on the edge of the framebuffer. Because the maxx, maxy vals are computed with a series of float/int, pixel/tile transformations we can end up with maxx >= scene->x_tiles or maxy >= scene->y_tiles. This leads to putting data into bins that never get processed, or reset. This becomes stale data that can lead to segfaults. Clamping fixes this.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
094525fb23127e7ca253d732207bbbbe00488a6b |
|
08-Jan-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: remove opencoded constant
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
080c40ab32b2abd6d8381b4a0cc143d36a1652b2 |
|
08-Jan-2010 |
José Fonseca <jfonseca@vmware.com> |
Merge remote branch 'origin/master' into lp-binning Conflicts: src/gallium/auxiliary/util/u_surface.c src/gallium/drivers/llvmpipe/Makefile src/gallium/drivers/llvmpipe/SConscript src/gallium/drivers/llvmpipe/lp_bld_arit.c src/gallium/drivers/llvmpipe/lp_bld_flow.c src/gallium/drivers/llvmpipe/lp_bld_interp.c src/gallium/drivers/llvmpipe/lp_clear.c src/gallium/drivers/llvmpipe/lp_context.c src/gallium/drivers/llvmpipe/lp_context.h src/gallium/drivers/llvmpipe/lp_draw_arrays.c src/gallium/drivers/llvmpipe/lp_jit.c src/gallium/drivers/llvmpipe/lp_jit.h src/gallium/drivers/llvmpipe/lp_prim_vbuf.c src/gallium/drivers/llvmpipe/lp_setup.c src/gallium/drivers/llvmpipe/lp_setup_point.c src/gallium/drivers/llvmpipe/lp_state.h src/gallium/drivers/llvmpipe/lp_state_blend.c src/gallium/drivers/llvmpipe/lp_state_derived.c src/gallium/drivers/llvmpipe/lp_state_fs.c src/gallium/drivers/llvmpipe/lp_state_sampler.c src/gallium/drivers/llvmpipe/lp_state_surface.c src/gallium/drivers/llvmpipe/lp_tex_cache.c src/gallium/drivers/llvmpipe/lp_tex_cache.h src/gallium/drivers/llvmpipe/lp_tex_sample.h src/gallium/drivers/llvmpipe/lp_tile_cache.c
|
ab9438193083b7f9a3180cb9cea45e269131048a |
|
17-Dec-2009 |
Brian Paul <brianp@vmware.com> |
llvmpipe: do final the pixel in/out triangle test in the fragment shader The test to determine which of the pixels in a 2x2 quad is now done in the fragment shader rather than in the calling C code. This is a little faster but there's a few more things to do. Note that the step[] array elements are in a different order now. Rather than being in row-major order for the 4x4 grid, they're in "quad-major" order. The setup of the step arrays is a little more complicated now. So is the course/intermediate tile test code, but some lookup tables help with that. Next steps: - early-cull 2x2 quads which are totally outside the triangle. - skip the in/out test for fully contained quads - make the in/out comparison code tighter/faster.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
663750d5564a225b4720f7ee8bea93ffb309fc88 |
|
13-Dec-2009 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: rename bins to scene It was pretty confusing having an entity named "bin" and another named "bins", not least because sometimes there was a need to talk about >1 of the "bins" objects, which couldn't be pluralized any further... Scene is a term used in a bunch of places to talk about what a binner operates on, so it's a decent choice here.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
22b07b8be4c2939b00e10f17fa91e68682808594 |
|
09-Dec-2009 |
Brian Paul <brianp@vmware.com> |
llvmpipe: use new lp_setup_get_current_bins() function This stub function will interface to the queue system...
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
01b1900084152dbacd4025a31ced25f75666ce59 |
|
04-Dec-2009 |
Brian Paul <brianp@vmware.com> |
llvmpipe: reorganization of binning data structions and funtions New lp_bins struct contains all bin information. More move bin-related code into lp_bin.[ch] Use new/updated bin-access functions to hide implementation details. The result is more/cleaner separation between the setup and rast components. This will make double-buffering of the bins easier, etc.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
d9dc3d59760a28d54013d3d164f61d85ec807651 |
|
04-Dec-2009 |
Brian Paul <brianp@vmware.com> |
llvmpipe: move bin-related structures and functions into new lp_bin.[ch] And put lp_ prefixes on some functions.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
5c7d1b592ad9ce9e7ee36610f17d41e5c2881d54 |
|
04-Dec-2009 |
Brian Paul <brianp@vmware.com> |
llvmpipe: remove lp_rast_triangle::oneoverarea field Makes lp_rast_triangle a little smaller (now 280 bytes on a 32-bit system).
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
b1659b9213f3eeee440590dfe379f0d193948307 |
|
04-Dec-2009 |
Brian Paul <brianp@vmware.com> |
llvmpipe: bin state-change commands Previously, each triangle had a pointer to the state to use for shading. Now we insert state-change commands into the bins. When we execute one of those commands we just update a 'current state' pointer and use that pointer when calling the jit shader. When inserting state-change commands into a bin we check if the previous command was also a state-change command and simply replace it. This avoids accumulating useless/redundant state-change commands.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
1796ffd3bcf74a94c800717e77abaf9902c50b4d |
|
04-Dec-2009 |
Brian Paul <brianp@vmware.com> |
llvmpipe: fix typo, whitespace
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
04e12e31b252e7a18862c3ac386f302665edb6e7 |
|
04-Dec-2009 |
Brian Paul <brianp@vmware.com> |
llvmpipe: dynamic allocation of triangle a0/dadx/dady arrays Much less memory per triangle now.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
30c122a4c90b62ad3d6b7bacb61c04dd38a4b2df |
|
04-Dec-2009 |
Brian Paul <brianp@vmware.com> |
llvmpipe: new comment in do_triangle_ccw()
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
7505510c7b7c33f3c571647c0398da7e1b823806 |
|
30-Nov-2009 |
Brian Paul <brianp@vmware.com> |
llvmpipe: add a bunch of comments
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
694f05ac18c54253910678709f2dd35c36f1e912 |
|
21-Oct-2009 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: remove one of two definitions of TILESIZE
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
341edde1d2e9f9f989d41869cc436b51942941e4 |
|
21-Oct-2009 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: remove dead code
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
cccb1842092bd1b9f35aee0ac21d580c0365e4a5 |
|
20-Oct-2009 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: minor opts to setup_tri
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
7b116e13a2aa28a699e30c907c1b1ae5e04cab28 |
|
20-Oct-2009 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: pass mask as a linear encoding of the 4x4 block
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
7670628061c2a6ce0a1a787556b0e33a38fd3049 |
|
20-Oct-2009 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: precalculate some offsets
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
3fd6b724cc406573cf53684cd72fa7f60b65354a |
|
19-Oct-2009 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: pre-multiply some constants by fixed_one
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
0580079864c41c236a4167a1543b1a2fc5090362 |
|
19-Oct-2009 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: fixed-point rasterization
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
269342d916fff3bf0fa0a5c1f26aec30b62ed352 |
|
19-Oct-2009 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: correctly scale top/left fill adjustments Was overdoing it previously.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
d9f44abe3bb0c9897937ef7f343a7896a0b4cbf0 |
|
19-Oct-2009 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: fix typo correcting for fill convention Adjustments for top-left fill convention were being lost.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
b4924d62c7346da2e0de9ae4f9f23b3fb7fafee8 |
|
09-Oct-2009 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: fill in tri min/max values
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
6464ec48366fee201c61a481c3205a64279797b2 |
|
09-Oct-2009 |
José Fonseca <jfonseca@vmware.com> |
llvmpipe: Remove partial tile override.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
82ec7f018d20e46e9c43ea467354dcfe4f03bae3 |
|
09-Oct-2009 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: correct binning maths for iterating over whole tiles
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
85999695829823e459e11822b4846ed1db5c055d |
|
09-Oct-2009 |
José Fonseca <jfonseca@vmware.com> |
llvmpipe: Get jit_context/jit_function across the rasterizer.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
da1808ccc9a53fdd5aa69efa800ece0d3d075b07 |
|
09-Oct-2009 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: just bin whole tiles for now
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
e215f94f15fd20919cc0ed500dc2efde4f076516 |
|
09-Oct-2009 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: get lp_setup_tri building
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
4cdd10cb4b60d85f6c231a26739f7d5e264a05e5 |
|
09-Oct-2009 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: use union lp_cmd_rast_arg directly, rather than through a pointer The union itself consists of pointers. We don't need to be passing pointer to pointers.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
415b271b5100d64579690111bc8eb549866865a7 |
|
09-Oct-2009 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: hook up some state, add stub line and point functions
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
de902d3275d1861beb0cebdf0807a17e2682c8de |
|
09-Oct-2009 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: more wip on coefficients
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
0718c7700533a965d7cd06b4f67b82bbae6e66a1 |
|
08-Oct-2009 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: work on clears and coefficients
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
931210424bc46b2c13919f0ac3e0ef781eff207e |
|
08-Oct-2009 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: wip me harder
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
5e13dfe6181952f0f538a77b8a9f91c1d7601ceb |
|
08-Oct-2009 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: whip out the intra-tile code from lp_setup_tri.c The "setup" module handles building per-tile display lists. Intra-tile rendering is handled by lp_rast*.c
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
e529170c11d3cb5812aabeff0a6ee2d7a2ea66f2 |
|
08-Oct-2009 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: more wipping
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|
89498d01531cd515c769e570bf799c39fbafc8fb |
|
07-Oct-2009 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: import experimental softpipe rasterizer code, wip binning code WIP, does't build or run. Rasterizer code is based on Nick Capen's devmaster posts and the larrabee articles, but currently doesn't share either the performance or correctness of either...
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_tri.c
|