History log of /external/mesa3d/src/mesa/state_tracker/st_program.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
6792969cbc0d233942b15285e0fa84e6602733c2 17-May-2012 Brian Paul <brianp@vmware.com> st/mesa: added st_print_current_vertex_program(), for debugging
/external/mesa3d/src/mesa/state_tracker/st_program.h
732f69c94e17aae8dae98cdc84fdb232fdda2484 23-Jan-2012 Marek Olšák <maraeo@gmail.com> st/mesa: move fragment shader tgsi tokens into st_fp_variant

The TGSI code may vary depending on the clamp_color bit.
/external/mesa3d/src/mesa/state_tracker/st_program.h
bc1c8369384b5e16547c5bf9728aa78f8dfd66cc 23-Jan-2012 Marek Olšák <maraeo@gmail.com> st/mesa: do vertex and fragment color clamping in shaders

For ARB_color_buffer_float. Most hardware can't do it and st/mesa is
the perfect place for a fallback.
The exceptions are:
- r500 (vertex clamp only)
- nv50 (both)
- nvc0 (both)
- softpipe (both)

We also have to take into account that r300 can do CLAMPED vertex colors only,
while r600 can do UNCLAMPED vertex colors only. The difference can be expressed
with the two new CAPs.
/external/mesa3d/src/mesa/state_tracker/st_program.h
ffb7d02154186402f64e0b628998485309774bb8 07-Aug-2011 Bryan Cain <bryancain3@gmail.com> st/mesa: inline st_prepare_fragment_program in st_translate_fragment_program

This reverts an unnecessary part of commit 4683529048ee and fixes misrendering
and an assertion failure in Cogs.

Fixes freedesktop.org bug 39888.

Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/mesa/state_tracker/st_program.h
f379d8f73063a4c4d6cf379318c6b37118d46bfa 26-Apr-2011 Bryan Cain <bryancain3@gmail.com> st/mesa: Add a GLSL IR to TGSI translator.

It is still a work in progress at this point, but it produces working and
reasonably well-optimized code.

Originally based on ir_to_mesa and st_mesa_to_tgsi, but does not directly use
Mesa IR instructions in TGSI generation, instead generating TGSI from the
intermediate class glsl_to_tgsi_instruction. It also has new optimization
passes to replace _mesa_optimize_program.
/external/mesa3d/src/mesa/state_tracker/st_program.h
aa5ba96d294698809186cc4b59034abbd3076812 16-Dec-2010 Brian Paul <brianp@vmware.com> st/mesa: s/varient/variant
/external/mesa3d/src/mesa/state_tracker/st_program.h
68c41a25b4adf77886cc915d47af5e01723142f8 14-Dec-2010 Brian Paul <brianp@vmware.com> st/mesa: rename the varient release functions
/external/mesa3d/src/mesa/state_tracker/st_program.h
b830b62a47dec70640062c488cbebd2c8ac487f9 14-Dec-2010 Brian Paul <brianp@vmware.com> st/mesa: program struct comments
/external/mesa3d/src/mesa/state_tracker/st_program.h
6c669d0c0766c27c58dd3ea7c3bd18b47a922aea 14-Dec-2010 Brian Paul <brianp@vmware.com> st/mesa: rename variable
/external/mesa3d/src/mesa/state_tracker/st_program.h
3d203b610045980853d26370ee21fb2ef4aed17e 14-Dec-2010 Brian Paul <brianp@vmware.com> Squashed commit of the following (st-mesa-per-context-shaders branch):

commit 4f106f44a32eaddb6cf3fea6ba5ee9787bff609a
Author: Brian Paul <brianp@vmware.com>
Date: Mon Dec 13 14:06:08 2010 -0700

st/mesa: reorganize vertex program translation code

Now it looks like the fragment and geometry program code.
Also remove the serial number fields from programs. It was used to
determine when new translations were needed. Now the variant key is
used for that. And the st_program_string_notify() callback removes all
variants when the program's code is changed.

commit e12d6791c5e4bff60bb2e6c04414b1b4d1325f3e
Author: Brian Paul <brianp@vmware.com>
Date: Mon Dec 13 13:38:12 2010 -0700

st/mesa: implement geometry shader varients

