mpv-player / mpv

🎥 Command line video player
https://mpv.io
Other
26.71k stars 2.84k forks source link

Flashing purple screen when using gpu-api=vulkan #14026

Open PuraIgnis opened 2 months ago

PuraIgnis commented 2 months ago

Important Information

Provide following Information:

Reproduction steps

It happens when I use --gpu-api=vulkan. Changing it to d3d11 would eliminate the issue.

Expected behavior

Video plays.

Actual behavior

Flashing screen, but audio is still there.

Log file

(output.txt))

Sample files

kasper93 commented 2 months ago

[   2.567][d][vo/gpu-next/libplacebo] Allocating 17694720 memory of type 0x1 (id 1) in heap 0: unknown
[   2.567][d][vo/gpu-next/libplacebo] Spent 0.404 ms allocating slab
[   2.572][d][vo/gpu-next/libplacebo] LUT invalidated, regenerating..
[   2.572][d][vo/gpu-next/libplacebo] Spent 0.002 ms generating shader LUT
[   2.572][d][vo/gpu-next/libplacebo] Allocating 262144 memory of type 0x1 (id 1) in heap 0: src/shaders/sampling.c:709
[   2.572][d][vo/gpu-next/libplacebo] Spent 0.263 ms allocating slab
[   2.572][d][vo/gpu-next/libplacebo] Allocating 258048 memory of type 0x7 (id 5) in heap 2: ../../../../../src_packages/libplacebo/src/gpu/utils.c:564
[   2.574][e][vo/gpu-next/libplacebo] Allocation of size  252K failed: VK_ERROR_OUT_OF_DEVICE_MEMORY!
[   2.574][e][vo/gpu-next/libplacebo] Memory heaps supported by device:
[   2.574][e][vo/gpu-next/libplacebo]     0: flags 0x1 size 3935M
[   2.574][e][vo/gpu-next/libplacebo]     1: flags 0x0 size 7895M
[   2.574][e][vo/gpu-next/libplacebo]     2: flags 0x1 size  214M
[   2.574][d][vo/gpu-next/libplacebo] Memory types supported by device:
[   2.574][d][vo/gpu-next/libplacebo]     0: flags 0x0 heap 1
[   2.574][d][vo/gpu-next/libplacebo]     1: flags 0x1 heap 0
[   2.574][d][vo/gpu-next/libplacebo]     2: flags 0x1 heap 0
[   2.574][d][vo/gpu-next/libplacebo]     3: flags 0x6 heap 1
[   2.574][d][vo/gpu-next/libplacebo]     4: flags 0xe heap 1
[   2.574][d][vo/gpu-next/libplacebo]     5: flags 0x7 heap 2
[   2.574][e][vo/gpu-next/libplacebo] Memory pool 0:
[   2.574][e][vo/gpu-next/libplacebo]     Compatible types: 0x3
[   2.574][e][vo/gpu-next/libplacebo]     Optimal flags: 0x1
[   2.574][e][vo/gpu-next/libplacebo]     Export handle: 0x2
[   2.574][e][vo/gpu-next/libplacebo]     Slab  0:        c x 4320K: 6720K used 8640K res   16M alloc from heap 0, efficiency 77.78%  [unknown]
[   2.574][e][vo/gpu-next/libplacebo]     Pool summary: 6720K used 8640K res   16M alloc, efficiency 77.78%, utilization 50.00%
[   2.574][e][vo/gpu-next/libplacebo] Memory pool 1:
[   2.574][e][vo/gpu-next/libplacebo]     Compatible types: 0x3
[   2.574][e][vo/gpu-next/libplacebo]     Optimal flags: 0x1
[   2.574][e][vo/gpu-next/libplacebo]     Slab  0: fffffffe x  8192:  8192 used  8192 res  256K alloc from heap 0, efficiency 100.00%  [src/shaders/sampling.c:709]
[   2.574][e][vo/gpu-next/libplacebo]     Pool summary:  8192 used  8192 res  256K alloc, efficiency 100.00%, utilization 3.12%
[   2.574][e][vo/gpu-next/libplacebo] Memory pool 2:
[   2.574][e][vo/gpu-next/libplacebo]     Compatible types: 0xffffffff
[   2.574][e][vo/gpu-next/libplacebo]     Optimal flags: 0x3
[   2.574][e][vo/gpu-next/libplacebo]     Buffer flags: 0x3
[   2.574][e][vo/gpu-next/libplacebo]     Pool summary:     0 used     0 res     0 alloc, efficiency 100.00%, utilization 100.00%
[   2.574][e][vo/gpu-next/libplacebo] Memory summary: 6728K used 8648K res   17M alloc, efficiency 77.80%, utilization 49.32%, max page:  245M
[   2.592][e][vo/gpu-next/libplacebo]   for malloc: ../../../../../src_packages/libplacebo/src/gpu/utils.c:564
[   2.592][d][vo/gpu-next/libplacebo] Freeing slab of size  252K
[   2.592][e][vo/gpu-next/libplacebo] No slab to serve request for  1024 bytes (with alignment 0xc00) in pool 2!
[   2.592][e][vo/gpu-next/libplacebo] Failed creating LUT texture!
[   2.592][e][vo/gpu-next/libplacebo] Failed initializing polar LUT!
[   2.592][e][vo/gpu-next/libplacebo] Failed dispatching scaler.. disabling
[   2.592][e][vo/gpu-next/libplacebo] Attempting to modify a failed shader!

@haasn: Do you think we can optimize this memory allocation to work also on Vulkan?

Also I notice error handling is not great

[   2.715][e][vo/gpu-next/libplacebo] input:67: error: '' :  syntax error, unexpected LEFT_BRACE, expecting SEMICOLON

probably some NULL is substituted in shader code.