W3C HTML5
This website relies solely on user submissions.
Reviews, speculations, how-tos; anything to share?
Follow us:
#vronlinux @Freenode
Steam Group

To comment or submit articles, register and login.

Interview: yaakuro, Developer Working on OpenVR SDK for UE4 Linux

(vronlinux.com)
Posted by Norbert, 5 months and 2 weeks agoWed, 11 Jan 2017, 09:55 (0 comments)
He is one of the community developers for Unreal Engine 4 on GNU/Linux (UE4 Linux). Cengiz Terzibas, better known (on the web) as "yaakuro" (GitHub, Twitter). Late 2016 he published an interesting YouTube video related to the OpenVR SDK for UE4 Linux. So interesting that some of us wanted to know more about him and his work. He was kind enough to answer my questions about his UE4 Linux work, VR efforts, and related topics. ("GNUX" in his answers is short for GNU/Linux.)

Q: Where were you born, where are you currently living, and what is your professional background?

yaakuroI was born in İstanbul, Türkiye. I live in Germany and Japan; mainly Germany. I studied Physics in Germany, where I got my MPhys. I was working at the Max Planck Institute in Germany, then went to Japan. I've worked in Brain-Machine Interface Research and Robotics for a while.


Q: What is the origin and meaning of your nick, "yaakuro"?

yaakuroThat is tricky. Actually, I made that name up. How did I come up with it? Because of the sound of it. Sounds strange, right? Face-grin And because it sounds a bit Japanese. My wife is Japanese, you know. Other than that, really no meaning.


Q: What kind of hardware do you use?

yaakuroI would assume I did the same as most of us: put together my own. I have an Intel i7-4770K CPU @3.50GHz, 16GB RAM, Nvidia 750Ti 2GB, 128 GB SSD for my GNUX OS (Xubuntu 16.04), 256 GB SSD for my /home (to have faster build times; building might overuse my SSD but I calculated that is worth it), 1 TB normal hard drive. Plus a MacBook Pro, 8GB. So, nothing big here.


Q: What kind of software do you use?

yaakuroOS as mentioned Xubuntu 16.04. A long time ago I was playing with other distros, but I stopped because I don't have the time to play around anymore, and for my development I need something more solid. Yes, Ubuntu is solid for me. Face-grin When I need to use another OS for my programming, I am using LXC. My editor for fast editing is just gedit or Atom, but for programming I really prefer CodeLite. You might be suprised by that right? I think the developer behind CodeLite is quite nice and open to suggestions, and CodeLite is cross-platform. So, when I have to program something on Windows or Mac OS - I have a MacBook Pro too - I use CodeLite. For software source management I use Git, command-line.


Q: When did you first start using GNU/Linux, and why?

yaakuroMmmm, good question. I don't remember anymore. Face-grin Quite a long time ago, maybe since 1998. One reason is: I use it because of programming. I think GNUX provides a really nice programming environment. On Mac OS, usually you have to hack around things, and on Windows you have to install yourself to death until you can compile a simple line of C++ code or manage your sources. Perhaps more importantly, I love the philosophy behind of all the Free Software. It is nice that people help each other to make a better environment for all of us. I contributed to some projects and have my own cross-platform C++ framework XdevLSDK, which is on GitHub.


Q: What are your core skills as a developer?

yaakuroI love developing cross-platform stuff. Mainly in C++ and OpenGL, and now Vulkan. For my previous jobs, I was working on Brain Research and Robotics, so I was allowed to use my own platform to develop the stuff.


Q: What kind of FOSS have you written or contributed to?

yaakuroI contributed to CodeLite, as mentioned previously. But mainly my own libraries: XdevLSDK, tinymath, Taimaa and Singularity (a small engine that uses XdevLSDK to implement and test game engine related stuff). Also, OpenVR. Mainly I've tried to support - even though it sounds strange - UE4 on GNUX. I thought we need it on Linux; it might help us later, to get more games and attention. Furthermore, related to UE4, I helped with SDL: a couple of things got merged into main SDL2.


Q: What are your main contributions to Unreal Engine 4?