Only needed in order to support per-context gallium shaders.

commit c5751c673644808ab069259a852f24c4c0e92b9d
Author: Brian Paul <brianp@vmware.com>
Date: Sun Dec 12 15:28:57 2010 -0700

st/mesa: restore glDraw/CopyPixels using new fragment program variants

Clean up the logic for fragment programs for glDraw/CopyPixels. We now
generate fragment program variants for glDraw/CopyPixels as needed which
do texture sampling, pixel scale/bias, pixelmap lookups, etc.

commit 7b0bb99bab6547f503a0176b5c0aef1482b02c97
Author: Brian Paul <brianp@vmware.com>
Date: Fri Dec 10 17:03:23 2010 -0700

st/mesa: checkpoint: implement fragment program variants

The fragment programs variants are per-context, as the vertex programs.

NOTE: glDrawPixels is totally broken at this point.

commit 2cc926183f957f8abac18d71276dd5bbd1f27be2
Author: Brian Paul <brianp@vmware.com>
Date: Fri Dec 10 14:59:32 2010 -0700

st/mesa: make vertex shader variants per-context

Gallium shaders are per-context but OpenGL shaders aren't. So we need
to make a different variant for each context.

During context tear-down we need to walk over all shaders/programs and
free all variants for the context being destroyed.
/external/mesa3d/src/mesa/state_tracker/st_program.h
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_program.h
f717fd25cc44d7dda5a49dc05337c7ee7c8d2d2f 06-Aug-2010 Vinson Lee <vlee@vmware.com> st/mesa: Clean up header file inclusion in st_program.h.

st_program.h
Remove p_shader_tokens.h
Include st_context.h for st_context symbol.
Include p_state.h for PIPE_MAX_SHADER_INPUTS symbol.
Remove unnecessary forward declarations.

st_cb_bitmap.c
st_cb_clear.c
Include p_shader_tokens.h now that st_program.h doesn't include it.
/external/mesa3d/src/mesa/state_tracker/st_program.h
da7bd6a90e1fee5c16327338fd251c0f6be34e36 28-Jun-2010 Zack Rusin <zackr@vmware.com> mesa: initial support for ARB_geometry_shader4

laying down the foundation for everything and implementing most of the
stuff.
linking, gl_VerticesIn and multidimensional inputs are left.
/external/mesa3d/src/mesa/state_tracker/st_program.h
ec2b92f98c2e7f161521b447cc1d9a36bce3707c 11-Jun-2010 Brian Paul <brianp@vmware.com> mesa: rename src/mesa/shader/ to src/mesa/program/
/external/mesa3d/src/mesa/state_tracker/st_program.h
e90bc2e2ce5b8d835d7dcd069071f71fa032ebe2 15-Feb-2010 Brian Paul <brianp@vmware.com> st/mesa: move per-fragment shader fields to local vars
/external/mesa3d/src/mesa/state_tracker/st_program.h
b9b4e7724e5ae80121a053ca66cee73942cc16b7 12-Feb-2010 Brian Paul <brianp@vmware.com> st/mesa: rename state -> tgsi, updated comments
/external/mesa3d/src/mesa/state_tracker/st_program.h
e1906ae98ef4d8f153553056552c06ac4292d1f5 01-Feb-2010 Keith Whitwell <keithw@vmware.com> st/mesa: remove duplicate calculation of fp input mapping

This was being calculated the same way in two different places.
Now just do it in st_translate_fragment_program().
/external/mesa3d/src/mesa/state_tracker/st_program.h
d51b04320d79234f86fc2b881dab33e646400e76 01-Feb-2010 Keith Whitwell <keithw@vmware.com> st/mesa: remove dead stfp input_map array

Was being calculated and not used. Also was probably incorrect...
/external/mesa3d/src/mesa/state_tracker/st_program.h
50caff5675888c0063c73fa64b88129db7aa11dd 16-Dec-2009 Roland Scheidegger <sroland@vmware.com> gallium: edgeflags change fixes

use correct number of vertex inputs
fix not running pipeline in case of edgeflags
changes to mesa to tgsi translation still very broken
/external/mesa3d/src/mesa/state_tracker/st_program.h
a08e348a84f57ed5e8bf5888f1ce13934d2ce8fa 09-Dec-2009 Keith Whitwell <keithw@vmware.com> gallium: first steps to treat edgeflags as regular vertex element

