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