summaryrefslogtreecommitdiff
path: root/docs/shading.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/shading.html')
-rw-r--r--docs/shading.html77
1 files changed, 61 insertions, 16 deletions
diff --git a/docs/shading.html b/docs/shading.html
index 0e1a5e1a7b..2cd17c76ac 100644
--- a/docs/shading.html
+++ b/docs/shading.html
@@ -25,9 +25,10 @@ Contents
<li><a href="#unsup">Unsupported Features</a>
<li><a href="#notes">Implementation Notes</a>
<li><a href="#hints">Programming Hints</a>
-<li><a href="#standalone">Stand-alone Compiler</a>
+<li><a href="#standalone">Stand-alone GLSL Compiler</a>
<li><a href="#implementation">Compiler Implementation</a>
<li><a href="#validation">Compiler Validation</a>
+<li><a href="#120">GLSL 1.20 support</a>
</ul>
@@ -48,6 +49,7 @@ in Mesa:
<li>The inverse trig functions asin(), acos(), and atan() are not implemented
<li>The gl_Color and gl_SecondaryColor varying vars are interpolated
without perspective correction
+<li>Floating point literal suffixes 'f' and 'F' aren't allowed.
</ul>
<p>
@@ -132,7 +134,7 @@ These issues will be addressed/resolved in the future.
<a name="standalone">
-<h2>Stand-alone Compiler</h2>
+<h2>Stand-alone GLSL Compiler</h2>
<p>
A unique stand-alone GLSL compiler driver has been added to Mesa.
@@ -154,12 +156,10 @@ This tool is useful for:
</ul>
<p>
-To build the glslcompiler program (this will be improved someday):
+After building Mesa, the glslcompiler can be built by manually running:
</p>
<pre>
- cd src/mesa
- make libmesa.a
- cd drivers/glslcompiler
+ cd src/mesa/drivers/glslcompiler
make
</pre>
@@ -169,20 +169,31 @@ Here's an example of using the compiler to compile a vertex shader and
emit GL_ARB_vertex_program-style instructions:
</p>
<pre>
- glslcompiler --arb --linenumbers --vs vertshader.txt
+ bin/glslcompiler --debug --numbers --fs progs/glsl/CH06-brick.frag.txt
</pre>
<p>
-The output may look similar to this:
+results in:
</p>
<pre>
-!!ARBvp1.0
- 0: MOV result.texcoord[0], vertex.texcoord[0];
- 1: DP4 temp0.x, state.matrix.mvp.row[0], vertex.position;
- 2: DP4 temp0.y, state.matrix.mvp.row[1], vertex.position;
- 3: DP4 temp0.z, state.matrix.mvp.row[2], vertex.position;
- 4: DP4 temp0.w, state.matrix.mvp.row[3], vertex.position;
- 5: MOV result.position, temp0;
- 6: END
+# Fragment Program/Shader
+ 0: RCP TEMP[4].x, UNIFORM[2].xxxx;
+ 1: RCP TEMP[4].y, UNIFORM[2].yyyy;
+ 2: MUL TEMP[3].xy, VARYING[0], TEMP[4];
+ 3: MOV TEMP[1], TEMP[3];
+ 4: MUL TEMP[0].w, TEMP[1].yyyy, CONST[4].xxxx;
+ 5: FRC TEMP[1].z, TEMP[0].wwww;
+ 6: SGT.C TEMP[0].w, TEMP[1].zzzz, CONST[4].xxxx;
+ 7: IF (NE.wwww); # (if false, goto 9);
+ 8: ADD TEMP[1].x, TEMP[1].xxxx, CONST[4].xxxx;
+ 9: ENDIF;
+ 10: FRC TEMP[1].xy, TEMP[1];
+ 11: SGT TEMP[2].xy, UNIFORM[3], TEMP[1];
+ 12: MUL TEMP[1].z, TEMP[2].xxxx, TEMP[2].yyyy;
+ 13: LRP TEMP[0], TEMP[1].zzzz, UNIFORM[0], UNIFORM[1];
+ 14: MUL TEMP[0].xyz, TEMP[0], VARYING[1].xxxx;
+ 15: MOV OUTPUT[0].xyz, TEMP[0];
+ 16: MOV OUTPUT[0].w, CONST[4].yyyy;
+ 17: END
</pre>
<p>
@@ -308,5 +319,39 @@ should be added.
</p>
+
+<a name="120">
+<h2>GLSL 1.20 support</h2>
+
+<p>
+Support for GLSL version 1.20 is underway. Status as follows.
+</p>
+
+<h3>Supported</h3>
+<ul>
+<li><code>mat2x3, mat2x4</code>, etc. types and functions
+<li><code>transpose(), outerProduct(), matrixCompMult()</code> functions
+(but untested)
+<li>precision qualifiers (lowp, mediump, highp)
+</ul>
+
+<h3>Partially Complete</h3>
+<ul>
+<li><code>invariant</code> qualifier
+</ul>
+
+<h3>Not Completed</h3>
+<ul>
+<li><code>array.length()</code> method
+<li><code>float[5] a;</code> array syntax
+<li><code>centroid</code> qualifier
+<li>unsized array constructors
+<li>initializers for uniforms
+<li>const initializers calling built-in functions
+</ul>
+
+
+
+
</BODY>
</HTML>