No announcement yet.

Intel Has Been Working On A Fast 2D GPU Renderer Focused On Web Content

  • Filter
  • Time
  • Show
Clear All
new posts

  • Intel Has Been Working On A Fast 2D GPU Renderer Focused On Web Content

    Phoronix: Intel Has Been Working On A Fast 2D GPU Renderer Focused On Web Content

    Intel's open-source developers have been working on a GPU-based high-performance 2D renderer that can be nine times faster than Cairo's CPU-based renderer and still multiple times faster than Qt (even with OpenGL), Cairo with OpenGL, or even Google's Skia with OpenGL rendering. The focus of this new project, FastUIDraw, is ultimately for speeding up the rendering of web content and being able to accelerate all of the HTML5 canvas operations...

  • #2
    They are probably using all the other toolkits wrong. Using them right would probably make them all 4x to 10x times faster.

    When nvidia talked about their accelerated path rendering, they were at least using qt in an absurdly slow and stupid way causing it to be 10x slower than it should be. With Qt used right hardware accelerated paths are only a 2-3x times faster. Still good of course, but I am skeptic of these kinds of benchmarks where the authors have no interest in representing the alternatives in a realistic light.


    • #3
      Originally posted by carewolf View Post
      They (...) light.
      Yes, until someone working on Cairo doesn't study what they showed up and share his thoughts we shouldn't take those benchmarks too seriously.


      • #4
        Heh, found what they did. They have animated rotated text. In real 2D frame-works text is rendered with sub-pixel precision horizonally, this when the horizon changes on a font, that means you have to generate an entirely new font for the new rotation because it now has the sub-pixel precision in a different direction. Additionally real 2D paint-engines does hinting and lcd-filtering on the text, all of it makes the text look sharp and good, and it costs very little, except if you rotate text around for no good reason without first rendering it to an image and rotate that.

        Both Qt raster and Cairo spends more than 80% of their benchmarking time inside freetype generating new glyphs. So this framework is faster by not even remotely performing the same task, and generating output that is useless for text oriented scenes such as web-pages.


        • #5
          I've had poor performance when looping .drawImage() calls on HTML5 canvas.
          But maybe I was doing something wrong, such as only repainting dirty sections or not caching or something.


          • #6
            Currently FastUIDraw mandates OpenGL 3.3 while there is optional support for some OpenGL 4 extensions for better performance.
            And Qt uses GL2.x I believe that might be one of the reasons.

            Yes, I like Qt



            • #7
              Yeah, and look at those api examples. It's like you are doing it manually in opengl and vulkan.
              It's easy to be fast when you are doing nothing with low level calls that can only draw a pixel. Trying beating Qt and QML in usability.

               width: 100
               height: 200
               Behavior on width { NumberAnimation {} }  
              And there we have animated rectangle width when changed.

              If I spend so much time in Qt/QML as I need in their API to create simple UI with animations I'm sure I can make my app 5 times faster.


              • #8
                Personally would want to see this compared to QNanoPainter:

                QNanoPainter is also GPU-only and contains HTML5 canvas-like API. But it uses & targets Qt (QML & SceneGraph) and API is on higher-level than FastUIDraw.


                • #9
                  Isn't the rust based renderer of servo insanely fast, too? How do they compare?

                  Furthermore, the GTK+ developers acknowledged, that cairo is slow for GPU accelerated rendering and thus, they are working on a replacement.


                  • #10
                    Anyway they are still pretty faster at rasterizing. After turning off the text that made things unequal I got this on my Sandy Bridge desktop

                    Cairo CPU: 22fps
                    Cairo GL: 25fps
                    Qt CPU: 19fps
                    Qt GL: 58fps
                    FastUIDraw: 80fps

                    Not that though I switched to Qt5, it still uses the deprecated QGLWidget API.