42bs Posted February 18, 2023 Share Posted February 18, 2023 Hi I wanted to test the Blitter -> GPU interrupt, but I see only the enable bit I the GPU flags register. No where else anything is mentioned regarding this. Any hint appreciated. Quote Link to comment Share on other sites More sharing options...
SCPCD Posted February 18, 2023 Share Posted February 18, 2023 The blitter generate an interrupt when it goes to "idle" state. :) 2 1 Quote Link to comment Share on other sites More sharing options...
jguff Posted February 18, 2023 Share Posted February 18, 2023 There is another page or so below what i've attached, that is pertinent as well. Attached tells you what address PC will jump to on interrupt. If this doesn't answer your question, you probably need to ask a more specific question. Quote Link to comment Share on other sites More sharing options...
42bs Posted February 18, 2023 Author Share Posted February 18, 2023 1 hour ago, jguff said: There is another page or so below what i've attached, that is pertinent as well. Attached tells you what address PC will jump to on interrupt. If this doesn't answer your question, you probably need to ask a more specific question. As I said, I see the bit in the flag register but nothing about when the interrupt will be generated Quote Link to comment Share on other sites More sharing options...
42bs Posted February 18, 2023 Author Share Posted February 18, 2023 (edited) 2 hours ago, SCPCD said: The blitter generate an interrupt when it goes to "idle" state. Is this a guess or did you try? I tested it so far only in VJ and BPE. But will try on real HW right away. Edit: @SCPCD you are right. Just tried it. So VJ and BPE do not emulate it. Edited February 18, 2023 by 42bs 1 Quote Link to comment Share on other sites More sharing options...
Ericde45 Posted February 18, 2023 Share Posted February 18, 2023 SCPCD is always right. 4 2 Quote Link to comment Share on other sites More sharing options...
DEATH Posted February 19, 2023 Share Posted February 19, 2023 On 2/18/2023 at 5:08 PM, 42bs said: Is this a guess or did you try? I tested it so far only in VJ and BPE. But will try on real HW right away. Edit: @SCPCD you are right. Just tried it. So VJ and BPE do not emulate it. which means that no game uses the Blitter interrupt? That's not really optimized. It means they have to constantly check if the Blitter has finished... it might be necessary to warn Rich Withouse in case someone would use the interruption one day (if it is not already the case) 2 Quote Link to comment Share on other sites More sharing options...
+cubanismo Posted February 20, 2023 Share Posted February 20, 2023 A handful of games don't work on VJ. I've no idea why, but just noting this doesn't necessarily prove no games use the interrupt. Quote Link to comment Share on other sites More sharing options...
42bs Posted February 20, 2023 Author Share Posted February 20, 2023 7 hours ago, DEATH said: which means that no game uses the Blitter interrupt? That's not really optimized. It means they have to constantly check if the Blitter has finished... it might be necessary to warn Rich Withouse in case someone would use the interruption one day (if it is not already the case) I already have a test program, just did no yet send it to him. Quote Link to comment Share on other sites More sharing options...
42bs Posted February 20, 2023 Author Share Posted February 20, 2023 2 hours ago, cubanismo said: A handful of games don't work on VJ. I've no idea why, but just noting this doesn't necessarily prove no games use the interrupt. It's about BPE, where IIRC all commercial and most homebrew releases run. Quote Link to comment Share on other sites More sharing options...
42bs Posted February 20, 2023 Author Share Posted February 20, 2023 Here an example. The background color is incremented every frame after the blitter has cleared the display. On BPE/VJ it stays black.blit_irq.zip Quote Link to comment Share on other sites More sharing options...
42bs Posted February 20, 2023 Author Share Posted February 20, 2023 9 hours ago, DEATH said: which means that no game uses the Blitter interrupt? That's not really optimized. It means they have to constantly check if the Blitter has finished... Not sure yet if it is of any practical use. You need some kind of queuing to feed the blitter during interrupt. My first attemed did not work. It seemed that if the blit to short and thus finished while you are in the interrupt routine, you the new interrupt gets lost. But I will certainly experiment more on this. 1 Quote Link to comment Share on other sites More sharing options...
CyranoJ Posted February 20, 2023 Share Posted February 20, 2023 It's faster to have the GPU poll the blitter than to service the interrupt. This is assuming you have actually got your entire blitlist ready to roll (which makes sense you would) and aren't off doing other stuff. Quote Link to comment Share on other sites More sharing options...
42bs Posted February 20, 2023 Author Share Posted February 20, 2023 10 hours ago, DEATH said: It means they have to constantly check if the Blitter has finished... I can only speak for me, but the actual time the GPU has to wait for the Blitter is very small. Important is to wait _before_ issuing a new command, not after. That way Blitter and calculation are interleaved. 1 Quote Link to comment Share on other sites More sharing options...
42bs Posted February 20, 2023 Author Share Posted February 20, 2023 14 minutes ago, CyranoJ said: It's faster to have the GPU poll the blitter than to service the interrupt. This is the common problem each embedded developer has, polling or interrupt. There is no one-for-all solution. 1 Quote Link to comment Share on other sites More sharing options...
CyranoJ Posted February 20, 2023 Share Posted February 20, 2023 4 minutes ago, 42bs said: I can only speak for me, but the actual time the GPU has to wait for the Blitter is very small. Important is to wait _before_ issuing a new command, not after. That way Blitter and calculation are interleaved. ^^^ How the RAPTOR blitter calls work Quote Link to comment Share on other sites More sharing options...
42bs Posted February 20, 2023 Author Share Posted February 20, 2023 16 minutes ago, CyranoJ said: ^^^ How the RAPTOR blitter calls work Hmm, do we have a prior art problem. I thought I had a unique idea 3 Quote Link to comment Share on other sites More sharing options...
CyranoJ Posted February 20, 2023 Share Posted February 20, 2023 7 minutes ago, 42bs said: Hmm, do we have a prior art problem. I thought I had a unique idea Well I'm gonna take it as confirmation it actually was a good idea 5 Quote Link to comment Share on other sites More sharing options...
+cubanismo Posted February 20, 2023 Share Posted February 20, 2023 The Atari documentation has a description of how to build an interrupt based blit queue with a semaphore. It's in the best practices (or something like that) section. Whether or not it helps, yeah, will depend on the situation. They specifically recommend against it for small blits, so it's almost certainly not going to make those spans in a sweet Road Rash-esque 3D engine fill triangles any faster, but maybe if you're filling big chunks and somehow have loads of other long running work to do with no clear point to pause and poll the register... Quote Link to comment Share on other sites More sharing options...
KidGameR186496 Posted March 7, 2023 Share Posted March 7, 2023 On 2/19/2023 at 7:04 PM, DEATH said: which means that no game uses the Blitter interrupt? That's not really optimized. It means they have to constantly check if the Blitter has finished... it might be necessary to warn Rich Withouse in case someone would use the interruption one day (if it is not already the case) I'm no programmer but IIRC a comment by Rich on the BigPEmu page, Val d'Isere Skiing and Snowboarding does make use of the interrupt function for the transitions when You finish/lose a race. So that's one Game that does make use of that particular function that i know of... Quote Link to comment Share on other sites More sharing options...
DEATH Posted March 9, 2023 Share Posted March 9, 2023 On 3/7/2023 at 5:54 AM, KidGameR186496 said: I'm no programmer but IIRC a comment by Rich on the BigPEmu page, Val d'Isere Skiing and Snowboarding does make use of the interrupt function for the transitions when You finish/lose a race. So that's one Game that does make use of that particular function that i know of... he's talking about GPU interrupts in general, not about the Blitter interrupt in particular. Quote Link to comment Share on other sites More sharing options...
ArneCRosenfeldt Posted April 23, 2023 Share Posted April 23, 2023 On 2/20/2023 at 10:01 AM, CyranoJ said: It's faster to have the GPU poll the blitter than to service the interrupt. This is assuming you have actually got your entire blitlist ready to roll (which makes sense you would) and aren't off doing other stuff. Why would it makes sense? From the point we collect the control inputs to display on CRT we want the shortest time span. And we want to let run stuff in parallel. Even with only 4kiB on the GPU we might want to start drawing while we already proces some geometry. Or do you favour the Doom way: geometry on Jerry ( with interrupt for music ) drawing on Tom I would, if Jerry would have an efficient way to access memory. 1 Quote Link to comment Share on other sites More sharing options...
CyranoJ Posted April 23, 2023 Share Posted April 23, 2023 Can you just kindly never quote or @ me ever again. You are a complete waste of time. 2 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.