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?

5

(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.

7

(260 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!".

8

(260 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:~$ 

9

(260 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?

10

(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.

11

(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?

13

(260 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.

14

(11 replies, posted in Using SVP)

Moondust76 wrote:

If you had a 32 core/64 thread AMD threadripper cpu, what settings would you try? What would make SVP's result better than what you have now?

TBH I would just enable "global refinement", use "half pixel" even on 4k video, and pretty much call it a day.  Note that I use Uniform + Complicated for my day-to-day SVP settings.

Maybe I'd set 16px for 4k video, but certainly nothing less than 24px.

The main thing is that I'd not settle for anything less than a 90Hz display as the next step would be increasing refresh rate.

15

(11 replies, posted in Using SVP)

Unless it's in 10bit or you're using mpv, the bitrate doesn't matter for H264 video as that can be hardware decoded on any GPU made in the last 10 years without issue.

And with that hardware decoding I wouldn't be suprised if you could even disable your i7's overclock and you'd still be fine - heck my own Xeon locked at its turbo clock of 3.2GHz combined with H264 hardware decoding almost gets me there when using your exact settings - around 80% of the time it's running at 1.0x SVP index while it's only at 0.9x or so for the other 20% in certain scenes that are apparently more demanding (it's not clear why however as the entire test video is full of motion).

16

(3 replies, posted in Using SVP)

bradwiggo wrote:

Is the hardware encoding better than software encoding?

Kind of late on this, but when it comes to any sort of video encoding, software encoding almost always (if not always always) results in higher fidelity than hardware encoding.

Keep in mind that this is with regards to video encoding quality and has nothing to do with interpolation quality or smoothness or the like.  Using GPU acceleration for the actual interpolation engine should result in a smoother end-result but, at the same time, it can sometimes also result in more artifacting.

And an A10-7300 has GPU-accelerated (though not full hardware decoding) of HEVC, so even that should be playable at 1080p in SVP as long as you're using settings that aren't particularly high.

17

(11 replies, posted in Using SVP)

Moondust76 wrote:

What do you think of these settings for 1080p @ 60fps?

"by two with global refinement" can be a killer of CPU.

With that set to disabled, even my Xeon 3470 @ 2.93GHz can run those exact settings but with "frames interpolation mode" set to 'Uniform' with even software-decoded 1080p 5mbps HEVC @ 25fps --to-> 62.5fps (2.5x) as long as I'm using a 64bit media player (because 32bit HEVC software decoders are quite unoptimized).

For reference, the that 1080p 5mbps HEVC 25fps video interpolated to 62.5fps was my go-to stress test when I was setting up this Xeon system with the logic that, if my hardware could do that just fine, then darned near any 24fps 1080p video should be able to work without issue (unless it was HEVC with a pretty crazy bitrate).  For actual real-world use I'd use 2x interpolation for 25fps videos as my display can run 50Hz without issue (but it can't handle anything above 60Hz without skipping frames).

That didn't help; I also tried the "AviSynthPlus-MT-r2728-with-vc_redist.exe" install package but that too made no difference.


I've attached the two errors I normally get.  Taking the api-ms-win-crt-runtime-l1-1-0.dll from the SVP program folder and adding it to the MPC-HC program folder (which is where I have avisynth.dll located) then results in the second error.  And to clarify, interpolation doesn't occur in both instances of when the error is present.

Interestingly, if I use a newer version of api-ms-win-crt-runtime-l1-1-0.dll from a recent (though not the newest) version of streamlink, the second error message does not come up at all...but interpolation still does not occur (SVP just says "No active playback" no matter what).


Also it seems like mpv actually can run and play fine with SVP closed, but with SVP it gives the same aforementioned error messages and also automatically closes a second or so after starting playback.  Similarly, using that newer version of api-ms-win-crt-runtime-l1-1-0.dll from streamlink will also result in no error messages appearing when SVP is open, but it'll still close after a second of playback as long as SVP is open.

19

(11 replies, posted in Using SVP)

Jarvmeister wrote:

I actually use SVP only at 48fps, and at either 2m or 1.5m interpolation mode.

Uhhh, when using 2m to interpolate at 2x from 24fps to 48fps, there's literally no interpolation occurring - you have to use something greater than 2x for 2m to actually do anything.

But 1.5m does in fact actually result in some interpolation when using 2x.



Jarvmeister wrote:

My current setup (3rd gen i7 and GTX1050Ti) doesn't allow me to use SVP with videos of higher resolution than 1080p.

Wait, really?  That's at least an i7-3770 with a base clock of 3.4GHz, right?


I have a Xeon x3470 @ 2.93GHz (I've disabled turbo for easier undervolting) which is essentially a first gen i7 (performance-per-clock is something like 30% slower than third gen); from my testing and calculations I would think that your third gen i7 should be able to interpolate 4k video with your reduced settings without issue as long as you're using GPU decoding of the video stream (which a 1050Ti should be able to do unless it's something new & fancy like AV1).

When I play back a 1080p video that's hardware decoded by my GPU but I have SVP cranked up to absolutely unreasonable settings so that I'm left with a CPU bottleneck, it shows my CPU utilization at around 65%, so that's essentually my upper limit.

When I played back a 24fps 3840x2160 video that's hardware decoded by my GPU and have SVP set to 2x interpolation with 1.5m, standard shader, two pixels, and 16 px. (see attached screenshot), I have an SVP index of 0.7x but a CPU utilization of only ~40% because my GPU is maxed out and bottlenecking me.  We know my CPU when running SVP can have utilization all the way up to 65% assuming no GPU bottleneck, and 65 is 1.625x that of 40; my SVP index of 0.7 multiplied by 1.625 would be 1.1375 which would mean that I theoretically should have no issue hitting an SVP index of 1.0x if I just wasn't GPU bottlenecked.


Therefore are you absolutely sure that your current i7 can't handle 4k video with reduced interpolation settings (again, see attached screenshot) when combined with GPU decoding of the video?

Also keep in mind that you may experience a weird bug in SVP where setting the "Motion vectors grid" to anything less than 16 px.results in considerably higher CPU utilization than one would expect (24 px. uses more CPU than 28 px. which itself uses more CPU than 32 px; meanwhile 32 px's CPU utilization is actually similar to 16 px.).

For the 64bit avisynth that comes bundled with SVP, it would seem that the C++ version it wants (I think it's either 2013 or 2015?) is completely borked up on my HTPC and no amount of uninstalling & re-installing seems to make it work.

I've been making due with an old version of 64bit avisynth that works fine (it presumably uses an older version of C++), but it has an annoying bug that results in it leaking memory every single time I seek a video which can eventually make the video player crash.

I seem to have no issues using 32bit avisynth, but unfortunately HEVC playback performance is much less optimized even with the newest v0.72 LAVfilters - it's a big enough difference that 1920x1080 30fps HEVC @ 6Mbps requires me to drop all the way to 16px in SVP even though I can use 12px with 64bit (all other SVP settings being equal; also my HTPC's GPU is not current gen and therefore lacks any sort of GPU-accelerated HEVC decoding).


Therefore, I was wondering if there was some other version of 64bit avisynth that uses an older C++ version that also doesn't leak memory whenever you seek around in a video?


Yes if I re-installed my OS that could alleviate my issues altogether, but I really don't want to reinstall the entire OS...and for reference, my C++ woes prevents me from using mpv as well since it gives a similar error to what I get when trying to use SVP's bundled 64bit avisynth.

21

(260 replies, posted in Using SVP)

efeu wrote:

but performance is at 95% @ everywhere else

Does that apply to GPU performance though?

It was my impression that proper GPU virtualization is only something that's really become a thing in the last year or so (and even then I don't believe it's fully baked yet), and your use of a GT 430 would make all the more likely that you're not using a modern platform that supports such proper GPU virtualization.


One way around this is to use "GPU passthrough" instead, where your host OS uses one GPU by itself and your virtualized OS uses the other GPU by itself (integrated graphics can work as one of these GPUs).  I've never done this myself however and it's my impression that it too doesn't work on all configurations (though I believe it can work on many more configurations than the likes of proper GPU virtualization, especially if integrated graphics is present).

22

(260 replies, posted in Using SVP)

DangerThunder wrote:

Similar problems here on Ubuntu 18.04 with proprietary NV driver. Can't get GPU acceleration working

You probably should also mention what model of Nvidia GPU you are actually using.

While I've known for a while that MPC-HC's overlay renderer does not work with DXVA2 (native) as is noted by the MPC-HC GUI itself, I only just discovered by pure accident today that its overlay renderer does work with DXVA2 (copy-back)!

This can be extremely useful on very low-end CPUs (like my laptop's AMD E-350) where every ounce of CPU performance counts since, not only does overlay itself have less CPU utilization compared to EVR-CP, but overlay's scaling algorithm looks better than bilinear as well while still having similar performance to it (it isn't quite to the level of bicubic, but that has greater CPU utilization anyway); overlay also looks a bit better than my display's/GPU's built in scaling algorithm (like if I set my desktop resolution to 1280x720 for a 720p video and my display/GPU scales that up to my screen's native resolution).

Just keep in mind that the scaling algorithm for the overlay renderer only seems to work properly (otherwise you get nearest neighbor scaling) when Aero and/or desktop composition is disabled - this seems to occur automatically on at least older Intel GPUs (like the 965GMA), but I had to manually disable Aero for my E-350's integrated Radeon graphics.

24

(260 replies, posted in Using SVP)

Chainik wrote:

if doesn't - RTFM. "Linux way" (c)

I just want to know before I take the time to "RTFM" on trying to make an HD5850 work if it even can work on SVP 4 Linux (perhaps you yourself do not know if an HD5850 is supported by SVP 4 Linux?).

And I can't RTFM with regards to whether its supported because there's isn't really a manual for that - the only manuals that exists (the SVP wiki page on Linux) just says to use proprietary drivers, but no amount of drivers* will make it work if I'm using GPU hardware that isn't supported by SVP 4 Linux in the first place (and the GPU compatibility SVP wiki page is about Windows drivers and such).  For example, we know that the hardware of an old Radeon 9600 would never work with SVP 4 Linux, yet even a modern Vega GPU that was merely lacking the correct drivers would give you the exact same result in SVP 4 Linux as that completely unsupported Radeon 9600.



*technically this isn't true as you can always implement missing hardware features in software, but the performance penalty can be enormous to the point of being completely impractical for even offline rendering let alone real-time rendering

25

(260 replies, posted in Using SVP)

So the wiki says that the HD5000 series is the minimum Radeon GPU that supports full GPU acceleration in Windows (and I can confirm this is the case between my HD4670 and HD5850), but what about Linux?

Also the wiki says to use proprietary drivers, but the mesa open source drivers are the go-to solution for Radeon drivers as the closed-source Radeon drivers for anything other than Nvidia on Linux are a bit of a trainwreck (heck there aren't even separate proprietary drivers available for Intel GPUs as well as really new Radeon GPUs like the iGPU on the Ryzen 2200G and 2400G).  I'm only a Linux newbie so there's not much problem-solving I can do myself, but it seems that my HD5850 didn't have out-of-the-box support for SVP's GPU acceleration even though it did have fully-supported hardware accelerated polygonal 3D rendering in the likes of the Dolphin emulator...but maybe I have to actually do something in order to enable SVP GPU acceleration on Linux.