-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 04/22/2011 12:02 PM, Kenneth Graunke wrote: > Mesa already supports this because of NV_fragment_program. > > Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> > --- > src/mesa/program/ir_to_mesa.cpp | 13 +++++++++++-- > 1 files changed, 11 insertions(+), 2 deletions(-) > > I tried testing this by using texture2DGradARB in a fragment shader on swrast, > which didn't work. AFAIK that's a limitation of swrast, though, and not > necessarily a problem with this code. Perhaps this is of use to the Gallium > drivers...
Does the comparable NV_fragment_program (or ARB_fragment_program with 'OPTION NV_fragment_program;') code work on swrast? Does this produce the "same" results? > diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp > index 3c9b973..16a1c2c 100644 > --- a/src/mesa/program/ir_to_mesa.cpp > +++ b/src/mesa/program/ir_to_mesa.cpp > @@ -1967,7 +1967,7 @@ ir_to_mesa_visitor::visit(ir_call *ir) > void > ir_to_mesa_visitor::visit(ir_texture *ir) > { > - src_reg result_src, coord, lod_info, projector; > + src_reg result_src, coord, lod_info, projector, dx, dy; > dst_reg result_dst, coord_dst; > ir_to_mesa_instruction *inst = NULL; > prog_opcode opcode = OPCODE_NOP; > @@ -2009,6 +2009,12 @@ ir_to_mesa_visitor::visit(ir_texture *ir) > lod_info = this->result; > break; > case ir_txd: > + opcode = OPCODE_TXD; > + ir->lod_info.grad.dPdx->accept(this); > + dx = this->result; > + ir->lod_info.grad.dPdy->accept(this); > + dy = this->result; > + break; > case ir_txf: > assert(!"GLSL 1.30 features unsupported"); > break; > @@ -2081,7 +2087,10 @@ ir_to_mesa_visitor::visit(ir_texture *ir) > coord_dst.writemask = WRITEMASK_XYZW; > } > > - inst = emit(ir, opcode, result_dst, coord); > + if (opcode == OPCODE_TXD) > + inst = emit(ir, opcode, result_dst, coord, dx, dy); > + else > + inst = emit(ir, opcode, result_dst, coord); > > if (ir->shadow_comparitor) > inst->tex_shadow = GL_TRUE; -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/ iEYEARECAAYFAk218TAACgkQX1gOwKyEAw89dACdGS532L3LVyghk5vPk11AKvaM aAEAn07eVDhuo8Sf7Qm9EaIQ1BUHlzh4 =l7vm -----END PGP SIGNATURE----- _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev