path: root/Development/Documentation/GlamorPerformance.mdwn
diff options
authorAdamJackson <AdamJackson@web>2017-01-16 17:47:53 +0000
committerxorg <>2017-01-16 17:47:53 +0000
commitb7f315a21d4050d50f9877d7b1fc80ec5fe7b9c0 (patch)
treef378599f0fee665b0137e8042d9fa01ec7594815 /Development/Documentation/GlamorPerformance.mdwn
parentdc5fbd5bf2b54f50f62428f227b6759082522660 (diff)
idea for optimizing scrolling
Diffstat (limited to 'Development/Documentation/GlamorPerformance.mdwn')
1 files changed, 6 insertions, 0 deletions
diff --git a/Development/Documentation/GlamorPerformance.mdwn b/Development/Documentation/GlamorPerformance.mdwn
index 8c3eb369..e445a220 100644
--- a/Development/Documentation/GlamorPerformance.mdwn
+++ b/Development/Documentation/GlamorPerformance.mdwn
@@ -8,6 +8,12 @@ We could probably accelerate both of the above if the GL(SL) below us has someth
Composite clip walk could likely use [[EXT_window_rectangles|]] instead of glScissor. Alternatively, if GL had an R1 texture format (effectively a bitmap) then it might be a win to use that as a clip mask.
+### Blits
+Overlapping blits are hard for GL. We handle them by allocating a temporary the size of the overlapping region, copy into that, and then back. For large overlaps it would be cheaper to allocate a new fbo the same size as the source, copy into the (clipped) destination, copy the rest untranslated from the source, and swap the destination in as the new pixmap and free the original. "Large" is probably some heuristic percentage of the image dirtied by the blit.
+This would have obvious interactions with DRI though.
### Image ops
PutImage is implemented with TexSubImage2D, so is only accelerated for GXcopy operations. If LogicOp works, you could accelerate this by using a temporary texture and drawing through it to the destination.