I spent some time trying to figure out how exactly different pixel formats should be aligned. And I have some discoveries. One major difference is that native `IMFMediaBuffer` implements `IMF2DBuffer` while ours doesn't. This means native `IMFMediaBuffer` can in theory have any alignment, since the user can figure out the actual stride used by calling `IMF2DBuffer::Lock`. In my testing, the Y plane stride alignment is actually 16 bytes. Seems like games expect the Y plane stride alignment to be 2 bytes when `IMF2DBuffer` interface is not available. At least the games we had problems with (e.g. River City Girls) are like this. So that's what this commit does. An alternative fix will be implementing `IMF2DBuffer` for our media buffers and report our stride through `Lock2D`. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10654#note_136011