New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vivecraft + Linux? #241

Open
GNUGradyn opened this Issue Oct 11, 2016 · 35 comments

Comments

Projects
None yet
7 participants
@GNUGradyn

GNUGradyn commented Oct 11, 2016

I have a linux laptop and a google cardboard. My idea was to use vivecraft to get minecraft in a VR compatible format, and use VNC to mirror my computer screen to my phone. However, minecraft crashes when launching. Here's the error log:

---- Minecraft Crash Report ----
// Uh... Did I do that?

Time: 10/10/16 9:21 PM
Description: Initializing game

java.lang.UnsatisfiedLinkError: Unable to load library 'openvr_api': Native library (linux-x86-64/libopenvr_api.so) not found in resource path ([file:/home/gradyn/.minecraft/libraries/com/mtbs3d/minecrift/1.10.2-Vivecraft-jrbudda-6r4/minecrift-1.10.2-Vivecraft-jrbudda-6r4.jar, file:/home/gradyn/.minecraft/libraries/optifine/OptiFine/1.10.2_HD_U_C2/OptiFine-1.10.2_HD_U_C2.jar, file:/home/gradyn/.minecraft/libraries/org/ow2/asm/asm-all/5.0.3/asm-all-5.0.3.jar, file:/home/gradyn/.minecraft/libraries/org/json/json/20140107/json-20140107.jar, file:/home/gradyn/.minecraft/libraries/net/minecraft/launchwrapper/1.12/launchwrapper-1.12.jar, file:/home/gradyn/.minecraft/libraries/com/sun/jna/4.2.1/jna-4.2.1.jar, file:/home/gradyn/.minecraft/libraries/de/fruitfly/ovr/JRift/0.8.0.0.1/JRift-0.8.0.0.1.jar, file:/home/gradyn/.minecraft/libraries/net/aib42/mumblelink/JMumble/1.11/JMumble-1.11.jar, file:/home/gradyn/.minecraft/libraries/java3d/vecmath/1.3.1/vecmath-1.3.1.jar, file:/home/gradyn/.minecraft/libraries/com/mojang/netty/1.6/netty-1.6.jar, file:/home/gradyn/.minecraft/libraries/oshi-project/oshi-core/1.1/oshi-core-1.1.jar, file:/home/gradyn/.minecraft/libraries/net/java/dev/jna/jna/3.4.0/jna-3.4.0.jar, file:/home/gradyn/.minecraft/libraries/net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar, file:/home/gradyn/.minecraft/libraries/com/ibm/icu/icu4j-core-mojang/51.2/icu4j-core-mojang-51.2.jar, file:/home/gradyn/.minecraft/libraries/net/sf/jopt-simple/jopt-simple/4.6/jopt-simple-4.6.jar, file:/home/gradyn/.minecraft/libraries/com/paulscode/codecjorbis/20101023/codecjorbis-20101023.jar, file:/home/gradyn/.minecraft/libraries/com/paulscode/codecwav/20101023/codecwav-20101023.jar, file:/home/gradyn/.minecraft/libraries/com/paulscode/libraryjavasound/20101123/libraryjavasound-20101123.jar, file:/home/gradyn/.minecraft/libraries/com/paulscode/librarylwjglopenal/20100824/librarylwjglopenal-20100824.jar, file:/home/gradyn/.minecraft/libraries/com/paulscode/soundsystem/20120107/soundsystem-20120107.jar, file:/home/gradyn/.minecraft/libraries/io/netty/netty-all/4.0.23.Final/netty-all-4.0.23.Final.jar, file:/home/gradyn/.minecraft/libraries/com/google/guava/guava/17.0/guava-17.0.jar, file:/home/gradyn/.minecraft/libraries/org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.jar, file:/home/gradyn/.minecraft/libraries/commons-io/commons-io/2.4/commons-io-2.4.jar, file:/home/gradyn/.minecraft/libraries/commons-codec/commons-codec/1.9/commons-codec-1.9.jar, file:/home/gradyn/.minecraft/libraries/net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar, file:/home/gradyn/.minecraft/libraries/net/java/jutils/jutils/1.0.0/jutils-1.0.0.jar, file:/home/gradyn/.minecraft/libraries/com/google/code/gson/gson/2.2.4/gson-2.2.4.jar, file:/home/gradyn/.minecraft/libraries/com/mojang/authlib/1.5.22/authlib-1.5.22.jar, file:/home/gradyn/.minecraft/libraries/com/mojang/realms/1.9.6/realms-1.9.6.jar, file:/home/gradyn/.minecraft/libraries/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar, file:/home/gradyn/.minecraft/libraries/org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.jar, file:/home/gradyn/.minecraft/libraries/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar, file:/home/gradyn/.minecraft/libraries/org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar, file:/home/gradyn/.minecraft/libraries/it/unimi/dsi/fastutil/7.0.12_mojang/fastutil-7.0.12_mojang.jar, file:/home/gradyn/.minecraft/libraries/org/apache/logging/log4j/log4j-api/2.0-beta9/log4j-api-2.0-beta9.jar, file:/home/gradyn/.minecraft/libraries/org/apache/logging/log4j/log4j-core/2.0-beta9/log4j-core-2.0-beta9.jar, file:/home/gradyn/.minecraft/libraries/org/lwjgl/lwjgl/lwjgl/2.9.4-nightly-20150209/lwjgl-2.9.4-nightly-20150209.jar, file:/home/gradyn/.minecraft/libraries/org/lwjgl/lwjgl/lwjgl_util/2.9.4-nightly-20150209/lwjgl_util-2.9.4-nightly-20150209.jar, file:/home/gradyn/.minecraft/versions/vivecraft-1.10.2-Vivecraft-jrbudda-6r4/vivecraft-1.10.2-Vivecraft-jrbudda-6r4.jar])
at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:277)
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:403)
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:342)
at jopenvr.JOpenVRLibrary.(JOpenVRLibrary.java:17)
at com.mtbs3d.minecrift.provider.MCOpenVR.init(MCOpenVR.java:285)
at bcx.initMinecrift(Minecraft.java:4465)
at bcx.an(Minecraft.java:751)
at bcx.a(Minecraft.java:640)
at net.minecraft.client.main.Main.main(SourceFile:124)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)

