Streamline code generation by using a fixed size instruction buffer in
arb_program struct.
diff --git a/src/mesa/shader/arbprogparse.h b/src/mesa/shader/arbprogparse.h
index 947c22e..59f8e3b 100644
--- a/src/mesa/shader/arbprogparse.h
+++ b/src/mesa/shader/arbprogparse.h
@@ -1,6 +1,6 @@
/*
* Mesa 3-D graphics library
- * Version: 6.3
+ * Version: 6.5
*
* Copyright (C) 1999-2005 Brian Paul All Rights Reserved.
*
@@ -31,25 +31,29 @@
#include "nvvertprog.h"
#include "nvfragprog.h"
+
+#define MAX_INSTRUCTIONS 256
+
+
/**
* This is basically a union of the vertex_program and fragment_program
* structs that we can use to parse the program into
*
- * XXX: this should go into mtypes.h?
+ * XXX we can probably get rid of this entirely someday.
*/
struct arb_program
{
struct program Base;
struct program_parameter_list *Parameters;
- GLuint InputsRead;
- GLuint OutputsWritten;
+ GLbitfield InputsRead;
+ GLbitfield OutputsWritten;
GLuint Position; /* Just used for error reporting while parsing */
GLuint MajorVersion;
GLuint MinorVersion;
/* ARB_vertex_program specifics */
- struct vp_instruction *VPInstructions;
+ struct vp_instruction VPInstructions[MAX_INSTRUCTIONS];
/* Options currently recognized by the parser */
/* ARB_fp */
@@ -60,8 +64,8 @@
GLboolean HintPositionInvariant;
/* ARB_fragment_program specifics */
- struct fp_instruction *FPInstructions;
- GLuint TexturesUsed[MAX_TEXTURE_IMAGE_UNITS];
+ struct fp_instruction FPInstructions[MAX_INSTRUCTIONS];
+ GLbitfield TexturesUsed[MAX_TEXTURE_IMAGE_UNITS];
GLuint NumAluInstructions;
GLuint NumTexInstructions;
GLuint NumTexIndirections;