locked
Video playback not hardware accelerated? RRS feed

  • Question

  • Hello

    Video playback does not seem to be hardware accelerated. Flash playback on my machine performs better.

    There is flickering/you can see parts of the image being updated while other parts still are not.

    Microsoft Silverlight, Version: 4.0.50524.0

    Windows 7

    Intel GMA 4500 graphics, Driver 8.15.10.2141

    Intel Pentium T3200

    Site used: www.film2home.se


    Please make video playback a more enjoyable experience since paying for a pay-per-view movie with silverlight is not something i prefer right now due to the small flickers in playback. You notice how rendering lags a bit when camera is panning.


    Monday, July 26, 2010 3:00 PM

Answers

  • Silverlight GPU acceleration is for now very limited. It only allows screen elements to be cached in video memory, which will massively improve performance on many types of animation such as scaling, translating, rotating, skewing, etc, but only if the element's untransformed appearance rarely changes. When they change, the cache in video memory is invalidated and must be refreshed, meaning the CPU must re-render the element and push it across to the video card, which is what normally happens when it isn't cached. Because videos are changing dozens of times a second, enabling hardware acceleration will actually reduce performance because that cache is constantly being invalidated.

    It's a limitation of Silverlight. Maybe in future versions Microsoft will improve it.

    Monday, July 26, 2010 6:46 PM
  • oh, i see. why is then microsoft documentation saying:

    "However, GPU acceleration does work in full-screen mode. Several full-screen video playback scenarios can particularly benefit if you enable the GPU acceleration feature.". That should be updated as well then. It is true that is see no improvement when enabling this flag for me.

    Thursday, July 29, 2010 5:55 AM

All replies

  • I found out that the site does not set param enableGPUAcceleration. When injecting it using greasemonkey, is see no improvement. Works because i can inject framecounter and tint params

    Monday, July 26, 2010 5:34 PM
  • Letting the site instead of the user decide if you want to enable gpu acceleration is bad design. Please let the user override this in their plugin settings.

    Monday, July 26, 2010 5:35 PM
  • Silverlight GPU acceleration is for now very limited. It only allows screen elements to be cached in video memory, which will massively improve performance on many types of animation such as scaling, translating, rotating, skewing, etc, but only if the element's untransformed appearance rarely changes. When they change, the cache in video memory is invalidated and must be refreshed, meaning the CPU must re-render the element and push it across to the video card, which is what normally happens when it isn't cached. Because videos are changing dozens of times a second, enabling hardware acceleration will actually reduce performance because that cache is constantly being invalidated.

    It's a limitation of Silverlight. Maybe in future versions Microsoft will improve it.

    Monday, July 26, 2010 6:46 PM
  • oh, i see. why is then microsoft documentation saying:

    "However, GPU acceleration does work in full-screen mode. Several full-screen video playback scenarios can particularly benefit if you enable the GPU acceleration feature.". That should be updated as well then. It is true that is see no improvement when enabling this flag for me.

    Thursday, July 29, 2010 5:55 AM