A detailed walkthrough of the error, its code path and all known details is as follows:

-- Head --
Thread: Client thread
Stacktrace:
at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:277)
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:403)
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:342)
at jopenvr.JOpenVRLibrary.(JOpenVRLibrary.java:17)
at com.mtbs3d.minecrift.provider.MCOpenVR.init(MCOpenVR.java:285)
at bcx.initMinecrift(Minecraft.java:4465)
at bcx.an(Minecraft.java:751)

-- Initialization --
Details:
Stacktrace:
at bcx.a(Minecraft.java:640)
at net.minecraft.client.main.Main.main(SourceFile:124)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)

-- System Details --
Details:
Minecraft Version: 1.10.2
Operating System: Linux (amd64) version 4.4.0-36-generic
Java Version: 1.8.0_91, Oracle Corporation
Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 149476360 bytes (142 MB) / 286863360 bytes (273 MB) up to 2120679424 bytes (2022 MB)
JVM Flags: 5 total; -Xmx2G -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -Xmn256M
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
Launched Version: vivecraft-1.10.2-Vivecraft-jrbudda-6r4
LWJGL: 2.9.4
OpenGL: Mesa DRI Intel(R) Haswell Mobile GL version 3.0 Mesa 12.1.0-devel, Intel Open Source Technology Center
GL Caps: Using GL 1.3 multitexturing.
Using GL 1.3 texture combiners.
Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.
Shaders are available because OpenGL 2.1 is supported.
VBOs are available because OpenGL 1.5 is supported.

Using VBOs: Yes
Is Modded: Very likely; Jar signature invalidated
Type: Client (map_client.txt)
Resource Packs: texture.zip
Current Language: English (US)
Profiler Position: N/A (disabled)
CPU: 2x Intel(R) Celeron(R) 2957U @ 1.40GHz
OptiFine Version: OptiFine_1.10.2_HD_U_C2
Render Distance Chunks: 32
Mipmaps: 4
Anisotropic Filtering: 1
Antialiasing: 0
Multitexture: false
Shaders: null
OpenGlVersion: 3.0 Mesa 12.1.0-devel
OpenGlRenderer: Mesa DRI Intel(R) Haswell Mobile 
OpenGlVendor: Intel Open Source Technology Center
CpuCount: 2
@Techjar

