It's not really a flush fix, you're just fixing wrong RESOURCE_ID in shaders.
The best solution would be not to add 2 in LLVM and not to subtract 2 here. Other than that, it looks good. Marek On Tue, Nov 20, 2012 at 11:26 PM, Vincent Lejeune <v...@ovi.com> wrote: > --- > src/gallium/drivers/r600/r600_llvm.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/src/gallium/drivers/r600/r600_llvm.c > b/src/gallium/drivers/r600/r600_llvm.c > index b3d4e6b..170dac7 100644 > --- a/src/gallium/drivers/r600/r600_llvm.c > +++ b/src/gallium/drivers/r600/r600_llvm.c > @@ -11,6 +11,7 @@ > #include "r600_asm.h" > #include "r600_opcodes.h" > #include "r600_shader.h" > +#include "r600_pipe.h" > #include "radeon_llvm.h" > #include "radeon_llvm_emit.h" > > @@ -324,8 +325,10 @@ static void llvm_emit_tex( > > sampler_src = emit_data->inst->Instruction.NumSrcRegs-1; > > + // XXX: Resource ID offset is R600_MAX_CONST_BUFFERS but LLVM already > adds 2 > + // to the generated machine resource id > args[c++] = lp_build_const_int32(gallivm, > - > emit_data->inst->Src[sampler_src].Register.Index); > + > emit_data->inst->Src[sampler_src].Register.Index + R600_MAX_CONST_BUFFERS - > 2); > args[c++] = lp_build_const_int32(gallivm, > emit_data->inst->Texture.Texture); > > -- > 1.7.11.7 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev