History log of /external/mesa3d/src/mesa/program/program_parse.y
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
c3df65c123c6392b0b116900395a89fd3dbb9b85 17-Nov-2016 Timothy Arceri <timothy.arceri@collabora.com> st/mesa/r200/i915/i965: move ARB program fields into a union

It's common for games to compile 2000 programs or more so at

32bits x 2000 programs x 22 fields x 2 (at least) stages

This should give us something like 352 kilobytes in savings
once we add some more glsl only fields.

Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
/external/mesa3d/src/mesa/program/program_parse.y
0ad69e6b51b06c483db37c3b7eeb1da1a95d0629 05-Nov-2016 Timothy Arceri <timothy.arceri@collabora.com> mesa: make use of ralloc when creating ARB asm gl_program fields

This will allow us to move the ARB asm fields in gl_program into
a union as we will be able call ralloc_free() on the entire struct
when destroying the context.

In this change we switch over to using ralloc for the Instructions,
String and LocalParams fields of gl_program.

Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
/external/mesa3d/src/mesa/program/program_parse.y
5346630593bec80efa732c40b63e0e95a00af074 20-Oct-2016 Timothy Arceri <timothy.arceri@collabora.com> r200/glsl/st/mesa: use common outputs written field

And set outputs written directly in shader_info.

st/mesa changes where:
Reviewed-by: Marek Olšák <marek.olsak@amd.com>

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
/external/mesa3d/src/mesa/program/program_parse.y
e81aaeba37f5419323d8f88bc10943c77e25ed14 20-Oct-2016 Timothy Arceri <timothy.arceri@collabora.com> r200/i915/st/mesa/compiler: use common inputs read field

And set set inputs_read directly in shader_info.

To avoid regressions between changes this change is a squashed
version of the following patches.

st/mesa changes where:
Reviewed-by: Marek Olšák <marek.olsak@amd.com>

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
/external/mesa3d/src/mesa/program/program_parse.y
6dbe8a1b9fd750b4c1bb600a0bb43129d95e6eca 21-Oct-2016 Timothy Arceri <timothy.arceri@collabora.com> glsl/mesa: remove unused namespace support from the symbol table

Namespace support seems to have been unused for a very long time.

Previously the hash table entry was never removed and the symbol name
wasn't freed until the symbol table was destroyed.

In theory this could reduced the number of times we need to copy a string
as duplicate names are reused. However in practice there is likely only a
limited number of symbols that are the same and this is likely to cause
other less than optimal behaviour such as the hash_table continuously
growing.

Along with dropping namespace support this change removes entries from
the hash table as they become unused.

Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
/external/mesa3d/src/mesa/program/program_parse.y
201f940d2e49d6ead5dfd6921b33bf6afefa4c68 05-Oct-2016 Timothy Arceri <timothy.arceri@collabora.com> mesa: remove the UsesDFdy flag

Seems the last user of this was removed in 08bc74e69.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/program/program_parse.y
5429554f09427b582e447ba3cd7350b45272054d 29-Feb-2016 Matt Turner <mattst88@gmail.com> program: Remove NV_fragment_program scalar suffix parsing.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Acked-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/mesa/program/program_parse.y
409c24f9cc390be62df6ef790879f903065b28a5 27-Feb-2016 Matt Turner <mattst88@gmail.com> program: Remove NV_fragment_program_option parsing support.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Acked-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/mesa/program/program_parse.y
fe2d2c7ad8793fbcc4761cf5b51270c296eb811c 27-Feb-2016 Matt Turner <mattst88@gmail.com> program: Remove NV_fragment_program Abs support.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Acked-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/mesa/program/program_parse.y
7b50b0457db3acffcc2a7de092df346fa314aa95 27-Feb-2016 Matt Turner <mattst88@gmail.com> program: Remove condition-code and precision support.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Acked-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/mesa/program/program_parse.y
9e11ff7e11c87dd19d2274644bca7a869ff2143d 27-Feb-2016 Matt Turner <mattst88@gmail.com> program: Remove OPCODE_KIL_NV.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Acked-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/mesa/program/program_parse.y
54a70a8ef20a9a875f0828acb42332cf69217ff5 02-Jun-2015 Matt Turner <mattst88@gmail.com> program: Replace gl_inst_opcode with enum prog_opcode.

Both were introduced at the same time. I'm not sure why we needed two.

Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/mesa/program/program_parse.y
ef3f89e53e76332ddb300b08f4698347e17d1633 02-Jun-2015 Matt Turner <mattst88@gmail.com> program: Shrink and rename SaturateMode field to Saturate.

