r300: Reduce include dependencies
authorNicolai Hähnle <nhaehnle@gmail.com>
Wed, 22 Jul 2009 20:13:06 +0000 (22:13 +0200)
committerNicolai Hähnle <nhaehnle@gmail.com>
Mon, 27 Jul 2009 18:32:05 +0000 (20:32 +0200)
Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
src/mesa/drivers/dri/r300/compiler/radeon_code.h [new file with mode: 0644]
src/mesa/drivers/dri/r300/compiler/radeon_compiler.h
src/mesa/drivers/dri/r300/r300_context.h
src/mesa/drivers/dri/r300/r300_fragprog_common.c

diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_code.h b/src/mesa/drivers/dri/r300/compiler/radeon_code.h
new file mode 100644 (file)
index 0000000..7d8bf48
--- /dev/null
@@ -0,0 +1,150 @@
+/*
+ * Copyright 2009 Nicolai Hähnle <nhaehnle@gmail.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * on the rights to use, copy, modify, merge, publish, distribute, sub
+ * license, and/or sell copies of the Software, and to permit persons to whom
+ * the Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHOR(S) AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN 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. */
+
+#ifndef RADEON_CODE_H
+#define RADEON_CODE_H
+
+
+#define R300_PFS_MAX_ALU_INST     64
+#define R300_PFS_MAX_TEX_INST     32
+#define R300_PFS_MAX_TEX_INDIRECT 4
+#define R300_PFS_NUM_TEMP_REGS    32
+#define R300_PFS_NUM_CONST_REGS   32
+
+#define R500_PFS_MAX_INST         512
+#define R500_PFS_NUM_TEMP_REGS    128
+#define R500_PFS_NUM_CONST_REGS   256
+
+
+#define STATE_R300_WINDOW_DIMENSION (STATE_INTERNAL_DRIVER+0)
+#define STATE_R300_TEXRECT_FACTOR (STATE_INTERNAL_DRIVER+1)
+
+
+/**
+ * Stores state that influences the compilation of a fragment program.
+ */
+struct r300_fragment_program_external_state {
+       struct {
+               /**
+                * If the sampler is used as a shadow sampler,
+                * this field is:
+                *  0 - GL_LUMINANCE
+                *  1 - GL_INTENSITY
+                *  2 - GL_ALPHA
+                * depending on the depth texture mode.
+                */
+               GLuint depth_texture_mode : 2;
+
+               /**
+                * If the sampler is used as a shadow sampler,
+                * this field is (texture_compare_func - GL_NEVER).
+                * [e.g. if compare function is GL_LEQUAL, this field is 3]
+                *
+                * Otherwise, this field is 0.
+                */
+               GLuint texture_compare_func : 3;
+       } unit[16];
+};
+
+
+
+struct r300_fragment_program_node {
+       int tex_offset; /**< first tex instruction */
+       int tex_end; /**< last tex instruction, relative to tex_offset */
+       int alu_offset; /**< first ALU instruction */
+       int alu_end; /**< last ALU instruction, relative to alu_offset */
+       int flags;
+};
+
+/**
+ * Stores an R300 fragment program in its compiled-to-hardware form.
+ */
+struct r300_fragment_program_code {
+       struct {
+               int length; /**< total # of texture instructions used */
+               GLuint inst[R300_PFS_MAX_TEX_INST];
+       } tex;
+
+       struct {
+               int length; /**< total # of ALU instructions used */
+               struct {
+                       GLuint inst0;
+                       GLuint inst1;
+                       GLuint inst2;
+                       GLuint inst3;
+               } inst[R300_PFS_MAX_ALU_INST];
+       } alu;
+
+       struct r300_fragment_program_node node[4];
+       int cur_node;
+       int first_node_has_tex;
+
+       /**
+        * Remember which program register a given hardware constant
+        * belongs to.
+        */
+       struct prog_src_register constant[R300_PFS_NUM_CONST_REGS];
+       int const_nr;
+
+       int max_temp_idx;
+};
+
+
+struct r500_fragment_program_code {
+       struct {
+               GLuint inst0;
+               GLuint inst1;
+               GLuint inst2;
+               GLuint inst3;
+               GLuint inst4;
+               GLuint inst5;
+       } inst[R500_PFS_MAX_INST];
+
+       int inst_offset;
+       int inst_end;
+
+       /**
+        * Remember which program register a given hardware constant
+        * belongs to.
+        */
+       struct prog_src_register constant[R500_PFS_NUM_CONST_REGS];
+       int const_nr;
+
+       int max_temp_idx;
+};
+
+struct rX00_fragment_program_code {
+       union {
+               struct r300_fragment_program_code r300;
+               struct r500_fragment_program_code r500;
+       } code;
+
+       GLboolean writes_depth;
+
+       /* attribute that we are sending the WPOS in */
+       gl_frag_attrib wpos_attr;
+       /* attribute that we are sending the fog coordinate in */
+       gl_frag_attrib fog_attr;
+};
+
+
+#endif /* RADEON_CODE_H */
\ No newline at end of file
index 9b9b9c5c6545746677c29b95d8879fee48f44997..a5f70173b7df6acdfcb2cf7214f86d655735a015 100644 (file)
 #include "shader/prog_instruction.h"
 
 #include "memory_pool.h"
