werico
Step-by-Step Solution
- Ensure Correct MPV Architecture
Problem: Stremio is 64-bit, so using a 32-bit (i686) MPV build can cause compatibility issues.
Fix: Download the 64-bit (x86_64) MPV dev build from mpv’s official repository https://sourceforge.net/projects/mpv-player-windows/files/ and replace mpv-1.dll in Stremio’s directory with the 64-bit version.
- Bypass the Libplacebo Assertion
Problem: The assertion max_vbo_size <= max_buf_size fails due to driver-reported values on AMD hardware.
Fix:
Modify Libplacebo Source Code:
Locate src/gpu/utils.c in the libplacebo source.
Change the assertion:
c
// Original line (line 160):
assert(gpu->limits.max_vbo_size <= gpu->limits.max_buf_size);
// Modified line:
if (gpu->limits.max_vbo_size > gpu->limits.max_buf_size) {
gpu->limits.max_vbo_size = gpu->limits.max_buf_size;
}
Recompile MPV with the modified libplacebo. Use Meson/Ninja for building:
bash
git clone https://code.videolan.org/videolan/libplacebo.git
cd libplacebo
Apply the code change
meson setup build
ninja -C build
Replace the existing mpv-1.dll with the newly compiled version.
- Use Direct3D 11 Instead of Vulkan
Problem: Vulkan backend triggers driver-specific crashes in Stremio’s environment.
Fix: Force MPV to use Direct3D 11:
In mpv.conf, add:
ini
vo=gpu-next
gpu-api=d3d11
- Update AMD Drivers
Problem: Outdated drivers may misreport Vulkan capabilities.
Fix:
Download the latest AMD Adrenalin Edition drivers from AMD’s official site.
Ensure “Vulkan Support” is selected during installation.
- Adjust Vulkan Parameters (If Sticking to Vulkan)
Problem: Vulkan buffer/queue settings may conflict with Stremio.
Fix: Add these to mpv.conf:
ini
vo=gpu-next
gpu-api=vulkan
vulkan-queue-count=1
vulkan-swap-mode=fifo
- Test Older Libplacebo/MPV Builds
Problem: The issue might stem from a regression in newer libplacebo versions.
Fix: Use an MPV build linked against libplacebo v5.229.0 (or earlier). Prebuilt binaries can sometimes be found in mpv-winbuild-cmake https://github.com/shinchiro/mpv-winbuild-cmake/releases.
Additional Notes
Stremio Configuration:
Verify that Stremio’s patch for MPV config is correctly applied. Ensure no conflicting settings exist in mpv.conf or input.conf.
Debugging:
Capture a full crash dump using tools like WinDbg or ProcDump to analyze the ucrtbase.dll fault further.
Community Support:
Report the issue to libplacebo’s GitHub https://github.com/haasn/libplacebo/issues with details about the AMD driver version and Vulkan capabilities.