yaakuroMmmm, that is difficult. Here [Requires a free Epic Games account. -Ed.] you can see the list. (The following patches were adapting the UE4 source path to make it work on GNUX. I didn't fully implement them. You can see them via the link above when you click the separate items.) Adapt the VulkanRHI path on GNUX. (Working again on this. You might soon see a new video on my YouTube channel.) Make UE4 work with Mesa drivers. (At least back then. Face-grin I didn't test for a while.) Adapt Android packaging support on GNUX. Adapt HTML5 packing support on GNUX. Adapt CEF on GNUX. Adapt tons of SDL2 UE4 Slate/UI Window Manager handling stuff; mainly the UI behavior with different window managers. That was pain, I tell you. Face-plain (For the following I did everything.) Native CodeLite project support for the Unreal Engine 4.


Q: How have Epic Games and other companies reacted to your Linux-related contributions and pull requests?

yaakuroEpic Games reacted quite good. Most got merged into main. Other companies... I don't know. Didn't get any feedback from them, neither job offers. Face-grin


Q: You have a Patreon account. Have you asked companies for financial support, and was there a specific reason you chose Patreon?

yaakuroNot really asked companies. I am a shy person, you know. Face-grin Sometimes I do official things for Epic, which is not always GNUX related. Patreon is a nice platform. It helps me to survive a bit. I am really more thankful to the patrons for supporting me. This way, I can focus more on GNUX related issues on UE4, and we might get somewhere with it as Epic Games merges my stuff from time to time.


Q: You appear to develop without an HTC Vive. Did you ask Valve for one?

yaakuroActually, a Valve employee asked me if I would be interested in the Vive hardware to do some development related to the UE4 on GNUX. This was before Christmas. So, actually I "got" one, but I didn't order yet, because I went to Japan for a while. What I did is to add and fix stuff so that UE4 is running the SteamVR plugin on GNUX. When I go back to Germany I will get the Vive and can finish the stuff for UE4 on GNUX.


Q: What is it like to develop without an HTC Vive, with the SteamVR NULL device, does it complicate things?

yaakuroNot complicated, because I got help with setting up the NULL device. With that I could develop quite a lot to get UE4 and the SteamVR stuff to run. Of course, I can't test everything, which I will do when I get back to Germany. Or, if I stay longer in Japan, maybe I can ask for the hardware to be delivered to Japan.


Q: Does Valve support you in other ways, do you work for/with them?

yaakuroYes, they supported me a lot. (Provide me the Vive hardware, beta SteamVR keys and maybe a GFX card to test things.) We are talking back and forth about problems and solutions. I was working a bit on the SteamVR SDK on GitHub, and my changes have already been merged internally. They will be available to the public. What I did is to fix a small crash of the SteamVR SDK (= OpenVR) when using it with UE4, and made it so that the library can be compiled using Clang plus a custom libc++ which UE4 is using. (Long story. Face-grin)


Q: You appear to be using the SteamVR compositor. How did you get it to run/render?

yaakuroThe SteamVR compositor is rendering (opening) when you initialize it. What you do in your client application (UE4) is to provide the left and right eye texture id, and then submit it to the system. That will be rendered in the compositor.


Q: So, are you adding the VR Editor to the Linux Unreal Editor?

yaakuroNo, no. It is already in the Unreal Editor. It is just not activated, because the code path for GNUX was missing. The part which was missing is to send the textures' id using the OpenGL renderer to the compositor.


Q: How does your OpenVR differ from the original?

yaakuroI guess I explained it already. UE4 is using Clang with a custom libc++ instead of libstdc++, because of compatibility issues. To be cross-distro, libc++ is better and I think because of the license. What I did is that OpenVR can be compiled using Clang with the custom libc++, plus small fixes.


Q: You appear to be using the SteamVR GUI tool. Did you get a preview release from Valve?

yaakuroYes, to test the environment and to develop the stuff for UE4 on GNUX.


Q: Is this small GUI tool called "vrmonitor"?

yaakuroI think so, but don't quote me on that. Face-grin


Quoted that you think so. Face-wink

Q: What is the state of this software? Is it good to go or barely alpha?

yaakuroI would say it's quite cool. Even though I didn't use the real hardware it runs nicely.


