26

(423 replies, posted in Using SVP)

tanzious wrote:

SVP is not working properly with mpv.

Does it work if you instead open the video file with SVP rather than mpv?

If it does work, then it simply means that something with the mpv arguments aren't set up correctly (which opening the file with SVP works-around by automatically appending the necessary arguments).

If it doesn't work, then something is broken with either SVP of mpv on a more program-level... but what that is I could not tell you as I am at best an intermediate Linux user (and even that is pushing it).


EDIT: One thing I personally had a bit of trouble with was actually putting the "mpv.conf" file in the correct location - it might be a good idea to include a test argument that would make it really obvious whether the argument is even being found by mpv, such as "speed=1/4" (without quotes) which will default the playback speed to 1/4th.

(and psst, you should have a better end result for 30fps videos if you run your monitor at 120Hz rather than 144Hz)

27

(423 replies, posted in Using SVP)

dlr5668 wrote:

cuda

The newest Nvidia GPU I own is a GTX 260 (not a typo) which, while it has CUDA, doesn't have a CUDA spec that's new enough to actually run the software in question.

So I'll ask again - is the beta RIFE interpolation not available on SVP 4 Linux?


The jist is that I just wanted to quickly test something with it, but the option for "[VPS_64] RIFE AI interpolation engine" isn't even appearing in the 'Additional programs and features...' update selection in SVP 4 Linux on a PC with Vulkan.

By contrast, it appears in the 'Additional programs and features...' update selection in SVP 4 Windows despite the according Windows PC not having Vulkan.


And yes, I know that you need to be using SVP v4.5.0.210, but the option still appears in the 'Additional programs and features...' update selection in the older v4.3.0.168 of SVP 4 Windows implying that the update option should at least still appear regardless of your currently-installed version.


EDIT: And no, I can't just run Windows on the PC with Vulkan as it's an older GPU architecture that has Vulkan on Linux but not on Windows.

28

(423 replies, posted in Using SVP)

Quick sanity check - is the beta RIFE interpolation not available on SVP 4 Linux?

Outside of using the new uber extremely demanding "RIFE AI" interpolation mode, the general jist is that a lower setting for a given option is smoother (e.g. Uniform is smoother than Adaptive and 23. Complicated is smoother than 13. Standard).

It must be noted that this "lower setting = smoother" does not apply to the options under the Miscellaneous options category nor does it apply to "Artifacts masking".  Also "Decrease Grid Step" honestly tends to be kind of placebo-level and I generally only find it useful if you have performance to spare.

The bigger problem is that smoother settings can also increase errors and artifacts and, outside of using the RIFE AI option, there's no universal best settings that balance smoothness and artifacts - you just need to try it yourself and see if the artifacting is acceptable to you or not.

However, there is one big universal way to increase smoothness and decrease artifacts, but it has nothing to do with SVP's own settings - it's all about making your screen refresh rate be a multiple of the source frame rate (e.g. if the video is 25fps, then a display refreshing at 50Hz is better than one that refreshes at 60Hz, same goes for 25fps--to-75Hz being better than 25fps--to->90Hz).  Custom resolutions may be necessary to achieve this but beware of your display skipping frames (note that TVs tend to be much more picky than PC displays), and even if you aren't using custom resolutions then I still highly recommend using MPC-HC's built-in "automatic resolution changer" or alternatively madVR's display modes functionality (do not use both however!); if you use mpv then use this mpv autospeedwin script.


Anyway, I'm a total frame rate junkie so I use quite intense interpolation settings, but I'll reference them as a starting point:

First off, set the interpolation multiplier / target framerate in SVP to To screen.

- Frames interpolation mode: Uniform (max fluidity)
- SVP shader: 23. Complicated
- Artifacts masking: Disabled

- Motion vectors precision: Half pixel
- Motion vectors grid: 16 px. Average 0 for 1440p, 12 px. Average 2 for 1080p, 8 px. Small 0 for 720p, 6 px. Small 2 for 480p (none of my PCs are fast enough to interpolate 4k, so my settings max out at 1440p)
- Decrease grid step: Disabled
- Search radius: Large
- Wide search: Strongest
- Width of top coarse level: Large

- Processing of scene changes: Blend adjacent frame
- Duplicate frame removal: Do not remove
- Rendering device: Do not change
- Processing threads: Do not change

If you're watching 2D animation, then set "Processing of scene changes" to Repeat frame. If you're getting inadequate performance but your CPU usage isn't very high, then increase the "Processing threads" setting until you end up with full performance.

