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

Donation link is broken.

1 Like

Here correct donation link for X512: PayPal.Me :+1:

3 Likes

Chugin Ilya is his name? Just to be clear, thx.

1 Like

Yes, my name is Chugin Ilya (surname, first name order).

4 Likes

If you’d like to donate to the Haiku Project overall (that PayPal link is to donate straight to X512) - you can go here:
https://haiku-inc.org/donate

I implemented vsync in AccelerantConsumer by using retrace semaphore and made video file producer. Now video plays without tearing and frame skips. Tearing can be globally eliminated when VideoStreams will be integrated with app_server.

Also I implemented variable buffer count in swap chain FIFO. Confirmed to work with 32 buffers in swap chain. I made swap chain more compatible with Vulkan. I plan to make VulkanProducer WSI surface Vulkan API extension so Vulkan can render to any VideoStreams consumer in any address space.

32 Likes

That’s awesome, amazing work

1 Like

Plan of integrating app_server with VideoStreams and RadeonGfx. test_app_server on second monitor can be used for testing.

image

15 Likes

No, WSI is just set of standard API hooks that should be implemented independently for each OS and windowing system. Surface creating API is purely OS depending, there are no generic create surface function, only multiple per-OS.

See Vulkan sample code.

For buffer sharing in Vulkan dma-buf fd is used on Linux. You need to pass it explicitly to Vulkan API.

6 Likes

Will it be possible after this work is complete, to have apps on different monitors with different resolution etc ??

2 Likes

24 posts were split to a new topic: Drivers, develop in or out of Haiku tree?

I managed to make initial integration of app_server with VideoStreams and RadeonGfx by implementing VideoProducerHWInterface. Global tearing free rendering with flipping of 2 framebuffers is working. Hardware cursor is used. No compositor yet.

I run test_app_server on second screen. Some stub white window is used to capture input and deliver it to second screen with test_app_server.

CIMG4777

CIMG4778_1

37 Likes

Now this does look like a real X-mas present! Awesome work as always and kudos to you for your dedication to this project! :clap:

14 Likes

In the not to distant future, vr beat saber game running on haiku

Bummer you need a working Steam for this (aka SteamVR… aka OpenVR/OpenXR)

Gotta have hardware acceleration first, but good news is steam uses vulkan dvdvk zink etc. So might be possible to petition steam once drivers are up.

I’m not sure what you “need” Steam for exactly. A few online games perhaps.

Well… hardware support would work also with https://monado.freedesktop.org/ . Never experimented with it yet (DEMoCap runs against Steam/OpenVR for the moment) but a HMD and Controllers would work. Monado uses Vulkan with certain extensions present so maybe this might be a possible test. I can’t help there since my laptop is an nVidia one (yeah… I know… I would have picked AMD if I had found one with strong GPU setup).

Steam would require either Wine and/or a Linux compatibility layer to come first. Even with hardware acceleration, Steam on Haiku in any way is still rather far away.

I would say monade might be worth an experiment. It reduces the problem to a smaller set: pretty much OpenXR runtime. If you have working HMDI and USB support then it should be possible to get a simplistic HMD/Controller setup running without needing to touch steam.