English Amiga Board


Go Back   English Amiga Board > Coders > Coders. Asm / Hardware

 
 
Thread Tools
Old 10 March 2018, 18:26   #41
Samurai_Crow
Total Chaos forever!
 
Samurai_Crow's Avatar
 
Join Date: Aug 2007
Location: Waterville, MN, USA
Age: 49
Posts: 2,192
Quote:
Originally Posted by PeterK View Post
Ok, a particular task (game) can use the blitter directly and not through system calls like BltBitMapRastport(). That way, it can make a decision on every graphical object, whether to use FBlit or the blitter. FBlit may also be used directly, through fblit.library calls, I don't know.
Don't you know that BltBitMapRastPort calls QBlit to add a node to a rendering queue? The GameSmith runtime library only adds a background task to CPU blit in parallel to the blitter using the same rendering list. FBlit patches the QBlit function and probably others so only the CPU can blit.
Samurai_Crow is offline  
Old 10 March 2018, 18:38   #42
PeterK
Registered User
 
Join Date: Apr 2005
Location: digital hell, Germany, after 1984, but worse
Posts: 3,383
No sorry, I don't know anything about QBlit or GameSmith. I just noticed that there is a QBSBlitPatch option in your FBlit configuration. But I have no knowledge about the details like you. I only learned how to configure FBlit for the icons on WB 3.1 or 3.5+. And it's doing a good job. Thanks for that tool!

Last edited by PeterK; 10 March 2018 at 18:45.
PeterK is offline  
Old 10 March 2018, 18:58   #43
Samurai_Crow
Total Chaos forever!
 
Samurai_Crow's Avatar
 
Join Date: Aug 2007
Location: Waterville, MN, USA
Age: 49
Posts: 2,192
Quote:
Originally Posted by PeterK View Post
No sorry, I don't know anything about QBlit or GameSmith. I just noticed that there is a QBSBlitPatch option in your FBlit configuration. But I have no knowledge about the details like you. I only learned how to configure FBlit for the icons on WB 3.1 or 3.5+. And it's doing a good job. Thanks for that tool!
I am the maintainer of FBlit, not the author. I am glad you're able to use it though.
Samurai_Crow is offline  
Old 10 March 2018, 19:07   #44
coder76
Registered User
 
Join Date: Dec 2016
Location: Finland
Posts: 168
Quote:
Originally Posted by PeterK View Post
@coder76
Usually FBlit uses graphical objects in FastMem and the blitter is restricted to ChipMem. You have to make a global decision where you want to store your images. Using FBlit has no advantages if your images are located in ChipMem. And FBlit can not split a call like BltBitMapRastport() into two parts. How should that go? Or should it play "one (call) for me, one for you"?
I don't know how FBlit works in detail, but of course you need to store your data in both fast and chip ram, if blitter and CPU operates on same objects. Mainly thought about fonts, icons and some window rendering which can have copies in both chip and fast ram of same data, and is static data. If there is a lot of dynamic data that changes whole time, it can become a performance problem to update them both into chip and fast.
coder76 is offline  
Old 10 March 2018, 19:17   #45
Samurai_Crow
Total Chaos forever!
 
Samurai_Crow's Avatar
 
Join Date: Aug 2007
Location: Waterville, MN, USA
Age: 49
Posts: 2,192
Quote:
Originally Posted by coder76 View Post
I don't know how FBlit works in detail, but of course you need to store your data in both fast and chip ram, if blitter and CPU operates on same objects. Mainly thought about fonts, icons and some window rendering which can have copies in both chip and fast ram of same data, and is static data. If there is a lot of dynamic data that changes whole time, it can become a performance problem to update them both into chip and fast.
http://eab.abime.net/showthread.php?t=54913 shows that GameSmith is released from copyright. Use it for your game projects instead. FBlit is not as good for what you are trying to do.
Samurai_Crow is offline  
Old 10 March 2018, 19:37   #46
PeterK
Registered User
 
