--- src/gallium/drivers/nv50/nv50_program.c | 9 +++++++++ src/gallium/drivers/nv50/nv50_program.h | 1 + 2 files changed, 10 insertions(+), 0 deletions(-) diff --git a/src/gallium/drivers/nv50/nv50_program.c b/src/gallium/drivers/nv50/nv50_program.c index 74f5cff..d7ab28a 100644 --- a/src/gallium/drivers/nv50/nv50_program.c +++ b/src/gallium/drivers/nv50/nv50_program.c @@ -1845,6 +1845,9 @@ nv50_program_tx_prep(struct nv50_pc *pc) if (pc->p->type == PIPE_SHADER_VERTEX) bcol[c] = first; break; + case TGSI_SEMANTIC_PSIZE: + pc->p->cfg.vp.ptsz = first * 4; + break; default: break; } @@ -2645,6 +2648,12 @@ nv50_linkage_create(struct nv50_context *nv50) map[m / 4] |= k << (8 * (m % 4)); } + if (nv50->rasterizer->pipe.point_size_per_vertex) { + map[m / 4] |= vp->cfg.vp.ptsz << (8 * (m % 4)); + regs[3] |= (m << 4) | 1; + m++; + } + so_method(so, tesla, 0x16ac, 2); so_data (so, m); so_data (so, vp->cfg.high_temp); diff --git a/src/gallium/drivers/nv50/nv50_program.h b/src/gallium/drivers/nv50/nv50_program.h index bd28d21..1206aab 100644 --- a/src/gallium/drivers/nv50/nv50_program.h +++ b/src/gallium/drivers/nv50/nv50_program.h @@ -50,6 +50,7 @@ struct nv50_program { struct { unsigned attr[2]; unsigned bcol; + unsigned ptsz; unsigned clip_ctrl; struct pipe_clip_state ucp; } vp; -- 1.6.0.6 --------------090503050107050804030002 Content-Type: text/plain; name="0011-nv50-better-insn-generation.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="0011-nv50-better-insn-generation.patch"