It was 2 bits to accommodate SATURATE_PLUS_MINUS_ONE (removed by commit
09b566e1). A similar change was made to TGSI recently in commit
e1c4e8aa.

Reducing the size from 2 bits to 1 reduces the size of the bit fields
from 17 bits to 16, which is a much nicer number.

Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/mesa/program/program_parse.y
135b8c65305c05c1ea9145141bad670003270c41 25-Feb-2015 Brian Paul <brianp@vmware.com> mesa: include stdarg.h only where it's used

Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/mesa/program/program_parse.y
bfcdb843830bba0190e00e35e3c5c18c4bdb5de1 21-Feb-2015 Matt Turner <mattst88@gmail.com> mesa: Use assert() instead of ASSERT wrapper.

Acked-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/program/program_parse.y
17e7cbe078dc2d3556208212d07afe72489aae33 02-Apr-2014 Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> mesa: Add missing null check in _mesa_parse_arb_program()

Add missing null check in program_parse.tab.c through
program_parse.y

Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
/external/mesa3d/src/mesa/program/program_parse.y
84732a982c3eeaca2e2809532c8422dc5f7045c1 08-Jan-2014 Paul Berry <stereotype441@gmail.com> mesa: replace ctx->Const.{Vertex,Fragment,Geomtery}Program with an array.

These are replaced with
ctx->Const.Program[MESA_SHADER_{VERTEX,FRAGMENT,GEOMETRY}]. In
patches to follow, this will allow us to replace a lot of ad-hoc logic
with a variable index into the array.

With the exception of the changes to mtypes.h, this patch was
generated entirely by the command:

find src -type f '(' -iname '*.c' -o -iname '*.cpp' -o -iname '*.py' \
-o -iname '*.y' ')' -print0 | xargs -0 sed -i \
-e 's/Const\.VertexProgram/Const.Program[MESA_SHADER_VERTEX]/g' \
-e 's/Const\.GeometryProgram/Const.Program[MESA_SHADER_GEOMETRY]/g' \
-e 's/Const\.FragmentProgram/Const.Program[MESA_SHADER_FRAGMENT]/g'

Suggested-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/program/program_parse.y
81ff29e30c573fcc134bf717670015ab4654ebcd 18-Nov-2013 Eric Anholt <eric@anholt.net> mesa: Fix setup of LocalParams array.

i965 passed piglit, but swrast and gallium both segfaulted without this.
i965 happened to work because it never ran _mesa_load_state_parameters()
on the new program before the test called glProgramLocalParameter(), which
was allocating a LocalParams array for the fallback path.

v2: Since v1 threw away old localparams data, leaked old LocalParams
memory, only fixed fragment programs, and I was dubious of my previous
invariants already (nothing but program_parse.y will generate
LocalParams, and only that one path of program_parse.y will), just
late-allocate localparams at the other point of dereferencing them.
This adds overhead to _mesa_load_state_parameter, which is
uncomfortable, but I'm pretty sure that giant switch statement is
super slow already.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71734
Tested-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/mesa/program/program_parse.y
e5885c119de1e508099cc1111e1c9f8ff00fab88 20-Sep-2013 Eric Anholt <eric@anholt.net> mesa: Dynamically allocate the storage for program local parameters.

The array was 64kb per struct gl_program, plus we statically stored a copy
of one on disk for _mesa_DummyProgram. Given that most struct gl_programs
we generate are for GLSL shaders that don't have local parameters, this
was a waste.

Since you can store and fetch parameters beyond what the program actually
uses, we do have to do a late allocation if necessary at
GetProgramLocalParameter time.

Reduces peak memory usage in the dota2 trace I made by 76MB (4.5%)

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/mesa/program/program_parse.y
5ffa28df4e4cc22481b4ed41c78632f35765f41d 31-Jul-2013 Laurent Carlier <lordheavym@gmail.com> mesa/program: remove useless YYID

This fixes the build with Bison 3.0. Also works with Bison 2.7.1.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/program/program_parse.y
6d2a9220b832d9a0c0cf35fcc5b9de1542af267d 30-Jul-2013 Kenneth Graunke <kenneth@whitecape.org> mesa/program: Switch from the deprecated YYLEX_PARAM to %lex-param.

YYLEX_PARAM is no longer supported as of Bison 3.0. Instead, the Bison
developers recommend using %lex-param.

%lex-param takes a type and variable name, similar to %parse-param,
so you can't pass an arbitrary expression like state->scanner. But Flex
insists on passing the actual scanner object, not an arbitrary object
like state.