If artifacting is too great for your tastes, then the first step I suggest is changing "Search radius" to Average.  If artifacting is still too great, then either reduce the "SVP shader" to 13. Standard and/or keep reducing the "Motion vectors grid" setting until you are happy (the Standard shader setting is particularly useful if a video has moving thin lines); for 2D animation, avoid using 13. Standard and instead drop the "SVP shader" to 2. sharp (anime) if the artifacts from 23. Complicated are too much for you.

30

(423 replies, posted in Using SVP)

subluminal wrote:

What was the error you got with mpv in Linux Mint 20? What was the vapoursynth and mpv version?

Do note that SVP and mpv worked fine without GPU acceleration on Mint 20.1.

For the errors with GPU acceleration, see: https://www.svp-team.com/forum/viewtopi … 652#p77652

Nintendo Maniac 64 wrote:

Also trying to run OpenCL with AMDGPU on Mint 20.1 (Ubuntu 20.04) with a GCN 1-based GPU didn't get me anywhere either.  The farthest I got was, after compiling the 5.4.0-54 kernel with the necessary configurations so that it uses AMDGPU rather than radeon, and installing the newest vendor-provided AMDGPU driver via the same command as above, it throw up an error but, after rebooting, SVP would see my GPU...but it itself would throw up an error.  I was able to avoid any errors when installing AMDGPU by additionally appending the "--no-dkms" argument, but that didn't change the OpenCL error message result in SVP.

clinfo: https://ttm.sh/dXj.txt
Mirror: https://archive.is/13xNy

SVP log: https://ttm.sh/dX_.log
Mirror: https://archive.is/5bwPD

And no, installing kernel 5.10 (which includes improved support for GCN 1-based GPUs) onto Mint 20.1 didn't work either as it not only resulted in no graphics acceleration but the AMDGPU driver refused to install altogether with that kernel.

31

(423 replies, posted in Using SVP)

subluminal wrote:

Have you tried ROCm?

https://github.com/RadeonOpenCompute/RO … CL-Runtime

...Uh, I already said I did in my two lengthy posts above on this very page.  I can get it working on the A8-7600's iGPU pretty easily by simply getting the Ubuntu 20.04 driver that AMD provides for the R9 290X dGPU.

To clarify, ROCm is used for the OpenCL portion of AMD's vendor-supplied Linux graphics driver as of a few years ago.

But the bigger issue is that I was unable to get ROCm OpenCL working on my HD7850 dGPU on Mint 20.1.  While I could get OpenCL working on Mint 19.3, I wasn't able to get SVP working with mpv or vlc (mpv+svp used to "just work" with djcj's now-removed ppa however).


(for reference, the multithreaded CPU grunt of the A8-7600 is considerably slower than the Xeon X3470 that I already own, so my "plan B" was to try and pair that HD7850 with my Xeon)

32

(423 replies, posted in Using SVP)

subluminal wrote:

In Linux Mesa in general not only outperforms amd's own closed-source drivers but also is far easier to install.

I'm well aware of that, but the one thing mesa's OpenCL lacks that SVP needs is "image support" (scroll down near the bottom under "OpenCL 1.0"): https://mesamatrix.net/

To clarify, I asked about this around two years ago and Chainlink established to me that the lack of image support was the sticking point:
https://www.svp-team.com/forum/viewtopi … 502#p71502

Therefore one cannot use mesa's OpenCL directly for SVP until the currently-draft image support gets merged or the like.

33

(423 replies, posted in Using SVP)

While reading through various 4-year old posts in this thread, I can't help but notice that Chainik nowadays seems a bit less...joyful shall we say (at least in this thread he is; I've admittedly kind of taken to ignoring the rest of the "Using SVP" forum now that I'm doing more and more with Linux).


seifenchef wrote:

1. How do I get an icon on the desktop?

Once you've closed the program, it's gone! !
(it still works, but you can no longer access the user interface))
The program cannot be found with the Linux functions at all!
After all, you want to change something in the settings from time to time, e.g. whether the frame rate should be doubled or tripled ...


Is this not the issue about SVP running without the tray icon being visible, an issue I had back six years ago with Linux Mint 18.1?:


Nintendo Maniac 64 wrote:
Chainik wrote:

> there seems to be no way to have SVP running without the SVP control panel also being open

run it with "-tray" arg

I realize I'm pretty much literally a month late on this, but this is exactly what I was looking for, especially since it makes SVP behave like it does on Windows and the program even remembers this setting! (so when you have a video file associated with SVP, it only launches the SVP tray and not the SVP control panel window).

However, this does beg the question...why is this not the default behavior?  As I mentioned, this is how it behaves on Windows, so I would think that consistent behavior between different platforms would be ideal...

