https://airlied.blogspot.com/2022/12/vulkan-video-decoding-radv-status.html Skip to main content Search This Blog [ ] [Search] Dave Airlie Linux Graphics blog vulkan video decoding: radv status * Get link * Facebook * Twitter * Pinterest * Email * Other Apps December 14, 2022 I've been working the past couple of weeks with an ffmpeg developer (Lynne) doing Vulkan video decode bringup on radv. The current status of this work is in a branch[1]. This work is all against the current EXT decode beta extensions in the spec. This contains an initial implementation of H264 and H265 decoding for AMD GPUs from TONGA to NAVI2x. It passes the basic conformance tests but fails some of the more complicated ones, but it has decoded the streams we've been throwing at it using ffmpeg. Building: git clone https://gitlab.freedesktop.org/airlied/mesa git checkout radv-vulkan-video-prelim-decode mkdir build meson build -Dvulkan-beta=true -Dvulkan-drivers=amd -Dvideo-codecs= h264dec,h265dec --prefix= cd build ninja ninja install Running: export VK_ICD_FILENAMES=/share/vulkan/icd.d/ radeon_icd.x86_64.json export RADV_VIDEO_DECODE=1 vulkaninfo This should show support for VK_KHR_video_queue, VK_KHR_video_decode_queue, VK_EXT_video_decode_h264 and VK_EXT_video_decode_h265. [1] https://gitlab.freedesktop.org/airlied/mesa/-/tree/ radv-vulkan-video-prelim-decode * Get link * Facebook * Twitter * Pinterest * Email * Other Apps Comments 1. [blogger_lo] Ernst Sjostrand14 December 2022 at 23:16 This is not related to whatever the AMD AMF library is using, right? Though I think AMF depends on AMDVLK... ReplyDelete Replies 1. [blogger_lo] Dave Airlie15 December 2022 at 12:12 No AMF is some proprietary AMD stuff. I've no idea what AMD's plans for vulkan video are, this is just radv. Delete Replies Reply Reply Add comment Load more... Post a Comment Popular posts from this blog optimizing llvmpipe vertex/fragment processing. February 16, 2022 Around 2 years ago while I was working on tessellation support for llvmpipe, and running the heaven benchmark on my Ryzen, I noticed that heaven despite running slowly wasn't saturating all the cores. I dug in a bit, and found that llvmpipe despite threading rasterization, fragment shading and blending stages, never did anything else while those were happening. I dug into the code as I clearly remembered seeing a concept of a "scene" where all the primitives were binned into and then dispatched. It turned out the "scene" was always executed synchronously. At the time I wrote support to allow multiple scenes to exist, so while one scene was executing the vertex shading and binning for the next scene could execute, and it would be queued up. For heaven at the time I saw some places where it would build 36 scenes. However heaven was still 1fps with tess, and regressions in other areas were rampant, and I mostly left them in a branch. The reasons so many things were Read more video decode: crossing the streams November 23, 2021 I was interested in how much work a vaapi on top of vulkan video proof of concept would be. My main reason for being interested is actually video encoding, there is no good vulkan video encoding demo yet, and I'm not experienced enough in the area to write one, but I can hack stuff. I think it is probably easier to hack a vaapi encode to vulkan video encode than write a demo app myself. With that in mind I decided to see what decode would look like first. I talked to Mike B (most famous zink author) before he left for holidays, then I ignored everything he told me and wrote a super hack. This morning I convinced zink vaapi on top anv with iris GL doing the presents in mpv to show me some useful frames of video. However zink vaapi on anv with zink GL is failing miserably (well green jellyfish). I'm not sure how much more I'll push on the decode side at this stage, I really wanted it to validate the driver side code, and I've found a few bugs in there already. The WIP hac Read more Powered by Blogger Theme images by Michael Elkan Dave Airlie Visit profile Archive * December 20221 * September 20222 * July 20221 * May 20221 * February 20221 * November 20214 * August 20211 * July 20211 * April 20213 * March 20211 * November 20201 * October 20201 * August 20201 * May 20201 * May 20191 * December 20181 * July 20181 * March 20181 * February 20181 * December 20171 * November 20171 * October 20171 * August 20171 * July 20172 Show more Show less Report Abuse