To solve this, the parser defines a wrapper lex() function which accepts
"state," and calls Flex's lex() function with state->scanner.

Fixes the build with Bison 3.0. Also works with Bison 2.7.1.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=67354
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Tested-by: Laurent Carlier <lordheavym@gmail.com>
Cc: "9.2" mesa-stable@lists.freedesktop.org
/external/mesa3d/src/mesa/program/program_parse.y
de917b4c4c4dfc949d5f8e3d9eb2dd48b63a3de5 30-Jul-2013 Kenneth Graunke <kenneth@whitecape.org> mesa/program: Change the program parser's namespace.

Bison 3.0 removes the YYLEX_PARAM macro. In preparation for handling
this using %lex-param, the parser needs a wrapper function for the
actual Flex lex() function.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=67354
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Tested-by: Laurent Carlier <lordheavym@gmail.com>
Cc: "9.2" mesa-stable@lists.freedesktop.org
/external/mesa3d/src/mesa/program/program_parse.y
338ea2e4d14b5bf30fe2820facd71333d5acd527 28-Jun-2013 Ian Romanick <ian.d.romanick@intel.com> mesa: GL_EXT_fog_coord is not optional

Every driver left in Mesa enables this extension all the time. There's
no reason to let it be optional.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/mesa/program/program_parse.y
c139708087ead063da7ac64126af69f2fe7bcf1e 28-Jun-2013 Ian Romanick <ian.d.romanick@intel.com> mesa: GL_EXT_secondary_color is not optional

Every driver left in Mesa enables this extension all the time. There's
no reason to let it be optional.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/mesa/program/program_parse.y
5e78433eec94fcaa87bdcb2526ec0910a69ed347 02-May-2013 Marek Olšák <maraeo@gmail.com> mesa: move max texture image unit constants to gl_program_constants

Const.MaxTextureImageUnits -> Const.FragmentProgram.MaxTextureImageUnits
Const.MaxVertexTextureImageUnits -> Const.VertexProgram.MaxTextureImageUnits
etc.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/program/program_parse.y
fe955dc6b626a43036ff2a4cfe44511e10a09332 09-Nov-2012 Paul Berry <stereotype441@gmail.com> mesa: Fix up program_parse.y to avoid uninitialized $$

Without this patch, $$.negate, $$.rgba_valid, and $$.xyzw_valid take
on garbage values. At the moment this problem is benign (the garbage
values happen to be zero), but in my experiments executing GL
operations on a background thread, the garbage values change, leading
to piglit failures.

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/program/program_parse.y
eed6baf7621fa94e7888f8079b155fc67a08540c 23-Feb-2013 Paul Berry <stereotype441@gmail.com> Replace gl_frag_attrib enum with gl_varying_slot.

This patch makes the following search-and-replace changes:

gl_frag_attrib -> gl_varying_slot
FRAG_ATTRIB_* -> VARYING_SLOT_*
FRAG_BIT_* -> VARYING_BIT_*

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Tested-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/mesa/program/program_parse.y
36b252e94724b2512ea941eff2b3a3abeb80be79 23-Feb-2013 Paul Berry <stereotype441@gmail.com> Replace gl_vert_result enum with gl_varying_slot.

This patch makes the following search-and-replace changes:

gl_vert_result -> gl_varying_slot
VERT_RESULT_* -> VARYING_SLOT_*

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Tested-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/mesa/program/program_parse.y
f7cfe3fc708ce7d90699ec3144691371740d62e6 11-Oct-2012 Kenneth Graunke <kenneth@whitecape.org> mesa: Remove dead program_parameter::Flags field.

All flags are now gone, so we can stop storing and passing this around.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/program/program_parse.y
8058a70763ff9e5b91eac8bd177c96679b5dd957 10-Oct-2012 Eric Anholt <eric@anholt.net> mesa: Remove prog_instruction.h field for never-supported NV_vertex_program3.

Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/mesa/program/program_parse.y
a0f7b869592013b24a5bacf0ceb2bdb1e9146378 20-Jun-2012 Paul Berry <stereotype441@gmail.com> mesa: Set UsesDFdy appropriately for assembly programs.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/mesa/program/program_parse.y
b14c06e10d570edcb4dcbea173d71751563616e7 02-Dec-2011 Mathias Fröhlich <Mathias.Froehlich@web.de> mesa: Use VERT_{ATTRIB,BIT}* for ARB input validation.

