History log of /external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
199771bc325900eb1d3acc7fa03808894a94fdb2 30-Apr-2012 Olivier Galibert <galibert@pobox.com> glsl: Scaffolding for ARB_shader_bit_encoding.

That adds support for activating the extension. It doesn't actually
*do* anything yet, of course.

Signed-off-by: Olivier Galibert <galibert@pobox.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
7de1331662816d31fb9bed423b1e5372284a260e 18-Apr-2012 Eric Anholt <eric@anholt.net> glsl: Add support for generating builtin code from GLSL instead of IR.

This takes advantage of the builtin compiler to generate IR into a
string, the same way we read GLSL for function prototypes for our
profiles.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
fbea94ae59817c1d9db9b2f1e257daeadf7c15a9 17-Apr-2012 Kenneth Graunke <kenneth@whitecape.org> glsl/builtins: Support stage-agnostic built-in profiles.

The built-in subsystem uses "profiles," or GLSL shaders containing
prototypes for all built-ins supported within a particular language
version (or extension) and shader stage.

Since profiles were stage-specific, we had to cut and paste almost all
the prototypes between (e.g.) 110.vert and 110.frag. Naturally, this
led to sundry cut and paste bugs, where someone fixed an issue in .frag
but neglected to update .vert, or vice-versa. Geometry shaders would
have only made this worse.

This patch introduces support for a new '.glsl' profile suffix which
contains prototypes common to all shader stages. The existing '.frag'
and '.vert' profiles need only contain the few stage-specific built-ins.

Not only does this remove duplication, it makes built-in setup slightly
faster: we don't need to re-read the common prototypes and function
bodies for both the vertex and fragment shader stage.

Internally, this was trivial. We already create a list of gl_shader
objects to search through for built-ins: one for the core language
version/stage, and additional shaders for any extensions in use. This
patch simply adds another shader to the list: core/common, core/stage,
and extensions.

The next patch will update the profiles to remove the duplication.
It's separated out purely to make review easier.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Acked-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
fda662f4dffa658d28ea739dd236fe0350828d59 22-Mar-2012 Eric Anholt <eric@anholt.net> glsl: Don't apply optimization passes to builtins.

The builtins we have are generally optimized, having been
hand-written. This avoids generating bad code when an optimization
pass prints debug output.
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
b78a77f979b21a84aecb6fa4f19a2ed51a48c306 13-Mar-2012 Dave Airlie <airlied@redhat.com> glsl: initialise const force glsl extension warning in fake ctx

valgrind complained about an uninitialised value being used in
glsl_parser_extras.cpp, and this was the one it was giving out about.

Just initialise the value in the fakectx.

Signed-off-by: Dave Airlie <airlied@redhat.com>
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
e06ab8c3632b748ffb59e1a82e7c966010a675e2 13-Mar-2012 Eric Anholt <eric@anholt.net> glsl: Set up generated builtin functions handling for GLSL 1.40.

Otherwise, when we go to use ir_reader on the generated code, we won't
have the types present.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
25c729bf9f373c6b590ef6647e560f33a954f38b 12-Mar-2012 Eric Anholt <eric@anholt.net> glsl: When failing to compile some builtins, print the error.

This makes the process slightly more debuggable, though it would be
nice if the build just failed immediately instead.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
2903816aadb281716b6c59a5a48aeadb84a08f50 23-Oct-2011 Chia-I Wu <olv@lunarg.com> glsl: add support for GL_OES_EGL_image_external

This extension introduces a new sampler type: samplerExternalOES.
texture2D (and texture2DProj) can be used to do a texture look up in an
external texture.

Reviewed-by: Brian Paul <brianp@vmware.com>
Acked-by: Jakob Bornecrantz <jakob@vmware.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
b6f32bbe12e1082e78951b6ef073bf244ba0b8b7 06-Oct-2011 Paul Berry <stereotype441@gmail.com> glsl: Add '.ir' extension to builtin IR files

