aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r300_fixed_pipelines.h
diff options
context:
space:
mode:
Diffstat (limited to 'nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r300_fixed_pipelines.h')
-rw-r--r--nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r300_fixed_pipelines.h294
1 files changed, 294 insertions, 0 deletions
diff --git a/nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r300_fixed_pipelines.h b/nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r300_fixed_pipelines.h
new file mode 100644
index 000000000..65e1836af
--- /dev/null
+++ b/nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r300_fixed_pipelines.h
@@ -0,0 +1,294 @@
+#ifndef __R300_FIXED_PIPELINES_H__
+#define __R300_FIXED_PIPELINES_H__
+
+/******** Flat color pipeline **********/
+static struct r300_vertex_shader_state FLAT_COLOR_VERTEX_SHADER={
+ program: {
+ length: 20,
+
+ body:{ d: {
+ EASY_VSF_OP(MUL, 0, ALL, TMP),
+ VSF_PARAM(3),
+ VSF_ATTR_W(0),
+ EASY_VSF_SOURCE(0, W, W, W, W, NONE, NONE),
+
+ EASY_VSF_OP(MUL, 1, ALL, RESULT),
+ VSF_REG(1),
+ VSF_ATTR_UNITY(1),
+ VSF_UNITY(1),
+
+ EASY_VSF_OP(MAD, 0, ALL, TMP),
+ VSF_PARAM(2),
+ VSF_ATTR_Z(0),
+ VSF_TMP(0),
+
+ EASY_VSF_OP(MAD, 0, ALL, TMP),
+ VSF_PARAM(1),
+ VSF_ATTR_Y(0),
+ VSF_TMP(0),
+
+ EASY_VSF_OP(MAD, 0, ALL, RESULT),
+ VSF_PARAM(0),
+ VSF_ATTR_X(0),
+ VSF_TMP(0),
+ } }
+ },
+
+ matrix:{
+ {
+ length: 16,
+ body: { f: {
+ 2.0,
+ 0,
+ 0.0,
+ 0.0,
+ 0,
+ 2.5,
+ 0,
+ 0,
+ 0.0,
+ 0,
+ -1.00,
+ -1.0,
+ -3.0,
+ 0,
+ 6.0,
+ 6.0
+ } }
+ },
+ {
+ length: 0,
+ },
+ {
+ length: 0,
+ }
+ },
+
+ vector: {
+ {
+ length: 0,
+ },
+ {
+ length: 0,
+ }
+ },
+
+ unknown1: {
+ length: 0
+ },
+
+ unknown2: {
+ length: 0
+ },
+
+ program_start: 0,
+ unknown_ptr1: 4,
+ program_end: 4,
+
+ param_offset: 0,
+ param_count: 4,
+
+ unknown_ptr2: 0,
+ unknown_ptr3: 4
+ };
+
+static struct r300_pixel_shader_state FLAT_COLOR_PIXEL_SHADER={
+ program: {
+ tex: {
+ length: 0
+ },
+ alu: {
+ length: 1,
+ /* My understanding is that we need at least 1 instructions for pixel shader,
+ in particular because alu_end==0 means there is one instruction */
+ inst: {
+ PFS_NOP
+ }
+ },
+ node: {
+ { 0, 0, 0, 0},
+ { 0, 0, 0, 0},
+ { 0, 0, 0, 0},
+ { 0, 0, 0, 0}
+ },
+ active_nodes: 1,
+ first_node_has_tex: 0,
+ temp_register_count: 0,
+
+ tex_offset: 0,
+ tex_end: 0,
+ alu_offset: 0,
+ alu_end: 0
+ },
+
+ param_length: 0
+ };
+
+
+/******** Single texture pipeline ***********/
+static struct r300_vertex_shader_state SINGLE_TEXTURE_VERTEX_SHADER={
+ program: {
+ length: 24,
+
+ body: { d: {
+ EASY_VSF_OP(MUL, 0, ALL, TMP),
+ VSF_PARAM(3),
+ VSF_ATTR_W(0),
+ EASY_VSF_SOURCE(0, W, W, W, W, NONE, NONE),
+
+ EASY_VSF_OP(MUL, 2, ALL, RESULT),
+ VSF_REG(2),
+ VSF_ATTR_UNITY(2),
+ VSF_UNITY(2),
+
+ EASY_VSF_OP(MAD, 0, ALL, TMP),
+ VSF_PARAM(2),
+ VSF_ATTR_Z(0),
+ VSF_TMP(0),
+
+ EASY_VSF_OP(MUL, 1, ALL, RESULT),
+ VSF_REG(1),
+ VSF_ATTR_UNITY(1),
+ VSF_UNITY(1),
+
+ EASY_VSF_OP(MAD, 0, ALL, TMP),
+ VSF_PARAM(1),
+ VSF_ATTR_Y(0),
+ VSF_TMP(0),
+
+ EASY_VSF_OP(MAD, 0, ALL, RESULT),
+ VSF_PARAM(0),
+ VSF_ATTR_X(0),
+ VSF_TMP(0),
+ } }
+ },
+
+ matrix:{
+ {
+ length: 16,
+ body: { f: {
+ 2.0,
+ 0,
+ 0.0,
+ 0.0,
+ 0,
+ 2.5,
+ 0,
+ 0,
+ 0.0,
+ 0,
+ -1.00,
+ -1.0,
+ -3.0,
+ 0,
+ 6.0,
+ 6.0
+ } }
+ },
+ {
+ length: 0,
+ },
+ {
+ length: 0,
+ }
+ },
+
+ vector: {
+ {
+ length: 0,
+ },
+ {
+ length: 0,
+ }
+ },
+
+ unknown1: {
+ length: 0
+ },
+
+ unknown2: {
+ length: 4,
+ body: { f: {
+ 0.0,
+ 0.0,
+ 1.0,
+ 0.0
+ } }
+ },
+
+ program_start: 0,
+ unknown_ptr1: 5,
+ program_end: 5,
+
+ param_offset: 0,
+ param_count: 4,
+
+ unknown_ptr2: 0,
+ unknown_ptr3: 5
+ };
+
+static struct r300_pixel_shader_state SINGLE_TEXTURE_PIXEL_SHADER={
+ program: {
+ tex: {
+ length: 1,
+ inst: { 0x00018000 }
+ },
+ alu: {
+ length: 2,
+ inst:
+ {
+/* I get misc problems without this after doing cold-reboot.
+ This would imply that alu programming is buggy. --aet */
+#if 1
+ PFS_NOP,
+#endif
+
+ /* What are 0's ORed with flags ? They are register numbers that
+ just happen to be 0 */
+ {
+ EASY_PFS_INSTR0(MAD, SRC0C_XYZ, SRC1C_XYZ, ZERO),
+ EASY_PFS_INSTR1(0, 0, 1, 0 | PFS_FLAG_CONST, NONE, ALL),
+
+#if 0
+ /* no alpha in textures */
+ EASY_PFS_INSTR2(MAD, SRC0A, ONE, ZERO),
+ EASY_PFS_INSTR3(0, 1, 0 | PFS_FLAG_CONST, 0 | PFS_FLAG_CONST, OUTPUT)
+#endif
+
+ /* alpha in textures */
+ EASY_PFS_INSTR2(MAD, SRC0A, SRC1A, ZERO),
+ EASY_PFS_INSTR3(0, 0, 1, 0 | PFS_FLAG_CONST, OUTPUT)
+ }
+ }
+ },
+ node: {
+ { 0, 0, 0, 0},
+ { 0, 0, 0, 0},
+ { 0, 0, 0, 0},
+ { 0, 0, 0, 0}
+ },
+
+ active_nodes: 1,
+ first_node_has_tex: 1,
+ temp_register_count: 1,
+
+ tex_offset: 0,
+ tex_end: 0,
+ alu_offset: 0,
+ alu_end: 0
+ },
+
+ param_length: 8,
+ param: {
+ { 0.0, 0.0, 0.0, 0.0},
+ { 0.0, 0.0, 0.0, 0.0},
+ { 0.0, 0.0, 0.0, 0.0},
+ { 0.0, 0.0, 0.0, 0.0},
+ { 0.0, 0.0, 0.0, 0.0},
+ { 0.0, 0.0, 0.0, 0.0},
+ { 0.0, 0.0, 0.0, 0.0},
+ { 0.0, 0.0, 0.0, 0.0}
+ }
+ };
+
+#endif