For validating ARB program inputs replace hard
coded bitfield and attribute number with the appropriate
VERT_{ATTRIB,BIT}* variant.

This should fix:

https://bugs.freedesktop.org/show_bug.cgi?id=43407

Signed-off-by: Mathias Froehlich <Mathias.Froehlich@web.de>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
/external/mesa3d/src/mesa/program/program_parse.y
dca6a28a14f22d77273d79d44f57b0d853c0242d 31-Oct-2011 Mathias Fröhlich <Mathias.Froehlich@web.de> mesa: Make gl_program::InputsRead 64 bits.

Make gl_program::InputsRead a 64 bits bitfield.
Adapt the intel and radeon driver to handle a 64 bits
InputsRead value.

Signed-off-by: Mathias Froehlich <Mathias.Froehlich@web.de>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/program/program_parse.y
324857599b2a4735c86e54da9a1776c034dadf72 05-Aug-2011 Brian Paul <brianp@vmware.com> mesa: use gl_constant_value type in ARB program parser
/external/mesa3d/src/mesa/program/program_parse.y
f3c92c2323b1a00e592a2bae739c420a52d4285b 27-Apr-2011 Brian Paul <brianp@vmware.com> mesa: emit more info in program parser error message
/external/mesa3d/src/mesa/program/program_parse.y
d7f4c4e1b187552ede397f00fb56a6f0bb724ce1 21-Apr-2011 Eric Anholt <eric@anholt.net> mesa: Fix fragment.color (no index) writes with OPTION ARB_draw_buffers.

Fixes a bug in Trine where fragment.color would write
FRAG_RESULT_COLOR (which is interpreted by drivers as being the "write
this to all color buffers" option) instead of FRAG_RESULT_DATA0 (just
the first target).

Fixes piglit ATI_draw_buffers/arbfp-no-index.
/external/mesa3d/src/mesa/program/program_parse.y
28cec9e832b716b84c11ddabfcee74e0daf6ec49 13-Apr-2011 Eric Anholt <eric@anholt.net> mesa: Add support for the ARB_fragment_program part of ARB_draw_buffers.

Fixes fbo-drawbuffers-arbfp.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=34321
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/mesa/program/program_parse.y
8ad821df0a2d49964141f2ea4ef8179f4edc052f 02-Mar-2011 Brian Paul <brianp@vmware.com> mesa: added gl_program_constants::MaxAddressOffset

See https://bugs.freedesktop.org/show_bug.cgi?id=29418
/external/mesa3d/src/mesa/program/program_parse.y
f9995b30756140724f41daf963fa06167912be7f 12-Oct-2010 Kristian Høgsberg <krh@bitplanet.net> Drop GLcontext typedef and use struct gl_context instead
/external/mesa3d/src/mesa/program/program_parse.y
3888c38fc9e7debc53a901295af0027801c4ae74 03-Sep-2010 Vinson Lee <vlee@vmware.com> mesa: Fix printf-like warning.
/external/mesa3d/src/mesa/program/program_parse.y
0614006d090902324149387ec150231b647928fd 31-Jul-2010 Marek Olšák <maraeo@gmail.com> mesa: increase the relative address offset limit to 4096 in ARB_vp/fp

Even though the spec says that the limits should be -64/+63, proprietary
drivers support much larger relative offsets and some applications do
depend on this non-standard behavior.

Also program_parse.tab.c has been regenerated.

This fixes the parser error:

ARB_vp: error: relative address offset too large

See also: https://bugs.freedesktop.org/show_bug.cgi?id=28628

4096 * sizeof(vec4) is the maximum size of the constant buffer on NV50.
It is not supposed to be a definite hardware limit, it is for the parser
not to get in the way and let the underlying driver decide whether it can
run the shader or not.
/external/mesa3d/src/mesa/program/program_parse.y
56643096f1eb01eefa1a532ac096b32d23b6b8ba 30-Jul-2010 Brian Paul <brianp@vmware.com> mesa: added gl_program::IndirectRegisterFiles field

Now drivers, etc. can know which register files are accessed with
indirect addressing. Before we just checked gl_program::NumAddressRegs
but didn't know if that was the constant buffer, temp regs, or what.

The only user of this new field so far will be the gallium state tracker.
/external/mesa3d/src/mesa/program/program_parse.y
ec2b92f98c2e7f161521b447cc1d9a36bce3707c 11-Jun-2010 Brian Paul <brianp@vmware.com> mesa: rename src/mesa/shader/ to src/mesa/program/
/external/mesa3d/src/mesa/program/program_parse.y