+#include "radeon_code.h"
 
-#define R300_PFS_MAX_ALU_INST     64
-#define R300_PFS_MAX_TEX_INST     32
-#define R300_PFS_MAX_TEX_INDIRECT 4
-#define R300_PFS_NUM_TEMP_REGS    32
-#define R300_PFS_NUM_CONST_REGS   32
-
-#define R500_PFS_MAX_INST         512
-#define R500_PFS_NUM_TEMP_REGS    128
-#define R500_PFS_NUM_CONST_REGS   256
-
-
-#define STATE_R300_WINDOW_DIMENSION (STATE_INTERNAL_DRIVER+0)
-#define STATE_R300_TEXRECT_FACTOR (STATE_INTERNAL_DRIVER+1)
-
-
-/**
- * Stores state that influences the compilation of a fragment program.
- */
-struct r300_fragment_program_external_state {
-       struct {
-               /**
-                * If the sampler is used as a shadow sampler,
-                * this field is:
-                *  0 - GL_LUMINANCE
-                *  1 - GL_INTENSITY
-                *  2 - GL_ALPHA
-                * depending on the depth texture mode.
-                */
-               GLuint depth_texture_mode : 2;
-
-               /**
-                * If the sampler is used as a shadow sampler,
-                * this field is (texture_compare_func - GL_NEVER).
-                * [e.g. if compare function is GL_LEQUAL, this field is 3]
-                *
-                * Otherwise, this field is 0.
-                */
-               GLuint texture_compare_func : 3;
-       } unit[16];
-};
-
-
-
-struct r300_fragment_program_node {
-       int tex_offset; /**< first tex instruction */
-       int tex_end; /**< last tex instruction, relative to tex_offset */
-       int alu_offset; /**< first ALU instruction */
-       int alu_end; /**< last ALU instruction, relative to alu_offset */
-       int flags;
-};
-
-/**
- * Stores an R300 fragment program in its compiled-to-hardware form.
- */
-struct r300_fragment_program_code {
-       struct {
-               int length; /**< total # of texture instructions used */
-               GLuint inst[R300_PFS_MAX_TEX_INST];
-       } tex;
-
-       struct {
-               int length; /**< total # of ALU instructions used */
-               struct {
-                       GLuint inst0;
-                       GLuint inst1;
-                       GLuint inst2;
-                       GLuint inst3;
-               } inst[R300_PFS_MAX_ALU_INST];
-       } alu;
-
-       struct r300_fragment_program_node node[4];
-       int cur_node;
-       int first_node_has_tex;
-
-       /**
-        * Remember which program register a given hardware constant
-        * belongs to.
-        */
-       struct prog_src_register constant[R300_PFS_NUM_CONST_REGS];
-       int const_nr;
-
-       int max_temp_idx;
-};
-
-
-struct r500_fragment_program_code {
-       struct {
-               GLuint inst0;
-               GLuint inst1;
-               GLuint inst2;
-               GLuint inst3;
-               GLuint inst4;
-               GLuint inst5;
-       } inst[R500_PFS_MAX_INST];
-
-       int inst_offset;
-       int inst_end;
-
-       /**
-        * Remember which program register a given hardware constant
-        * belongs to.
-        */
-       struct prog_src_register constant[R500_PFS_NUM_CONST_REGS];
-       int const_nr;
-
-       int max_temp_idx;
-};
-
-struct rX00_fragment_program_code {
-       union {
-               struct r300_fragment_program_code r300;
-               struct r500_fragment_program_code r500;
-       } code;
-
-       GLboolean writes_depth;
-
-       /* attribute that we are sending the WPOS in */
-       gl_frag_attrib wpos_attr;
-       /* attribute that we are sending the fog coordinate in */
-       gl_frag_attrib fog_attr;
-};
 
 struct rc_instruction {
        struct rc_instruction * Prev;
index ea30d3e12ff6c12275cd4aff8740ad02cd57a2b4..ce742641a4363188a353735a0a47f7e52c7202f3 100644 (file)
@@ -44,7 +44,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #include "main/mtypes.h"
 #include "shader/prog_instruction.h"
-#include "compiler/radeon_compiler.h"
+#include "compiler/radeon_code.h"
 
 struct r300_context;
 typedef struct r300_context r300ContextRec;
index a89dbb004999781c95a74c5f81fe0063b748d1e9..27aec645759883427c97c7d36ecc1e9fa8412f65 100644 (file)
@@ -42,6 +42,8 @@
 #include "shader/prog_parameter.h"
 #include "shader/prog_print.h"
 
+#include "compiler/radeon_compiler.h"
+
 #include "r300_state.h"