This comment has been minimized.

Show comment
Hide comment
@Techjar

Techjar Oct 11, 2016

Collaborator

Yeah we don't support Linux currently, we haven't yet looked into how exactly to get the native library for it working. And in any case, just mirroring your screen to the phone won't work, Vivecraft needs a connection to a headset through SteamVR for tracking and such.

To get SteamVR working on Linux I believe you have to compile it yourself, and then to get the phone working as a VR headset you have to use RiftCat VRidge. Problem is, that's a Windows-only application and I don't think there's anything like it for Linux. Honestly, you may just have to dual-boot Windows on your laptop.

Collaborator

Techjar commented Oct 11, 2016

Yeah we don't support Linux currently, we haven't yet looked into how exactly to get the native library for it working. And in any case, just mirroring your screen to the phone won't work, Vivecraft needs a connection to a headset through SteamVR for tracking and such.

To get SteamVR working on Linux I believe you have to compile it yourself, and then to get the phone working as a VR headset you have to use RiftCat VRidge. Problem is, that's a Windows-only application and I don't think there's anything like it for Linux. Honestly, you may just have to dual-boot Windows on your laptop.

@Techjar Techjar added the cantfix label Oct 11, 2016

@jrbudda

This comment has been minimized.

Show comment
Hide comment
@jrbudda

jrbudda Oct 11, 2016

Owner

Try this one. I can't remember if its the same as the released one but I'm fairly sure this one is supposed to installed the linux natives.

vivecraft-1.10.2-Vivecraft-jrbudda-6r4-installer.jar.zip

Owner

jrbudda commented Oct 11, 2016

Try this one. I can't remember if its the same as the released one but I'm fairly sure this one is supposed to installed the linux natives.

vivecraft-1.10.2-Vivecraft-jrbudda-6r4-installer.jar.zip

@Techjar

This comment has been minimized.

Show comment
Hide comment
@Techjar

Techjar Oct 11, 2016

Collaborator

Oh is it? Still, VRidge only works on windows so I'm not sure how he'll get it to work. Vivecraft will just break without a headset to display to.

Collaborator

Techjar commented Oct 11, 2016

Oh is it? Still, VRidge only works on windows so I'm not sure how he'll get it to work. Vivecraft will just break without a headset to display to.

@GNUGradyn

This comment has been minimized.

Show comment
Hide comment
@GNUGradyn

GNUGradyn Oct 12, 2016

@Techjar is right. It tells me there was no headset detected. Is there any way to make a dummy vive or somthing? I'm just trying to get minecraft in 3D SBS

GNUGradyn commented Oct 12, 2016

@Techjar is right. It tells me there was no headset detected. Is there any way to make a dummy vive or somthing? I'm just trying to get minecraft in 3D SBS

@jrbudda

This comment has been minimized.

Show comment
Hide comment
@jrbudda

jrbudda Oct 12, 2016

Owner

yea vridge is a dummy vive, you'll need something like that

Owner

jrbudda commented Oct 12, 2016

yea vridge is a dummy vive, you'll need something like that

@Seegras

This comment has been minimized.

Show comment
Hide comment
@Seegras

Seegras Nov 6, 2016

The file vivecraft-1.10.2-Vivecraft-jrbudda-6r4-installer.jar.zip works on Linux. However, it has trouble detecting the Vive afterwards, but that might be a problem of the libopenvr, and not vivecraft. I'm not quite sure on how to debug that, any hints?

Seegras commented Nov 6, 2016

The file vivecraft-1.10.2-Vivecraft-jrbudda-6r4-installer.jar.zip works on Linux. However, it has trouble detecting the Vive afterwards, but that might be a problem of the libopenvr, and not vivecraft. I'm not quite sure on how to debug that, any hints?

