Previous Thread
Next Thread
Print Thread
Page 3 of 3 1 2 3
Re: BBC Video WIP [Re: Vas Crabb] #113628
06/29/18 11:39 AM
06/29/18 11:39 AM
Joined: Apr 2012
Posts: 217
UK
Pernod Offline OP
Senior Member
Pernod  Offline OP
Senior Member
Joined: Apr 2012
Posts: 217
UK
Originally Posted by Vas Crabb
If you've got horizontal resolution changes within a line, you need to render at lowest common multiple. A per-pixel timer would kill performance.

I now think a per-pixel timer would be overkill. The CRTC registers are defined in characters, so a per-character timer should be sufficient. Typical values would be 128 horizontal characters of which 80 are displayed. Would this appease your performance concerns?

Originally Posted by Vas Crabb
If you need to render per-pixel, you'd be better off making the video chip implement device_execute_interface and letting the scheduler deal with it.

If I need to take this option could you elaborate on what it would involve, any examples of it's usage?

I'd prefer to implement something like MC6845_UPDATE_CHAR that enhances the use of the 6845, but doesn't affect machines using MC6845_UPDATE_ROW that don't make changes during scanline.

Last edited by Pernod; 06/29/18 11:41 AM.

BBC Model B, ATPL Sidewise, Acorn Speech, 2xWatford Floppy Drives, AMX Mouse, Viglen case, etc.
Re: BBC Video WIP [Re: Pernod] #113629
06/29/18 02:10 PM
06/29/18 02:10 PM
Joined: Feb 2004
Posts: 1,986
Sydney, Australia
Vas Crabb Offline
Very Senior Member
Vas Crabb  Offline
Very Senior Member
Joined: Feb 2004
Posts: 1,986
Sydney, Australia
I still think a timer per character cell is going to be a lot of overhead. All the CPUs and various other things like the POKEY sound chip implement device_execute_interface. If you go this way, you can cause synchronisation when things actually change rather than running a pessimistic timer.

Alternatively you could use a timer that triggers at the end of a scanline, but trigger partial updates when something happens that affects rendering. You can check the time in the current executable device's domain at the point where you get a register change etc. to work out how far through the line you are. This would work well enough if only a single executable device (e.g. CPU) can cause register changes,

Page 3 of 3 1 2 3

Who's Online Now
0 registered members (), 87 guests, and 2 spiders.
Key: Admin, Global Mod, Mod
Shout Box
Forum Statistics
Forums9
Topics8,575
Posts112,038
Members4,812
Most Online225
May 26th, 2014
Powered by UBB.threads™ PHP Forum Software 7.6.1.1
(Release build 20180111)
Page Time: 0.025s Queries: 14 (0.011s) Memory: 5.6440 MB (Peak: 5.8024 MB) Zlib enabled. Server Time: 2018-09-24 01:57:50 UTC