History log of /external/mesa3d/src/gallium/state_trackers/vega/shaders_cache.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
861a029ddb31e91bb4d8e18ab708d0d172f63aad 15-Dec-2011 Marek Olšák <maraeo@gmail.com> gallium: interface changes necessary to implement transform feedback (v5)

Namely:
- EXT_transform_feedback
- ARB_transform_feedback2
- ARB_transform_feedback_instanced

The old interface was not useful for OpenGL and had to be reworked.

This interface was originally designed for OpenGL, but additional
changes have been made in order to make st/d3d1x support easier.

The most notable change is the stream-out info must be linked
with a vertex or geometry shader and cannot be set independently.
This is due to limitations of existing hardware (special shader
instructions must be used to write into stream-out buffers),
and it's also how OpenGL works (stream outputs must be specified
prior to linking shaders).

Other than that, each stream output buffer has a "view" into it that
internally maintains the number of bytes which have been written
into it. (one buffer can be bound in several different transform
feedback objects in OpenGL, so we must be able to have several views
around) The set_stream_output_targets function contains a parameter
saying whether new data should be appended or not.

Also, the view can optionally be used to provide the vertex
count for draw_vbo. Note that the count is supposed to be stored
in device memory and the CPU never gets to know its value.

OpenGL way | Gallium way
------------------------------------
BeginTF = set_so_targets(append_bitmask = 0)
PauseTF = set_so_targets(num_targets = 0)
ResumeTF = set_so_targets(append_bitmask = ~0)
EndTF = set_so_targets(num_targets = 0)
DrawTF = use pipe_draw_info::count_from_stream_output

v2: * removed the reset_stream_output_targets function
* added a parameter append_bitmask to set_stream_output_targets,
each bit specifies whether new data should be appended to each
buffer or not.
v3: * added PIPE_CAP_STREAM_OUTPUT_PAUSE_RESUME for ARB_tfb2,
note that the draw-auto subset is always required (for d3d10),
only the pause/resume functionality is limited if the CAP is not
advertised
v4: * update gallium/docs
v5: * compactified struct pipe_stream_output_info, updated dump/trace
/external/mesa3d/src/gallium/state_trackers/vega/shaders_cache.c
1b800c10e4aa3a9792e221043c54bbc930b50829 15-Apr-2011 Brian Paul <brianp@vmware.com> vega: move ureg_destroy(ureg) after last use of ureg var
/external/mesa3d/src/gallium/state_trackers/vega/shaders_cache.c
0ee73edeccd21034e03e9e43dd0d09fa6fbf7842 04-Dec-2010 Chia-I Wu <olv@lunarg.com> st/vega: Add blend shaders for all blend modes.
/external/mesa3d/src/gallium/state_trackers/vega/shaders_cache.c
e8ff3931f801dffdfd54832c298351e933688235 03-Dec-2010 Chia-I Wu <olv@lunarg.com> st/vega: Add support for per-channel alpha.

Drawing an image in VG_DRAW_IMAGE_STENCIL mode produces per-channel
alpha for use in blending. Add a new shader stage to produce and save
it in TEMP[1].

For other modes that do not need per-channel alpha, the stage does

MOV TEMP[1], TEMP[0].wwww
/external/mesa3d/src/gallium/state_trackers/vega/shaders_cache.c
a19eaaa6c1956add5343295af7e9f682efa08d74 04-Dec-2010 Chia-I Wu <olv@lunarg.com> st/vega: Move masking after blending.

Masking should happen after blending. The shader is not entirely
correct, but leave it as is for now.
/external/mesa3d/src/gallium/state_trackers/vega/shaders_cache.c
d7aa03b4feb7c30408b2ed3070e0fe33e2fd05ba 01-Dec-2010 Chia-I Wu <olv@lunarg.com> st/vega: Fix degenerate paints.

Fix the case that the two points of a linear gradient coincide, or the
case that the radius of a radial gradient is equal to or less than 0.
/external/mesa3d/src/gallium/state_trackers/vega/shaders_cache.c
e360f91f152615b35857a4d008d0439a3c3285a8 29-Nov-2010 Chia-I Wu <olv@lunarg.com> st/vega: Add color transformation support.

Per OpenVG 1.1. A new shader stage is added. It uses the first two
constants of the fragment shader for color transformation parameters.
/external/mesa3d/src/gallium/state_trackers/vega/shaders_cache.c
213e288e78bf5b0fb0a996cc17dfd959756c2c53 29-Nov-2010 Chia-I Wu <olv@lunarg.com> st/vega: More flexible shader selection.

Divide bits of VegaShaderType into 6 groups: paint, image, mask, fill,
premultiply, and bw. Each group represents a stage. At most one shader
from each group will be selected when constructing the final fragment
shader.
/external/mesa3d/src/gallium/state_trackers/vega/shaders_cache.c
93a7e6d94e09a25bdbe31eedb0759e390ccb6a86 03-Nov-2010 Vinson Lee <vlee@vmware.com> st/vega: Remove unnecessary headers.
/external/mesa3d/src/gallium/state_trackers/vega/shaders_cache.c
2d8e70fcd57b23786e3f4196f35440ed1861a98b 30-Jun-2010 Chia-I Wu <olv@lunarg.com> st/vega: Match MALLOC/FREE for vg_shader.

A vg_shader is destroyed with FREE.
/external/mesa3d/src/gallium/state_trackers/vega/shaders_cache.c
f914cd1796845164109c837a111c39ba64852ad4 30-Jun-2010 nobled <nobled@dreamwidth.org> st/vega: s/free/FREE for matching MALLOC/CALLOC

[Manually fix a conflict in vg_context.c by Chia-I Wu]
/external/mesa3d/src/gallium/state_trackers/vega/shaders_cache.c
45dac0d82a5a69166e86dce77c2550f7512c541e 03-Feb-2010 José Fonseca <jfonseca@vmware.com> Merge branch 'gallium-embedded'
28486880ca3ec39419ccee0cb1a3bedc9ef7117c 02-Feb-2010 José Fonseca <jfonseca@vmware.com> gallium: pipe/p_inlines.h -> util/u_inlines.h
/external/mesa3d/src/gallium/state_trackers/vega/shaders_cache.c
301a9437cc5d89686391e5722b952f52df274ab3 02-Feb-2010 Igor Oliveira <igor.oliveira@openbossa.org> vega: implement tgsi_ureg shaders cache
/external/mesa3d/src/gallium/state_trackers/vega/shaders_cache.c
5285de7c0fc067dc036a5b421140a696ce2cabbf 27-Nov-2009 Michal Krol <michal@vmware.com> vega: Update shader headers.

Drop the 1.1 version suffix.
/external/mesa3d/src/gallium/state_trackers/vega/shaders_cache.c
544dd4b11f7be76bb00fe29a60eaf2772dcc69ca 01-May-2009 Zack Rusin <zackr@vmware.com> OpenVG 1.0 State Tracker

Import of the OpenVG 1.0 state tracker for Gallium.
/external/mesa3d/src/gallium/state_trackers/vega/shaders_cache.c