Join Date: Apr 2005
Location: digital hell, Germany, after 1984, but worse
Posts: 3,383
Quote:
Originally Posted by coder76 View Post
... you need to store your data in both fast and chip ram, if blitter and CPU operates on same objects. Mainly thought about fonts, icons and some window rendering which can have copies in both chip and fast ram of same data, and is static data. If there is a lot of dynamic data that changes whole time, it can become a performance problem to update them both into chip and fast.
If you are talking about Workbench regarding icons and windows there is the problem that WB processes all windows and icons in single tasking mode, one after another, and it has a global setting for the type of memory. Only DOpus5 opens all windows with their own tasks. I don't see any chance to achieve a parallel blitting of Workbench objects. That's only an option for other programs, like games.
PeterK is offline  
Old 10 March 2018, 22:10   #47
coder76
Registered User
 
Join Date: Dec 2016
Location: Finland
Posts: 168
@Samurai Crow
Thanks for the idea, but I'm used to hack Amiga hardware directly with just asm and maybe C. Got some experience from past, so not starting from a clean table.

@PeterK
Yes, ok. It seems that AmigaOS would then need to be rewritten to use CPU and blitter at same time.
coder76 is offline  
Old 11 March 2018, 07:41   #48
Samurai_Crow
Total Chaos forever!
 
Samurai_Crow's Avatar
 
Join Date: Aug 2007
Location: Waterville, MN, USA
Age: 49
Posts: 2,192
Quote:
Originally Posted by coder76 View Post
@Samurai Crow
Thanks for the idea, but I'm used to hack Amiga hardware directly with just asm and maybe C. Got some experience from past, so not starting from a clean table.
Good because those are the only two languages that GameSmith supports. The copper support needs work but the CPU assisted blitting is handy! Since it's released from copyright, I should build it into some Aros drivers or something.
Samurai_Crow is offline  
Old 11 March 2018, 12:19   #49
coder76
Registered User
 
Join Date: Dec 2016
Location: Finland
Posts: 168
Yes ok, but I still think GameSmith doesn't offer what I'm looking for. After reading some Atari Forums, I became interested in how one could implement software sprites on Amiga, and that means drawing sprites as fast as possible with CPU without blitter assistance. They use e.g. sprite code generators on Atari ST and Falcon which is some precomputed m68k code optimized for each sprite. Then one can also use preshifted versions of sprites to avoid using expensive bitshifts when plotting graphics with CPU, but they do require some 16 times more memory for word alignment.

Bitfield instructions are another possibility for software sprites that I have looked into, and pretty much nobody has used these, and they certainly do work, but I haven't yet made some performance comparisons how fast these are vs other methods.
coder76 is offline  
Old 11 March 2018, 13:27   #50
Photon
Moderator
 
Photon's Avatar
 
Join Date: Nov 2004
Location: Eksjö / Sweden
Posts: 5,650
Quote:
Originally Posted by coder76 View Post
Can Fblit use CPU and blitter at same time for same tasks? on AGA machines with fastram, there is certainly enough bandwidth for CPU and blitter to work in parallell into chip ram. With 32-bit memory accesses for everything the bandwidth is 14 MB/sec to chip ram, but as you know blitter has only 16-bit access, bitplanes can be 64-bit (in 4X mode), and CPU has 32-bit memory accesses for 68020+. This means that CPU+blitter bandwidth can maximally be around 10 MB/sec into chip ram, which is quite an improvement over only blitter (around 3,3 MB/sec), or CPU only (7 MB/sec).
Doesn't work like that.
Photon is offline  
Old 11 March 2018, 13:58   #51
Romanujan
Registered User
 
Join Date: Dec 2007
Location: Szczecin/Poland
Posts: 424
Quote:
Originally Posted by Samurai_Crow View Post
I am the maintainer of FBlit, not the author.
Looks like FBlit has now two maintainers: http://leblogdecosmos.blogspot.hk/20...ibrary-11.html
Romanujan is offline  
Old 11 March 2018, 14:49   #52
Samurai_Crow
Total Chaos forever!
 
Samurai_Crow's Avatar
 
