glsl: Update and fix typos in README.

This commit is contained in:
Andres Gomez
2014-10-16 11:40:39 +03:00
committed by Kenneth Graunke
parent 2883aff3be
commit af31f930ab

View File

@@ -8,7 +8,7 @@ passed straight through. See glcpp/*
2) lex and yacc-based parser takes the preprocessed string and 2) lex and yacc-based parser takes the preprocessed string and
generates the AST (abstract syntax tree). Almost no checking is generates the AST (abstract syntax tree). Almost no checking is
performed in this stage. See glsl_lexer.lpp and glsl_parser.ypp. performed in this stage. See glsl_lexer.ll and glsl_parser.yy.
3) The AST is converted to "HIR". This is the intermediate 3) The AST is converted to "HIR". This is the intermediate
representation of the compiler. Constructors are generated, function representation of the compiler. Constructors are generated, function
@@ -34,7 +34,7 @@ linked in.
7) The driver performs code generation out of the IR, taking a linked 7) The driver performs code generation out of the IR, taking a linked
shader program and producing a compiled program for each stage. See shader program and producing a compiled program for each stage. See
ir_to_mesa.cpp for Mesa IR code generation. ../mesa/program/ir_to_mesa.cpp for Mesa IR code generation.
FAQ: FAQ:
@@ -126,7 +126,7 @@ optimizations like CSE where one must navigate an expression tree.
Q: Why no SSA representation? Q: Why no SSA representation?
A: Converting an IR tree to SSA form makes dead code elmimination, A: Converting an IR tree to SSA form makes dead code elimination,
common subexpression elimination, and many other optimizations much common subexpression elimination, and many other optimizations much
easier. However, in our primarily vector-based language, there's some easier. However, in our primarily vector-based language, there's some
major questions as to how it would work. Do we do SSA on the scalar major questions as to how it would work. Do we do SSA on the scalar
@@ -134,9 +134,9 @@ or vector level? If we do it at the vector level, we're going to end
up with many different versions of the variable when encountering code up with many different versions of the variable when encountering code
like: like:
(assign (constant bool (1)) (swiz x (var_ref __retval) ) (var_ref a) ) (assign (constant bool (1)) (swiz x (var_ref __retval) ) (var_ref a) )
(assign (constant bool (1)) (swiz y (var_ref __retval) ) (var_ref b) ) (assign (constant bool (1)) (swiz y (var_ref __retval) ) (var_ref b) )
(assign (constant bool (1)) (swiz z (var_ref __retval) ) (var_ref c) ) (assign (constant bool (1)) (swiz z (var_ref __retval) ) (var_ref c) )
If every masked update of a component relies on the previous value of If every masked update of a component relies on the previous value of
the variable, then we're probably going to be quite limited in our the variable, then we're probably going to be quite limited in our
@@ -183,7 +183,7 @@ ir_validate.cpp (check users have the right types)
You may also need to update the backends if they will see the new expr type: You may also need to update the backends if they will see the new expr type:
../mesa/shaders/ir_to_mesa.cpp ../mesa/program/ir_to_mesa.cpp
You can then use the new expression from builtins (if all backends You can then use the new expression from builtins (if all backends
would rather see it), or scan the IR and convert to use your new would rather see it), or scan the IR and convert to use your new
@@ -225,4 +225,4 @@ Initially, there really wasn't one. We have since adopted one:
- Files that implement a class that is used throught the code should - Files that implement a class that is used throught the code should
take the name of that class (e.g., ir_hierarchical_visitor.cpp). take the name of that class (e.g., ir_hierarchical_visitor.cpp).
- Files that contain code not fitting in one of the previous - Files that contain code not fitting in one of the previous
categories should have a sensible name (e.g., glsl_parser.ypp). categories should have a sensible name (e.g., glsl_parser.yy).