#12138 NORM 13.1.0: Incorrect repeat rendering on XO-1.5
Zarro Boogs per Child
bugtracker at laptop.org
Fri Oct 5 13:39:20 EDT 2012
#12138: Incorrect repeat rendering on XO-1.5
---------------------------------------+------------------------------------
Reporter: dsd | Owner: jnettlet
Type: defect | Status: new
Priority: normal | Milestone: 13.1.0
Component: x window system | Version: not specified
Resolution: | Keywords:
Next_action: never set | Verified: 0
Deployment_affected: | Blockedby:
Blocking: |
---------------------------------------+------------------------------------
Comment(by dsd):
The source picture has dimensions 24x24 and destination 100x100.
If the source is 24x24, how can we composite an image larger than the
source itself starting from a coordinate outside of its bounds? This gives
a good answer: http://lists.x.org/archives/xorg-driver-
geode/2010-June/000688.html
In short, it is valid for EXA to ask us to go out of the bounds of the
source picture - including negative coordinates. Because no repeat is
specified, all the area outside of the source picture must be interpreted
as 0 - black.
When you think about this composite request and what the output rendering
should be, it makes sense.
In this case, it looks like the hardware is wrapping out-of-bounds
accesses back into the source pixmap, causing the repeat effect. As no
repeat is specified, this isn't what we want here.
Is there any documentation for the engine used for this work? e.g. all the
magic in via3DEmitQuad_H5 ? Maybe we can turn off the coordinate wrapping
and ask it to provide us with black.
If not, I see a few options for how to handle this, once we have detected
the out-of-bounds case:
# Perform an all-black solid fill of the entire destination region first,
then perform a clipped composite OpSrc operation to put the source picture
in the right place (without going outside of its coordinate bounds)
# Perform an appropriately clipped OpSrc composite operation to put the
source picture in place, then do 4 solid fills around the outside of it to
make the rest of the region black.
# Perform an appropriately clipped OpSrc composite operation to put the
source picture in place, then construct a mask that fills the destination
region but excludes the final location of the source picture, then perform
a solid black fill using the mask.
Which of these options do you see as most realistic?
--
Ticket URL: <http://dev.laptop.org/ticket/12138#comment:3>
One Laptop Per Child <http://laptop.org/>
OLPC bug tracking system
More information about the Bugs
mailing list