History log of /external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
c5e473fbe25b20cb27aac44ff6e269701abd33a8 16-Apr-2012 Marek Olšák <maraeo@gmail.com> mesa: add gl_context::NewDriverState and use it for vertex arrays

The vbo module recomputes its states if _NEW_ARRAY is set, so it shouldn't use
the same flag to notify the driver. Since we've run out of bits in NewState
and NewState is for core Mesa anyway, we need to find another way.

This patch is the first to start decoupling the state flags meant only
for core Mesa and those only for drivers.

The idea is to have two flag sets:
- gl_context::NewState - used by core Mesa only
- gl_context::NewDriverState - used by drivers only (the flags are defined
by the driver and opaque to core Mesa)

It makes perfect sense to use NewState|=_NEW_ARRAY to notify the vbo module
that the user changed vertex arrays, and the vbo module in turn sets
a driver-specific flag to notify the driver that it should update its vertex
array bindings.

The driver decides which bits of NewDriverState should be set and stores them
in gl_context::DriverFlags. Then, Core Mesa can do this:
ctx->NewDriverState |= ctx->DriverFlags.NewArray;

This patch implements this behavior and adapts st/mesa.
DriverFlags.NewArray is set to ST_NEW_VERTEX_ARRAYS.

Core Mesa only sets NewDriverState. It's the driver's responsibility to read
it whenever it wants and reset it to 0.

Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
50f7e75f9e945cfbb2ae868cc961a2205a0b6e73 23-Apr-2012 Marek Olšák <maraeo@gmail.com> mesa: move gl_client_array*[] from vbo_draw_func into gl_context

In the future we'd like to treat vertex arrays as a state and
not as a parameter to the draw function. This is the first step
towards that goal. Part of the goal is to avoid array re-validation
for every draw call.

This commit adds:
const struct gl_client_array **gl_context::Array::_DrawArrays.

The pointer is changed in:
* vbo_draw_method
* vbo_rebase_prims - unused by gallium
* vbo_split_prims - unused by gallium
* st_RasterPos

Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
14bb957b996dcc5392b8fa589bd3ffa5c55cb6b4 09-Dec-2011 Marek Olšák <maraeo@gmail.com> mesa: implement DrawTransformFeedback from ARB_transform_feedback2

It's like DrawArrays, but the count is taken from a transform feedback
object.

This removes DrawTransformFeedback from dd_function_table and adds the same
function to GLvertexformat (with the function parameters matching GL).

The vbo_draw_func callback has a new parameter
"struct gl_transform_feedback_object *tfb_vertcount".

The rest of the code just validates states and forwards the transform
feedback object into vbo_draw_func.
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
edc09358f72cd48cb2315daf23c82e7646aeaea3 09-Jan-2011 Vinson Lee <vlee@vmware.com> st/mesa: Include mfeatures.h in files that perform feature tests.
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
f9995b30756140724f41daf963fa06167912be7f 12-Oct-2010 Kristian Høgsberg <krh@bitplanet.net> Drop GLcontext typedef and use struct gl_context instead
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
4160d947d289c07f1de6b8bf21a874e842b51f51 30-Sep-2010 Nicolas Kaiser <nikai@nikai.net> st: remove duplicated include

Remove duplicated include.

Signed-off-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
bcce57c2e9a1d9b203dba8fe13480889e6d19c89 30-Mar-2010 Chia-I Wu <olv@lunarg.com> st/mesa: Make FEATURE_feedback and FEATURE_rastpos more modular.

Make st_cb_feedback.h FEATURE_feedback aware and st_cb_rastpos.h
FEATURE_rastpos aware. Move creation of selection/feedback draw context
to st_init_draw.
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
76c7ad2e7d387feefe58dc2116b613fe11a8b273 23-Apr-2010 Brian Paul <brianp@vmware.com> st/mesa: clean-up: use st_context() everywhere
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
32f2fd1c5d6088692551c80352b7d6fa35b0cd09 19-Feb-2010 Kristian Høgsberg <krh@bitplanet.net> Replace _mesa_malloc, _mesa_calloc and _mesa_free with plain libc versions
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
282dafcdc7a809714f27fd609489b19d45360258 13-Feb-2010 Brian Paul <brianp@vmware.com> st/mesa: restore draw rasterization stage after rasterpos

This fixes invalid calls to rastpos_point/line/tri() that can occur
when glRasterPos() is called while in feedback or selection mode.