34

(423 replies, posted in Using SVP)

Apologies for the double-post, but I just wanted to clarify a few things.  And PSA, the "list" forum bbcode seems broken.


First off, on Linux Mint 20.1, you need to first run the following command or else the mpv+vapoursynth compilation will fail:

sudo apt install libicu-le-hb-dev

(this may be required on Mint 20.0 as well, but you'll first want to enable the setting "Consider recommended packages as dependencies" in the package manager)


Secondly, AMD's newest vendor-supplied Linux driver does in fact support GCN 2-based GPUs, but you need to know where to find said driver.  For example, if you put in a GCN 2-based APU on amd.com, there's a very high chance that it'll simply list an old pre-Ubuntu 18 driver.  What you need to do is instead get the driver on amd.com for the discrete GPU the "R9 290" which is in fact GCN 2-based yet has a driver listed for Ubuntu 20.04:

https://www.amd.com/en/support/graphics … eon-r9-290


Thirdly, when actually installing AMD's vendor-supplied Linux driver, you definitely need to append the "--opencl=legacy" argument or you simply won't get OpenCL support on GCN 2-based GPUs.  This means navigating to the folder that you extracted the downloaded driver archive to, opening a terminal session in that folder, and running the following command:

./amdgpu-install --opencl=legacy

Lastly, for whatever reason, SVP's newest Linux installer straight-up doesn't work on Linux Mint (I tested on both 20.1 and 19.3 - neither worked).  You must instead get an older installer for SVP v4.3 which will in fact "just work":

https://web.archive.org/web/20190701200 … ux-64.tbz2

Once installed you can then update SVP to v4.5 through the built-in update manager without any issue at all.


----------------------------------------------------------------


Oh and BTW, trying to run SVP on a GCN 1-based GPU at this point in time seems to be a bit of a no-man's land in terms of support.  AMD's vendor-supplied driver only supports GCN 1 up to Ubuntu 18.04, but without djcj's PPA (which "just worked" on Ubuntu 18.04-based distros) it seems like it's not possible to actually get mpv+vapoursynth working on Ubuntu 18.04 (even after I installed all the necessary additional dependencies and everything seemed to install fine...mpv wouldn't actually launch), and I wasn't able to get the SVP-in-VLC deinterlace-replacement filter working either.

Also trying to run OpenCL with AMDGPU on Mint 20.1 (Ubuntu 20.04) with a GCN 1-based GPU didn't get me anywhere either.  The farthest I got was, after compiling the 5.4.0-54 kernel with the necessary configurations so that it uses AMDGPU rather than radeon, and installing the newest vendor-provided AMDGPU driver via the same command as above, it throw up an error but, after rebooting, SVP would see my GPU...but it itself would throw up an error.  I was able to avoid any errors when installing AMDGPU by additionally appending the "--no-dkms" argument, but that didn't change the OpenCL error message result in SVP.

clinfo: https://ttm.sh/dXj.txt
Mirror: https://archive.is/13xNy

SVP log: https://ttm.sh/dX_.log
Mirror: https://archive.is/5bwPD

And no, installing kernel 5.10 (which includes improved support for GCN 1-based GPUs) onto Mint 20.1 didn't work either as it not only resulted in no graphics acceleration but the AMDGPU driver refused to install altogether with that kernel.


So for the time being I hope you have an existing OS installation that used djcj's PPA, otherwise unless you're a Linux guru you may be out of luck for the time being with regards to using a GCN 1-based GPU with SVP until kernel 5.10+ becomes built-in to distros or mesa's OpenCL image support for AMD GPUs gets out of draft state (I even tried Oibaf's PPA for much more updated mesa drivers but it seems like mesa's AMD OpenCL image support truly is not available yet - https://gitlab.freedesktop.org/mesa/mes … uests/7241).

35

(423 replies, posted in Using SVP)

I've recently come into possession of an A8-7600 and have been trying and failing to get OpenCL GPU acceleration working on the newly-released Linux Mint 20.1. UPDATE: AMD's GPU driver selector on their website is a derp - the solution is to say your GPU is an R9 290X and just use the provided Ubuntu 20.04 drivers since the R9 290X uses the same GPU architecture, GCN2, as the A8-7600.


First off, even on a fresh OS installation, mpv+vapoursynth wouldn't compile unless I first installed harfbuzz from the package manager.  After that it all seemed to install fine...

...except that the ".run" file for SVP straight up wouldn't run as if it was a corrupt or incomplete file.  I even tried re-installing the snap store and even that didn't work.

https://ttm.sh/dO5.png

But I was able to run it without issue around 2 years ago, so sure enough I was able to find an older version through archive.org that similarly "just worked", the key point being the archive itself is named "svp4-linux-64.tar.brz" without any version number as all the newer versions with the version number in the .tar.brz result in the "simply doesn't work", and from there I was able to just run the built-in updater to upgrade to whatever the latest version of SVP was:

https://web.archive.org/web/20190701200 … ux-64.tbz2

https://ttm.sh/dOG.png


Once I got that installed, the issue was the thing I said at the top - I seem to be unable to get OpenCL GPU acceleration working.  I know historically you're supposed to install the proprietary driver, but it doesn't seem to support Ubuntu 20.04 LTS and derivative OSes (e.g. Linux Mint 20.x).  From what I can tell, including on the SVP wiki's page for Linux, you're supposed to use ROCm for OpenCL nowadays, and while it seemed like I was able to successfully install ROCm, it made no difference with regards to enabling OpenCL GPU support in SVP.

I tried to also follow a process to install only the OpenCL driver from the AMDGPU-PRO driver but...well, it pretty much borked up my video drivers altogether (it was a completely fresh OS install so doing another fresh OS install is no big deal).


So yeah uh, I'm not particularly concerned about the newest SVP installer not running at all, but I definitely want to get GPU OpenCL functioning and am hoping people have insight on the process. UPDATE: AMD's GPU driver selector on their website is a derp - the solution is to say your GPU is an R9 290X and just use the provided Ubuntu 20.04 drivers since the R9 290X uses the same GPU architecture, GCN2, as the A8-7600.

36

(2 replies, posted in Using SVP)

There is no benefit, especially if you use the "uniform" frames interpolation mode.

The benefit for games has to do with improvements to input latency and frame pacing - things that do not apply to fixed-framerate video.


If you're feeling adventurous, you may be interested in seeing if you can make a custom resolution with a refresh rate greater or lower than 60Hz (I also say lower because exact multiples are ideal - that is using 48Hz or 72Hz for 24fps content, 50Hz or 75Hz for 25fps, 60Hz or 90Hz for 30fps, etc)

37

(5 replies, posted in Using SVP)

dlr5668 wrote:

10gb of vram for 720p smile

That's no issue for integrated graphics. tongue

...too bad DAIN currently only supports Nvidia GPUs, and of course that's the one of the "big 3" PC processor companies that doesn't make x86 CPUs which ruins my integrated graphics idea. sad


Alternatively, a CPU-only implementation may be an interesting experiment considering that we now have the likes of the Threadripper 3990X with it's crazy 64core/128thread configuration (and do remember that the $1000 i7-6950X from 2015 is now matched by today's ~$300 Ryzen 3700X, so that 3990X level of performance likely won't remain so out-of-reach for too long).


dlr5668 wrote:

https://www.youtube.com/watch?v=r7IVm9FtFtQ
Doesnt look that good for me. Sepconv is better

Really?  Personally I think DAIN looks considerably better in terms of having better and more natural movement as well as less-noticable and fewer artifacts, though with a big exception of choppier / faster-movement parts in which case Sepconv looks to have fewer artifacting from what seems to be less-aggressive interpolation on medium frame-to-frame changes.

To elaborate the last point, you can see in the following video at 0:42 that DAIN is poorly optimized for medium-level scene changes and (at least currently) doesn't do that sort of "repeat frame" thing that SVP does for such things unless it's a major scene-change:
https://youtu.be/Auum01OEs8k?t=42

For sites that have a built-in download function, the process is easy enough - just start downloading a video and, while it's downloading, open the still-downloading file in MPC-HC, mpv, vlc, etc - it will play back without issue as long as you don't try to jump ahead into part of the video that has not actually downloaded yet (also note that AVI files can have issues seeking altogether), though you need to make sure you select the correct file as many times you'll actually get two files while it's in the middle of downloading - one of which is a 0KB file (which is not the file you want to open in your media player, open the other file).

Alternatively you can copy and paste the download link and try opening that directly in your media player of choice, but this can sometimes be a bit more problematic.

There are some browser extensions out there for playing video files and/or URLs in a media player, I personally use "mpv-youtube-dl-binding" which adds a "play with mpv" option to context menu for right-clicking on HTML5 videos (though it does not automatically pause a playing video nor stop an already-downloading video), and it actually seems to work with other media players as well like MPC-HC v1.8.x when configured to point to that program's EXE instead.



For sites that don't have download functions, you can still usually use SVP if it's a site that can use non-DASH/MSE HTML5 video playback by simply right-clicking the video and then selecting the according option to download the video or to copy the video location URL.  Note that for some sites, you need to hold down the shift key while right-clicking on a video in order to get the normal right-click menu (this is not supported in all browsers however, and I've only tested it in the browser I personally use - Pale Moon, though it theoretically should also work in Firefox and any of its other forks/derivatives).

This method may also require you to force the site to not use DASH/MSE; I know Pale Moon has a setting right in the options to disable DASH/MSE without disabling HTML5 video, but I've no idea about other browsers (heck there's even a Pale Moon extension that lets you enable/disable DASH/MSE on a per-site basis).

Additionally, on some sites you can't even download the video file via right-clicking and instead need to find it via something like "Page Info" -> "Media" (protip, if you then click on the "Type" heading twice, you'll get videos sorted near the top) and then click the "Save as" button or copy & paste the file URL, note that the file extension can sometimes be .htm or .html even if it's still actually a video file (they'll still play back in MPC-HC, VLC, mpv, etc without issue).  I know this "Page Info" function existed in Firefox back in like version 24 but I've no idea if modern versions still have this "Page Info" function, I just know that it exists in Pale Moon.

