From bb372f1c9bc08e8b0dca983cb4ba36b2f2f039fb Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Wed, 16 May 2007 15:34:22 -0700 Subject: Initial implementation of MESA_texture_array Shadow sampling from texture arrays is still not implemented. Everything else should be there, though. --- src/mesa/shader/arbprogram.syn | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'src/mesa/shader/arbprogram.syn') diff --git a/src/mesa/shader/arbprogram.syn b/src/mesa/shader/arbprogram.syn index 6ab0f26938..4f82717873 100644 --- a/src/mesa/shader/arbprogram.syn +++ b/src/mesa/shader/arbprogram.syn @@ -36,7 +36,7 @@ compares the value with its REVISION value. If they do not match, the loader is not up to date. */ -.emtcode REVISION 0x09 +.emtcode REVISION 0x0a /* program type */ .emtcode FRAGMENT_PROGRAM 0x01 @@ -64,6 +64,9 @@ /* GL_ARB_draw_buffers option */ .emtcode ARB_DRAW_BUFFERS 0x07 +/* GL_MESA_texture_array option */ +.emtcode MESA_TEXTURE_ARRAY 0x08 + /* GL_ARB_fragment_program instruction class */ .emtcode OP_ALU_INST 0x00 .emtcode OP_TEX_INST 0x01 @@ -223,6 +226,8 @@ .emtcode TEXTARGET_SHADOW1D 0x06 .emtcode TEXTARGET_SHADOW2D 0x07 .emtcode TEXTARGET_SHADOWRECT 0x08 +.emtcode TEXTARGET_1D_ARRAY 0x09 +.emtcode TEXTARGET_2D_ARRAY 0x0a /* face type */ .emtcode FACE_FRONT 0x00 @@ -436,6 +441,9 @@ /* GL_ARB_draw_buffers */ .regbyte draw_buffers 0x00 +/* GL_MESA_texture_array */ +.regbyte texture_array 0x00 + /* option presence condition registers */ /* they are all initially set to zero - when a particular OPTION is encountered, the appropriate */ /* register is set to 1 to indicate that the OPTION was specified. */ @@ -456,6 +464,9 @@ /* GL_ARB_draw_buffers */ .regbyte ARB_draw_buffers 0x00 +/* GL_MESA_texture_array */ +.regbyte MESA_texture_array 0x00 + /* program target condition register */ /* this syntax script deals with two program targets - VERTEX_PROGRAM and FRAGMENT_PROGRAM. */ /* to distinguish between them we need a register that will store for us the current target. */ @@ -523,7 +534,9 @@ fp_optionString .if (fragment_program_shadow != 0x00) "ARB_fragment_program_shadow" .emit ARB_FRAGMENT_PROGRAM_SHADOW .load ARB_fragment_program_shadow 0x01 .or .if (draw_buffers != 0x00) "ARB_draw_buffers" .emit ARB_DRAW_BUFFERS - .load ARB_draw_buffers 0x01; + .load ARB_draw_buffers 0x01 .or + .if (texture_array != 0x00) "MESA_texture_array" .emit MESA_TEXTURE_ARRAY + .load MESA_texture_array 0x01; vp_optionString "ARB_position_invariant" .emit ARB_POSITION_INVARIANT .load ARB_position_invariant 0x01; fp_ARB_fog_exp @@ -906,7 +919,9 @@ texTarget "3D" .emit TEXTARGET_3D .or .if (texture_rectangle != 0x00) "RECT" .emit TEXTARGET_RECT .or "CUBE" .emit TEXTARGET_CUBE .or - .if (ARB_fragment_program_shadow != 0x00) shadowTarget; + .if (ARB_fragment_program_shadow != 0x00) shadowTarget .or + .if (MESA_texture_array != 0x00) "ARRAY1D" .emit TEXTARGET_1D_ARRAY .or + .if (MESA_texture_array != 0x00) "ARRAY2D" .emit TEXTARGET_2D_ARRAY; /* GL_ARB_fragment_program_shadow -- cgit v1.2.3 From 69358e73ce09b392a94df753b9bf3cb2f6ad97b9 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Tue, 5 Jun 2007 09:24:27 -0700 Subject: Updates for array texture shadow targets. --- src/mesa/shader/arbprogram.syn | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) (limited to 'src/mesa/shader/arbprogram.syn') diff --git a/src/mesa/shader/arbprogram.syn b/src/mesa/shader/arbprogram.syn index 4f82717873..1746a876c3 100644 --- a/src/mesa/shader/arbprogram.syn +++ b/src/mesa/shader/arbprogram.syn @@ -21,13 +21,13 @@ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - + /** * \file arbprogram.syn * ARB_fragment/vertex_program syntax * \author Michal Krol */ - + .syntax program; /* @@ -226,8 +226,11 @@ .emtcode TEXTARGET_SHADOW1D 0x06 .emtcode TEXTARGET_SHADOW2D 0x07 .emtcode TEXTARGET_SHADOWRECT 0x08 +/* GL_MESA_texture_array */ .emtcode TEXTARGET_1D_ARRAY 0x09 .emtcode TEXTARGET_2D_ARRAY 0x0a +.emtcode TEXTARGET_SHADOW1D_ARRAY 0x0b +.emtcode TEXTARGET_SHADOW2D_ARRAY 0x0c /* face type */ .emtcode FACE_FRONT 0x00 @@ -912,6 +915,7 @@ fragment program | "CUBE" | "RECT" | (if option ARB_fragment_program_shadow present) + | (if option MESA_texture_array present) */ texTarget "1D" .emit TEXTARGET_1D .or @@ -920,19 +924,38 @@ texTarget .if (texture_rectangle != 0x00) "RECT" .emit TEXTARGET_RECT .or "CUBE" .emit TEXTARGET_CUBE .or .if (ARB_fragment_program_shadow != 0x00) shadowTarget .or - .if (MESA_texture_array != 0x00) "ARRAY1D" .emit TEXTARGET_1D_ARRAY .or - .if (MESA_texture_array != 0x00) "ARRAY2D" .emit TEXTARGET_2D_ARRAY; + .if (MESA_texture_array != 0x00) arrayTarget; /* GL_ARB_fragment_program_shadow ::= "SHADOW1D" | "SHADOW2D" | "SHADOWRECT" + | (if option MESA_texture_array present) */ shadowTarget "SHADOW1D" .emit TEXTARGET_SHADOW1D .or "SHADOW2D" .emit TEXTARGET_SHADOW2D .or - .if (texture_rectangle != 0x00) "SHADOWRECT" .emit TEXTARGET_SHADOWRECT; + .if (texture_rectangle != 0x00) "SHADOWRECT" .emit TEXTARGET_SHADOWRECT .or + .if (MESA_texture_array != 0x00) shadowArrayTarget; + +/* +GL_MESA_texture_array + + ::= "ARRAY1D" + | "ARRAY2D" + + ::= "SHADOWARRAY1D" + | "SHADOWARRAY2D" +*/ + +arrayTarget + "ARRAY1D" .emit TEXTARGET_1D_ARRAY .or + "ARRAY2D" .emit TEXTARGET_2D_ARRAY; + +shadowArrayTarget + "SHADOWARRAY1D" .emit TEXTARGET_SHADOW1D_ARRAY .or + "SHADOWARRAY2D" .emit TEXTARGET_SHADOW2D_ARRAY; /* fragment program -- cgit v1.2.3