Module: Mesa Branch: master Commit: 5755d1d6a7ff68c7d690d67c4cd64ef8e01ec2ed URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5755d1d6a7ff68c7d690d67c4cd64ef8e01ec2ed
Author: Marek Olšák <[email protected]> Date: Sun Aug 22 03:15:00 2010 +0200 ir_to_mesa: set IndirectRegisterFiles This fixes relative addressing of temporaries (and maybe others) in all gallium drivers. Acked on irc by Eric Anholt. --- src/mesa/program/ir_to_mesa.cpp | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp index da69d26..fc145b4 100644 --- a/src/mesa/program/ir_to_mesa.cpp +++ b/src/mesa/program/ir_to_mesa.cpp @@ -2569,6 +2569,14 @@ get_mesa_program(GLcontext *ctx, struct gl_shader_program *shader_program, mesa_inst->TexShadow = inst->tex_shadow; mesa_instruction_annotation[i] = inst->ir; + /* Set IndirectRegisterFiles. */ + if (mesa_inst->DstReg.RelAddr) + prog->IndirectRegisterFiles |= 1 << mesa_inst->DstReg.File; + + for (unsigned src = 0; src < 3; src++) + if (mesa_inst->SrcReg[src].RelAddr) + prog->IndirectRegisterFiles |= 1 << mesa_inst->SrcReg[src].File; + if (ctx->Shader.EmitNoIfs && mesa_inst->Opcode == OPCODE_IF) { shader_program->InfoLog = talloc_asprintf_append(shader_program->InfoLog, _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