FloppyDisk wrote:

Holy shit... i never thought about 120hz.. you were totally right.
I set up custom resolutions for 1080p, 2k and 4k @ 120hz.. Amazing!

The TV should also support the same thing at 100Hz as well via custom resolution which you can also use for 25fps content (HDMI 2.0 might even have enough bandwidth to do 4k 100Hz 4:2:0 with 10bit rather than 8bit, but don't quote me on this).

...or you can cheat and either slow down 25fps content down to 24fps at 120Hz with ReClock or simply leave it as-is to interpolate 25fps directly to 120Hz since, even though it's not an exact multiple, might be a higher enough refresh rate that it doesn't make much of a difference to your eyes.


FloppyDisk wrote:

Edit : Well..had to test it right now. 24p movies at 120hz with interpolation 2m, shader 23 and strongest masking is perfect!
Thank you so much Nintendo Maniac 64, you've solved my problem!

It should also work fine for 30fps videos as well.

FloppyDisk wrote:

plex media player integration

Oh, I've never used plex...so my original idea might not actually work.

FloppyDisk wrote:

Using the program Monitor Profile Switcher i am able to switch 48/50 and 60hz on the fly for all my needs.

I tend to use MPC-HC, partially because of its automatic resolution changer which can automatically change the refresh rate based on the video frame rate to whatever you've configured it to, therefore the user doesn't have to manually change the display refresh rate.

MadVR also has a similar setting, but it's much more automatic and you cannot specify actual frame rate ranges and are reliant on madVR's own judgment of what it thinks is the best refresh rate for a given frame rate.



Nevertheless, bitstreaming audio is actually not a requirement for lossless since you're connected directly to your receiver, so you should then be able to have your PC decode the audio via WASAPI exclusive into uncompressed multi-channel PCM (I think ReClock can do this?) and output that to your receiver.

From there you should then still be able to use ReClock to slightly speed up the video to 25fps if you'd like to try that out.  However, just keep in mind that doing this will make your audio no longer be lossless due to resampling, especially if you use the optional pitch correction function (which some audio purists find to have unsatisfactory quality anyway).


Alternatively, the Sony A8F does support 1080p and 1440p @ 120Hz if you make a custom resolution, and that would have the benefit of being an exact multiple of both 24fps and 30fps (using exact multiples with SVP not only improves motion resolution but reduces artifacting as well).

Technically you might even be able to do 4k @ 120Hz via a custom resolution if you first set the chroma sub-sampling to 4:2:0 (which 99.99% of all digital video uses anyway, and if you're doing at least 200% DPI upscaling then the difference will be minimal even for computer-generated graphics that are natively 4:4:4), but this would also require you to set a bit depth of 8bit which would make HDR a sub-par experience (if you can even get it working at 8bit).



FloppyDisk wrote:

BTW : feel free to recommend some settings for SVP :-) i'm still testing.

I don't think I would be able to recommend much since I'm somebody that has SVP's interpolation settings absolutely cranked to the point that someone like yourself would probably want to gauge out your own eyes.

I will say though that, in general, you might be able to get away with having nearly everything cranked if you set SVP to an interpolation mode of "2m", but note that this setting is only useful for refresh rates greater than 2x the source frame rate (so ideally 3x at minimum).

FloppyDisk wrote:

Thank you for your suggestion, but as far as i know tools like ReClock can't speed up and use passthrough at the same time. Or is there any workaround?

Assuming that you're referring to audio bitstreaming, the answer depends on your setup.


Are you using a stereo or a surround sound setup?

If you're using surround, is your PC connected directly to a receiver or is your PC plugged directly into the display?

If plugged directly into the display, are you then using analog, optical, ARC, or eARC to pipe the sound from the TV into a receiver?

42

(7 replies, posted in Using SVP)

I believe you have to install "amdgpu-pro" if you want GPU acceleration in SVP as the default mesa implementation of OpenCL for AMD graphics is pretty much broken and/or majorly outdated.

(I unfortunately have no modern discrete AMD GPUs so I can't actually confirm/refute this...)

Try using ReClock (32bit media players only) or mpv (64bit SVP only) to slightly speed up 24fps videos to 25fps (with optional audio pitch correction) with your display running at 50Hz, and then just use the same settings that you use for 25fps content.

This was something I had to do on an old low-end mobile GPU (NVS 3100m, basically the Quadro equivalent of a GT210) that didn't have enough grunt to do anything greater than 2x interpolation.

44

(423 replies, posted in Using SVP)

Chainik wrote:

Image support                                   No

Now is that the only thing missing on the list that would be required?

I just want to make sure before I go doing any more research only to discover "but wait, there's more!".

45

(423 replies, posted in Using SVP)

Here you go, Radeon HD5850:

htpc@htpc-linux:~$ clinfo
Number of platforms                               2
  Platform Name                                   Clover
  Platform Vendor                                 Mesa
  Platform Version                                OpenCL 1.1 Mesa 18.2.2
  Platform Profile                                FULL_PROFILE
  Platform Extensions                             cl_khr_icd
  Platform Extensions function suffix             MESA

  Platform Name                                   Portable Computing Language
  Platform Vendor                                 The pocl project
  Platform Version                                OpenCL 1.2 pocl 1.1 None+Asserts, LLVM 6.0.0, SPIR, SLEEF, DISTRO, POCL_DEBUG
  Platform Profile                                FULL_PROFILE
  Platform Extensions                             cl_khr_icd
  Platform Extensions function suffix             POCL

  Platform Name                                   Clover
Number of devices                                 1
  Device Name                                     AMD CYPRESS (DRM 2.50.0 / 4.15.0-20-generic, LLVM 7.0.0)
  Device Vendor                                   AMD
  Device Vendor ID                                0x1002
  Device Version                                  OpenCL 1.1 Mesa 18.2.2
  Driver Version                                  18.2.2
  Device OpenCL C Version                         OpenCL C 1.1 
  Device Type                                     GPU
  Device Profile                                  FULL_PROFILE
  Device Available                                Yes
  Compiler Available                              Yes
  Max compute units                               10
  Max clock frequency                             725MHz
  Max work item dimensions                        3
  Max work item sizes                             256x256x256
  Max work group size                             256
  Preferred work group size multiple              64
  Preferred / native vector sizes                 
    char                                                16 / 16      
    short                                                8 / 8       
    int                                                  4 / 4       
    long                                                 2 / 2       
    half                                                 0 / 0        (n/a)
    float                                                4 / 4       
    double                                               2 / 2        (cl_khr_fp64)
  Half-precision Floating-point support           (n/a)
  Single-precision Floating-point support         (core)
    Denormals                                     No
    Infinity and NANs                             Yes
    Round to nearest                              Yes
    Round to zero                                 No
    Round to infinity                             No
    IEEE754-2008 fused multiply-add               No
    Support is emulated in software               No
    Correctly-rounded divide and sqrt operations  No
  Double-precision Floating-point support         (cl_khr_fp64)
    Denormals                                     Yes
    Infinity and NANs                             Yes
    Round to nearest                              Yes
    Round to zero                                 Yes
    Round to infinity                             Yes
    IEEE754-2008 fused multiply-add               Yes
    Support is emulated in software               No
  Address bits                                    32, Little-Endian
  Global memory size                              1073741824 (1024MiB)
  Error Correction support                        No
  Max memory allocation                           751619276 (716.8MiB)
  Unified memory for Host and Device              No
  Minimum alignment for any data type             128 bytes
  Alignment of base address                       32768 bits (4096 bytes)
  Global Memory cache type                        None
  Image support                                   No
  Local memory type                               Local
  Local memory size                               32768 (32KiB)
  Max number of constant args                     15
  Max constant buffer size                        751619276 (716.8MiB)
  Max size of kernel argument                     1024
  Queue properties                                
    Out-of-order execution                        No
    Profiling                                     Yes
  Profiling timer resolution                      0ns
  Execution capabilities                          
    Run OpenCL kernels                            Yes
    Run native kernels                            No
  Device Extensions                               cl_khr_byte_addressable_store cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_fp64

  Platform Name                                   Portable Computing Language
Number of devices                                 1
  Device Name                                     pthread-Intel(R) Xeon(R) CPU           X3470  @ 2.93GHz
  Device Vendor                                   GenuineIntel
  Device Vendor ID                                0x8086
  Device Version                                  OpenCL 1.2 pocl HSTR: pthread-x86_64-pc-linux-gnu-nehalem
  Driver Version                                  1.1
  Device OpenCL C Version                         OpenCL C 1.2 pocl
  Device Type                                     CPU
  Device Profile                                  FULL_PROFILE
  Device Available                                Yes
  Compiler Available                              Yes
  Linker Available                                Yes
  Max compute units                               8
  Max clock frequency                             2926MHz
  Device Partition                                (core)
    Max number of sub-devices                     8
    Supported partition types                     equally, by counts
  Max work item dimensions                        3
  Max work item sizes                             4096x4096x4096
  Max work group size                             4096
  Preferred work group size multiple              8
  Preferred / native vector sizes                 
    char                                                16 / 16      
    short                                                8 / 8       
    int                                                  4 / 4       
    long                                                 2 / 2       
    half                                                 0 / 0        (n/a)
    float                                                4 / 4       
    double                                               2 / 2        (cl_khr_fp64)
  Half-precision Floating-point support           (n/a)
  Single-precision Floating-point support         (core)
    Denormals                                     Yes
    Infinity and NANs                             Yes
    Round to nearest                              Yes
    Round to zero                                 Yes
    Round to infinity                             Yes
    IEEE754-2008 fused multiply-add               No
    Support is emulated in software               No
    Correctly-rounded divide and sqrt operations  Yes
  Double-precision Floating-point support         (cl_khr_fp64)
    Denormals                                     Yes
    Infinity and NANs                             Yes
    Round to nearest                              Yes
    Round to zero                                 Yes
    Round to infinity                             Yes
    IEEE754-2008 fused multiply-add               Yes
    Support is emulated in software               No
  Address bits                                    64, Little-Endian
  Global memory size                              4655864832 (4.336GiB)
  Error Correction support                        No
  Max memory allocation                           2147483648 (2GiB)
  Unified memory for Host and Device              Yes
  Minimum alignment for any data type             128 bytes
  Alignment of base address                       1024 bits (128 bytes)
  Global Memory cache type                        Read/Write
  Global Memory cache size                        8388608 (8MiB)
  Global Memory cache line size                   64 bytes
  Image support                                   Yes
    Max number of samplers per kernel             16
    Max size for 1D images from buffer            134217728 pixels
    Max 1D or 2D image array size                 2048 images
    Max 2D image size                             8192x8192 pixels
    Max 3D image size                             2048x2048x2048 pixels
    Max number of read image args                 128
    Max number of write image args                128
  Local memory type                               Global
  Local memory size                               4194304 (4MiB)
  Max number of constant args                     8
  Max constant buffer size                        4194304 (4MiB)
  Max size of kernel argument                     1024
  Queue properties                                
    Out-of-order execution                        No
    Profiling                                     Yes
  Prefer user sync for interop                    Yes
  Profiling timer resolution                      1ns
  Execution capabilities                          
    Run OpenCL kernels                            Yes
    Run native kernels                            Yes
    SPIR versions                                 1.2
  printf() buffer size                            1048576 (1024KiB)
  Built-in kernels                                
  Device Extensions                               cl_khr_byte_addressable_store cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_3d_image_writes cl_khr_spir cl_khr_fp64 cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_fp64

NULL platform behavior
  clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...)  Clover
  clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...)   Success [MESA]
  clCreateContext(NULL, ...) [default]            Success [MESA]
  clCreateContext(NULL, ...) [other]              Success [POCL]
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT)  Success (1)
    Platform Name                                 Clover
    Device Name                                   AMD CYPRESS (DRM 2.50.0 / 4.15.0-20-generic, LLVM 7.0.0)
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU)  Success (1)
    Platform Name                                 Clover
    Device Name                                   AMD CYPRESS (DRM 2.50.0 / 4.15.0-20-generic, LLVM 7.0.0)
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL)  Success (1)
    Platform Name                                 Clover
    Device Name                                   AMD CYPRESS (DRM 2.50.0 / 4.15.0-20-generic, LLVM 7.0.0)

