Login
Username:

Password:

Remember me



Lost Password?

Register now!
Main Menu
Who's Online
1 user(s) are online (1 user(s) are browsing Forum)

Members: 0
Guests: 1

more...

Browsing this Thread:   1 Anonymous Users





Best method to blit a frame buffer in a rastport

Joined:
1/16 4:08
From France
Group:
Member
Posts: 7
Offline
I'm currently in the process of porting a MorphOS software to AROS (and AmigaOS 4).

This software is generating a real time display in the form of frame buffer (which could be of any format: ARGB32, RGBA32, RBG15...) and I was wondering what is the best way on AROS to put this frame buffer into a rastport (or an overlay?).

On MorphOS, there are three display engines. The best one is the overlay (very fast and bilinear filter). Another one is using TinyGL but it is not very efficient (I guess it is not using the good GL method). And the last one is using ScaleWritePixelArray() (which actually looks accelerated on most hardwares).

By now, my AROS port is working using the ScaleWritePixelArray(). I'm targerting AEROS on Raspberry Pi... and it looks to be quite a slow method.

I'm already implementing a dedicated display engine for AmigaOS 4 port (using the compositing APIs), and I would like to also add a dedicated one for AROS.

So, what would be the best rendering method to use on AROS in this case?

Thank you!

Posted on: 2/16 11:50
Transfer the post to other applications Transfer


Re: Best method to blit a frame buffer in a rastport

Joined:
2004/3/29 9:54
From Scotland "The Cold"
Group:
Member
Posts: 2023
Offline
Quote:

Jeckel wrote:
I'm currently in the process of porting a MorphOS software to AROS (and AmigaOS 4).

This software is generating a real time display in the form of frame buffer (which could be of any format: ARGB32, RGBA32, RBG15...) and I was wondering what is the best way on AROS to put this frame buffer into a rastport (or an overlay?).

On MorphOS, there are three display engines. The best one is the overlay (very fast and bilinear filter). Another one is using TinyGL but it is not very efficient (I guess it is not using the good GL method). And the last one is using ScaleWritePixelArray() (which actually looks accelerated on most hardwares).


Your could use either OpenGL or ScaleWritePixelArray, however neither is guaranteed/likely to be hardware accelerated.

on hosted builds a lot of gfx operations can be painfully slow, and while there is the option of hostgl - if it works at all for you is hit and miss, and even then the way it works isn't particularly safe.

Quote:

By now, my AROS port is working using the ScaleWritePixelArray(). I'm targerting AEROS on Raspberry Pi... and it looks to be quite a slow method.

I'm already implementing a dedicated display engine for AmigaOS 4 port (using the compositing APIs), and I would like to also add a dedicated one for AROS.

So, what would be the best rendering method to use on AROS in this case?

Thank you!

Posted on: 2/16 17:37
_________________
Click to see original Image in a new window
Transfer the post to other applications Transfer


Re: Best method to blit a frame buffer in a rastport

Joined:
1/16 4:08
From France
Group:
Member
Posts: 7
Offline
Ok, thanks.

So I think I'm out of luck again. :)

Posted on: 2/19 5:27
Transfer the post to other applications Transfer


Re: Best method to blit a frame buffer in a rastport

Joined:
1/16 4:08
From France
Group:
Member
Posts: 7
Offline
FYI, I did further tests on AEROS/Pi and I can confirm that:

ScalePixelArray() is very *very* slow. Basically unusable.
WritePixelArray() has an acceptable speed (but no scaling on course).
AROSMesa seems not to be supported (I couldn't create any GL context).

It looks like there is no suitable solution to efficiently blit&scale a frame buffer into a raster port.

Bad luck. :(

Posted on: 2/23 2:22
Transfer the post to other applications Transfer


Re: Best method to blit a frame buffer in a rastport

Joined:
2004/4/7 4:26
Group:
Member
Posts: 4340
Offline
BUT

there are other architectures where accelerated MESA method might be supported, for instance common PCs with supported Nvidia and Intel GPUs. Would you please check, or let someone with supported hardware chek for you, if they might work?

Posted on: 2/23 5:00
_________________
p.bes
Icaros Desktop AROS distribution mantainer
Transfer the post to other applications Transfer


Re: Best method to blit a frame buffer in a rastport

Joined:
2004/3/29 9:54
From Scotland "The Cold"
Group:
Member
Posts: 2023
Offline
Quote:

paolone wrote:
BUT

there are other architectures where accelerated MESA method might be supported, for instance common PCs with supported Nvidia and Intel GPUs. Would you please check, or let someone with supported hardware chek for you, if they might work?


Even on VESA the scaled operation would work at a reasonable rate - the problem is, he wants to specifically target the raspi and hosted.

Posted on: 2/23 7:51
_________________
Click to see original Image in a new window
Transfer the post to other applications Transfer


Re: Best method to blit a frame buffer in a rastport

Joined:
2011/4/18 7:10
From Germany
Group:
Member
Posts: 601
Offline
Quote:

Jeckel wrote:

AROSMesa seems not to be supported (I couldn't create any GL context).


ahh, good to know, I'm not the only one where the GL context does not work on RasPi.


on Topic:

one could try to write into a temp Rastport scale the Bitmap down with "BitmapScale()" and Blit that to the real RastPort with "BltBitMapRastPort()".

or

just write an own scaling routine, nearest neighbor, is already faster then the ScalePixelArray() (this is what I did in LCL, but because of other reasons -> keep the Alpha channel)

Posted on: 2/23 9:25
Transfer the post to other applications Transfer


Re: Best method to blit a frame buffer in a rastport

Joined:
2008/2/5 6:58
From Sunny Finland
Group:
Member
Posts: 994
Offline
I enabled some if'ed out code on my hosted build and scalepixelarray seems to go a bit faster

https://youtu.be/DVnM2SExNfg

Posted on: 2/23 15:33
Transfer the post to other applications Transfer






You can view topic.
You cannot start a new topic.
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.

[Advanced Search]


Search
Top Posters
1 paolone
paolone
4340
2 magorium
magorium
4095
3 phoenixkonsole
phoenixkonsole
3887
4 nikolaos
nikolaos
3677
5 deadwood
deadwood
2923
6 ncafferkey
ncafferkey
2616
7 mazze
mazze
2207
8 clusteruk
clusteruk
2068
9 Kalamatee
Kalamatee
2023
10 damocles
damocles
1789
© 2004-2017 AROS Exec