[PATCH 02/13] glamor: Add glamor_program based copy acceleration
Keith Packard
keithp at keithp.com
Tue May 13 22:57:07 PDT 2014
Markus Wick <markus at selfnet.de> writes:
> Am 2014-05-13 17:34, schrieb Keith Packard:
>> Sure, if glsl had a 'round' function I'd use it in a second :-)
>
> It was added in glsl130. As you use uvec which was also added in
> glsl130, it's fine.
Cool. I've done a bit of performance analysis with this change and the
results aren't conclusive yet. Obviously, I'm going to pick the code
which goes faster for me :-)
> I hope to save some framebuffer switching. As framebuffer switches needs
> much more validating than texture binding or uniform updates, it should
> be moved to the outer loop.
I'm not too worried about frame buffer switching -- anything allocating
target surfaces larger than we can render to is probably doing something
wrong. I do see applications allocating large source images though, so
we should strive to make that reasonably fast.
Perhaps we should add an x11perf test case that draws from/to enormous
images and see how things look. I've only tested for correctness up to
this point.
> I'm more thinking about a box loop.
If you can write something that looks cleaner, that'd be awesome. I'm
all for making the code as readable as possible.
> So that's what the element buffer is for. Just emit 6 vertices as
> triangles per quad and you'll get your quads :)
> 0 1 2 0 2 3 4 5 6 4 6 7 ...
Ah, ok. I was doing the easiest non-quad path I could come up with as I
really don't care about GLES :-)
> I wanted to say that we don't have to discard the temp copy directly. We
> can still copy by fb from there. Maybe this has some advantages, but I
> doubt.
I can't imagine that would be faster -- you'd have to wait for the copy
to complete before even starting the fallback, and presumably the
fallback won't be any faster this way...
> This commend doesn't describe why we have to call glTextureBarrierNV
> without overlapping copys at all. We only need it for multiple X11 copy
> calls.
Not just copy calls, we have to put a barrier before any operation using
the dest as source because *any* rendering occurring before the copy
would need to be correctly synchronized for this to work.
--
keith.packard at intel.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 810 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg-devel/attachments/20140513/bcfd7e69/attachment.sig>
More information about the xorg-devel
mailing list