The idea here is to eliminate the set_edgeflags() call in pipe_context
by treating edgeflags as a regular vertex element.

Edgeflags provoke special treatment in hardware, which means we need to
label them in some way, in this case we'll be passing them through the
vertex shader and labelling the vertex shader output with a new TGSI
semantic (TGSI_SEMANTIC_EDGEFLAG).
/external/mesa3d/src/mesa/state_tracker/st_program.h
07fafc7c9346aa260829603bf3188596481e9e62 15-Nov-2009 Keith Whitwell <keithw@vmware.com> mesa/st: refactor vertex and fragment shader translation

Translate vertex shaders independently of fragment shaders.

Previously tried to make fragment shader semantic indexes always start
at zero and exclude holes. This was unnecessary but meant that vertex
shader translation had to be adjusted to take this into account.

Now use a fixed scheme for labelling special FS input semantics
(color, etc), and another fixed scheme for the generics.

With this, vertex shaders can be translated independently of the bound
fragment shader, assuming mesa has done its own job and ensured that
the vertex shader provides at least the inputs the fragment shader is
looking for. The state-tracker didn't attempt to do anything about
this previously, so it shouldn't be needed now.
/external/mesa3d/src/mesa/state_tracker/st_program.h
678f80b347801d925c07a774faee1ed3f716de15 06-Nov-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: added st_print_shaders() function to help w/ debugging
/external/mesa3d/src/mesa/state_tracker/st_program.h
e3f3e22cf7e9af4c5416d37329b7b8ee50f0cfcb 19-Aug-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: fix vertex program output translation/mapping bug

In some cases, the vertex program output's semantic info didn't match up
with the fragment program's input semantic info. This info is now explicitly
passed into the st_translate_fragment_program() function.
/external/mesa3d/src/mesa/state_tracker/st_program.h
00eb309c31692d29b01568b0b45f5066928b9107 03-Jul-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: move, increase ST_MAX_SHADER_TOKENS
/external/mesa3d/src/mesa/state_tracker/st_program.h
a56a59ce74b7f18f25a13992d2a2c1ae7cf973ce 07-May-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: implement full reference counting for vertex/fragment programs

Use _mesa_reference_vert/fragprog() wherever we assign program pointers.
Fixes a memory corruption bug found with glean/api2 test.
Another memory bug involving shaders yet to be fixed...

Picked from gallium-0.1
/external/mesa3d/src/mesa/state_tracker/st_program.h
7e4bc84dfc6c05cea3d6fc52173708ddeb33cf45 02-May-2008 Alan Hourihane <alanh@tungstengraphics.com> inline -> INLINE
/external/mesa3d/src/mesa/state_tracker/st_program.h
33f3938d2d6340b31d758c96bd35f858c6c8267d 23-Apr-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: fix some bitmap frag shader issues

If texturing happens to be enabled when glBitmap() is called, need to be
careful about choosing a sampler unit, etc.
/external/mesa3d/src/mesa/state_tracker/st_program.h
b456f1374fc958e53efc80ee38ef343f580c1d6b 22-Apr-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: st_translate_fragment_program() is void now

The return value was never used.
/external/mesa3d/src/mesa/state_tracker/st_program.h
01dfa6cde157321f565bab949f23f367ed20fa0e 21-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> use cso fs/vs handle functions
/external/mesa3d/src/mesa/state_tracker/st_program.h
22a3d022542fed267d48b48a44e10226d55c8afd 24-Mar-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: free bitmap fragment shaders, misc clean-up
/external/mesa3d/src/mesa/state_tracker/st_program.h
fa9e7e9a8debb68611909ac2ffab527c6c39a3e5 13-Mar-2008 Brian Paul <brianp@kemper.freedesktop.org> gallium: remove semantic info from pipe_shader_state

Brian's patch to clean up the shader interfaces.
/external/mesa3d/src/mesa/state_tracker/st_program.h
339e7ec6805e6de8794514c0a935081b5d36d38f 12-Mar-2008 Brian <brian.paul@tungstengraphics.com> gallium: rework CSO-related code in state tracker