Q: Is it complete, with room setup and all the tools?

yaakuroYes. But I didn't test everything. It wasn't important for me to develop the stuff.


Q: What can you tell me about your Taranome engine?

yaakuroHehe, where did you get that? Face-grin That is my own super small engine, which is using XdevLSDK (on GitHub) and is cross-platform. It runs on GNUX, Mac OS, Windows and Android. It is not online yet, but when I have more time I will make it happen. Nothing serious, really. It is more like playing around with new things. For example, when I was doing the VR stuff I implemented for XdevLSDK a simple VR plugin so that I can use the Vive too. But this is all long story.


Q: Are you using a non-public pre-release graphics driver that includes support for "shared memory extension" functions? If so, did you get this driver from Valve? Is it from Nvidia?

yaakuroI can't say that much here, because I really don't know. I got a key from Valve to test SteamVR and develop the stuff I mentioned already. I think the shared memory extension is for Vulkan. I am not sure if the spec is out yet. No, I use normal Nvidia 375.26 drivers.


Q: Your Unreal Engine work renders with OpenGL. Does this mean the VR compositor has an OpenGL mode?

yaakuroGood question, next question. Face-grin I'm not sure what the compositor does, but when you look into libopenvr, you submit either Direct3D, OpenGL or Vulkan texture ID's. Maybe it's using Vulkan as renderer, but don't quote me on that either.


Q: Anything else of interest for people waiting for more VR on Linux?

yaakuroNot really, but SteamVR might come soon. Face-smile


Again, yaakuro, thank you for all your interesting answers and for the work you are doing.

Feel like supporting yaakuro?
Check out his Patreon page, including his last three posts about OpenVR SDK for UE4 Linux.

Podcast: FLOSS Weekly Interviews OpenHMD Developers

(twit.tv)
Posted by Norbert, 5 months and 2 weeks agoTue, 10 Jan 2017, 22:58 (1 comment)
FLOSS Weekly has just published episode 417, about OpenHMD. FLOSS Weekly, that debuted in April 2006, is a netcast from the TWiT podcast network. The episode is hosted by Aaron Newcomb and Guillermo Amaral. Guests are OpenHMD's Fredrik Hultin (co-founder OpenHMD) and Joey Ferwerda (recently mentioned). The episode is about 52 minutes and is CC-BY-NC-ND licensed. Contains sponsor messages in the first minutes; the interview starts at the 6:00.



From the video: OpenHMD integrated in Blender should release in March this year, with Blender 2.79.

Report: Help OpenHMD Test Their CMake Scripts

(twitter.com)
Posted by Norbert, 6 months agoTue, 3 Jan 2017, 20:30 (0 comments)
Everyone, Happy New Year! Let's hope SteamVR for Linux arrives soon.

OpenHMD has been making progress. In a recent Tweet, the developers ask Linux users to try our their CMake scripts:

OpenHMDAll #CMake fans, we just updated our CMakeLists on git to the same level as our Autotools. Should be fine on Linux but please feedback!


OpenHMD is available at GitHub (up-to-date).
It was also added to Debian unstable ("sid"; less up-to-date).

OpenHMD's Joey Ferwerda, one of the top 30 Blender developers of 2016, "worked in 2016 on adding real-time VR viewing in Blender's viewport". According to the Blender page this already works for the Rift, with Vive support coming soon. Ferwerda attended the Blender Conference 2016, where OpenHMD was also mentioned. Also, last November, basic rotational functionality for PlayStation VR was added to OpenHMD, and pushed to branch.

Report: Valve Dev Posts RFC to Improve VR with AMDGPU

(phoronix.com)
Posted by Norbert, 6 months and 6 days agoSat, 17 Dec 2016, 13:58 (0 comments)
Phoronix reports that a Valve developer, Andres Rodriguez, has "issued a request for comments on a proposal to implement high priority scheduling in the AMDGPU kernel driver in order to benefit their Linux VR efforts".

Rodriguez' request was posted to the amd-gfx mailing list.

