VideoStreams: Media Kit-like 3D hardware acceleration kit for Haiku

Sorry my bad. I wish that they would focus on POSIX instead of whatever Linux currently looks like. : (

How to measure? Visually it looks fine.

1 Like

POSIX is not enough to base a compatibility layer on, you need more stuff. It seems obvious to use what is availableā€¦ but wine also runs fine on MacOS and FreeBSD, so itā€™s not that horrible from a compatibility standpoint

I would use something like an input server addon to generate events and timestamp in ns, then have a window draw simple stuff based on those (like pixels at specific positions), log that, and finally confirm in tje driver that the frame contains the specific pocel and log the time there aswell.

It should be a rough test to estimate app_server induced latency, probably not perfect.
I donā€™t know if we have any tools intree to do this, it sounds like an interesting problem to me. (I can append it to my todo, but it is also rather longā€¦)

1 Like

What is obsolete there in this page? and, Haiku withouth 32bit+64bit hybrid can execute windows 32bits programs? or the 64bits version will be limited to only 64bit emulation? very interesting topic.

Many hacks like this are no longer needed:

ln -s /system/lib/libroot.so /system/lib/libpthread.so
ln -s /system/lib/libroot.so /system/lib/libc.so
ln -s /system/lib/libroot.so /system/lib/libm.so
3 Likes

(Haiku now does those hacks for you ; )

There are also some open-source games on Steam and elsewhere that use GameNetworkingSockets:

Getting this ported to Haiku may enable more ports and extend existing ones to allow for playing with Steam users.

I reimplemented Vulkan WSI add-on from scratch, it now works stable and have window resize support. Implementation is based on Wine Vulkan code that I made earlier. Integration with VideoProducer is planned.

screenshot202

38 Likes

Nice, you seem to work in a logical and straightforward way. For others who would like to work similarly, what resources would you recommend for getting a background knowledge?

2 Likes

I implemented Haiku window and input support in Vulkan demos and use my new WSI layer add-on. It is possible to walk with WASD keys, turn camera with mouse and click options in left top menu.

screenshot212

44 Likes

Wonderfull progress Ilya. Iā€™m devoloping a proprietary Vulkan product on Vega class GPUā€™s, Iā€™m eager to try it under Haiku soon.

With Vulkan HW acceleration coming, I can probably convert Medo to Vulkan, since my Vulkan engine has support for Bt2020 monitors, 10-bit colours and other niceties.

23 Likes

Could you maybe make a video?

3 Likes

WOW, youā€™ve made AMAZING progress in just a few months. Congratulations !

5 Likes

Is it using hardware acceleration?

Yes, ā€œAMD RADV VERDEā€ means that GPU rendering is used.

11 Likes

GLFW Vulkan window intergation.

screenshot219

screenshot220

35 Likes

WSI add-on code (need https://review.haiku-os.org/c/haiku/+/4369 to run).

Patches to Vulkan demos.

26 Likes

I implemented copy present mode in VideoStreams and fixed some problems. Code in GitHub is updated.

test_app_server running with VideoStreams compositor:
CIMG4781-2

36 Likes

Ok , i belive that is the time to think and consider to install haiku on one of my systems. I am impressed with Xlibe and Wine and VideoStreams development the only one thing is needed driver compatibility(especially with modern radeon rx-xxx and nvidia at least GTX780TI or GTX960. It is impossible to use haiku with modern radeon rx cards and with modern nvidia ones and the intel graphics cards are not the best in the terms of performance.

Forget nVidia. Their newest drivers for Linux are closed source leaving no hope for a port to Haiku. Only older model nVidia cards have been reverse engineered for the open-source drivers on Linux.

2 Likes