ICD loader properties
  ICD loader Name                                 OpenCL ICD Loader
  ICD loader Vendor                               OCL Icd free software
  ICD loader Version                              2.2.11
  ICD loader Profile                              OpenCL 2.1
htpc@htpc-linux:~$ 

46

(423 replies, posted in Using SVP)

So similar to what I've mentioned in my "OpenCL minimum requirement" thread, is it accurate to say that, for AMD graphics, the minimum requirement to use SVP's GPU acceleration (without going all the way back to Ubuntu 14.04) would be the Radeon HD7000 series?

47

(5 replies, posted in Using SVP)

James D wrote:

I feel deja vu, and you, Chainik? smile

I'm guessing that much of what I'm saying has already been said before?  If so then I apologize as I thought this genuinely was stuff that had not been previously realized.

48

(5 replies, posted in Using SVP)

Well the only discrepancy is that it seems like the Geforce 8000 series only supports 1.1 and I know for a fact that my 8800GS worked in SVP with hardware acceleration (as the wiki's GPU compatibility chart shows).

However the AMD and Intel GPUs on that same chart line up with their OpenCL 1.2 support, and this would also explain some of the results I've gotten.  That is, SVP couldn't use an HD4670 but could use an HD5870 (on Windows), and the HD4670 only supports OpenCL 1.1 while the HD5870 supports OpenCL 1.2.

Additionally on modern Linux (anything newer than Ubuntu 14.04), any AMD GPU older than the GCN architecture is only supported via the mesa drivers. While mesa is very good nowadays, they are unfortunately still stuck on only OpenCL 1.1 support, resulting in things like my HD5870 being unable to be used by SVP (which leaves the HD5000 and HD6000 in a sort of no-mans-land with regards to GPGPU on Linux for the time being).

According to this 5 year old post by MAG79 (back in the days of SVP 3.1), the minimum required OpenCL version was v1.1.

However, from everything I can tell, SVP4 requires OpenCL 1.2 at minimum for GPU acceleration.


So am I correct? Is OpenCL 1.2 the minimum requirement for GPU acceleration in SVP4?

50

(423 replies, posted in Using SVP)

As a minor follow-up to what I said on the previous page about propietary vs open drivers for getting OpenCL GPU acceleration on AMD and Intel GPUs, I can at least confirm that on Mint 19.1 (and therefore presumably anything based on Ubuntu 18.04) that all I had to do was install "mesa-opencl-icd" and, specifically for my Intel Haswell iGPU, "beignet-opencl-icd" through my OS's package manager.

And that was it - I was then able to use my Intel iGPU to accelerate SVP without seemingly any issue whatsoever and performance was then comparable to what I get in Windows with the same hardware configuration and customized SVP interpolation profile settings (I also confirmed that disabling GPU acceleration absolutely tanked my performance).



----------------------------------------------------------------


You know, the Linux page on the wiki could probably use a bit of a cleanup - an easy example is that one needs to use libass9 nowadays instead of libass5.

Also the process for getting SVP working on at least Linux Mint 19.1 (and therefore presumably any distro based on Ubuntu 18.04) seems to be much less involved than the wiki makes it out to be.  From my totally-not-in-depth testing, it seems like all one needs to do is run the following four commands individually before running the SVP installer, and then you'll be good to go:

sudo add-apt-repository ppa:deadsnakes/ppa

sudo add-apt-repository ppa:djcj/vapoursynth

sudo apt-get update

sudo apt-get install libqt5concurrent5 libqt5qml5 libpython3.5 mediainfo mpv libqt5svg5 libass9

Now I don't know what goes into the process of making a .deb, but I do know that other software distrobuted as .deb, like MEGAsync, will automatically install the required dependencies before installing the according program, and I can't help but think that something like that could be useful here.



And of course, like I stated, I was then also able to just use the following command to get GPU acceleration in SVP on my Haswell Intel graphics (this supposedly would work for Intel Ivy Bridge graphics as well and maybe even Intel Sandy Bridge graphics):

sudo apt-get install mesa-opencl-icd beignet-opencl-icd

I believe the "mesa-opencl-icd" would also be used for AMD GPUs, but at this time I don't know what (if anything) would be the AMD GPU equivalent to beignet-opencl-icd.



EDIT: While playing with things a little farther, I did notice something interesting - if I open a video file with SVP, then it'll play in mpv with SVP's interpolation active like usual.  If I open a video file in mpv directly, it will play in in mpv without SVP's interpolation being active.

Is this the expected behavior?  I mean, I only have a single installation of mpv installed since this was tested on a completely fresh installation of Linux Mint 19.1 Cinnamon 64bit.