Use the code in cso_context.c rather than st_cache.c.
Basically, binding of state objects now goes through the CSO module.
But Vertex/fragment shaders go through pipe->bind_fs/vs_state() since they're
not cached by the CSO module at this time.

Also, update softpipe driver to handle NULL state objects in various places.
This happens during context destruction. May need to update other drivers...
/external/mesa3d/src/mesa/state_tracker/st_program.h
ecd50ef58b034e604ff6b2fedbb0815953e510ea 26-Feb-2008 Brian <brian.paul@tungstengraphics.com> gallium: remove input_map[] from pipe_shader_state
/external/mesa3d/src/mesa/state_tracker/st_program.h
f430d95a36d55141cd9ef911aab70364ce4a4108 18-Feb-2008 José Fonseca <jrfonseca@tungstengraphics.com> Use gallium's rtasm module.
/external/mesa3d/src/mesa/state_tracker/st_program.h
9677336845511be4852520d2e50f91f1df362f58 13-Feb-2008 Brian <brian.paul@tungstengraphics.com> gallium: rename st_fragment_program's fs field to cso to match st_vertex_program
/external/mesa3d/src/mesa/state_tracker/st_program.h
ac95fee4fffee77bb7bd798d094ed2e3a7c4019b 15-Jan-2008 Brian <brian.paul@tungstengraphics.com> Fix problems with vertex shaders and the private draw module.

The CSO returned by pipe->create_vs_state() can't be passed to the
private draw module. That was causing glRasterPos to blow up.
Add a 'draw_shader' field to st_vertex_program for use with the private
draw module.
Change st_context->state.vs type from cso_vertex_shader to st_vertex_program.
/external/mesa3d/src/mesa/state_tracker/st_program.h
abd5e8e41d54f7f491f91af9354f19c8d24d3572 23-Nov-2007 Michal Krol <michal@tungstengraphics.com> gallium: reorg tgsi directories.
/external/mesa3d/src/mesa/state_tracker/st_program.h
fa7a5898761fc106c9dbef6f640ce4654eae5136 10-Oct-2007 Brian <brian.paul@tungstengraphics.com> Size of input_to_index array should be VERT_ATTRIB_MAX.

This fixes an out of bounds array write that was causing the glsl/bump demo to render incorrectly.
/external/mesa3d/src/mesa/state_tracker/st_program.h
344464bf2e4e151968cfb101c2477e440508b1f0 03-Oct-2007 Michel Dänzer <michel@tungstengraphics.com> Track fragment and vertex shader code generation via pipe shader state objects.

Unfortunately, the generated fragment shader code is effectively unusable until
it handles quad->mask.
/external/mesa3d/src/mesa/state_tracker/st_program.h
636480cc9c7836daf879cb45644900922cf31f47 28-Sep-2007 Brian <brian.paul@tungstengraphics.com> Instead of linked program pairs, keep a list of vertex programs translated for each fragment program.
/external/mesa3d/src/mesa/state_tracker/st_program.h
a1a989f0be8dc34082b52bb3b3a6eacb36d9e75e 28-Sep-2007 Zack Rusin <zack@tungstengraphics.com> Redoing the way we handle vertex shaders for the draw module.
/external/mesa3d/src/mesa/state_tracker/st_program.h
901577e07fcab0cf90a272fee900cb0831ae84c3 28-Sep-2007 Zack Rusin <zack@tungstengraphics.com> Revert "Redoing the way we handle vertex shaders for the draw module."

This reverts commit 6dcfddb8e2ec2bfb6187b912807fa65f28da2c5e.
/external/mesa3d/src/mesa/state_tracker/st_program.h
6dcfddb8e2ec2bfb6187b912807fa65f28da2c5e 28-Sep-2007 Zack Rusin <zack@tungstengraphics.com> Redoing the way we handle vertex shaders for the draw module.
/external/mesa3d/src/mesa/state_tracker/st_program.h
65e3af51efc9d688ef8face0a44429a90c5dd4c9 26-Sep-2007 Keith Whitwell <keith@tungstengraphics.com> Enable codegen based whenever __i386__ is defined.
/external/mesa3d/src/mesa/state_tracker/st_program.h
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_program.h
c0dd02219d47f45ce469abbef8044431f6d85d0a 24-Sep-2007 michal <michal@michal-laptop.(none)> Enable SSE2 for FS.
/external/mesa3d/src/mesa/state_tracker/st_program.h
086734502a614e7778533018846ee66a66df9821 20-Sep-2007 Brian <brian.paul@tungstengraphics.com> Checkpoint: vertex attribute clean-up.