This patch adds the extension '.ir' to all the files in
src/glsl/builtins/ir/, and changes generate_builtins.py so that it no
longer globs on '*' to find the files to build. This prevents
spurious files (such as EMACS' infamous *~ backup files) from breaking
the build.
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
0fabf8e8dc96a0eb8a9fbbac760d4faceee3af48 20-Sep-2011 Kenneth Graunke <kenneth@whitecape.org> glsl: Defer initialization of built-in functions until they're needed.

Very simple shaders don't actually use GLSL built-ins. For example:
- gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
- gl_FragColor = vec4(0.0);
Both of the shaders used by _mesa_meta_glsl_Clear() also qualify.

By waiting to initialize the built-ins until the first time we need to
look for a signature, we can avoid the overhead entirely in these cases.

Makes piglit run roughly 18% faster (255 vs. 312 seconds).

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
7c7a8a38e530a63717a2f374ae0574d8abf11e17 14-Jun-2011 Kenneth Graunke <kenneth@whitecape.org> glsl/generate_builtins.py: Remove regexp to kill pointer addresses.

Commit 56ef62d9885f805bbfb2243dc860ff425d5b4d3b
"glsl: Generate readable unique names at print time."
changed ir_print_visitor to not generate @0x1234567 suffixes except
where necessary. So there's no need to manually remove them.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
dfdb9fda826bb6c5dac2c55d9efcd1644a0dd2b9 02-Feb-2011 Kenneth Graunke <kenneth@whitecape.org> glsl: Fix use of uninitialized values in _mesa_glsl_parse_state ctor.

This has probably existed since e5e34ab18eeaffa465 or so.

NOTE: This is a candidate for the 7.9 and 7.10 branches.
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
d3073f58c17d8675a2ecdd5dfa83e5520c78e1a8 21-Jan-2011 Kenneth Graunke <kenneth@whitecape.org> Convert everything from the talloc API to the ralloc API.
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
57ef69dd8864a745453e4e579b22aea950fdbabb 14-Jan-2011 Vinson Lee <vlee@vmware.com> generate_builtins.py: Whitespace fixes.

Also removed unnecessary semicolons.
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
0de6d7e99195b6e739e3a80482ad7860c14bef3b 14-Jan-2011 Vinson Lee <vlee@vmware.com> generate_builtins.py: Fix builds using Python 2.5.
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
a42906f862cbdef251fbccb69787ba3710f0116a 12-Jan-2011 Vinson Lee <vlee@vmware.com> generate_builtins.py: Add missing import.

Import sys for sys.exit.
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
33d0c44910860e0522bd56a0f8637a69e0c4a456 07-Jan-2011 Kenneth Graunke <kenneth@whitecape.org> glsl: Autogenerate builtin_functions.cpp as part of the build process.

Python is already necessary for other parts of Mesa, so there's no
reason we can't just generate it. This patch updates both make and
SCons to do so.
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
81168351a7f493fcde55e621af046c9301aa93e9 01-Jan-2011 Kenneth Graunke <kenneth@whitecape.org> glsl: Remove unused "instructions" parameter.

I think was used long ago, when we actually read the builtins into the
shader's instruction stream directly, rather than creating a separate
shader and linking the two. It doesn't seem to serve any purpose now.
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
f5692f452f7ae77d1e710041ffebb468cc5ba87b 11-Nov-2010 Kenneth Graunke <kenneth@whitecape.org> glsl: Lazily import built-in function prototypes.

This makes a very simple 1.30 shader go from 196k of memory to 9k.

NOTE: This -may- be a candidate for the 7.9 branch, as the benefit is
substantial. However, it's not a simple change, so it may be wiser to
wait for 7.10.
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
096d36872ff531b0295109165cb90ea63be7a1b1 15-Nov-2010 Kenneth Graunke <kenneth@whitecape.org> generate_builtins.py: Fix inconsistent use of tabs and spaces warning.
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
2cacaf6e7b9bc38efd47413b5e667b6e750698b8 21-Oct-2010 Kenneth Graunke <kenneth@whitecape.org> generate_builtins.py: Output large strings as arrays of characters.

This works around MSVC's 65535 byte limit, unfortunately at the expense
of any semblance of readability and much larger file size. Hopefully I
can implement a better solution later, but for now this fixes the build.
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
f9995b30756140724f41daf963fa06167912be7f 12-Oct-2010 Kristian Høgsberg <krh@bitplanet.net> Drop GLcontext typedef and use struct gl_context instead
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
7fc882643ce1c57fb8f60d8c5edd761eff404749 09-Sep-2010 Kenneth Graunke <kenneth@whitecape.org> glsl/builtins: Set the API in the fake context.

Otherwise it gets used uninitialized.
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
f69a6647fbd5e7cf4406fcc877ff78b507344073 09-Sep-2010 Ian Romanick <ian.d.romanick@intel.com> glsl2: Clear out profile pointers in _mesa_glsl_release_functions

Otherwise builtin_profiles contains dangling pointers the next time
_mesa_read_profile is called. I suspect this may fix bugzilla #29847,
but I was never able to reproduce it.
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
961f42c9bd795204e031ea6a31a2ae04ba2e4067 08-Sep-2010 Ian Romanick <ian.d.romanick@intel.com> glsl2: Make sure _mesa_glsl_parse_state constructor gets a context

Fix an major regression in dc754586. Too bad that change was
obviously never tested.
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
a7dc8081b6e20fd05f99608aa0349a1eb75d914b 04-Sep-2010 Kenneth Graunke <kenneth@whitecape.org> glsl/builtins: Actually print the info log if reading a builtin failed.
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
8b3d36d56378355f188dd419e35676b2e4086a73 30-Aug-2010 Eric Anholt <eric@anholt.net> glsl: Clear the static values of builtin function profiles at release.

When releasing the builtin functions, we were just freeing the memory,
not telling the builtin function loader that we had freed its memory.
I wish I had done ARB_ES2_compatibility so we had regression testing
of this path. Fixes segfault on changing video options in nexuiz.
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
d539c69044c735618bf85485df7733e9f0491d18 28-Aug-2010 Eric Anholt <eric@anholt.net> glsl: Protect against double compiler-destroy.

DRI was doing teardown when we close the last screen, then an atexit()
was added to call it as well.
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
e9c7ceed27f6811ad1cae46c93ce9bc3fb3668d8 22-Aug-2010 Kenneth Graunke <kenneth@whitecape.org> glsl: Use a single shared namespace in the symbol table.

As of 1.20, variable names, function names, and structure type names all
share a single namespace, and should conflict with one another in the
same scope, or hide each other in nested scopes.

However, in 1.10, variables and functions can share the same name in the
same scope. Structure types, however, conflict with/hide both.

Fixes piglit tests redeclaration-06.vert, redeclaration-11.vert,
redeclaration-19.vert, and struct-05.vert.
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
bfd7c9ac228c7ed8aec04c3b3aa33f40ee00b035 23-Aug-2010 Chia-I Wu <olv@lunarg.com> glsl: Include main/core.h.

Make glsl include only main/core.h from core mesa.
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
6355ae2b80a01b1d58824ffeae0c638d917519c0 23-Aug-2010 Kenneth Graunke <kenneth@whitecape.org> generate_builtins.py: Generate output in sorted order.
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
f7188ac9ce75638003c916c9d5d42a75365ff1c4 21-Aug-2010 Vinson Lee <vlee@vmware.com> generate_builtins.py: Remove unused import sys.
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
011be6b5948e66adb468aef292a7c8e9be600a89 18-Aug-2010 Kenneth Graunke <kenneth@whitecape.org> generate_builtins.py: Clean up generated output a bit.

This should make it easier to diff the output, clean up some of the
insane whitespace, and make the strings a bit smaller.

We'll probably need to split up the prototype strings eventually, but
for now, this gets it under the 65K mark.
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py
43ff8f1a4b90554eae489cebb7e05f983dd9ad66 12-Aug-2010 Kenneth Graunke <kenneth@whitecape.org> glsl2: Rework builtin function generation.

Each language version/extension and target now has a "profile" containing
all of the available builtin function prototypes. These are written in
GLSL, and come directly out of the GLSL spec (except for expanding genType).

A new builtins/ir/ folder contains the hand-written IR for each builtin,
regardless of what version includes it. Only those definitions that have
prototypes in the profile will be included.

The autogenerated IR for texture builtins is no longer written to disk,
so there's no longer any confusion as to what's hand-written or
generated.

All scripts are now in python instead of perl.
/external/mesa3d/src/glsl/builtins/tools/generate_builtins.py