diff options
author | Christoph Bumiller <[email protected]> | 2010-08-10 17:36:25 +0200 |
---|---|---|
committer | Christoph Bumiller <[email protected]> | 2010-08-10 17:36:25 +0200 |
commit | 3a68fcfb6b406cf864afbf200e436fc384fd0865 (patch) | |
tree | 84e21b6659361cfa6c202c097256365faf97c45c /src/gallium/drivers/nv50/nv50_program.h | |
parent | fc1d72d15d929b629be399d977ad05611f01fc59 (diff) |
nv50: begin implementing loops
Diffstat (limited to 'src/gallium/drivers/nv50/nv50_program.h')
-rw-r--r-- | src/gallium/drivers/nv50/nv50_program.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/gallium/drivers/nv50/nv50_program.h b/src/gallium/drivers/nv50/nv50_program.h index 654bce59f31..1184d9be3b4 100644 --- a/src/gallium/drivers/nv50/nv50_program.h +++ b/src/gallium/drivers/nv50/nv50_program.h @@ -92,6 +92,15 @@ struct nv50_program { #define NV50_INTERP_FLAT (1 << 1) #define NV50_INTERP_CENTROID (1 << 2) +#define NV50_PROG_MAX_SUBROUTINES 8 + +/* analyze TGSI and see which TEMP[] are used as subroutine inputs/outputs */ +struct nv50_subroutine { + int id; + uint32_t argv[4][1]; /* 4 bitmasks, for each of xyzw, only allow 32 TEMPs */ + uint32_t retv[4][1]; +}; + struct nv50_translation_info { struct nv50_program *p; unsigned inst_nr; @@ -108,6 +117,8 @@ struct nv50_translation_info { uint32_t *immd32; unsigned immd32_nr; ubyte edgeflag_out; + struct nv50_subroutine subr[NV50_PROG_MAX_SUBROUTINES]; + int subr_nr; }; int nv50_generate_code(struct nv50_translation_info *ti); |