(cherry picked from commit b3c7dc6ff232eb4c5ff6b0ddcfa90bcb56f78df1)
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
79a5a2839029eef23f4c238fec6878b5f87ceec3 15-Jan-2010 Vinson Lee <vlee@vmware.com> st/mesa: Remove unnecessary header from st_cb_rasterpos.c.
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
2708ddfb06a36d8568e2aa130bf1f7d551fcd309 11-Aug-2009 Eric Anholt <eric@anholt.net> vbo: Avoid extra validation of DrawElements.

This saves mapping the index buffer to get a bounds on the indices that
drivers just drop on the floor in the VBO case (cache win), saves a bonus
walk of the indices in the CheckArrayBounds case, and other miscellaneous
validation. On intel it's a particularly a large win (50-100% in my app)
because even though we let the indices stay in both CPU and GPU caches, we
still end up waiting for the GPU to be done with the buffer before reading
from it.

Drivers that want the min/max_index fields must now check index_bounds_valid
and use vbo_get_minmax_index before using them.
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
c13bd7488593263f2c45c136b63114ce8b4602fb 28-May-2009 Brian Paul <brianp@vmware.com> st/mesa: init Format field of vertex arrays for feedback mode

Fixes segfault in glRasterPos()
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
842b4cd3cdb313751647e229a9aa3f0001e03d15 22-May-2009 Brian Paul <brianp@vmware.com> mesa: use Elements() for loop limit
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
f1a59a6dd7b7b0523db191d82b3af1a841c6475d 12-Feb-2009 Brian Paul <brianp@vmware.com> mesa: use new ST_CALLOC_STRUCT() macro in gallium state tracker
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
1a2f4dd8768703fbc1b2a0d5be342345644805b4 12-Feb-2009 Brian Paul <brianp@vmware.com> mesa: consistantly use mesa memory-functions in gallium state tracker

Use _mesa_malloc(), _mesa_free(), etc everywhere, not malloc(), free(), etc.
Still using CALLOC_STRUCT() at this point.
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
eb9bbc5265562cb6f93688fc027ea76f91601e37 03-Jan-2009 Brian Paul <brianp@vmware.com> gallium: fix texcoord loop for rasterpos attributes
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
f8870af44b32d4c69ef11013897143d46966c8e4 25-Nov-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: fix inverted raster pos when drawing into FBO
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
6c534b830c6f5427c391c5225c34561141c201ba 15-Jul-2008 Michal Krol <michal@tungstengraphics.com> st: Silence compiler warnings on Windows.
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
507fbe2d327efb8d608ce8e07436b97321560808 19-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: move some pipeline-specific code & state to draw_pipe.[ch]
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
9a264a056abc376a70e01f097934d590a36df887 28-Feb-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: in GL_SELECT mode, update hitflag in rasterpos
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
80efc5feb061a8ed9c1e91ad3711547927fa29e3 26-Feb-2008 Brian <brian@poulsbo.localnet.net> gallium: fix off by one rasterpos bug
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
6acd63a4980951727939c0dd545a0324965b3834 15-Feb-2008 José Fonseca <jrfonseca@tungstengraphics.com> Code reorganization: update build.

Update the Makefiles and includes for the new paths.

Note that there hasn't been no separation of the Makefiles yet, and make is
jumping all over the place. That will be taken care shortly. But for now, make
should work. It was tested with linux and linux-dri. Linux-cell and linux-llvm
might require some minor tweaks.
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
0bfd085e2866fbbd40209dcee23f0e6240583fe8 25-Jan-2008 Brian <brian.paul@tungstengraphics.com> gallium: replace prim pipeline begin/end() functions with flush()

This is basically half of Keith's draw/flush patch.

The stage->point/line/tri() functions are now self-validating, the validator
functions are installed by the flush() function.

There were excessive calls to validate_pipeline(), however. This was caused
by draw_prim_queue_flush() keeping a local 'first' variable that always pointed
to the validate functions. Replaced 'first' with 'draw->pipeline.first'.

