bjin / mpv-prescalers

prescalers for mpv, as user shaders
GNU Lesser General Public License v3.0
355 stars 34 forks source link

I cannot load shaders with .hook format #32

Closed Thoach closed 6 years ago

Thoach commented 6 years ago

Hello,

I use the last stable version of MPV (and last April nightly build). I don't manage to load shaders in .hook format while shaders in the .glsl format works perfectly.

I specify that I am under Windows 10, and that my equipment is recent. The video part of my mpv.conf file is so:

profile=opengl-hq
hwdec=no
target-prim=auto
target-trc=auto
format=default:colormatrix=auto
video-output-levels=auto
deinterlace=auto

interpolation
video-sync=display-resample
framedrop=vo
deband
deband-grain=40
dither-depth=auto
scaler-resizes-only

opengl-shader="C:\Users\thoach\AppData\Roaming\mpv\shaders\mpv-prescalers\test\ravu-r3-smoothtest1.hook"
#opengl-shader="C:\Users\thoach\AppData\Roaming\mpv\shaders\adaptive-antiringing.glsl"

sigmoid-upscaling
scale=ewa_lanczossharp
scale-antiring=1.0
cscale=ewa_lanczossoft
cscale-antiring=1.0
dscale=lanczos
dscale-antiring=1.0
tscale=mitchell

I tried several combinations, with different hook shaders, but they are never loaded.

Thanks you for your answers. Thoach

bjin commented 6 years ago

How did you define "shader not loaded", is it a blue screen, or you believe it's not working/ignored. Post a log would be helpful, open the video file from terminal with mpv --log-file=mpv.log video.mkv would do the job.

bjin commented 6 years ago

My guessing (without further information) is that ravu disabled itself because your video resolution is big enough (compare to window/screen resolution) and upscaling is unnecessary. With default shader, max-downscaling-ratio is set to 1.414213

haasn commented 6 years ago

There's no such thing as a “.hook format” or a “.glsl format”. There is only the mpv shader format, and the extension used makes no difference.

Thoach commented 6 years ago

@bjin When i check Frame Timings Stats, in page 2, shaders with .hook extension don't appear in the list while shaders with .glsl extensions display well. I tried with 640 x 360 videos with a 1080p monitor. You can look the full log file here.

Here is the precise passage of the log concerning the shader ravu:

[   0.409][v][vo/gpu] Testing FBO format rgba16
[   0.409][d][vo/gpu] Resizing texture: 16x16
[   0.410][v][vo/gpu] Using FBO format rgba16.
[   0.410][v][vo/gpu] Disabling HDR peak computation (no compute shaders).
[   0.410][v][ifo] Opening D:\shaders\ravu-r3-smoothtest1.hook
[   0.410][v][ifo_dvdnav] Opening D:\shaders\ravu-r3-smoothtest1.hook
[   0.410][v][bdmv/bluray] Opening D:\shaders\ravu-r3-smoothtest1.hook
[   0.410][v][file] Opening D:\shaders\ravu-r3-smoothtest1.hook
[   0.410][d][file] Stream opened successfully.
[   0.410][w][vo/gpu] Pass has no hooked textures (will be ignored)!
[   0.410][w][vo/gpu] Pass has no hooked textures (will be ignored)!
[   0.411][w][vo/gpu] Pass has no hooked textures (will be ignored)!
[   0.411][w][vo/gpu] Pass has no hooked textures (will be ignored)!
[   0.411][e][vo/gpu] Error while parsing WHEN!
[   0.411][v][vo/gpu/win32] DPI detected from the old API: 96
[   0.411][v][vo/gpu/win32] display-fps: 75.000000

Thanks you.

bjin commented 6 years ago

It's weird. This error indicates that file ravu-r3-smoothtest1.hook is malformed, mpv can't find a line starts with //!HOOK.

Did you download the shader file in raw form (not just the HTML page)? It could also be caused by weird locale/encoding on windows, I don't know.

Thoach commented 6 years ago

I tried to download the shader in RAW form and the error message has disappeared in the log file. Thnaks. Unfortunately, the shader doesn't always seem to load and the scaler ewa_lanczossharp is used.

[   0.063][v][ifo] Opening D:\shaders\ravu-r3-smoothtest1.hook
[   0.063][v][ifo_dvdnav] Opening D:\shaders\ravu-r3-smoothtest1.hook
[   0.063][v][bdmv/bluray] Opening D:\shaders\ravu-r3-smoothtest1.hook
[   0.063][v][file] Opening D:\shaders\ravu-r3-smoothtest1.hook
[   0.063][d][file] Stream opened successfully.
[   0.063][e][vo/gpu] Unrecognized/unavailable FORMAT name: 'rgba16f'!
[   0.064][v][vo/gpu/win32] DPI detected from the old API: 96
[   0.064][v][vo/gpu/win32] display-fps: 75.000000
[   0.065][v][vo/gpu/win32] color-profile: C:\Windows\system32\spool\drivers\color\sRGB Color Space Profile.icm
[   0.065][v][vo/gpu] Assuming 75.000000 FPS for display sync.
[   0.066][v][vo/gpu] reconfig to 960x480 yuv444p auto/auto/auto/auto/auto CL=unknown (auto 0.000000/0.000000/0.000000)
[   0.066][d][vo/gpu] screen size: 1680x1050
[   0.066][v][vo/gpu/win32] reset window bounds: 120:165:1440:720
[   0.069][d][vo/gpu/win32] move window: 120:165
[   0.069][v][vo/gpu/win32] resize window: 1440:720
[   0.074][v][vo/gpu] Resize: 1440x720
[   0.074][v][vo/gpu] Window size: 1440x720
[   0.074][v][vo/gpu] Video source: 960x480 (1:1)
[   0.074][v][vo/gpu] Video display: (0, 0) 960x480 -> (0, 0) 1440x720
[   0.074][v][vo/gpu] Video scale: 1.500000/1.500000

I'm actually on a 1680x1050 monitor, and i check window-scale=1.5 in mpv.conf

bjin commented 6 years ago

Shaders in vulkan/ directory are using rgba16hf LUT, and required by gpu-api=vulkan and gpu-api=d3d11. Use these shaders if you encountered the following error: [vo/gpu] Unrecognized/unavailable FORMAT name: 'rgba16f'!

You need to use the one from vulkan directory for d3d11 backend, read the README.md file first.