@Techjar

This comment has been minimized.

Show comment
Hide comment
@Techjar

Techjar Nov 6, 2016

Collaborator

Neither of us have ever tried to use the Vive or Vivecraft on Linux, so unfortunately you're on your own there. I've seen a few articles about people getting the Vive working on Linux, so just search around and maybe you'll get somewhere.

Collaborator

Techjar commented Nov 6, 2016

Neither of us have ever tried to use the Vive or Vivecraft on Linux, so unfortunately you're on your own there. I've seen a few articles about people getting the Vive working on Linux, so just search around and maybe you'll get somewhere.

@jrbudda jrbudda removed the cantfix label Nov 10, 2016

@Seegras

This comment has been minimized.

Show comment
Hide comment
@Seegras

Seegras Nov 20, 2016

This here: http://wiki.vg/Debugging gave some hints on enabling debug output. Note that the second example xml is broken, it contains the header-line twice, which will make java ignore the whole file. HOWEVER, this only gives debug-output already thought of in the source. As long as nothing throws an exception, it won't output anything either. So basically, this only helps if vivecraft would put out debug output hint ;).

I later tried with strace, which is quite difficult to get to work, since I couldn't get Minecraft to run without the loader, so I did it with this mess: "strace -p ps auxww | grep java | grep -v Minecraft.jar | grep -v grep | cut -d " " -f 4 -f 2> ERR", started while Minecraft was starting up. What I got is this:

