msys2 / MINGW-packages

Package scripts for MinGW-w64 targets to build under MSYS2.
https://packages.msys2.org
BSD 3-Clause "New" or "Revised" License
2.22k stars 1.19k forks source link

mingw-w64-ffmpeg bug with yuv2rgb on phenom #10116

Open Marisa-Chan opened 2 years ago

Marisa-Chan commented 2 years ago

Has faced with problem on phenom and specific code which uses yuv2rgb converting and it's builded for 32bit system (on old version. On fresh version just black screen) 01

After testing on virtual machine with blocking cpu extensions I find that disabling ssse3(on emulated core2duo) reproduce this bug. In Debian build scripts I find that:

# Disable assembly optimizations on x32, because they don't work (yet).
ifneq (,$(filter x32,$(DEB_HOST_ARCH)))
    CONFIG += --disable-asm
endif

And after building ffmpeg with this flag problem is gone on phenom.

Biswa96 commented 2 years ago

Is the host OS 64bit? What is the package name that you are using? Can you provide exact commands to reproduce your issue?

Marisa-Chan commented 2 years ago

Firstly it's reported from one person on real hardware and system:

CPU: AMD phenom II 840
RAM: 8gb
GPU: Radeon 6570
OS: Windows 10 Home

App was build for 32bit system.

I make my tests on linux as hypervisor and AMD Ryzen 5 1600X. I just run virtual machine with virt-manager, choose phenom (with disabling 3dnow) as emulated cpu and install fresh Win 10 Home 64 bit. Tests app and get issue.

Then I switched emulated cpu to core2duo and bug is gone. For repeating this on core2duo I just edit VM xml where cpu is defined and edit it's like this:

  <cpu mode="custom" match="exact" check="partial">
    <model fallback="allow">core2duo</model>
    <topology sockets="1" dies="1" cores="2" threads="2"/>
    <feature policy="disable" name="3dnow"/>
    <feature policy="disable" name="3dnowext"/>
    <feature policy="disable" name="mmxext"/>
    <feature policy="disable" name="sse4a"/>
    <feature policy="disable" name="ssse3"/>
  </cpu>

And bug appears after I added "ssse3".

After of this I recompile ffmpeg with "--disable-asm" and bug is gone.

Well, this is minimal app sources and video file for testing of this bug: testapp.zip

P.S. for running tests in virtual machine I use additional OpenGL software render dll ( https://fdossena.com/?p=mesa/index.frag )