Announcement

Collapse
No announcement yet.

Gallium3D Gets A Blitter Module

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Gallium3D Gets A Blitter Module

    Phoronix: Gallium3D Gets A Blitter Module

    Gallium3D has been a topic we have talked about a lot lately from the OpenCL state tracker to VMware's virtual GPU driver, but this graphics driver architecture keeps on advancing. The most recent module for Gallium3D is one written by Marek Olšák that provides a blitter. Once the core blitter support is merged into Gallium3D, Marek has already implementing patches for the ATI r300g driver that are able to take advantage of this blitter work...

    http://www.phoronix.com/vr.php?view=NzgwMw

  • #2
    Care to tell us what a blitter is?

    Comment


    • #3
      Originally posted by FireBurn View Post
      Care to tell us what a blitter is?
      http://en.wikipedia.org/wiki/Blitter

      Comment


      • #4
        Originally posted by FireBurn View Post
        Care to tell us what a blitter is?
        A blitter is a specialized chip that can initialize memory to a certain value or copy one chunk of memory to another place. It's very fast.

        For r300 and r600, using the HW to blit isn't straightforward; r300 requires a context switch (which is dead-slow and prone to occasional lockup if done wrong) and r600 just doesn't have a blitter. So this little chunk of code provides blitting services on the 3D engine instead.

        http://en.wikipedia.org/wiki/Blitter

        Comment


        • #5
          Originally posted by MostAwesomeDude View Post
          A blitter is a specialized chip that can initialize memory to a certain value or copy one chunk of memory to another place. It's very fast.

          For r300 and r600, using the HW to blit isn't straightforward; r300 requires a context switch (which is dead-slow and prone to occasional lockup if done wrong) and r600 just doesn't have a blitter. So this little chunk of code provides blitting services on the 3D engine instead.

          http://en.wikipedia.org/wiki/Blitter
          Thanks for that - sometimes I feel these articles are just cut and pasted from blogs and mailing lists posts with out any thought or extra input

          Comment


          • #6
            Originally posted by MostAwesomeDude View Post
            A blitter is a specialized chip that can initialize memory to a certain value or copy one chunk of memory to another place. It's very fast.

            For r300 and r600, using the HW to blit isn't straightforward; r300 requires a context switch (which is dead-slow and prone to occasional lockup if done wrong) and r600 just doesn't have a blitter. So this little chunk of code provides blitting services on the 3D engine instead.

            http://en.wikipedia.org/wiki/Blitter
            Thanks, but what it means for us (R300 hardware users)?
            Faster 3D? 2D? Compositing (for example window moving or scrolling)?
            Will application just make use of it if the drivers supports that or software needs to be heavly modified to work better by using that technique?

            Comment


            • #7
              yitter jitter christmas critter, is this blitter frigger available in gitter ?

              Comment


              • #8
                Originally posted by xeros View Post
                Thanks, but what it means for us (R300 hardware users)?
                Faster 3D? 2D? Compositing (for example window moving or scrolling)?
                Will application just make use of it if the drivers supports that or software needs to be heavly modified to work better by using that technique?
                It means that I get to nuke a bunch of lame hard-coded 3D engine setup in r300g.

                Oh, wait, I already did. :3

                Comment


                • #9
                  I had a dream, about a news site on linux that provides also some infos on the technical context (explanations, implications and consequences for the dev and the end-user...).

                  Comment


                  • #10
                    Originally posted by Xheyther View Post
                    I had a dream, about a news site on linux that provides also some infos on the technical context (explanations, implications and consequences for the dev and the end-user...).
                    No, you are exchanging the internet for a CS Degree.

                    Comment


                    • #11
                      From what I think I understand from Wikipedia what a blitter is:

                      Remember the super nintendo? It could handle side scrolling games like Mario and the PC couldn't do that... The reason for this is that the PC didn't have a blitter.

                      What does a blitter do? A blitter is a microcontroller (very tiny processing unit) that would handle 2D images. So a blitter took care with moving 2D images (sprites). Mario is full of sprites.

                      We all know the CPU isn't really good at graphics. It's serial execution and not parallel. So if the CPU would have to take care of those 2D images it wouldn't be able to do other things in the mean time.

                      So... if I am right, correct me if I am wrong, than this blitter module turns your r300 graphics card into a very expensive Super Nintendo Entertainment System, otherwise know as a SNES

                      Comment


                      • #12
                        Originally posted by V!NCENT View Post
                        From what I think I understand from Wikipedia what a blitter is:
                        At least you knew well enough to be cautious about what you thought you knew.

                        Remember the super nintendo? It could handle side scrolling games like Mario and the PC couldn't do that... The reason for this is that the PC didn't have a blitter.
                        PCs handled side-scrolling games just fine.

                        A blitter is a microcontroller
                        Not usually, no. Even if they were a separate chip, they most certainly were not microcontrollers. You might be thinking of co-processors. But a blitter was generally not a co-processor, it was a simple dedicated unit in the CPU or memory controller or graphics co-processor.

                        that would handle 2D images.
                        Not specifically. It would handle any memory copies, which could include those meant to represent 2D images.

                        Graphics/sprite blitting is a little different than general memory blitting, since the target region (and sometimes source region) were composed of lines separated by potentially a lot of space. The dedicated graphics blitting hardware in consoles (and some PCs) was optimized to deal with how graphics sprites work versus general memory blitting.

                        It's serial execution and not parallel.
                        Irrelevant fact, and nothing to do with what makes blitting hardware useful.

                        So if the CPU would have to take care of those 2D images it wouldn't be able to do other things in the mean time.
                        Much like the modern GPU, in fact. State changes and memory copies are not something the GPU excels at, not at all. All those hundreds (or even thousands now) of stream processing units can only operate a single state at a time, so you can't have some of them working on one thing and the others working on another, unless they happen to use the extra same shaders, same uniforms, same texture units, etc.

                        At some point it would be swell if the GPU and drivers could coordinate multiple simultaneous batches of commands if it can be done without causing excessive memory bandwidth pressure.

                        Comment


                        • #13
                          Originally posted by elanthis View Post
                          PCs handled side-scrolling games just fine.
                          But there was something about the SNES that made it handle certain things, was it image manipulation or something?, that the PC just couldn't do. I am aware of commander Keen, but there was something.

                          Irrelevant fact, and nothing to do with what makes blitting hardware useful.
                          Then what makes it usefull? I suppose that this blit module for the r300 speeds things up, but that's with added latency too if it does stuff for the RAM. So does this blitting module 'blit' for the system RAM or is it some kind of memory manager for the graphics card itself?

                          Much like the modern GPU, in fact. State changes and memory copies are not something the GPU excels at, not at all.
                          Then why are we having this blitting module in the first place? xD

                          Comment


                          • #14
                            Originally posted by V!NCENT View Post
                            But there was something about the SNES that made it handle certain things, was it image manipulation or something?, that the PC just couldn't do. I am aware of commander Keen, but there was something.
                            PCs of the SNES era (1990-1996) couldn't handle 16bit graphics (ok 15bit) with transparency, blending effects and multiple layers. No really, they couldn't. Games like Diablo, Fallout (1997) still used 8bit graphics and required massively faster processors to run (the SNES was clocked at ~3.5MHz, Fallout recommended a 90MHz Pentium, IIRC).

                            Comment


                            • #15
                              Then what makes it usefull?
                              You claimed to have read the Wikipedia article, which I thikn in its first line or two explains exactly what "blit" means in computer terms. It's simply a copy of memory. The mailing list posts on the gallium blitter also make its uses very clear. In the time it takes you to have posted silly questions, you could have just read the material and figured it out already.

                              Comment

                              Working...
                              X