[squeak-dev] Need someone to test if NBOpenGL works for you on
win32
Igor Stasenko
siguctua at gmail.com
Mon May 24 20:28:59 UTC 2010
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 :)
- 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.
>>
>>
>
>
--
Best regards,
Igor Stasenko AKA sig.
More information about the Squeak-dev
mailing list
|