aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStéphane Marchesin <[email protected]>2011-06-26 13:40:54 -0700
committerStéphane Marchesin <[email protected]>2011-06-27 02:05:59 -0700
commit811963a7aed4d4ea9a3b2c8ad4db6a5c3f118956 (patch)
tree2542db7499ccf5e72ec0fe72415b1499939ad834
parentd2f05283d2226f3285dccfc373ee9e314a8c95c8 (diff)
i915g: Implement fake DDX/DDY.
-rw-r--r--src/gallium/drivers/i915/i915_fpc_translate.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/gallium/drivers/i915/i915_fpc_translate.c b/src/gallium/drivers/i915/i915_fpc_translate.c
index ec2c31685cb..6948fc368f3 100644
--- a/src/gallium/drivers/i915/i915_fpc_translate.c
+++ b/src/gallium/drivers/i915/i915_fpc_translate.c
@@ -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);