Originally posted by willmore
View Post
Announcement
Collapse
No announcement yet.
Intel Adds GPU-Accelerated Memory Copy Support To FFmpeg
Collapse
X
-
Originally posted by coder View PostGiven that system & video memory are the same physical RAM (in the iGPU case - the only one, currently), this only makes sense to me if ffmpeg doesn't know how to manage or use Intel's buffers.
The only argument I can see why it might be strictly necessary to do the copy is that pre-Broadwell iGPUs didn't support shared memory between CPU & GPU. Of course, that's assuming that your app needs access to the output frame before it's displayed on screen. And, what blows a hole in that explanation is that a non-GPU version of the copy exists as a starting point.
Anyway, if you're just going to display it after decoding, then just teach ffmpeg how to manage Intel's buffers and leave the data in "video" memory.
Comment
-
Originally posted by AluminumGriffin View PostSome of Intel's iGPUs have their own memory, for instance the Intel Iris Plus 640 (kabylake (nuc7i5 for instance)) has 64MB of eDRAMLast edited by coder; 09 October 2019, 02:01 PM.
Comment
-
Comment
-
Originally posted by microcode View PostIn this case, the copy is needed because ffmpeg wants to do something with it on the CPU, in the ffmpeg process's address space, which typically can't operate directly on the GPU memory.
- Likes 1
Comment
-
Originally posted by coder View PostWas, but not in Skylake.
https://www.anandtech.com/show/10281...sors-65w-edram
- Likes 2
Comment
-
Originally posted by coder View PostGiven that system & video memory are the same physical RAM (in the iGPU case - the only one, currently), this only makes sense to me if ffmpeg doesn't know how to manage or use Intel's buffers.
The only argument I can see why it might be strictly necessary to do the copy is that pre-Broadwell iGPUs didn't support shared memory between CPU & GPU. Of course, that's assuming that your app needs access to the output frame before it's displayed on screen. And, what blows a hole in that explanation is that a non-GPU version of the copy exists as a starting point.
Anyway, if you're just going to display it after decoding, then just teach ffmpeg how to manage Intel's buffers and leave the data in "video" memory.
So in the case of an iGPU, or if the decoded data is just going to be displayed, there's no reason to perform copies and move it around.
- Likes 1
Comment
-
Originally posted by fuzz View PostShame HSA never really caught on :/
Also the industry is now zeroing in on CXL as a cache coherent protocol standard for connecting several devices together. That is also an important ingredient in the overall picture.
- Likes 2
Comment
Comment