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_point.c
|
af7ba989fb5a39925a0a1261ed281fe7f48a16cf |
|
09-Dec-2015 |
Roland Scheidegger <sroland@vmware.com> |
llvmpipe: fix layer/vp input into fs when not written by prior stages ARB_fragment_layer_viewport requires that if a fs reads layer or viewport index but it wasn't output by gs (or vs with other extensions), then it reads 0. This never worked for llvmpipe, and is surprisingly non-trivial to fix. The problem is the mechanism to handle non-existing outputs in draw is rather crude, it will simply redirect them to whatever is at output 0, thus later stages will just get garbage. So, rather than trying to fix this up (which looks non-trivial), fix this up in llvmpipe setup by detecting this case there and output a fixed zero directly. While here, also optimize the hw vertex layout a bit - previously if the gs outputted layer (or vp) and the fs read those inputs, we'd add them twice to the vertex layout, which is unnecessary. And do some minor cleanup, slots don't require that many bits, there was some bogus (but harmless) float/int mixup for psize slot too, make the slots all unsigned (we always put pos at pos zero thus everything else has to be positive if it exists), and make sure they are properly initialized (layer and vp index slot were not which looked fishy as they might not have got set back to zero when changing from a gs which outputs them to one which does not). This fixes the failures in piglit's arb_fragment_layer_viewport group (3 each for layer and vp). Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_point.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_point.c
|
3b64714da48f1654dbbf6ef5b4abe5b0c5952a9e |
|
17-Jan-2014 |
Roland Scheidegger <sroland@vmware.com> |
llvmpipe: fix large point rasterization with point_quad_rasterization The whole round-pointsize-to-int stuff must only be done with GL legacy rules (no point_quad_rasterization) or all the wrong edges are lit up. This was previously in a private branch (d3d pointsprite test complains loudly otherwise) and got lost in a merge. However, it should certainly apply to GL point sprite rasterization as well. Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_point.c
|
9b96be595b93544266436ec3b22b2cbd349d180c |
|
08-Jan-2014 |
José Fonseca <jfonseca@vmware.com> |
llvmpipe: Honour pipe_rasterizer::point_quad_rasterization. Commit eda21d2a3010d9fc5a68b55a843c5e44b2abf8dd fixed the rasterization of points for Direct3D but ended up breaking the rasterization of OpenGL non-sprite points, in particular conform's pntrast.c test. The only way to get both working is to properly honour pipe_rasterizer::point_quad_rasterization, and follow the weird OpenGL rule when it is false. Reviewed-by: Roland Scheidegger <sroland@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_point.c
|
eda21d2a3010d9fc5a68b55a843c5e44b2abf8dd |
|
07-Jan-2014 |
José Fonseca <jfonseca@vmware.com> |
llvmpipe: Fix the bottom_edge_rule adjustment for points. The adjustment needs to be applied to the y coordinates and not the x coordinates, just like the equivalent code for lines and triangles in lp_setup_line.c and lp_setup_tri.c. Reviewed-by: Roland Scheidegger <sroland@vmware.com> Reviewed-by: Zack Rusin <zackr@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_point.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_point.c
|
7a50d38a2bcbecc70e0dd3b49ca717e56c438f21 |
|
10-Dec-2013 |
Zack Rusin <zackr@vmware.com> |
llvmpipe: add a very useful (disabled) debugging output Disabled by default, but it's very useful when needed. 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_point.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_point.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_point.c
|
d6b3a193d4d525c5048ebf793e6a63fd98f92d64 |
|
31-Jul-2013 |
Zack Rusin <zackr@vmware.com> |
draw: inject frontface info into wireframe outputs Draw module can decompose primitives into wireframe models, which is a fancy word for 'lines', unfortunately that decomposition means that we weren't able to preserve the original front-face info which could be derived from the original primitives (lines don't have a 'face'). To fix it allow draw module to inject a fake face semantic into outputs from which the backends can figure out the original frontfacing info of the primitives. Signed-off-by: Zack Rusin <zackr@vmware.com> Reviewed-by: Roland Scheidegger <sroland@vmware.com> Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_point.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_point.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_point.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_point.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_point.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_point.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
|
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_point.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_point.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_point.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_point.c
|
986cb9d5cf60bc11c7facc19017b5432b17240f7 |
|
02-Sep-2010 |
José Fonseca <jfonseca@vmware.com> |
llvmpipe: Use lp_tgsi_info.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_point.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_point.c
|
06472ad7e835813ef7c9bf8a5cd8b62a25fa9cc3 |
|
06-Oct-2010 |
José Fonseca <jfonseca@vmware.com> |
llvmpipe: Fix sprite coord perspective interpolation of Q. Q coordinate's coefficients also need to be multiplied by w, otherwise it will have 1/w, causing problems with TXP.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_point.c
|
e74955eba3fc22fcf6e9111a4e5bbc095d34d357 |
|
26-Sep-2010 |
José Fonseca <jfonseca@vmware.com> |
llvmpipe: Fix perspective interpolation for point sprites. Once a fragment is generated with LP_INTERP_PERSPECTIVE set for an input, it will do a divide by w for that input. Therefore it's not OK to treat LP_INTERP_PERSPECTIVE as LP_INTERP_LINEAR or vice-versa, even if the attribute is known to not vary. A better strategy would be to take the primitive in consideration when generating the fragment shader key, and therefore avoid the per-fragment perspective divide.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_point.c
|
d2149f6f2256deda180fd1a4c38cb436660e7407 |
|
30-Sep-2010 |
Nicolas Kaiser <nikai@nikai.net> |
gallium/llvmpipe: remove duplicated include Remove duplicated include. Signed-off-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_point.c
|
60a45b03c389f708c513bb2b70c5973175f01068 |
|
24-Sep-2010 |
Keith Whitwell <keithw@vmware.com> |
llvmpipe: handle FACING interpolants in line and point setup
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_point.c
|
516ac2bd50ad1e71bd2a359d247532d9f18bcf99 |
|
22-Sep-2010 |
Brian Paul <brianp@vmware.com> |
llvmpipe: fix sprite texcoord setup for non-projective texturing Normally the Mesa state tracker uses TXP instructions for texturing. But if a fragment shader uses texture2D() that's a TEX instruction. In that case we were incorrectly computing the texcoord coefficients in the point sprite setup code. Some new comments in the code explain things.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_point.c
|
1662c317032cf280701d7e55b028b7f0dc8afc65 |
|
20-Sep-2010 |
Brian Paul <brianp@vmware.com> |
llvmpipe: check bitshift against PIPE_MAX_SHADER_OUTPUTS
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_point.c
|
61fcd9aaa2bf91eb400eeb4df2ab2c7e48b3bb6c |
|
20-Sep-2010 |
Brian Paul <brianp@vmware.com> |
llvmpipe: implement sprite coord origin modes
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_point.c
|
c3982c6bcdeb88f7fb1b20f8bd300db31cd7288d |
|
20-Sep-2010 |
Brian Paul <brianp@vmware.com> |
llvmpipe: rename sprite field, add sprite_coord_origin
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_point.c
|
b7a5eac1f3723a369885bad369a04c456bdf1565 |
|
20-Sep-2010 |
Brian Paul <brianp@vmware.com> |
llvmpipe: clean-up, comments in setup_point_coefficient()
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_point.c
|
924c18da95bbc62492f8e54bd8273a4981a919dc |
|
20-Sep-2010 |
Brian Paul <brianp@vmware.com> |
llvmpipe: reformatting, remove trailing whitespace, etc
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_point.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_point.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_point.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_point.c
|
29ec116e8f21c65250f1083830b82ff59859496d |
|
10-Aug-2010 |
Hui Qi Tay <hqtay@vmware.com> |
llvmpipe: point sprites rasterization Point sprites now done in the rasterizer setup code instead of going through the draw module.
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_point.c
|
2cd72dd4590b4510931854ed776c72563603f7ff |
|
27-Aug-2010 |
Hui Qi Tay <hqtay@vmware.com> |
llvmpipe: native point rasterization with better pixel rasterization A few subpixel_snap and fixed width changes. Conflicts: src/gallium/drivers/llvmpipe/lp_setup_point.c
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_point.c
|
57d84d9ca4a645ca326b66ff3b82bee0db18ac97 |
|
27-Aug-2010 |
Hui Qi Tay <hqtay@vmware.com> |
llvmpipe: native point rasterization Conflicts: src/gallium/drivers/llvmpipe/lp_setup_context.h src/gallium/drivers/llvmpipe/lp_setup_line.c src/gallium/drivers/llvmpipe/lp_setup_tri.c
/external/mesa3d/src/gallium/drivers/llvmpipe/lp_setup_point.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_point.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_point.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_point.c
|