Jump to content
IGNORED

Blitter interrupt - does it exist?


42bs

Recommended Posts

1 hour ago, jguff said:

image.thumb.png.fc0160a00c6b0fd3d7186fbc21c76a52.png

 

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

Link to comment
Share on other sites

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 by 42bs
  • Like 1
Link to comment
Share on other sites

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)

  • Like 2
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

  • Like 1
Link to comment
Share on other sites

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.

  • Like 1
Link to comment
Share on other sites

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 :)

Link to comment
Share on other sites

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...

Link to comment
Share on other sites

  • 2 weeks later...
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...

Link to comment
Share on other sites

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. 

Link to comment
Share on other sites

  • 1 month later...
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:

  1. geometry on Jerry ( with interrupt for music )
  2. drawing on Tom

I would, if Jerry would have an efficient way to access memory.

  • Confused 1
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...