summaryrefslogtreecommitdiff
path: root/Development/Documentation/GlamorPerformance.mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'Development/Documentation/GlamorPerformance.mdwn')
-rw-r--r--Development/Documentation/GlamorPerformance.mdwn6
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|https://www.opengl.org/registry/specs/EXT/window_rectangles.txt]] 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.