vkdt on Windows

This project sounds great.

But for medium user as me I think we would have to wait for a more stable and user friendly version as it seems to be an ongoing alpha development.

A windows versions would be great for those of us that is stucked with windows.
I have not the needed expertise to port it to windows and compile it for windows

It seems that there are few dependencies, so it should not be all that difficult, given the needed knowledge.

Do you know if there is anybody trying the port/compilation for windows?

It might run on WLS which would be nice but not sure… I will try and see how it goes…if successful I will elaborate…DT runs fine but no Opencl on WLS

1 Like

Great, thanks.
As long as I understood, vkdt does not use opencl but vulkan libraries, and vulkan is supposed to be OS agnostic, doesn’t it?

Yes but WSL is essentially a Linux VM in the Windows OS so it may not be that simple

I think someone compile it on Windows some time ago.

I also think that it would be important to have a Windows binary. But we cannot expect the dev to do that.

Actually I would not be surprised if someone did that soon…

Why is WSL needed?
Is there anay dependency that cannot be compiled in windows natively?

Running it in a virtual machine does not seem a good option, it usually is not quick enough.

WSL is a kind of virtual machine that comes with windows, based in microsofts own VM engine.

No, I know, at least not the main devs, they have enough with developing the app and may be not so expertize in windows.

That is why I am asking if anybody has tried to compile it or is planning to do so.

And devs may be can point some problems in porting (like some libraries not available for windows).

1 Like

vkdt will not run in WSL, as WSL graphics drivers don’t support vulkan. Vulkan needs graphics driver support, which is very complicated in WSL (since it’s a virtual machine).

1 Like

@ariznaf I’m working on a windows build of vkdt in my repo here: https://github.com/geneing/vkdt
I had to make a lot of changes to get it to even compile under MSYS.
@hanatos uses a lot of linux specific functions that I had to either rewrite or to write my own equivaltent. I got the command line executable (vkdt-cli) to run a few days ago.

3 Likes

great, thank you.

May you provide a compiled exe?

May be it is too soon for me to test the software at it seems to be in a preliminary state, but I would like to try.

Keep us posted. I figured it would not work on WSL but I was going to try after confirming driver support. I have popOS running for such testing on another drive so I might just try it there and save any non Linux headaches… :slight_smile:

I think there is 1 Main dev

Yes, it seems like that for now.
May be the team will grow soon.

Other techy or devs interested in the project can do the compilation or adaptation tasks.

As I expected it seems there isone now, trying to port it to windows @Gene. Thank you for the effort.

I expect this project to be a great software, a great DT successor without all the legacy constraints of DT.
But it seems it will take a while to get there.

Why WSL? WSL is a VM and as such your app won’t have easy direct access to hardware.

It does not have to work in WSL but in native windows code, windows is fully compatible with vulkan and vulkan API.

The problem seems to be that there are more dependencies than just vulkan and the UI library (which is coded under vulkan and should be easily ported).

I suppose that the problems are the OS calls to open files and things alike.
You need a port for them or just substitute that code for native windows code which seems the path @Gene is taking.

For creating a window for the interface there are cross libraries like GLFW and for matrix algebra GLM.

I only suggested it as a possibility to try it out if Vulkan was supported as I knew it (vkdt) didn’t work yet on Windows. WSL is there and for a Windows user can be a convenient way to test Linux software without dual booting. I have PopOS installed on its own hardrive so I can go to a native Linux install if I need to from my PC boot menu. It was just a suggestion for a quick test not any long term solution or recommendation.

1 Like

Yes, I have used it to test or run some linux programs, but not GPU intensive ones.

As long as I know, WSL does not let the VM code direct access to hardware, only via the emulated hardware.

I think that the drivers do not expose the GPU funcionality that vkdt needs to access GPU, but lets see if there is a way of doing that and I am missing some WSL funcionality.

vkdt runs only if there is a GPU installed in the system.

1 Like

Ya pretty accurate assessment of the current state…there is some link to some Nvidia virtual driver but I think Zi tried to follow it…doesn’t support Opencl so it was for DT primarily…It may evolve at some point. As you say it has its uses but also lots of limitations

1 Like

Windows has standard posix libraries such as creating threads, opening files… So as long as the software uses just posix it should not be a problem.

Great to know there are going to be efforts to facilitate porting and that @Gene is trying to port it.
I will try it as soon as the port is done.

It seems you are using GLFW and as GUI seems to be developed e tirely in vulkan only system calls will be OS dependent. That is great.

/sys and /proc (which @hanatos refers to in his last post) aren’t libraries, but act as parts of the filesystem that give access to system and process information. The entries are treated as files.

I’m not sure there’s a direct equivalent under Windows, and since you interact with those filesystems as if they contain files, porting those parts to Windows isn’t a matter of finding a compatible library.
I suspect that a part of @Gene 's efforts concerned those two interface… not a trivial job…

Ok, thank you, I know what sys and proc are. He talked about posix and i did not know he has refering to that.

No there is not a Direct equivalent, in Windows info about running proceses are not in the filesystem, in Windows you do system calls.

What you do have in Windows si the standard c posix library to open files, use semaphores, launch threads…

I don’t know if some of the current use of proc and sys can be substituded for posix library functions.

It seems that cygwin library provides /proc functionality in Windows, at least. I don’t know If It helps @Gene in te Port.

The others need to be completly rewritten in Windows and possibly other OSes.

Isolating that OS specific tasks in functions or a class would help the task of porting, as hanatos seems to plan in the future.