On Wed, 2009-07-01 at 23:47 -0700, Corbin Simpson wrote: > 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.
I think this is pretty reasonable -- the alternative is just to ditch the blitter functionality altogether. It's a pretty wierd little pimple on the side of an otherwise fairly focused set of interfaces, providing exceptions to most rules (eg: the only surfaces being modified are those bound with pipe_framebuffer_state... unless you use pipe_surface_copy()) I really wouldn't be sad to see them go... Keith ------------------------------------------------------------------------------ _______________________________________________ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev