Skip to content
  • benjamin.poulain@nokia.com's avatar
    2011-03-24 Benjamin Poulain <benjamin.poulain@nokia.com> · d30b8bc3
    benjamin.poulain@nokia.com authored
            Reviewed by Kenneth Rohde Christiansen.
    
            [Qt] When we render WebGL offscreen, color conversion cost a lot of CPU cycles
            https://bugs.webkit.org/show_bug.cgi?id=40884
    
            The software fallback is now only needed for corner cases like a manual rendering
            of the page to QImage.
    
            Keeping the image with the last pixel values is no longer needed. Removing it reduce the
            performance for real-time rendering on software surface, but this case should no longer be
            supported.
    
            The conversion from OpenGL color space and coordinates is done manually for performance. This
            also fix the bug of the inverted X axis due to the transformation.
    
            The tests and benchmarks are done through Qt API tests.
    
            * platform/graphics/qt/GraphicsContext3DQt.cpp:
            (WebCore::swapBgrToRgb):
            (WebCore::GraphicsContext3DInternal::paint):
            (WebCore::GraphicsContext3D::reshape):
    2011-03-24  Benjamin Poulain  <benjamin.poulain@nokia.com>
    
            Reviewed by Kenneth Rohde Christiansen.
    
            [Qt] When we render WebGL offscreen, color conversion cost a lot of CPU cycles
            https://bugs.webkit.org/show_bug.cgi?id=40884
    
            Add tests and benchmarks for the software fallback of WebGL.
    
            * tests/benchmarks/webgl/10000_triangles.html: Added.
            * tests/benchmarks/webgl/tst_webgl.cpp: Added.
            (GraphicsView::GraphicsView):
            (GraphicsView::resizeEvent):
            (tst_WebGlPerformance::init):
            (tst_WebGlPerformance::cleanup):
            (tst_WebGlPerformance::benchSoftwareFallbackRgb16):
            (tst_WebGlPerformance::benchSoftwareFallbackRgb32):
            (tst_WebGlPerformance::benchSoftwareFallbackArgb32):
            (tst_WebGlPerformance::benchSoftwareFallbackArgb32Premultiplied):
            (tst_WebGlPerformance::benchmarkFrameRenderingOnImage):
            * tests/benchmarks/webgl/tst_webgl.qrc: Added.
            * tests/benchmarks/webgl/webgl.pro: Added.
            * tests/qgraphicswebview/qgraphicswebview.pro:
            * tests/qgraphicswebview/resources/pointing_right.html: Added.
            * tests/qgraphicswebview/resources/pointing_up.html: Added.
            * tests/qgraphicswebview/tst_qgraphicswebview.cpp:
            (compareImagesFuzzyPixelCount):
            (GraphicsView::GraphicsView):
            (tst_QGraphicsWebView::webglSoftwareFallbackVerticalOrientation):
            (tst_QGraphicsWebView::webglSoftwareFallbackHorizontalOrientation):
            (tst_QGraphicsWebView::compareCanvasToImage):
            * tests/qgraphicswebview/tst_qgraphicswebview.qrc:
            * tests/tests.pro:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@81886 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    d30b8bc3