[patch #8781] [back] Faster bitmap drawing on Cairo

Josh Freeman <[email protected]>
Newsgroups gmane.comp.lib.gnustep.bugs
Message-ID <[email protected]>
URL:
  <http://savannah.gnu.org/patch/?8781>

                 Summary: [back] Faster bitmap drawing on Cairo
                 Project: GNUstep
            Submitted by: tedge
            Submitted on: Sun 25 Oct 2015 12:13:30 AM GMT
                Category: AppKit
                Priority: 5 - Normal
                  Status: None
                 Privacy: Public
             Assigned to: None
        Originator Email: 
             Open/Closed: Open
         Discussion Lock: Any

    _______________________________________________________

Details:

The attached patch speeds up -[CairoGState DPSimage:::::::::::] &
-[CairoGState GSReadRect:] for faster bitmap drawing to & from graphics
contexts. This makes PikoPixel's interactive tools more responsive on slow
hardware, such as a Raspberry Pi.

- Bitmap data is reformatted using uint32s instead of uchars, reducing the
number of memory operations

- Invariant objects returned in GSReadRect:'s dictionary are stored in a
static dictionary instead of being reallocated each time

A speed check program is also attached; On a Raspberry Pi 2B with the current
trunk, the {512,512}x500 speed checks take ~11 seconds for drawing & reading.
Using the patch, the speed checks take ~8 seconds for drawing (~27% speedup) &
~10 seconds for reading (~9% speedup).



    _______________________________________________________

File Attachments:


-------------------------------------------------------
Date: Sun 25 Oct 2015 12:13:30 AM GMT  Name: CairoGState_BitmapSpeedup.patch 
Size: 8kB   By: tedge

<http://savannah.gnu.org/patch/download.php?file_id=35281>
-------------------------------------------------------
Date: Sun 25 Oct 2015 12:13:30 AM GMT  Name: TestBitmapDrawSpeed.m  Size: 4kB 
 By: tedge

<http://savannah.gnu.org/patch/download.php?file_id=35282>

    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/patch/?8781>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.