[squeak-dev] Re: Need someone to test if NBOpenGL works for you on
win32
Andreas Raab
andreas.raab at gmx.de
Mon May 24 21:18:09 UTC 2010
On 5/24/2010 1:28 PM, Igor Stasenko wrote:
> On 24 May 2010 23:06, Levente Uzonyi<leves at elte.hu> wrote:
>> On Mon, 24 May 2010, Igor Stasenko wrote:
>>
>>> Btw, i noticed that running it full-screen in pharo is still quite
>>> fast and smooth,
>>> which makes me wonder, what extra a squeak image does to perform
>>> blitting on screen.
>>> Something slows things down there.
>>
>> Did you try the profiler (Extras menu)? I found it pretty useful when I was
>> hacking RFB recently.
>>
>
> The tally looks weird :)
http://lists.squeakfoundation.org/pipermail/squeak-dev/2009-February/134405.html
A real-world case of issue #3.
Cheers,
- Andreas
> - 100146 tallies, 100419 msec.
>
> **Tree**
> --------------------------------
> Process: other processes
> --------------------------------
> 5.7% {5724ms} EventSensor>>eventTickler
> 5.7% {5724ms} Delay>>wait
> 5.7% {5724ms} primitives
> --------------------------------
> Process: (40) 43725: nil
> --------------------------------
> 94.3% {94695ms} WorldState>>doOneCycleFor:
> 94.3% {94695ms} WorldState>>doOneCycleNowFor:
> 93.9% {94293ms} WorldState>>displayWorldSafely:
> 93.9% {94293ms} PasteUpMorph>>displayWorld
> 93.9% {94293ms} PasteUpMorph>>privateOuterDisplayWorld
> 93.9% {94293ms} WorldState>>displayWorld:submorphs:
> 85.6% {85959ms} WorldState>>drawWorld:submorphs:invalidAreasOn:
> |85.3% {85657ms} FormCanvas(Canvas)>>fullDrawMorph:
> | 85.3% {85657ms} FormCanvas(Canvas)>>fullDraw:
> | 85.3% {85657ms} SystemWindow(Morph)>>fullDrawOn:
> | 39.6% {39766ms} SystemWindow(Morph)>>hasRolloverBorder
> | |39.6% {39766ms} primitives
> | 34.2% {34343ms} SystemWindow(Morph)>>drawSubmorphsOn:
> | |34.1% {34243ms} FormCanvas(Canvas)>>fullDrawMorph:
> | | 34.1% {34243ms} FormCanvas(Canvas)>>fullDraw:
> | | 34.1% {34243ms} GLViewportMorph(Morph)>>fullDrawOn:
> | | 33.9% {34042ms} FormCanvas(Canvas)>>drawMorph:
> | | 33.9% {34042ms} FormCanvas(Canvas)>>draw:
> | | 33.9% {34042ms} GLViewportMorph>>drawOn:
> | | 32.8% {32937ms}
> NBMSAAOffscreenDisplay>>updateForm:bounds:
> | | 32.7% {32837ms}
> NBGLFrameBuffer>>bindAsDrawBuffer
> | 11.0% {11046ms} FormCanvas(Canvas)>>drawMorph:
> | 10.9% {10946ms} FormCanvas(Canvas)>>draw:
> | 10.9% {10946ms} SystemWindow(Morph)>>drawOn:
> | 10.9% {10946ms}
> FormCanvas(Canvas)>>fillRectangle:fillStyle:borderStyle:
> | 10.8% {10845ms}
> FormCanvas>>fillRectangle:fillStyle:
> | 10.8% {10845ms}
> FormCanvas>>balloonFillRectangle:fillStyle:
> | 10.8% {10845ms}
> BalloonCanvas>>fillRectangle:fillStyle:
> | 10.8% {10845ms}
> BalloonCanvas>>drawRectangle:color:borderWidth:borderColor:
> | 10.7% {10745ms}
> BalloonEngine>>drawRectangle:fill:bor...borderColor:transform:
> | 10.7% {10745ms}
> BalloonEngine>>postFlushIfNeeded
> | 10.7% {10745ms} BalloonEngine>>copyBits
> | 10.7% {10745ms}
> BalloonEngine>>copyLoopFaster
> | 10.7% {10745ms} primitives
> 8.3% {8335ms} WorldState>>forceDamageToScreen:
> 8.3% {8335ms} DisplayScreen>>forceDamageToScreen:
> 8.3% {8335ms} OrderedCollection>>do:
>
> **Leaves**
> 39.6% {39766ms} SystemWindow(Morph)>>hasRolloverBorder
> 32.7% {32837ms} NBGLFrameBuffer>>bindAsDrawBuffer
> 10.7% {10745ms} BalloonEngine>>copyLoopFaster
> 8.3% {8335ms} OrderedCollection>>do:
> 5.7% {5724ms} Delay>>wait
>
> **Memory**
> old +193,508 bytes
> young +173,384 bytes
> used +366,892 bytes
> free -366,892 bytes
>
> **GCs**
> full 0 totalling 0ms (0.0% uptime)
> incr 1331 totalling 356ms (0.0% uptime), avg 0.0ms
> tenures 2 (avg 665 GCs/tenure)
> root table 0 overflows
>
> --------
> This is weird it shows that it spends 40% of time in
> SystemWindow(Morph)>>hasRolloverBorder
>
> The actual workload should be concentrated here:
> | | 32.8% {32937ms}
> NBMSAAOffscreenDisplay>>updateForm:bounds:
> | | 32.7% {32837ms}
> NBGLFrameBuffer>>bindAsDrawBuffer
>
> but it takes only 1/3 of all time (this is including blitting bits
> back to system memory).
>
>
>
> What is interesting, that if there is no copy to system memory,
> rendering these simple things (about
> 60 glyphs with nice AA), takes less than 2% of time:
>
> | 1.6% {689ms} GLViewportMorph>>drawOn:
>
> while most of the time, again spent in #hasRolloverBorder
> **Leaves**
> 61.3% {26403ms} SystemWindow(Morph)>>hasRolloverBorder
> 15.9% {6848ms} BalloonEngine>>copyLoopFaster
> 12.0% {5169ms} OrderedCollection>>do:
> 4.7% {2024ms} Delay>>wait
>
> So, it could run 32%/2% ~~ 16 times faster
>
>
>>
>> Levente
>>
>>>
>>> In both images, i used:
>>>
>>> Display depth 32
>>> Display isLittleEndian true
>>>
>>>
>>> --
>>> Best regards,
>>> Igor Stasenko AKA sig.
>>>
>>>
>>
>>
>
>
>
More information about the Squeak-dev
mailing list
|