summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/nv50/nv50_program.h
diff options
context:
space:
mode:
authorBen Skeggs <skeggsb@gmail.com>2008-06-12 12:16:43 +1000
committerBen Skeggs <skeggsb@gmail.com>2008-06-29 15:46:17 +1000
commit40137ea2631a0c8158f99ae30ca90ed038b72076 (patch)
tree9dfaf71f602d601a90f79358bd1a35994b5848ea /src/gallium/drivers/nv50/nv50_program.h
parentf50e78e83cf7bda3537ac82de863096d829f13ee (diff)
nv50: carry instructions around in nv50_program_exec, not a flat array
Diffstat (limited to 'src/gallium/drivers/nv50/nv50_program.h')
-rw-r--r--src/gallium/drivers/nv50/nv50_program.h22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/gallium/drivers/nv50/nv50_program.h b/src/gallium/drivers/nv50/nv50_program.h
index dd5aed799a..6dafe56fbb 100644
--- a/src/gallium/drivers/nv50/nv50_program.h
+++ b/src/gallium/drivers/nv50/nv50_program.h
@@ -10,22 +10,36 @@ struct nv50_program_data {
float value;
};
+struct nv50_program_exec {
+ struct nv50_program_exec *next;
+
+ unsigned inst[2];
+ struct {
+ int index;
+ unsigned mask;
+ unsigned shift;
+ } param;
+};
+
struct nv50_program {
struct pipe_shader_state pipe;
struct tgsi_shader_info info;
boolean translated;
unsigned type;
- unsigned *insns;
- unsigned insns_nr;
+ struct nv50_program_exec *exec_head;
+ struct nv50_program_exec *exec_tail;
+ unsigned exec_size;
+ struct nv50_program_data *data;
+ struct nouveau_resource *data_res;
+ unsigned data_nr;
+ unsigned data_start;
struct pipe_buffer *buffer;
float *immd;
unsigned immd_nr;
- struct nouveau_resource *data;
-
struct {
unsigned high_temp;
struct {