test_index_buffer_offset() occasionally fails (on some machines and/or Mesa versions) due to a bug in radeonsi. Although the bug has since been fixed upstream, I ended up writing these patches for it, and since they reduce GL calls I'm inclined to believe they're a good idea regardless.
The relevant Mesa bug is <https://gitlab.freedesktop.org/mesa/mesa/-/issues/6138>.
--
v2: wined3d: Do not pause transform feedback after every draw call.
wined3d: Pause transform feedback in wined3d_context_gl_draw_textured_quad().
wined3d: Pause transform feedback in wined3d_context_gl_draw_shaded_quad().
https://gitlab.winehq.org/wine/wine/-/merge_requests/450
Currently the wine function `get_dir_case_sensitivity_stat` calls `ioctl` syscall with command `EXT2_IOC_GETFLAGS` and tries to read a flag `EXT4_CASEFOLD_FL` from the result. It does this on all filesystems without checking if the filesystem supports that flag.
This patch adds a check: only do the call on filesystems that are known to support `EXT4_CASEFOLD_FL`. To my knowledge these are EXT4 and F2FS.
Advantages:
- The `EXT4_CASEFOLD_FL` flag is nonstandard and other filesystems may use the same binary value to represent another flag. This patch prevents flag compatibility issues with other filesystems.
- This fixes (or works around) an issue on FUSE filesystems using libfuse 3.10 or older and kernel 5.13 or newer, where unsupported `ioctl` calls always succeed and return random (uninitialized) data (see https://github.com/libfuse/libfuse/issues/640). On such setups Wine randomly fails to read files because it thinks that the `EXT4_CASEFOLD_FL` is set when really it is just random data. Ubuntu 22.04 LTS has settled on libfuse 3.10 and kernel 5.15 so this issue will be around for years to come.
Disadvantages:
- The flag will not be read on possible other current and future filesystems that support it.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/451