i915g: Implement fake DDX/DDY.
authorStéphane Marchesin <marcheu@chromium.org>
Sun, 26 Jun 2011 20:40:54 +0000 (13:40 -0700)
committerStéphane Marchesin <marcheu@chromium.org>
Mon, 27 Jun 2011 09:05:59 +0000 (02:05 -0700)
src/gallium/drivers/i915/i915_fpc_translate.c

index ec2c31685cb705757128cee1d1c9fa9ba69bea27..6948fc368f3c6ea7da48c169c8e522a589cf850a 100644 (file)
@@ -516,6 +516,18 @@ i915_translate_instruction(struct i915_fp_compile *p,
                       i915_emit_const4fv(p, cos_constants), 0);
       break;
 
+  case TGSI_OPCODE_DDX:
+  case TGSI_OPCODE_DDY:
+      /* XXX We just output 0 here */
+      debug_printf("Punting DDX/DDX\n");
+      src0 = get_result_vector(p, &inst->Dst[0]);
+      i915_emit_arith(p,
+                      A0_MOV,
+                      get_result_vector(p, &inst->Dst[0]),
+                      get_result_flags(inst), 0,
+                      swizzle(src0, ZERO, ZERO, ZERO, ZERO), 0, 0);
+      break;
+
   case TGSI_OPCODE_DP2:
       src0 = src_vector(p, &inst->Src[0], fs);
       src1 = src_vector(p, &inst->Src[1], fs);