https://bugs.winehq.org/show_bug.cgi?id=38471
Bug ID: 38471 Summary: scanline ordering different type assignment Product: Wine Version: 1.7.41 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: directx-d3d Assignee: wine-bugs@winehq.org Reporter: isakov-sl@bk.ru Distribution: ---
dlls/dxgi/ Clang warning ---- output.c:216:41: warning: implicit conversion from enumeration type 'enum wined3d_scanline_ordering' to different enumeration type 'DXGI_MODE_SCANLINE_ORDER' (aka 'enum DXGI_MODE_SCANLINE_ORDER') [-Wenum-conversion] desc[i].ScanlineOrdering = mode.scanline_ordering; ~ ~~~~~^~~~~~~~~~~~~~~~~ ---- If we look more carefully then we see that wined3d_scanline_ordering assumes values from 0 to 2 while DXGI from 0 to 3. The difference is WINED3D_SCANLINE_ORDERING_INTERLACED = 2 may correspond to DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST = 2, DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST = 3, depends on what? Usual DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST but in this case the assignment is wrong. 2 != 3
https://bugs.winehq.org/show_bug.cgi?id=38471
--- Comment #1 from Sergey Isakov isakov-sl@bk.ru --- Still valid for wine 4.2
dlls/dxgi/misc.s:33
https://bugs.winehq.org/show_bug.cgi?id=38471
--- Comment #2 from Nikolay Sivov bunglehead@gmail.com --- I think you can ignore that. Both 2 and 3 modes are interlaced, maybe wined3d enum should be updated to include another interlaced mode when it's implemented, but otherwise there are many places when wined3d is using its own types, matching in values SDK types. You should see more warnings with clang than just this one.