Remove/disable the attrib/slot mapping arrays in a few places.
Work in progress...
/external/mesa3d/src/mesa/state_tracker/st_program.h
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_program.h
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_program.h
bb611c5f1f6aec7ac51d4fa3301422b47f6de795 19-Sep-2007 Brian <brian.paul@tungstengraphics.com> Checkpoint: rework shader input/output register mapping.

This is a step toward removing TGSI_ATTRIB_ tokens.
Basically, when translating Mesa programs to TGSI programs, pass in input and
output register re-maps, plus interpolation info.
There's some known breakage (cubemap.c) so more to be done...
/external/mesa3d/src/mesa/state_tracker/st_program.h
ccd63b54cfbb6bb241d55f7ac95afcd14819f469 18-Sep-2007 Zack Rusin <zack@tungstengraphics.com> Convert shader to an immutable state object.
/external/mesa3d/src/mesa/state_tracker/st_program.h
07d97e80e616d9fdc437d3b41055c347d5c54932 24-Aug-2007 Keith Whitwell <keith@tungstengraphics.com> checkpoint in constant tracking rework
/external/mesa3d/src/mesa/state_tracker/st_program.h
4fd7bc00f06a98e1db2ad886a13566f19895e3c0 24-Aug-2007 michal <michal@michal-laptop.(none)> Hook-up SSE2 to VS.
/external/mesa3d/src/mesa/state_tracker/st_program.h
c89502bb4e6d80182e4977ab084639850e1eba68 24-Aug-2007 Keith Whitwell <keith@tungstengraphics.com> Fixup include paths after rename
/external/mesa3d/src/mesa/state_tracker/st_program.h
c0bb4ba9e665e40a325d82aa2ee48d7b8abd603b 22-Aug-2007 Brian <brian.paul@tungstengraphics.com> Rework of shader constant buffers.

They're now totally independent of the actual shaders.
Also, implemented in terms of pipe_buffer_handles/objects.
/external/mesa3d/src/mesa/state_tracker/st_program.h
de653b4c9bddcec46f3ddf411ec082dd178d7b38 16-Aug-2007 Brian <brian.paul@tungstengraphics.com> Begin added vertex shader state/support.

Renamed pipe_fs_state to pipe_shader_state since it can be used for both
vertex and fragment shader info.
/external/mesa3d/src/mesa/state_tracker/st_program.h
6da9234fd437f97267e7831f034c78b31156d939 06-Aug-2007 Brian <brian.paul@tungstengraphics.com> New st_init_*_functions() to initialize the driver functions table.

We need to do these initializations before initializing the Mesa context
because context init involves creating texture/program/etc objects.
/external/mesa3d/src/mesa/state_tracker/st_program.h
43d7c1fe9d2544b851afa2f1c1e245a63860e670 24-Jul-2007 Brian <brian.paul@tungstengraphics.com> Basic fragment programs run now.

Handling of constants might change. For now, the st_fragment_program struct
contains a pipe_constant_buffer (not a pointer).
/external/mesa3d/src/mesa/state_tracker/st_program.h
4824c342c864e870251a7d343c95e51274e50d23 19-Jul-2007 Keith Whitwell <keith@tungstengraphics.com> Trigger tgsi compilation for fragment programs.

Not sure the generated program looks correct though...
/external/mesa3d/src/mesa/state_tracker/st_program.h
6393cda6766b707ef01e925d378239a66d143ae0 14-Jun-2007 Keith Whitwell <keith@tungstengraphics.com> Renamed softpipe directories and files to something less confusing.

softpipe/state_tracker --> state_tracker/
softpipe/ --> pipe/
softpipe/generic --> pipe/softpipe/

I don't think pipe is a great name, but I disliked all the others too.
Luckily it's fairly easy to rename with git, so this can be revisited
later.
/external/mesa3d/src/mesa/state_tracker/st_program.h