0
0
mirror of https://github.com/mpv-player/mpv.git synced 2024-09-20 20:03:10 +02:00
mpv/video/out/gpu
wm4 a908101258 vo_gpu: attempt to fix 0bgr format
Using e.g. --vf=format=0bgr showed obviously wrong colors with --vo=gpu.
The reason is that leading padding wasn't handled correctly.

Try to hack fix it. While the code in copy_image() is somewhat
reasonable, I can't tell what the fuck is going on with that HOOKED
shit. For some reason this HOOKED shit doesn't use copy_image() (???),
or uses it incorrectly. It affects debanding. --deband=no works
correctly. If it's enabled, the crap in hook_prelude() is needed.

I bet there are many more bugs with this. For example, the deband shader
will try to deband the alpha channel if the format abgr is used (because
the correct component order is only established later). This can be
tested by inserting a "color.x = 0;" at the end of the deband shader,
and using --vf=format=rgba vs. abgr.

I cannot comprehend why it doesn't just store explicitly which
components a texture contains, and why it doesn't just read the
components always in an uniform way.

There's a big chance this fix works only by coincidence. This shouldn't
have been so hard either. Time for a complete rewrite?
2019-10-26 00:02:55 +02:00
..
context.c vo_gpu: vulkan: add Android context 2019-09-27 00:05:06 +03:00
context.h vo: make swapchain-depth option generic for all VOs 2019-09-28 14:10:01 +03:00
d3d11_helpers.c vo_gpu/d3d11: fix memleak of the adapter description string 2019-10-15 22:12:48 +03:00
d3d11_helpers.h vo_gpu/d3d11: fixup adapter selection by switching it all to bstr 2019-10-15 22:12:48 +03:00
error_diffusion.c vo_gpu: process three component together in error diffusion 2019-06-16 11:19:44 +02:00
error_diffusion.h vo_gpu: implement error diffusion for dithering 2019-06-16 11:19:44 +02:00
hwdec.c vo_gpu: hwdec_d3d11eglrgb: remove this 2019-10-16 23:41:06 +02:00
hwdec.h vo_gpu: hwdec: remove redundant fields 2017-12-01 05:57:41 +01:00
lcms.c video: add pure gamma TRC curves for 2.0, 2.4 and 2.6. 2019-09-27 13:21:41 +02:00
lcms.h
libmpv_gpu.c drm: fix libmpv ABI breakage introduced in 351c083487 2019-09-18 23:59:32 +03:00
libmpv_gpu.h client API: add a new way to pass X11 Display etc. to render API 2018-03-26 19:47:08 +02:00
osd.c vo_gpu: fix segfault when OSD tex creation fails 2019-04-21 23:55:22 +03:00
osd.h vo_gpu: simplify structs / names 2017-09-22 16:58:55 +02:00
ra.c client API: add a new way to pass X11 Display etc. to render API 2018-03-26 19:47:08 +02:00
ra.h video/out/gpu: Add a storable flag to ra_format 2019-07-08 00:59:28 +02:00
shader_cache.c vo_gpu: index desc namespaces by ra 2019-04-21 23:55:22 +03:00
shader_cache.h vo_gpu: invalidate fbotex before drawing 2017-12-25 00:47:53 +01:00
spirv_shaderc.c vo_gpu: switch to optimization level performance 2018-09-01 16:14:22 +02:00
spirv.c spirv: remove --spirv-compiler=nvidia 2018-12-01 15:50:23 +02:00
spirv.h vo_gpu: vulkan: generalize SPIR-V compiler 2017-09-26 17:25:35 +02:00
user_shaders.c vo_gpu: allow user shader to fix texture offset 2019-06-06 20:01:56 +02:00
user_shaders.h vo_gpu: allow user shader to fix texture offset 2019-06-06 20:01:56 +02:00
utils.c video/out/gpu: Add a storable flag to ra_format 2019-07-08 00:59:28 +02:00
utils.h vo_gpu: simplify structs / names 2017-09-22 16:58:55 +02:00
video_shaders.c video: add pure gamma TRC curves for 2.0, 2.4 and 2.6. 2019-09-27 13:21:41 +02:00
video_shaders.h vo_gpu: improve tone mapping desaturation 2019-02-18 01:54:06 +02:00
video.c vo_gpu: attempt to fix 0bgr format 2019-10-26 00:02:55 +02:00
video.h vo_gpu: implement error diffusion for dithering 2019-06-16 11:19:44 +02:00