PhoronixValve is planning for this work to be predictable from submission to fence signaling and also work for compute workloads, support low-submission latencies, and other wish-list items. The main concept is to provide a "high priority compute queue" that is exposed to user-space. Once work is going, Valve is also willing to work on it to see it implemented within the RADV Vulkan driver, since Vulkan is playing a big role with Valve's VR initiative.


I think this is related to the Radeon 400 series, seeing Rodriguez specifically mentions Polaris 10.

Speculation: YouTube Video Shows 'VLC VR Experiment' on Vive

(youtube.com)
Posted by Norbert, 6 months and 1 week agoWed, 14 Dec 2016, 21:29 (0 comments)
I'll keep this short. YouTube user "Visualink" (website?) has posted a video titled "VLC VR experiment running on a HTC Vive" to YouTube. The laptop appears to be running Linux. This may or may not be a libVLC application that uses OpenHMD.

Report: FreeSync and Radeon Pro Software to Improve VR on Linux

(computerworld.com)
Posted by Norbert, 6 months and 2 weeks agoThu, 8 Dec 2016, 20:52 (0 comments)
It's not often that one of the bigger publishers talks specifically about VR on Linux. Today, IDG's Computerworld brings us news that "AMD strengthens gaming and VR on Linux with graphics improvements". Quoting Computerworld's Agam Shah:

Agam ShahWindows is the indisputable platform of choice for gaming and VR, but Linux is catching up fast as graphics companies ramp up driver and hardware support for the OS. AMD is showing more love for Linux than ever before. The company on Thursday announced some hardware and driver updates that will strengthen gaming and VR on the OS.


First of all, Linux is getting FreeSync support, an adaptive synchronization technology that reduces screen tearing.

image

Secondly, there's the Radeon Pro Software driver for Linux. According to Shah, this will make it easier to create VR content on Linux:

Agam Shah[It] will allow the use of powerful Radeon Pro GPUs based on Polaris architecture to create VR content. [...] The software driver works with Ubuntu, CentOS, and Red Hat Enterprise Linux. It also supports the cross-platform Vulkan API, commonly used to develop games and graphics-related programs.


image

Quoting from AMD's press release:

AMDExpanding Linux® support: AMD’s ongoing commitment and support for open-source technologies and tools means Radeon Pro Software Crimson ReLive Edition now supports the AMD GPU-PRO hybrid Linux driver. This new Linux driver combines the best of both worlds — an open-source core and Radeon™ Pro technologies and performance


Now all we need is more VR on Linux. Face-smile

Report: The Khronos Group Announces VR Standards Initiative

(khronos.org)
Posted by Norbert, 7 months agoTue, 6 Dec 2016, 16:45 (2 comments)
Less than a week after The Khronos Group announced that Razer had joined them, they've now announced a VR standards initiative that aims to "define a cross-vendor, royalty-free, open standard for access to modern virtual reality devices":

The Khronos GroupThe rapid growth of the virtual reality market has led to platform fragmentation, forcing VR applications and engines to be ported and customized to run on multiple VR runtimes, and requiring VR sensors and displays to be integrated with multiple driver interfaces. This fragmentation slows the widespread availability of compelling VR experiences, creating added expense for developers wishing to support multiple VR devices, and hindering the adoption of innovative user interface technologies.


Components of the new standard will include APIs for tracking objects and for easily integrating devices into a VR runtime, to improve portability. The announcement of The Khronos Group includes statements of support from various parties, namely AMD, ARM, Epic Games, Google, ITA, Intel, LunarG, NVIDIA, Oculus, OGA, Razer, Sensics, Tobii, Valve and VeriSilicon. The initiative has its own section on the website of The Khronos Group, and includes the following diagram:

image

Opinion: Vivecraft on Linux

(seegras.discordia.ch)
Posted by Seegras, 7 months agoMon, 5 Dec 2016, 12:50 (0 comments)
There is a Minecraft mod for using the Vive, called Vivecraft. You can get it at GitHub, but I haven't been able to build it myself yet. So, I used this installer ZIP. There are some other versions flying around, but they may lack the native Linux libraries. Also, you need Minecraft, of course.

