New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

--hdr-compute-peak=yes shows blocky corruption with --dscale=ewa_lanczos #6083

Closed
aufkrawall opened this Issue Aug 21, 2018 · 3 comments

Comments

Projects
None yet
2 participants
@aufkrawall

aufkrawall commented Aug 21, 2018

mpv version and platform

mpv 0.29.0-21-gd2d7dba6ee Windows 10

Reproduction steps

Play any HDR video downscaled with
dscale=ewa_lanczos
hdr-compute-peak=yes

Expected behavior

It should work fine.

Actual behavior

It shows severe blocky corruption:
https://abload.de/img/hdrblockysuifn.png

Happens with D3D11, OpenGL and Vulkan.
Doesn't happen with --hdr-compute-peak=no.
It's obviously related to EWA scalers, as it doesn't occur with --dscale=lanczos either.

Log file

https://pastebin.com/T7VYNTqd

Sample files

It occurs with any HDR video.

@aufkrawall aufkrawall changed the title from --hdr-compute-peak=yes shows blocky corruption with dscale=ewa_lanczos to --hdr-compute-peak=yes shows blocky corruption with --dscale=ewa_lanczos Aug 21, 2018

@haasn

This comment has been minimized.

Member

haasn commented Aug 21, 2018

Pretty sure this happens when both passes try enabling compute shaders at the same time, presumably with different block sizes. I'll fix it soon-ish (not today, too hot to think).

@aufkrawall

This comment has been minimized.

aufkrawall commented Aug 21, 2018

Sure, no hurry. Thanks for responding in such a timely manner.

haasn added a commit to haasn/mpv that referenced this issue Aug 26, 2018

vo_gpu: avoid overwriting compute shader block sizes
When using multiple compute shaders as part of the same pass, there can
be a conflict in the block sizes. In the problematic case, the HDR
detection shader can collide with the polar sampling shader. In this
case, the solution is clear - the passes that can handle any size should
"give in" and not overwrite the block sizes.

Fixes mpv-player#6083.

@sfan5 sfan5 closed this in #6091 Aug 26, 2018

sfan5 added a commit that referenced this issue Aug 26, 2018

vo_gpu: avoid overwriting compute shader block sizes
When using multiple compute shaders as part of the same pass, there can
be a conflict in the block sizes. In the problematic case, the HDR
detection shader can collide with the polar sampling shader. In this
case, the solution is clear - the passes that can handle any size should
"give in" and not overwrite the block sizes.

Fixes #6083.
@aufkrawall

This comment has been minimized.

aufkrawall commented Aug 26, 2018

All good now, thank you.

jeeb added a commit to jeeb/mpv that referenced this issue Sep 29, 2018

vo_gpu: avoid overwriting compute shader block sizes
When using multiple compute shaders as part of the same pass, there can
be a conflict in the block sizes. In the problematic case, the HDR
detection shader can collide with the polar sampling shader. In this
case, the solution is clear - the passes that can handle any size should
"give in" and not overwrite the block sizes.

Fixes mpv-player#6083.

(cherry picked from commit 1890ca0)

jeeb added a commit to jeeb/mpv that referenced this issue Sep 29, 2018

vo_gpu: avoid overwriting compute shader block sizes
When using multiple compute shaders as part of the same pass, there can
be a conflict in the block sizes. In the problematic case, the HDR
detection shader can collide with the polar sampling shader. In this
case, the solution is clear - the passes that can handle any size should
"give in" and not overwrite the block sizes.

Fixes mpv-player#6083.

(cherry picked from commit 1890ca0)

jeeb added a commit to jeeb/mpv that referenced this issue Sep 29, 2018

vo_gpu: avoid overwriting compute shader block sizes
When using multiple compute shaders as part of the same pass, there can
be a conflict in the block sizes. In the problematic case, the HDR
detection shader can collide with the polar sampling shader. In this
case, the solution is clear - the passes that can handle any size should
"give in" and not overwrite the block sizes.

Fixes mpv-player#6083.

(cherry picked from commit 1890ca0)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment