Linux on ARM port is complete

After the port on MacOS, I bought a Raspberry PI 5 and started to port on Linux on ARM. It took me about 1 week of work. As always, I had to rebuild all the dependencies and the entire framework.

The framework is well done and I didn’t encounter any particular problems during the build. However, the Vulkan part gave me some troubles, from validation errors to many other incoherence issues, that I had to fix one by one. As result, in the video you can see TMD Viewer 2025.1 running on a Raspberry PI 5 for the first time, but the support is not limited to this device but any Linux distros on ARM from glibc 2.28 onwards.

MacOS port is complete

The entire TextureMind Framework, TMD Server and TMD Viewer have been ported on MacOS. After days of fixing bugs, now the MacOS version is super stable. Framework, dependencies and program have been compiled with CLang on M4 with SDK 15.5 targeting OS 11 / arm64 / x86_64. For TMD Server, I had to implement two screen captures, one with Core Graphics (CG) and the other one with Screen Capture Kit (SCK). The CG screen capture will run on older versions of the operating system, while the SCK one is mandatory for the latest version 15 because CG screen capture has been removed.


TMD Server is using only 30 MB for running with 4K resolution at more than 30 FPS, there are no memory leaks or crashes in days. The keyboard was hard to support, but it’s getting better and better. Now I can play games in real-time. The only missing part is the audio capture and clipboard, then I think I can release this monster as soon as possible.

More than 50% of MacOS port is complete

In just 2 days, I ported the entire common module in TextureMind Framework to MacOS. Now it builds without errors and the common test runs correctly.

The common module contains: Log handler; Array, List, Map, MultiMap; Files handler; Simple math and geometry; Memory handler; Multi-threading; Inter-process communication; Networking; Strings handler; Environment variables; Zip and LZ4 compression; xxHash, GUID and SHA256; Message transport; Objects and serialization; Process handler; The full set of APIs.

I ported also the modules: core, picture, sample, geometry, project, language, shader, engine, graphics, physics, gui, audio and the entire TMD protocol. Now it’s time to implement the system module, which is more complicated because contains functions to handle windows and desktop functionalities, like screen capture, display layout, input injection and audio. I think I’ll be finished in a couple of weeks.

TMD 2025.1 is on the road

I’m working hard to release the new version 2025.1 of both TMD Viewer and TMD Server. Among the most notable improvements, there will be support for Wayland on Linux and extended support for the older versions of Windows.

About Wayland, I was able to maintain the paradigm that allows TMD to run on any Linux distro with a single build on CentOS 7. From now on, Wayland will be used 100% instead of Xwayland. Wayland will be dynamically detected at runtime and used only if available, even in older versions of Linux, starting from compositor version 4 (which covers up to CentOS 8). If not available, X11 will be used instead. To maintain the highest degree of compatibility, I decided to introduce a cross-platform client-side window decoration system (with a look similar to Windows 10) that will be used everywhere, even on X11 and Windows. The new TMD Server will work under Wayland desktop capturing the screens thanks to the PipeWire+Portal add-on instead of giving a black screen, as in the current 2025.0 version.

TMD Viewer 2025.1 will be compatible with extremely old versions of 32-bit Windows, like Windows Vista or Windows Server 2008, while version 2025.0 is limited to 64-bit Windows 8. To summarize, 2025.1 will run on 32/64 bit Windows Vista, Windows 7 / 8 / 10 / 11, Windows Server 2008 / 2012 / 2016 / 2019 / 2022 / 2025.

Wayland update: TMD Viewer works now

To support Wayland, the entire window and event handling stack, along with screen capture and input handling functionality, needs to be rewritten. Compared to Xorg, Wayland has a number of limitations that are part of the new design, such as the inability to position the window, the lack of server-side window decorations on most distributions, the inability to capture screens with native system calls, the inability to capture or inject mouse and keyboard input.

Any missing functionality, where possible, will be replaced with the use of external components, such as PipeWire+Portal. For now, I have already rewritten the entire part relative to window creation, drawing and managing client-side decorations (in place of server-side ones). I also wrote the part about managing pointer and keyboard input, and it’s possible now to change the pointer icon with the system cursor or any image, with animation support as well. Now there is support for Cairo and Vulkan surfaces, with decorations drawn by the graphics context, while the windows can be dragged and resized. Some framework applications are already able to start and function normally, and TMD Viewer works already. The next step is to get the TMD Server up and running, supporting the missing components for screen capture, input handling, and the system clipboard.

Wayland, Linux on ARM and MacOS

In the next months, I will focus my efforts in developing the following missing features for TMD:

  • Wayland support
  • Linux on ARM
  • MacOS support

About Wayland, I started to evaluate the code and it’s not difficult, I think a first working prototype can be done in few weeks. For Linux on ARM, I will buy a Raspberry PI 5 for building and testing the software, so at the end of the process, TMD will be able to run on Raspberry PI 5, both client and server. Finally, I will buy a Mini Mac M4 for starting a porting of the entire TextureMind Framework to MacOS. This is an important milestone, because not only TMD but all the framework applications will be able to benefit from it.

TMD can run on a wide range of Linux distros

After few days of debugging and fixing bugs on Linux, now TMD (version 2025.0.3) can work on a wide range of Linux distros, with support for console user sessions and login/logout screen. It has been tested successfully on Centos 7, Centos 8, Ubuntu 20, Ubuntu 24, OpenSUSE 15 and Amazon Linux 2023.7.2, but it can run anywhere. Only a note: Wayland is not supported yet, so you need to disable it before using TMD. The support for Wayland will be added in the next few months, for now you can continue to use X11 instead.

TMD takes a break

After months and months of non-stop development, TMD is taking a break. I will continue to promote the product and provide support to users, fixing bugs reported to me. Development of new features will resume in few months. I’ll take this opportunity to continue working on the framework and focus on other topics, such as graphics, 3D applications, modeling, CAD, video games, artificial intelligence, and retrodev.

TMD 2025.0.3 with Linux Support is Available

In theĀ download page, you can find a new version of TMD, for the first time with Linux support. Now TMD is a service also on Linux, so it can run in background all the time and handle console sessions. This is an important release, because now TMD is a complete product with cross-platform support and user sessions.

The list of new features:

TMD Viewer 2025.0.3 (3 September 2025)

Features:

  • Linux support
  • Improve virtual monitors stability

TMD Server 2025.0.3 (3 September 2025)

Features:

  • Create virtual monitors with ADL2
  • Linux support with installer script
  • Console sessions on Linux

TMD 2025.0.2 is Available

In theĀ download page, you can find a new version of TMD with important patches. The most relevant is the patch for a bug preventing TMD from working on some environments caused by a bad name to SID mapping for the creation of a secure named pipe. There are also other bug fixes and improvements on both client and server:

TMD Viewer 2025.0.2 (31 August 2025)

Features:

  • Make it possible to add or remove virtual monitors

Bug fixes:

  • Manual trust window is truncated by screen borders with small desktop resolutions
  • Primary display is invalid when primary display is deactivated

TMD Server 2025.0.2 (31 August 2025)

Features:

  • Create virtual monitors with NvAPI

Bug fixes:

  • Wrong detection of correct displays number with multiple adapters
  • Impossible to deactivate primary display
  • Failing name to SID resolution for ACL creation prevented TMD from working in service mode, black screen
  • Random screen block when display layout changes