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
|