Mesa (master): mesa/st: add support for interpolate_at_* ops

Ilia Mirkin imirkin at kemper.freedesktop.org
Thu Jul 24 12:31:40 UTC 2014


Module: Mesa
Branch: master
Commit: 9c4959d0df524cf81395de59f15a4a1b19073aed
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9c4959d0df524cf81395de59f15a4a1b19073aed

Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date:   Sat Jul  5 23:32:06 2014 -0400

mesa/st: add support for interpolate_at_* ops

Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>

---

 src/mesa/state_tracker/st_glsl_to_tgsi.cpp |   12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
index 5c51e63..5ea1465 100644
--- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
+++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
@@ -2028,6 +2028,15 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
        */
       emit(ir, TGSI_OPCODE_MAD, result_dst, op[0], op[1], op[2]);
       break;
+   case ir_unop_interpolate_at_centroid:
+      emit(ir, TGSI_OPCODE_INTERP_CENTROID, result_dst, op[0]);
+      break;
+   case ir_binop_interpolate_at_offset:
+      emit(ir, TGSI_OPCODE_INTERP_OFFSET, result_dst, op[0], op[1]);
+      break;
+   case ir_binop_interpolate_at_sample:
+      emit(ir, TGSI_OPCODE_INTERP_SAMPLE, result_dst, op[0], op[1]);
+      break;
    case ir_unop_pack_snorm_2x16:
    case ir_unop_pack_unorm_2x16:
    case ir_unop_pack_half_2x16:
@@ -2049,9 +2058,6 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
    case ir_binop_ldexp:
    case ir_binop_carry:
    case ir_binop_borrow:
-   case ir_unop_interpolate_at_centroid:
-   case ir_binop_interpolate_at_offset:
-   case ir_binop_interpolate_at_sample:
       /* This operation is not supported, or should have already been handled.
        */
       assert(!"Invalid ir opcode in glsl_to_tgsi_visitor::visit()");




More information about the mesa-commit mailing list