So, a couple months ago I opined about the inability of Gallium to
guarantee non-overlapping blits. I need to revisit the subject.

I can't detect when blits will overlap, every time, without massive hax,
and I'm not terribly certain that the hax work. Somehow (probably
through texture blanketing) I'm seeing two BOs, overlapping, being used
in texture_copy. I have no way of detecting that overlap at the moment,
and doing so is going to be icky.

I propose PIPE_CAP_BLITTER, a simple pipe cap that just says, "Yes, I
have a 2D engine or some other way to do overlapping blits magically."
If this isn't set, use one of the util functions that semi-fallback to
textured drawing instead of straight surface_copy. In some state
trackers (Xorg EXA) this also can be used to indicate to higher
userspace the abilities of the card in a way that permits optimizations.

Sorry for weird word choice; I'm running on like three cans of Red Bull
and a sleep deficit.

~ C.

------------------------------------------------------------------------------
_______________________________________________
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to