From: Dave Airlie <airl...@redhat.com> This requires GLSL 1.30 enabled, which requires integer types enabled, so don't bother doing an INT to FLT conversion on it.
We should probably remove the instance id flt->int conversion when turning on native integers. this passes the three piglit tests with GLSL 1.30 forced on. Signed-off-by: Dave Airlie <airl...@redhat.com> --- src/gallium/drivers/r600/r600_shader.c | 23 +++++++++++++++-------- 1 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c index ad4aded..d07f7f8 100644 --- a/src/gallium/drivers/r600/r600_shader.c +++ b/src/gallium/drivers/r600/r600_shader.c @@ -451,8 +451,8 @@ static int tgsi_declaration(struct r600_shader_ctx *ctx) if ((r = r600_bytecode_add_alu(ctx->bc, &alu))) return r; break; - } - + } else if (d->Semantic.Name == TGSI_SEMANTIC_VERTEXID) + break; default: R600_ERR("unsupported file %d declaration\n", d->Declaration.File); return -EINVAL; @@ -539,12 +539,19 @@ static void tgsi_src(struct r600_shader_ctx *ctx, r600_src->sel = V_SQ_ALU_SRC_LITERAL; memcpy(r600_src->value, ctx->literals + index * 4, sizeof(r600_src->value)); } else if (tgsi_src->Register.File == TGSI_FILE_SYSTEM_VALUE) { - /* assume we wan't TGSI_SEMANTIC_INSTANCEID here */ - r600_src->swizzle[0] = 3; - r600_src->swizzle[1] = 3; - r600_src->swizzle[2] = 3; - r600_src->swizzle[3] = 3; - r600_src->sel = 0; + if (ctx->info.system_value_semantic_name[tgsi_src->Register.Index] == TGSI_SEMANTIC_INSTANCEID) { + r600_src->swizzle[0] = 3; + r600_src->swizzle[1] = 3; + r600_src->swizzle[2] = 3; + r600_src->swizzle[3] = 3; + r600_src->sel = 0; + } else if (ctx->info.system_value_semantic_name[tgsi_src->Register.Index] == TGSI_SEMANTIC_VERTEXID) { + r600_src->swizzle[0] = 0; + r600_src->swizzle[1] = 0; + r600_src->swizzle[2] = 0; + r600_src->swizzle[3] = 0; + r600_src->sel = 0; + } } else { if (tgsi_src->Register.Indirect) r600_src->rel = V_SQ_REL_RELATIVE; -- 1.7.7.5 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev