Mesa (glsl2): glsl2: Rework builtin function generation.

Ian Romanick idr at kemper.freedesktop.org
Sat Aug 14 02:35:12 UTC 2010


Module: Mesa
Branch: glsl2
Commit: 43ff8f1a4b90554eae489cebb7e05f983dd9ad66
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=43ff8f1a4b90554eae489cebb7e05f983dd9ad66

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Wed Aug 11 16:53:52 2010 -0700

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.

---

 src/glsl/Makefile                                  |    5 +-
 src/glsl/builtin_function.cpp                      |16561 ++++++++++++++++----
 src/glsl/builtins/110/clamp                        |   50 -
 src/glsl/builtins/110/matrixCompMult               |   32 -
 src/glsl/builtins/110/max                          |   43 -
 src/glsl/builtins/110/min                          |   43 -
 src/glsl/builtins/110/mix                          |   50 -
 src/glsl/builtins/110/noise_fake                   |   76 -
 src/glsl/builtins/110/notEqual                     |   61 -
 src/glsl/builtins/110/sign                         |   21 -
 src/glsl/builtins/110/textures                     |  213 -
 src/glsl/builtins/110_fs/derivatives               |   73 -
 src/glsl/builtins/110_fs/textures                  |  113 -
 src/glsl/builtins/130/equal                        |   31 -
 src/glsl/builtins/130/greaterThan                  |   31 -
 src/glsl/builtins/130/greaterThanEqual             |   31 -
 src/glsl/builtins/130/lessThan                     |   31 -
 src/glsl/builtins/130/lessThanEqual                |   31 -
 src/glsl/builtins/130/mix                          |   39 -
 src/glsl/builtins/130/notEqual                     |   31 -
 src/glsl/builtins/130/sign                         |   22 -
 src/glsl/builtins/130/texelFetch                   |  107 -
 src/glsl/builtins/130/texture                      |  110 -
 src/glsl/builtins/130/textureGrad                  |  147 -
 src/glsl/builtins/130/textureLod                   |  128 -
 src/glsl/builtins/130/textureProj                  |   92 -
 src/glsl/builtins/130/textureProjGrad              |  122 -
 src/glsl/builtins/130/textureProjLod               |  107 -
 src/glsl/builtins/130_fs/texture                   |  128 -
 src/glsl/builtins/130_fs/textureProj               |  107 -
 src/glsl/builtins/ARB_texture_rectangle/textures   |   16 -
 src/glsl/builtins/EXT_texture_array/textures       |   59 -
 src/glsl/builtins/EXT_texture_array_fs/textures    |   27 -
 src/glsl/builtins/{110 => ir}/abs                  |    0 
 src/glsl/builtins/ir/acos                          |   22 +
 src/glsl/builtins/{110 => ir}/all                  |    0 
 src/glsl/builtins/{110 => ir}/any                  |    0 
 src/glsl/builtins/{110 => ir}/asin                 |   25 +-
 src/glsl/builtins/{110 => ir}/atan                 |    0 
 src/glsl/builtins/{110 => ir}/ceil                 |    0 
 src/glsl/builtins/{130 => ir}/clamp                |   49 +
 src/glsl/builtins/{110 => ir}/cos                  |    0 
 src/glsl/builtins/{130 => ir}/cosh                 |    0 
 src/glsl/builtins/{110 => ir}/cross                |    0 
 src/glsl/builtins/ir/dFdx                          |   21 +
 src/glsl/builtins/ir/dFdy                          |   21 +
 src/glsl/builtins/{110 => ir}/degrees              |    0 
 src/glsl/builtins/{110 => ir}/distance             |    0 
 src/glsl/builtins/{110 => ir}/dot                  |    0 
 src/glsl/builtins/{110 => ir}/equal                |   30 +
 src/glsl/builtins/{110 => ir}/exp                  |    0 
 src/glsl/builtins/{110 => ir}/exp2                 |    0 
 src/glsl/builtins/{110 => ir}/faceforward          |    0 
 src/glsl/builtins/{110 => ir}/floor                |    0 
 src/glsl/builtins/{110 => ir}/fract                |    0 
 src/glsl/builtins/{110_vs => ir}/ftransform        |    0 
 src/glsl/builtins/ir/fwidth                        |   29 +
 src/glsl/builtins/{110 => ir}/greaterThan          |   30 +
 src/glsl/builtins/{110 => ir}/greaterThanEqual     |   30 +
 src/glsl/builtins/{110 => ir}/inversesqrt          |    0 
 src/glsl/builtins/{110 => ir}/length               |    0 
 src/glsl/builtins/{110 => ir}/lessThan             |   30 +
 src/glsl/builtins/{110 => ir}/lessThanEqual        |   30 +
 src/glsl/builtins/{110 => ir}/log                  |    0 
 src/glsl/builtins/{110 => ir}/log2                 |    0 
 src/glsl/builtins/{120 => ir}/matrixCompMult       |   30 +
 src/glsl/builtins/{130 => ir}/max                  |   42 +
 src/glsl/builtins/{130 => ir}/min                  |   42 +
 src/glsl/builtins/ir/mix                           |   88 +
 src/glsl/builtins/{110 => ir}/mod                  |    0 
 src/glsl/builtins/ir/noise1                        |   18 +
 src/glsl/builtins/ir/noise2                        |   18 +
 src/glsl/builtins/ir/noise3                        |   18 +
 src/glsl/builtins/ir/noise4                        |   18 +
 src/glsl/builtins/{110 => ir}/normalize            |    0 
 src/glsl/builtins/{110 => ir}/not                  |    0 
 src/glsl/builtins/ir/notEqual                      |   91 +
 src/glsl/builtins/{120 => ir}/outerProduct         |    0 
 src/glsl/builtins/{110 => ir}/pow                  |    0 
 src/glsl/builtins/{110 => ir}/radians              |    0 
 src/glsl/builtins/{110 => ir}/reflect              |    0 
 src/glsl/builtins/{110 => ir}/refract              |    0 
 src/glsl/builtins/ir/sign                          |   42 +
 src/glsl/builtins/{110 => ir}/sin                  |    0 
 src/glsl/builtins/{130 => ir}/sinh                 |    0 
 src/glsl/builtins/{110 => ir}/smoothstep           |    0 
 src/glsl/builtins/{110 => ir}/sqrt                 |    0 
 src/glsl/builtins/{110 => ir}/step                 |    0 
 src/glsl/builtins/{110 => ir}/tan                  |    0 
 src/glsl/builtins/{130 => ir}/tanh                 |    0 
 src/glsl/builtins/{120 => ir}/transpose            |    0 
 src/glsl/builtins/profiles/110.frag                |  364 +
 src/glsl/builtins/profiles/110.vert                |  351 +
 src/glsl/builtins/profiles/120.frag                |  396 +
 src/glsl/builtins/profiles/120.vert                |  383 +
 .../builtins/profiles/ARB_texture_rectangle.frag   |    7 +
 .../builtins/profiles/ARB_texture_rectangle.vert   |    7 +
 src/glsl/builtins/profiles/EXT_texture_array.frag  |   11 +
 src/glsl/builtins/profiles/EXT_texture_array.vert  |   11 +
 src/glsl/builtins/tools/builtin_function.cpp       |   39 +
 src/glsl/builtins/tools/generate_builtins.pl       |  164 -
 src/glsl/builtins/tools/generate_builtins.py       |  207 +
 src/glsl/builtins/tools/texture_builtins.py        |  261 +-
 src/glsl/ir_reader.cpp                             |   24 +-
 src/glsl/ir_reader.h                               |    2 +-
 105 files changed, 15871 insertions(+), 5818 deletions(-)

Diff:   http://cgit.freedesktop.org/mesa/mesa/diff/?id=43ff8f1a4b90554eae489cebb7e05f983dd9ad66



More information about the mesa-commit mailing list