summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/nv50/nv50_program.h
diff options
context:
space:
mode:
authorMichal Krol <michal@vmware.com>2009-09-17 12:44:24 +0200
committerMichal Krol <michal@vmware.com>2009-09-17 12:44:24 +0200
commit2a661c383fee65bc4413541e706925fa3e9b9cf5 (patch)
treedbea0c9d65d17b81720fe2f161604dfc91eb0546 /src/gallium/drivers/nv50/nv50_program.h
parent90daefd1c474a6e0502df5053b581987c12b8673 (diff)
parent21caa29fbd332a2ee05a58df91e1664fbbc4e61f (diff)
Merge commit 'origin/master' into glsl-pp-rework-2
Conflicts: src/gallium/winsys/gdi/SConscript
Diffstat (limited to 'src/gallium/drivers/nv50/nv50_program.h')
-rw-r--r--src/gallium/drivers/nv50/nv50_program.h35
1 files changed, 25 insertions, 10 deletions
diff --git a/src/gallium/drivers/nv50/nv50_program.h b/src/gallium/drivers/nv50/nv50_program.h
index 096e0476aa..d78dee083f 100644
--- a/src/gallium/drivers/nv50/nv50_program.h
+++ b/src/gallium/drivers/nv50/nv50_program.h
@@ -15,6 +15,15 @@ struct nv50_program_exec {
} param;
};
+struct nv50_sreg4 {
+ uint8_t hw;
+ uint8_t id_vp;
+ uint8_t id_fp;
+
+ uint8_t mask;
+ boolean linear;
+};
+
struct nv50_program {
struct pipe_shader_state pipe;
struct tgsi_shader_info info;
@@ -24,8 +33,8 @@ struct nv50_program {
struct nv50_program_exec *exec_head;
struct nv50_program_exec *exec_tail;
unsigned exec_size;
- struct nouveau_resource *data[2];
- unsigned data_start[2];
+ struct nouveau_resource *data[1];
+ unsigned data_start[1];
struct nouveau_bo *bo;
@@ -36,14 +45,20 @@ struct nv50_program {
struct {
unsigned high_temp;
unsigned high_result;
- struct {
- unsigned attr[2];
- } vp;
- struct {
- unsigned regs[4];
- unsigned map[5];
- unsigned high_map;
- } fp;
+
+ uint32_t attr[2];
+ uint32_t regs[4];
+
+ /* for VPs, io_nr doesn't count 'private' results (PSIZ etc.) */
+ unsigned io_nr;
+ struct nv50_sreg4 io[PIPE_MAX_SHADER_OUTPUTS];
+
+ /* FP colour inputs, VP/GP back colour outputs */
+ struct nv50_sreg4 two_side[2];
+
+ /* VP only */
+ uint8_t clpd, clpd_nr;
+ uint8_t psiz;
} cfg;
};