We just released Wine Staging 1.7.36 and we are happy to announce some interesting new features in this version. A lot of work went into the implementation of the Threadpool API framework, which is available on Windows Vista and newer. The Threadpool API provides a lot of convenience functions to simplify writing multithreaded programs, for example to assign work items to a pool of worker threads, wait for their execution and call cleanup handlers afterwards. The number of applications using this API is steadily increasing, so we decided that its definitely time to add an implementation. There are still some unimplemented functions left but the core components are available now and sufficient for most applications, including Adobe Lightroom 5.3.
Another addition of 1.7.36 is the nvencodeapi.dll implementation which makes it possible to use the GPU encoding engine NVENC by NVIDIA. NVENC is a successor of the CUDA based nvcuvenc and is available for Kepler / Maxwell based NVIDIA cards (i.e. Geforce >= 600). Unlike nvcuvenc, which can be used in Wine Staging through the native dll, nvencodeapi.dll is a wrapper to the libnvidia-encode.so library. The wrapper implements NVENC 5.0 and requires at least version 346.22 of the linux NVIDIA driver. While the current implementation is feature complete, it lacks asynchronous encoding mode since the linux drivers does not support it yet. At the moment the asynchronous mode is emulated using the synchronous mode which may decrease the performance. We are looking forward to add a more efficient emulation in the next release.
As usual there were also some other small improvements like an upgrade of the CUDA wrapper to CUDA 7.0 RC and fixes for mouse jittering in games like Planetside 2. The full list of changes is available in our changelog.