diff options
author | Christoph Bumiller <[email protected]> | 2012-01-12 19:12:02 +0100 |
---|---|---|
committer | Christoph Bumiller <[email protected]> | 2012-01-12 22:38:01 +0100 |
commit | 7b6881932a71b36dd47f63200c9dbee8e2b9af4f (patch) | |
tree | 3a3c87ab39164e76e6dfd5df71b18553ba501ac0 /src/gallium/drivers/nvc0/nvc0_program.c | |
parent | cb254b75d7d971b3f1baab45a82cedf0bd6c36c4 (diff) |
nvc0: fix submission of VertexID and EdgeFlag in push mode
NOTE: This is a candidate for the 8.0 branch.
Diffstat (limited to 'src/gallium/drivers/nvc0/nvc0_program.c')
-rw-r--r-- | src/gallium/drivers/nvc0/nvc0_program.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/gallium/drivers/nvc0/nvc0_program.c b/src/gallium/drivers/nvc0/nvc0_program.c index 813008cd537..cff76fe67f3 100644 --- a/src/gallium/drivers/nvc0/nvc0_program.c +++ b/src/gallium/drivers/nvc0/nvc0_program.c @@ -107,7 +107,7 @@ nvc0_vp_assign_input_slots(struct nv50_ir_prog_info *info) for (n = 0, i = 0; i < info->numInputs; ++i) { switch (info->in[i].sn) { - case TGSI_SEMANTIC_INSTANCEID: + case TGSI_SEMANTIC_INSTANCEID: /* for SM4 only, in TGSI they're SVs */ case TGSI_SEMANTIC_VERTEXID: info->in[i].mask = 0x1; info->in[i].slot[0] = @@ -580,7 +580,11 @@ nvc0_program_translate(struct nvc0_program *prog) prog->relocs = info->bin.relocData; prog->max_gpr = MAX2(4, (info->bin.maxGPR + 1)); - prog->vp.edgeflag = PIPE_MAX_ATTRIBS; + prog->vp.need_vertex_id = info->io.vertexId < PIPE_MAX_SHADER_INPUTS; + + if (info->io.edgeFlagOut < PIPE_MAX_ATTRIBS) + info->out[info->io.edgeFlagOut].mask = 0; /* for headergen */ + prog->vp.edgeflag = info->io.edgeFlagIn; switch (prog->type) { case PIPE_SHADER_VERTEX: |