Announcement

Collapse
No announcement yet.

Open-Source Radeon Driver Enables Support For Vulkan Video H.264/H.265 Encode

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

  • #31
    Originally posted by dec05eba View Post

    Vulkan video doesn't touch the graphics rendering pipeline. It uses the dedicated video encoding/decoding unit on the gpu that is separate from the graphics. But when it comes to playing videos you want to use your graphics cards 3d processing anyways. That allows your gpu to decode the video and display the video directly without copying it to system ram. The video encoding/decoding unit uses the graphics cards ram so the 3d graphics unit can access it directly. It's the most power efficient and performant way to play a video.
    Mobile devices (such as laptops) also support low power video encoding/decoding mode (and graphics) to use even less battery.
    Allmost all laptops have and integrated GPU and the new Intel CPU put the 3D engine on a different isle. So if I watch a video in full screen which I do very often it would be handy if it is skipping the composition.

    Comment


    • #32
      Originally posted by dec05eba View Post

      Vulkan video doesn't touch the graphics rendering pipeline. It uses the dedicated video encoding/decoding unit on the gpu that is separate from the graphics. But when it comes to playing videos you want to use your graphics cards 3d processing anyways. That allows your gpu to decode the video and display the video directly without copying it to system ram. The video encoding/decoding unit uses the graphics cards ram so the 3d graphics unit can access it directly. It's the most power efficient and performant way to play a video.
      Mobile devices (such as laptops) also support low power video encoding/decoding mode (and graphics) to use even less battery.
      Sort of. Most video decode hardware outputs an unscaled YUV image. You need to scale it and convert it to RGB to see it on the screen. There are several ways to do that:
      1. Use planes on the display engine. This is the most power and bandwidth efficient; you can just point a plane at the raw YUV image and the display hardware will scale and handle the CSC. This is not well supported in most compositors at this point, but that will hopefully change in the near future.
      2. Use a fixed function scaling/CSC engine. Vulkan doesn't currently support these. This is more power efficient than shaders, but still requires an additional copy. APIs like VA-API support these today.
      3. Use shaders to do the scaling/CSC. This is unfortunately the least power and bandwidth efficient as you have to power up the shader hardware and there is an extra copy to do the scaling and CSC. Vulkan supports 3D and compute queues. This is the most likely way vulkan applications would handle this today.

      Comment


      • #33
        about (3)... isn't vulkan already offering plenty zero-copy functions? can't any of them be used?

        as for "no apple", aren't they offering some (Metal) Video API that can be used by MoltenVK as a Vulkan Video API translation target
        Last edited by marlock; 21 April 2024, 05:34 PM.

        Comment


        • #34
          Originally posted by marlock View Post
          about (3)... isn't vulkan already offering plenty zero-copy functions? can't any of them be used?
          Not sure what you had in mind, but if you use shaders, you'll need to read in the unscaled YUV image from the video decoder and write out a scaled RGB image for display; that is your extra copy.

          Comment

          Working...
          X