mirror of https://github.com/mpv-player/mpv
73c3dc0a7b
pass_color_map() (in video_shaders.c) and pass_colormanage() (video.c) both duplicate the condition on whether to do peak computation. Peak computation requires a compute shader, so if the duplicated conditions don't match, video_shaders.c will generate a compute shader, but video.c will try to run it as fragment shader. This leads to a "blue screen". This can be reproduced by playing a HDTV video with --target-peak=99. It's not clear how to fix this. Should pass_tone_map() be only invoked if mp_trc_is_hdr() == true (what pass_colormanage() uses to decide whether to enable peak computation), or should pass_colormanage() just tell pass_color_map() to skip peak computation? Decide for the latter, as it's more robust. Even if not correct, at least it gets rid of the blue shit. Fixes: #7149 |
||
---|---|---|
.. | ||
context.c | ||
context.h | ||
d3d11_helpers.c | ||
d3d11_helpers.h | ||
error_diffusion.c | ||
error_diffusion.h | ||
hwdec.c | ||
hwdec.h | ||
lcms.c | ||
lcms.h | ||
libmpv_gpu.c | ||
libmpv_gpu.h | ||
osd.c | ||
osd.h | ||
ra.c | ||
ra.h | ||
shader_cache.c | ||
shader_cache.h | ||
spirv.c | ||
spirv.h | ||
spirv_shaderc.c | ||
user_shaders.c | ||
user_shaders.h | ||
utils.c | ||
utils.h | ||
video.c | ||
video.h | ||
video_shaders.c | ||
video_shaders.h |