summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Worth <cworth@cworth.org>2008-10-06 12:48:07 -0700
committerCarl Worth <cworth@cworth.org>2008-10-06 13:22:07 -0700
commit175b30e3828266a89021c2439119545099d72715 (patch)
tree11573bcd83bc70f270c094689da203f873ca71a0
parent21cce1998a10db520c390eb5061814867564c583 (diff)
Revert "Fallback to software for RepeatNone with transformed RGB-only pictures."
This reverts commit 76c9ece36e6400fd10f364ee330faea470e2da64. We've learned a new technique that should let us avoid this fallback to software. See following commit.
-rw-r--r--src/i965_render.c36
1 files changed, 0 insertions, 36 deletions
diff --git a/src/i965_render.c b/src/i965_render.c
index 709f3fdb..2b59e91d 100644
--- a/src/i965_render.c
+++ b/src/i965_render.c
@@ -254,42 +254,6 @@ i965_check_composite(int op, PicturePtr pSrcPicture, PicturePtr pMaskPicture,
if (!i965_get_dest_format(pDstPicture, &tmp1))
I830FALLBACK("Get Color buffer format\n");
- /* There's an infelicity of the 965 with respect to implementing
- * RepeatNone for a source picture without alpha. The hardware's
- * CLAMP_BORDER mode in this case doesn't match what Render, (and
- * everyone, really), wants. Render expects that samples outside
- * the bounds of the source picture will be transparent, but the
- * hardware is documented as follows:
- *
- * For surface formats with one or more channels missing, the
- * value from the border color is not used for the missing
- * channels, resulting in these channels resulting in the
- * overall default value (0 for colors and 1 for alpha)
- * regardless of whether border color is chosen.
- *
- * [Intel 965 PRM; Volume 4; Section 4.7.4 SAMPLER_BORDER_COLOR_STATE]
- *
- * It's that hard-coding of "1 for alpha" that kills us. Until we
- * figure out a way to get the hardware to do what we want, we'll
- * fall back to software. We fall back only if the operator uses
- * the source alpha, the source format has no alpha, and there's
- * a transform.
- *
- * For more complicated scenarios where there's a transform, but
- * it won't actually result in any sampling outside the source
- * picture, we'll have to rely on a higher layer,
- * (ReduceCompositeOp in render/picture.c), that actually has
- * access to the coordinates, to simplify the operator from Over
- * to Source, for example.
- */
- if (i965_blend_op[op].src_alpha &&
- (PICT_FORMAT_A(pSrcPicture->format) == 0) &&
- pSrcPicture->transform)
- {
- I830FALLBACK("No support for alpha (RepeatNone) for an RGB-only picture\n");
- }
-
-
return TRUE;
}