Windows API replica: Wine 6.0 with Vulkan renderer for Direct 3D

Source: Heise.de added 15th Jan 2021

  • windows-api-replica:-wine-6.0-with-vulkan-renderer-for-direct-3d

One year after Wine 5.0, version 6.0 of the Windows compatibility layer for Linux, macOS, ReactOS and Android has now been released. The release brings a Vulkan backend for WineD3D and extends the implementation of the console and the integration of the Media Foundation framework. It also continues the conversion of the libraries to the Windows binary format Portable Executable (PE).

Dance with us on the volcano Direct3D The implementation of Direct3D calls via the Vulkan graphic interface has been on the wish list for a long time and has been in the works for two years. So far, Wine has been using OpenGL for implementation via the WineD3D translation layer. The current release brings a Vulkan renderer for WineD3D, which is currently still marked as experimental. If you want to activate it, you have to enter the registry entry stored in HKEY_CURRENT_USER Software Wine Direct3D set renderer to volcano .

The backend needs the shader library vkd3d to translate the Direct3D shader into the SPIR-V shader (Standard Portable Intermediate Representation). In the first attempt, the shaders for the Vulkan renderer are limited to Shader Model 4 and 5. The former came with DirectX 10 and the latter with DirectX 11. Only applications based on Direct3D 10 or 11 aim sensibly with the backend.

Binary format in transition In Wine 5.0, the team has made the change started from DLLs from Executable and Linkable Format (ELF) to PE format. The current release has all core DLLs such as NTDLL, KERNEL 32, GDI 32, USER 32 in PE format on board. According to the announcement, this should help especially in conjunction with copy protection mechanisms that compare the content of the memory with that of the DLL files.

In addition, Unix libraries can now be assigned to PE modules so that the latter can use the Can call functions from the library that cannot be implemented via the Win 32 API. Wine searches for the libraries as variants of the PE modules with a file extension changed to “.so” and expects them in the same directory as the PE variant. For example, the equivalent of “ntdll.dll” would have to be saved as “ntdll.so”.

The library libwine is no longer used in Wine 6.0. However, the current release still brings them with it in order to be able to use older Winelib modules. Due to the new architecture without the integration of “libwine.so” modules created for Wine 6 do not run with older Wine versions.

Graphics and Media Foundation Some additions concern the two-dimensional graphics: Among other things, the drawing of arcs, ellipses and rounded rectangles is now implemented via the Direct2D API. The Null Display Driver can be used as a regular display driver if no UI is required. In addition, WindowsCodecs can now decode images in JPEG-XR or DDS format (DirectDraw Surface) and encode them in GIF format.

The implementation of the Media Foundation Framework also brings some innovations, including the integration of the Media Session object and the SAR pipeline (Streaming Audio Renderer). Wine 6.0 also includes an implementation of the DirectShow file writer filter and a wrapper for DirectX Media Objects (DMO).

On the console The Wine developers have redesigned text consoles taking into account the more recent Windows architecture, as it is closer to the way Unix consoles work than the old Windows approach. Among other things, Wine 6.0 brings a pseudo console as an equivalent to pseudo terminals (pseudo TTYs) in Unix.

The entire handling of the console control takes place via the process ConHost . The developers have degraded the WineConsole as a wrapper for the process. Since ConHost also takes care of the processing of VT escape sequences, Wine can do without the UNIX curses library.

Further innovations in Wine 6.0 such as the integration of input devices via DirectInput can be found in the announcement. The source code and binary packages are linked there. As in version 5.0, the community has to complain about a loss and dedicates the release to Ken Thomases, who died shortly before Christmas and who was largely responsible for macOS support in Wine.

(rme)

Read the full article at Heise.de

brands: 11  AIM  CODE  Direct  Especially  First  linux  longer  New  One  other  RME  Rounded  Team  The Source  
media: Heise.de  
keywords: Android  Audio  Console  Memory  Software  Windows  

Related posts


Notice: Undefined variable: all_related in /var/www/vhosts/rondea.com/httpdocs/wp-content/themes/rondea-2-0/single-article.php on line 88

Notice: Undefined variable: all_related in /var/www/vhosts/rondea.com/httpdocs/wp-content/themes/rondea-2-0/single-article.php on line 88

Related Products



Notice: Undefined variable: all_related in /var/www/vhosts/rondea.com/httpdocs/wp-content/themes/rondea-2-0/single-article.php on line 91

Warning: Invalid argument supplied for foreach() in /var/www/vhosts/rondea.com/httpdocs/wp-content/themes/rondea-2-0/single-article.php on line 91