Join Date: Aug 2007
Location: Waterville, MN, USA
Age: 49
Posts: 2,192
Quote:
Originally Posted by Romanujan View Post
Looks like FBlit has now two maintainers: http://leblogdecosmos.blogspot.hk/20...ibrary-11.html
Cosmos has a habit of reverse engineering binary files. He probably didn't know the source code was public.

Edit: I see he got the source from the original author. We'll see if he sends a pull request. Unfortunately, changing the url to .com didn't put the post buttons in English and they were graphical so I couldn't read the French.

Last edited by Samurai_Crow; 11 March 2018 at 15:02.
Samurai_Crow is offline  
Old 11 March 2018, 16:59   #53
coder76
Registered User
 
Join Date: Dec 2016
Location: Finland
Posts: 168
Quote:
Originally Posted by Photon View Post
Doesn't work like that.
Could you be more specific? The tests on my Blizzard IV board on an A1200 with a 68030/50 MHz and fast ram gives over 10 MB/sec with cpu + blitter performing straight copies into chip ram at same time. This is with bitplane DMA off. On a 640x480 screen with 4 colors the bandwidth is still a bit above 9,0 MB/sec.

Edit: ok, had some trouble checking my results, it does seem that above holds only for using blitter channel D, and disabling rest channels. So you get a clear operation only as the straight copy. Using channel A is usually free, but not in this case, as it eats more chip bandwidth and slows down CPU. With A = D copy the speed of CPU declines pretty much and the above does not hold what I wrote.

Last edited by coder76; 11 March 2018 at 23:14.
coder76 is offline  
Old 14 March 2018, 11:15   #54
Samurai_Crow
Total Chaos forever!
 
Samurai_Crow's Avatar
 
Join Date: Aug 2007
Location: Waterville, MN, USA
Age: 49
Posts: 2,192
Quote:
Originally Posted by Romanujan View Post
Looks like FBlit has now two maintainers: http://leblogdecosmos.blogspot.hk/20...ibrary-11.html
It seems he didn't want his changes to be made public. Ah well....
Samurai_Crow is offline  
Old 14 March 2018, 17:20   #55
Korodny
Zone Friend
 
Join Date: Sep 2001
Location: Germany
Posts: 812
Quote:
Originally Posted by Samurai_Crow View Post
It seems he didn't want his changes to be made public. Ah well....
Which is probably a good thing, given that everybody who ever discussed code with him ran away screaming. Not to mention his complete disregard for other people's rights.
Korodny is offline  
Old 16 June 2020, 17:52   #56
ancalimon
Supernormal
 
ancalimon's Avatar
 
Join Date: Jul 2007
Location: Istanbul / Turkey
Age: 43
Posts: 1,416
Is there an updated version we can download?
ancalimon is offline  
Old 16 June 2020, 17:59   #57
Samurai_Crow
Total Chaos forever!
 
Samurai_Crow's Avatar
 
Join Date: Aug 2007
Location: Waterville, MN, USA
Age: 49
Posts: 2,192
Updated? Updated to what? Are you running into problems?
Samurai_Crow is offline  
Old 16 June 2020, 18:02   #58
ancalimon
Supernormal
 
ancalimon's Avatar
 
Join Date: Jul 2007
Location: Istanbul / Turkey
Age: 43
Posts: 1,416
Quote:
Originally Posted by Samurai_Crow View Post
Updated? Updated to what? Are you running into problems?

Artifacts on screen.
ancalimon is offline  
Old 16 June 2020, 18:08   #59
Samurai_Crow
Total Chaos forever!
 
Samurai_Crow's Avatar
 
Join Date: Aug 2007
Location: Waterville, MN, USA
Age: 49
Posts: 2,192
Uh oh. I haven't looked at the source in years.
Samurai_Crow is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Open-source scsi device Don_Adan Coders. System 92 05 January 2024 01:48
Please open source all the things wXR Amiga scene 382 21 April 2020 17:21
Open source CLI commands Mrs Beanbag Coders. System 13 10 December 2016 09:50
NewsRog goes Open Source Paul News 0 04 December 2004 16:37
BlitzBasic - Is now open source Djay Amiga scene 2 08 February 2003 01:09

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 02:44.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.10547 seconds with 15 queries