search for: nv50_program_exec

Displaying 7 results from an estimated 7 matches for "nv50_program_exec".

2009 Jun 21
0
[PATCH] nv50: initial support for IF, ELSE, ENDIF insns
...ogram.c @@ -90,6 +90,8 @@ struct nv50_reg { int acc; /* instruction where this reg is last read (first insn == 1) */ }; +#define MAX_IF_LEVEL 4 /* arbitrary value */ + struct nv50_pc { struct nv50_program *p; @@ -119,11 +121,17 @@ struct nv50_pc { struct nv50_reg r_hpos[4]; + struct nv50_program_exec *if_cond; + struct nv50_program_exec *if_insn[MAX_IF_LEVEL]; + struct nv50_program_exec *if_join[MAX_IF_LEVEL]; + unsigned if_lvl; + /* current instruction and total number of insns */ unsigned insn_cur; unsigned insn_nr; boolean allow32; + boolean join_on; }; static inline void @@ -2...
2009 May 06
2
nv50: shader generation patches
Hi ! I've been trying to improve NV50 shader generation a bit the last couple of weeks, so here is what I've produced. I don't know if it's usable for you or just a pile of horrible hacks, but at least it makes some mesa demos render more correcly, p.e. the teapot (aside from mip-mapping issues of the floor texture), arbfplight, and I think the gears also didn't appear as they
2009 Jun 21
0
[PATCH] nv50: don't allocate in the param buffer
...>code); while (p->ln) diff --git a/src/gallium/drivers/nv50/nv50_program.h b/src/gallium/drivers/nv50/nv50_program.h index ac5230d..2b7cffd 100644 --- a/src/gallium/drivers/nv50/nv50_program.h +++ b/src/gallium/drivers/nv50/nv50_program.h @@ -32,11 +32,11 @@ 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 *code; struct nouveau_bo *bo; + struct nouveau_resource *code; + struct nouveau_resource *data[1]; + unsigned data_start[1]; float...
2009 Sep 10
0
[PATCH 06/13] nv50: handle SEQ, SGT, SLE, SNE opcodes
...fine CVT_F32_U32 0x64 @@ -799,7 +802,7 @@ emit_precossin(struct nv50_pc *pc, struct nv50_reg *dst, struct nv50_reg *src) static void emit_cvt(struct nv50_pc *pc, struct nv50_reg *dst, struct nv50_reg *src, - int wp, unsigned cop, unsigned fmt) + int wp, unsigned cvn, unsigned fmt) { struct nv50_program_exec *e; @@ -808,7 +811,7 @@ emit_cvt(struct nv50_pc *pc, struct nv50_reg *dst, struct nv50_reg *src, e->inst[0] |= 0xa0000000; e->inst[1] |= 0x00004000; - e->inst[1] |= (cop << 16); + e->inst[1] |= (cvn << 16); e->inst[1] |= (fmt << 24); set_src_0(pc, src, e...
2009 Jun 21
0
[PATCH] nv50: support for SLE, SNE, SEQ, SGT
...t nv50_reg *src) #define CVT_F32_F32_ROP 0xcc static void -emit_cvt(struct nv50_pc *pc, struct nv50_reg *dst, struct nv50_reg *src, - int wp, unsigned cop, unsigned fmt) +emit_cvt(struct nv50_pc *pc, struct nv50_reg *dst, int wp, + struct nv50_reg *src, unsigned cvn, unsigned fmt) { struct nv50_program_exec *e; @@ -829,7 +833,7 @@ emit_cvt(struct nv50_pc *pc, struct nv50_reg *dst, struct nv50_reg *src, e->inst[0] |= 0xa0000000; e->inst[1] |= 0x00004000; - e->inst[1] |= (cop << 16); + e->inst[1] |= (cvn << 16); e->inst[1] |= (fmt << 24); set_src_0(pc, src, e...
2009 Jun 24
0
[PATCH] nv50: fix previous patches
...ll color outputs) + * FP results: can DEPR output be mapped to another register ? + * (currently it's index is that of the last color's register + 1) * * 1298 = 0x00000004; or 0x00000005 if DEPR is written * @@ -444,7 +445,7 @@ set_immd(struct nv50_pc *pc, struct nv50_reg *imm, struct nv50_program_exec *e) #define INTERP_LINEAR 0 -#define INTERP_FLAT 1 +#define INTERP_FLAT 1 #define INTERP_PERSPECTIVE 2 #define INTERP_CENTROID 4 @@ -1852,6 +1853,10 @@ prep_inspect_insn(struct nv50_pc *pc, const union tgsi_full_token *tok, dst = &insn->FullDstRegisters[0].DstRegister; mask...
2009 Sep 12
0
[PATCH 10/13] nv50: proper linkage between VP and FP
...oy(struct nv50_context *nv50, struct nv50_program *p) { diff --git a/src/gallium/drivers/nv50/nv50_program.h b/src/gallium/drivers/nv50/nv50_program.h index 096e047..cb10d36 100644 --- a/src/gallium/drivers/nv50/nv50_program.h +++ b/src/gallium/drivers/nv50/nv50_program.h @@ -15,6 +15,13 @@ struct nv50_program_exec { } param; }; +struct nv50_sreg4 { + uint8_t hw_id; + uint8_t tgsi_id; + uint8_t mask; + boolean linear; +}; + struct nv50_program { struct pipe_shader_state pipe; struct tgsi_shader_info info; @@ -36,14 +43,19 @@ struct nv50_program { struct { unsigned high_temp; unsigned high_re...