Performance in gears is up just slightly with this patch.
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
48355538a65fe9c0be234c61080edd70f6a86736 24-Jan-2008 Brian <brian.paul@tungstengraphics.com> gallium: added rastpos_destroy()
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
c753e7adde9a7a2c8ff772fe8e2a42084c5966e0 25-Jan-2008 Brian <brian.paul@tungstengraphics.com> gallium: added rastpos_destroy()
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
7049ff53f640aeccc9523a103468183ffda996fd 22-Jan-2008 Brian <brian.paul@tungstengraphics.com> gallium: silence warnings
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
48731280d08bef51c406703e82986643e17b4757 11-Dec-2007 Keith Whitwell <keith@tungstengraphics.com> gallium: Remove feedback interfaces from pipe driver.

Something similar will return when geometry shaders are added, but for now
this interface is not required.
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
aa880bdfa05d8ff2486ef8266f93dea983b7c6fd 17-Nov-2007 Brian <brian.paul@tungstengraphics.com> Reimplement glRasterPos using the private 'draw' module.
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
fa1a66d7fc4fd7854de7958a48e4992edd154489 05-Nov-2007 José Fonseca <jrfonseca@tungstengraphics.com> Supply buffer usage hints to winsys.

Winsys driver needs some hints in order to allocate the appropriate kind of
memory for the buffer.
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
5bd119f9438b680f5e42458ef0b250662af36235 18-Oct-2007 Brian <brian.paul@tungstengraphics.com> handle fogcoord/raster distance
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
f953c223df26293f955f7d0621a6f917e9cc9768 18-Oct-2007 Brian <brian.paul@tungstengraphics.com> remove #include vf.h
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
38743e2ef1091304a7059c04c157fde80bd977ec 17-Oct-2007 Brian <brian.paul@tungstengraphics.com> generate selection hit if in selection mode and pos is not clipped
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
a24031d50c6b4c584aae08316dc3c00e18e24b58 01-Oct-2007 Brian <brian.paul@tungstengraphics.com> don't crash in RasterPos if feedback not implemented yet
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
40c543eb71368c646259afb87d5c76551f6b45b7 25-Sep-2007 Brian <brian.paul@tungstengraphics.com> Translate mesa vertex/fragment programs to TGSI programs at same time to do proper linking.

Previously, programs were translated independently during validation.
The problem is the translation to TGSI format, which packs shader
input/outputs into continuous slots, depends on which vertex program is
being paired with which fragment shader. Now, we look at the outputs
of the vertex program in conjunction with the inputs of the fragment shader
to be sure the attributes match up correctly.

The new 'linked_program_pair' class keeps track of the associations
between vertex and fragment shaders. It's also the place where the TGSI
tokens are kept since they're no longer per-program state but per-linkage.

Still a few loose ends, like implementing some kind of hash/lookup table
for linked_program_pairs.
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
da45890818ab5ae94592208e3581b5c2febaa6b4 21-Sep-2007 Brian <brian.paul@tungstengraphics.com> Fix up some point size breakage. Start on fogcoord too.
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
c231a9d020bdec8e0749a5547971c79de64f73d8 20-Sep-2007 Brian <brian.paul@tungstengraphics.com> remove #includes of tgsi_attribs.h
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
daf5b0f41baa50951e7c2f9ea5cd90b119085a7f 20-Sep-2007 Zack Rusin <zack@tungstengraphics.com> Switch fragment/vertex shaders to the new caching semantics.

Allow driver custom allocation within cached objects. The shaders
are currently twiced (by cso layer and by the program itself).
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
37cf13ed9a429c755f121daa1776b1b30a985ab3 20-Sep-2007 Brian <brian.paul@tungstengraphics.com> Checkpoint: replacement of TGSI_ATTRIB_x tokens with input/output semantics.

TGSI_ATTRIB_x tokens still present and used in a few places.
Expanded set of TGSI_SEMANTIC_x tokens for describing the meaning
of inputs/outputs. These tokens are in a crude state ATM.
Lots of #if 0 / disabled code to be removed yet, etc...
Softpipe and i915 drivers should be in working condition but not heavily tested.
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
ccd63b54cfbb6bb241d55f7ac95afcd14819f469 18-Sep-2007 Zack Rusin <zack@tungstengraphics.com> Convert shader to an immutable state object.
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
6275b40063d7d06e0b05767ebca3963ce7e9c34e 11-Sep-2007 Brian <brian.paul@tungstengraphics.com> merge buffer_unreference(), buffer_reference()
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c
bb193c6d22125f1af62e81c1251acd2a68939608 11-Sep-2007 Brian <brian.paul@tungstengraphics.com> glRasterPos function
/external/mesa3d/src/mesa/state_tracker/st_cb_rasterpos.c