Now, in order to get this working, I needed the 64-bit versions of the SteamVR libraries driver_lighthouse.so and libaitcamlib.so. The main problem were dependencies, since my system does not usually have such outdated libraries as libudev.so.0. The first attempt was to use the Steam environment, but that includes dozens of outdated libraries, which in turn resulted in Java not working. So, I symlinked only the necessary libraries to where they were needed:

cd ~/.steam/SteamApps/common/SteamVR/bin/linux64
ln -sf ~/.steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libudev.so.0.13.0 libudev.so.0


And I wrote a little startup script:

#!/bin/sh
DRIVERDIR=~/.steam/SteamApps/common/SteamVR/drivers/lighthouse/bin/linux64
COMMONDIR=~/.steam/SteamApps/common/SteamVR/bin/linux64

export MESA_GL_VERSION_OVERRIDE=4.1
export MESA_GLSL_VERSION_OVERRIDE=410
export __GL_SYNC_DISPLAY_DEVICE=DFP-5 

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DRIVERDIR:$COMMONDIR
cd ~/.minecraft
/usr/lib/jvm/java-8-openjdk-amd64/bin/java -Xms2048M -Xmx2048M  -jar Minecraft.jar


You might need to change the "DFP-5" there; that's the HDMI port your Vive sits on.

With that, it starts, and as long as the Vive can not see the base stations it displays the main menu. However, when I put it on, the menu is only visible up to the far right. There's a "Reset Origin" menu item, and if you place your mouse on that before putting on the Vive, and click on it afterwards, Vivecraft somewhat works. You can walk around, destroy and place blocks, and so on. All with your mouse and keyboard. What's not working for me are the menus and inventories, as I suspect they pop-up somewhere where I can't see them.

See also issue 241 on GitHub.

How-To: Engineer Live-Streams Vive USB Reverse Engineering

(youtube.com)
Posted by Norbert, 7 months agoSun, 4 Dec 2016, 18:40 (1 comment)
Electrical engineer and FOSS developer Charles Lohr (@CNLohr) has been reverse engineering raw Vive data. In a recent live-stream, of which a recording is available at YouTube, he explains and demonstrates basic reverse engineering (decoding) of USB light data reported by the Vive controllers. Not only was CNLohr able to make some discoveries, Ben Jackson, engineer at Valve Corporation, also dropped in as a viewer of the live-stream and was able to provide some direct information.

CNLohr has a goal to use the Vive on Linux with his older, non-gamer laptop with a room-scale VR environment. Though other GPL FOSS projects are geared for running the Vive on Linux and other operating systems, CNLohr is specifically looking to have a C library that minimizes size and dependencies as well as being licensed under the more permissive MIT license.

Charles LohrOne of the biggest driving forces for me was to get away from this world of huge dependencies, because I actually ran out of data on my cell phone plan trying to get all of the dependencies needed to build and use OSVR-Vive-Libre. The second is that I am a C programmer, through and through. All of the current implementations are very heavily object oriented with all sorts of elaborate architectures. I just want a simple library I can include, and use the Vive.


Report: Razer Joins The Khronos Group

(khronos.org)
Posted by Norbert, 7 months agoThu, 1 Dec 2016, 20:17 (0 comments)
Razer Inc., the American manufacturer of the OSVR hardware and co-founder of the OSVR platform, has joined The Khronos Group as a Contributing Member:

The Khronos GroupThe Khronos Group is proud to announce that Razer has joined as a Contributor Member. Razer is a world leader in connected devices and software for gamers. Its award-winning design and technology span systems, peripherals, audio and wearable technologies. Razer co-founded OSVR, an open-source platform that integrates VR, AR and mixed reality hardware and software APIs that support a universal VR ecosystem.


Phoronix reports:

PhoronixRazer joining The Khronos Group looks to be a VR/AR play, but will hopefully help further push Vulkan and other Khronos standards to gamers. [...] It will be interesting to see how Khronos further pushes open standards in the VR/AR space in 2017 and Vulkan powering Linux VR experiences.


The Khronos Group has four kinds of members: Promoter Members, Contributor Members, Associate Members and Academic Members. As a Contributor Member, Razer has "full working group participation and voting rights".

« older

» newer