open("/usr/lib/libaitcamlib.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)

Well, that and 20 attempts more in different paths. Anyway, basically it could not find the library because it didn't look in the SteamVR path. I'd really appreciate it if vivecraft would pass through errors thrown by the libraries it depends on.

I expect there are more libraries it can't find (but that would be available).

Seegras commented Nov 20, 2016

This here: http://wiki.vg/Debugging gave some hints on enabling debug output. Note that the second example xml is broken, it contains the header-line twice, which will make java ignore the whole file. HOWEVER, this only gives debug-output already thought of in the source. As long as nothing throws an exception, it won't output anything either. So basically, this only helps if vivecraft would put out debug output hint ;).

I later tried with strace, which is quite difficult to get to work, since I couldn't get Minecraft to run without the loader, so I did it with this mess: "strace -p ps auxww | grep java | grep -v Minecraft.jar | grep -v grep | cut -d " " -f 4 -f 2> ERR", started while Minecraft was starting up. What I got is this:

open("/usr/lib/libaitcamlib.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)

Well, that and 20 attempts more in different paths. Anyway, basically it could not find the library because it didn't look in the SteamVR path. I'd really appreciate it if vivecraft would pass through errors thrown by the libraries it depends on.

I expect there are more libraries it can't find (but that would be available).

@Seegras

This comment has been minimized.

Show comment
Hide comment
@Seegras

Seegras Nov 27, 2016

I've got it running on Linux. Mostly it was a case of steam and steamVR using libraries linked against ancient other libraries. Like this:
ldd driver_lighthouse.so | grep udev
libudev.so.0 => not found
(libudev.so.1 would be contemporary)

It's jittery, the controls are weird, and my initial point-of-view is totally skewed (about 5 metres below and to the right of the menu; it's visible as small strip. I need to hide the Vive, so I can see the menu on the desktop, place the mouse in front on the "reset origin", put on the Vive and click the button.

Opening a container, inventory or workbench does nothing (actually, this might be related to the above point-of-view problem, maybe the screen opens somewhere else, where I can't see it.).

Seegras commented Nov 27, 2016

I've got it running on Linux. Mostly it was a case of steam and steamVR using libraries linked against ancient other libraries. Like this:
ldd driver_lighthouse.so | grep udev
libudev.so.0 => not found
(libudev.so.1 would be contemporary)

It's jittery, the controls are weird, and my initial point-of-view is totally skewed (about 5 metres below and to the right of the menu; it's visible as small strip. I need to hide the Vive, so I can see the menu on the desktop, place the mouse in front on the "reset origin", put on the Vive and click the button.

Opening a container, inventory or workbench does nothing (actually, this might be related to the above point-of-view problem, maybe the screen opens somewhere else, where I can't see it.).

@Techjar

This comment has been minimized.

Show comment
Hide comment
@Techjar

Techjar Nov 27, 2016

Collaborator

Awesome that you got it working! Yeah, not sure why the inventories wouldn't be opening. It's definitely something screwed with your OpenVR, as there wouldn't be anything on the Java side that would cause that only on Linux.

Collaborator

Techjar commented Nov 27, 2016

Awesome that you got it working! Yeah, not sure why the inventories wouldn't be opening. It's definitely something screwed with your OpenVR, as there wouldn't be anything on the Java side that would cause that only on Linux.

@Seegras

This comment has been minimized.

Show comment
Hide comment
@Seegras

Seegras Nov 28, 2016

What would help is if you could assign a key to "reset origin". It probably would help others, because if you need to do this, you might have problems clicking on something.

Oh, and of course, I probably need a newer build, the one I tried with is several weeks old: https://github.com/jrbudda/minecrift/files/521066/vivecraft-1.10.2-Vivecraft-jrbudda-6r4-installer.jar.zip

Seegras commented Nov 28, 2016

What would help is if you could assign a key to "reset origin". It probably would help others, because if you need to do this, you might have problems clicking on something.

Oh, and of course, I probably need a newer build, the one I tried with is several weeks old: https://github.com/jrbudda/minecrift/files/521066/vivecraft-1.10.2-Vivecraft-jrbudda-6r4-installer.jar.zip

@jrbudda

This comment has been minimized.

Show comment
Hide comment
@jrbudda

jrbudda Nov 28, 2016

Owner

What are you using for a headset that the origin needs resetting?

Owner

jrbudda commented Nov 28, 2016

What are you using for a headset that the origin needs resetting?

@Seegras

This comment has been minimized.

Show comment
Hide comment
@Seegras

Seegras Nov 30, 2016

A Vive. The trouble is, all the SteamVR Software for calibrating etc. ist not released on Linux yet. Only the driver (which is used by Vivecraft) is.

Addendum: With the Room Setup from SteamVR, the issue of the skewed origin of course became moot. I still can't get a container/workbench/inventory view tough.

Seegras commented Nov 30, 2016

A Vive. The trouble is, all the SteamVR Software for calibrating etc. ist not released on Linux yet. Only the driver (which is used by Vivecraft) is.

Addendum: With the Room Setup from SteamVR, the issue of the skewed origin of course became moot. I still can't get a container/workbench/inventory view tough.

@jrbudda

This comment has been minimized.

Show comment
Hide comment
@jrbudda

jrbudda Nov 30, 2016

Owner

ohh I gotcha. TBH given the choice between trying to fudge something to work and just waiting for Valve to fully support steamVR on linux I have to choose the latter. Might be worth your while to dual boot Windows to make the best use of your headset.

Owner

jrbudda commented Nov 30, 2016

ohh I gotcha. TBH given the choice between trying to fudge something to work and just waiting for Valve to fully support steamVR on linux I have to choose the latter. Might be worth your while to dual boot Windows to make the best use of your headset.

@ChristophHaag

This comment has been minimized.

Show comment
Hide comment
@ChristophHaag

ChristophHaag Feb 22, 2017

Now we have SteamVR officially on Linux.

For mesa (and all other actually OpenGL compliant compilers) it needs this small fix: #275

The windows installer can be extracted with file-roller and then the java installer can be run withjava -cp . Installer.

Two libraries are 404: JMumbleLibrary:1.11 and JRiftLibrary:0.8.0.0.1. I don't care about them so I edited the versions json file to download the windows libraries instead.

with all of this fixed, we get something that runs, but I haven't tried further than the world choice menu yet.

Edit: The Vive controllers are shown and track fine, but clicking buttons doesn't do anything.

ChristophHaag commented Feb 22, 2017

Now we have SteamVR officially on Linux.

For mesa (and all other actually OpenGL compliant compilers) it needs this small fix: #275

The windows installer can be extracted with file-roller and then the java installer can be run withjava -cp . Installer.

Two libraries are 404: JMumbleLibrary:1.11 and JRiftLibrary:0.8.0.0.1. I don't care about them so I edited the versions json file to download the windows libraries instead.

with all of this fixed, we get something that runs, but I haven't tried further than the world choice menu yet.

Edit: The Vive controllers are shown and track fine, but clicking buttons doesn't do anything.

@Techjar

This comment has been minimized.

Show comment
Hide comment
@Techjar

Techjar Feb 22, 2017

Collaborator

Our "exe" installer is actually just a jar put through launch4j, so you can just run it directly with java.

Collaborator

Techjar commented Feb 22, 2017

Our "exe" installer is actually just a jar put through launch4j, so you can just run it directly with java.

@ChristophHaag

This comment has been minimized.

Show comment
Hide comment
@ChristophHaag

ChristophHaag Feb 22, 2017

Now I feel stupid. :)

ChristophHaag commented Feb 22, 2017

Now I feel stupid. :)

@valentindavid

This comment has been minimized.

Show comment
Hide comment
@valentindavid

valentindavid Mar 7, 2017

I also have no buttons working.

I have tried to debug it. It seems that GetControllerState always set the VRControllerState_t structure to all zeroes, though it returns true (non zero byte). That said, buttons do generate events, but they are ignored by the event polling.

valentindavid commented Mar 7, 2017

I also have no buttons working.

I have tried to debug it. It seems that GetControllerState always set the VRControllerState_t structure to all zeroes, though it returns true (non zero byte). That said, buttons do generate events, but they are ignored by the event polling.

@jrbudda

This comment has been minimized.

Show comment
Hide comment
@jrbudda

jrbudda Mar 7, 2017

Owner

sounds like a steamvr issue. Or something horribly wrong with the controller state struct

Owner

jrbudda commented Mar 7, 2017

sounds like a steamvr issue. Or something horribly wrong with the controller state struct

@valentindavid

This comment has been minimized.

Show comment
Hide comment
@valentindavid

valentindavid Mar 10, 2017

I have found a bit more about the bug. When GetControllerState from the C API (through FnTable) does not work, while it does with the C++ API. I have opened a ticket ValveSoftware/SteamVR-for-Linux#35.

valentindavid commented Mar 10, 2017

I have found a bit more about the bug. When GetControllerState from the C API (through FnTable) does not work, while it does with the C++ API. I have opened a ticket ValveSoftware/SteamVR-for-Linux#35.

@valentindavid

This comment has been minimized.

Show comment
Hide comment
@valentindavid

valentindavid Mar 10, 2017

Actually, this is an alignment problem. The buffer is 64 bytes. SteamVR on Linux expects it to be 60 bytes. Which is not the standard alignment on the platform. (Maybe it is to keep compatibility with 32 bits drivers, but that sound weird). I have not found how to fix with JNA. Initializing the structure with super(Structure.ALIGN_NONE); does not seem to work.

valentindavid commented Mar 10, 2017

Actually, this is an alignment problem. The buffer is 64 bytes. SteamVR on Linux expects it to be 60 bytes. Which is not the standard alignment on the platform. (Maybe it is to keep compatibility with 32 bits drivers, but that sound weird). I have not found how to fix with JNA. Initializing the structure with super(Structure.ALIGN_NONE); does not seem to work.

@valentindavid

This comment has been minimized.

Show comment
Hide comment
@valentindavid

valentindavid Mar 11, 2017

I modified OpenVR a bit to be able to handle 64 bytes structure to test further. As @Seegras said, there is no access to inventory, workbench, chests... But it is actually more than that. There is no HUD. I tried different HUD configuration. But it never shows up.

Any idea on what could be the reason for the HUD not to show up?

valentindavid commented Mar 11, 2017

I modified OpenVR a bit to be able to handle 64 bytes structure to test further. As @Seegras said, there is no access to inventory, workbench, chests... But it is actually more than that. There is no HUD. I tried different HUD configuration. But it never shows up.

Any idea on what could be the reason for the HUD not to show up?

@jrbudda

This comment has been minimized.

Show comment
Hide comment
@jrbudda

jrbudda Mar 11, 2017

Owner

It could be several things... It could not be rendering at all, like throwing an exception.... it could be rendering invisibly, due to opengl issues.... or the positioning could be way off so it's rendering somewhere else in the world you cant see it.

Owner

jrbudda commented Mar 11, 2017

It could be several things... It could not be rendering at all, like throwing an exception.... it could be rendering invisibly, due to opengl issues.... or the positioning could be way off so it's rendering somewhere else in the world you cant see it.

@valentindavid

This comment has been minimized.

Show comment
Hide comment
@valentindavid

valentindavid Mar 18, 2017

I have disabled the alpha of the GUI (like in the menu room). The GUI display at the right place. But the framebuffer is just black.

valentindavid commented Mar 18, 2017

I have disabled the alpha of the GUI (like in the menu room). The GUI display at the right place. But the framebuffer is just black.

@Techjar

This comment has been minimized.

Show comment
Hide comment
@Techjar

Techjar Mar 19, 2017

Collaborator

That's pretty weird, I don't see why that part wouldn't work on linux. Could it be a driver issue? What hardware and drivers are you using?

Collaborator

Techjar commented Mar 19, 2017

That's pretty weird, I don't see why that part wouldn't work on linux. Could it be a driver issue? What hardware and drivers are you using?

@valentindavid

This comment has been minimized.

Show comment
Hide comment
@valentindavid

valentindavid Mar 19, 2017

Nvidia GTX 970, with drivers version 375.27.13.

valentindavid commented Mar 19, 2017

Nvidia GTX 970, with drivers version 375.27.13.

@valentindavid

This comment has been minimized.

Show comment
Hide comment
@valentindavid

valentindavid Mar 19, 2017

I dumped the RGBA values of the GUI framebuffer every 100 frames into a file with glReadPixels. While I got the correct framebuffer dumped from the GUI from the start menu world, the GUI framebuffers while playing were all zeroes (black and transparent), including inventory and game menu.

valentindavid commented Mar 19, 2017

I dumped the RGBA values of the GUI framebuffer every 100 frames into a file with glReadPixels. While I got the correct framebuffer dumped from the GUI from the start menu world, the GUI framebuffers while playing were all zeroes (black and transparent), including inventory and game menu.

@valentindavid

This comment has been minimized.

Show comment
Hide comment
@valentindavid

valentindavid Mar 20, 2017

The reason is that when the GUI starts to draw GL_STENCIL_TEST is still enabled (from the main loop rendering which is not done in the menu). Adding GL11.glDisable(GL11.GL_STENCIL_TEST) in drawFrameBuffer seems to solve the issue.

valentindavid commented Mar 20, 2017

The reason is that when the GUI starts to draw GL_STENCIL_TEST is still enabled (from the main loop rendering which is not done in the menu). Adding GL11.glDisable(GL11.GL_STENCIL_TEST) in drawFrameBuffer seems to solve the issue.

@Techjar

This comment has been minimized.

Show comment
Hide comment
@Techjar

Techjar Mar 20, 2017

Collaborator

Hmm, the GUI framebuffer must have a stencil attachment, but it's never actually written. It probably should be disabled, yeah, but I still don't get why it behaves differently on windows and linux. Does the stencil value default to 0 on linux?

Collaborator

Techjar commented Mar 20, 2017

Hmm, the GUI framebuffer must have a stencil attachment, but it's never actually written. It probably should be disabled, yeah, but I still don't get why it behaves differently on windows and linux. Does the stencil value default to 0 on linux?

@valentindavid

This comment has been minimized.

Show comment
Hide comment
@valentindavid

valentindavid Mar 20, 2017

I have no idea. This might happen only for nvidia drivers on Linux. Or it might be related to the fact that we need beta version of nvidia drivers.

I will dump the stencil from the framebuffer when I find the time and see.

valentindavid commented Mar 20, 2017

I have no idea. This might happen only for nvidia drivers on Linux. Or it might be related to the fact that we need beta version of nvidia drivers.

I will dump the stencil from the framebuffer when I find the time and see.

@yaomtc

This comment has been minimized.

Show comment
Hide comment
@yaomtc

yaomtc May 25, 2017

Drivers for Nvidia that work with SteamVR (381.22 currently) are no longer in beta, by the way. I might have to test this tomorrow...

yaomtc commented May 25, 2017

Drivers for Nvidia that work with SteamVR (381.22 currently) are no longer in beta, by the way. I might have to test this tomorrow...

@jrbudda

This comment has been minimized.

Show comment
Hide comment
@jrbudda

jrbudda May 25, 2017

Owner

Openvr 107, which we havent updated to yet, seems to want to fix the weird structure packing. I dont think they're breaking compatibility yet, but we may have to revist it in the future.

Owner

jrbudda commented May 25, 2017

Openvr 107, which we havent updated to yet, seems to want to fix the weird structure packing. I dont think they're breaking compatibility yet, but we may have to revist it in the future.

@ghost

This comment has been minimized.

Show comment
Hide comment
@ghost

ghost Nov 29, 2017

Hm, the 1.10.2 pack you posted a little further up works at this point in time.
Works, as in it launches and you get to the menu in the vive.
There is a problem with the controllers after you launch the client (i'll get back to that).

With the working controller you can put the marker over whatever is on the main menu, but you can't "click" or activate any of the buttons.

Now, back to the controllers:
If you turn on or off any of the controllers while in the menu, the vive subsystem in vivecraft crashes so it's stuck at whatever angle and position you last had your vive at and the menu still continues running.
You can hear the music and see some animations running on the menu background.
If both controllers are switched "on" before launching, it now appears that they both work.
There is a small render glitch where if you hold one of the controllers under the other (don't remember witch one).
It looks like the render depth of the controller that is supposed to be beneath the other get's wrong render depth and looks like it's above even if it's not.
It's a bit strange but not a direct problem 😄
Unless you have a newer build that the 1.10.2 lying around ?
here's hoping

ghost commented Nov 29, 2017

Hm, the 1.10.2 pack you posted a little further up works at this point in time.
Works, as in it launches and you get to the menu in the vive.
There is a problem with the controllers after you launch the client (i'll get back to that).

With the working controller you can put the marker over whatever is on the main menu, but you can't "click" or activate any of the buttons.

Now, back to the controllers:
If you turn on or off any of the controllers while in the menu, the vive subsystem in vivecraft crashes so it's stuck at whatever angle and position you last had your vive at and the menu still continues running.
You can hear the music and see some animations running on the menu background.
If both controllers are switched "on" before launching, it now appears that they both work.
There is a small render glitch where if you hold one of the controllers under the other (don't remember witch one).
It looks like the render depth of the controller that is supposed to be beneath the other get's wrong render depth and looks like it's above even if it's not.
It's a bit strange but not a direct problem 😄
Unless you have a newer build that the 1.10.2 lying around ?
here's hoping

@Techjar

This comment has been minimized.

Show comment
Hide comment
@Techjar

Techjar Nov 29, 2017

Collaborator

The build way up there is super old now, grab the latest build as it works fine now on Linux (I've tested it). As for the OpenVR crashing thing, I noticed that too on Linux. It's not just Vivecraft breaking though, it's actually the whole vrserver crashing. When it happens I have to killall -9 the rest of the SteamVR processes (vrmonitor, vrdashboard, vrcompositor) as the vrserver refuses to start up again.

Collaborator

Techjar commented Nov 29, 2017

The build way up there is super old now, grab the latest build as it works fine now on Linux (I've tested it). As for the OpenVR crashing thing, I noticed that too on Linux. It's not just Vivecraft breaking though, it's actually the whole vrserver crashing. When it happens I have to killall -9 the rest of the SteamVR processes (vrmonitor, vrdashboard, vrcompositor) as the vrserver refuses to start up again.

@ghost

This comment has been minimized.

Show comment
Hide comment
@ghost

ghost Nov 29, 2017

Yeah, sorry, just after posting this I saw the other repo's, sorry about that.

ghost commented Nov 29, 2017

Yeah, sorry, just after posting this I saw the other repo's, sorry about that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment