Help Test portable Linux Love2d Binary

General discussion about LÖVE, Lua, game development, puns, and unicorns.
User avatar
qubodup
Inner party member
Posts: 775
Joined: Sat Jun 21, 2008 9:21 pm
Location: Berlin, Germany
Contact:

Help Test portable Linux Love2d Binary

Post by qubodup » Mon Nov 07, 2016 11:35 am

Dear Linux users, Bart has been working on standalone Linux binaries. If you could help by testing them that would be great :awesome: .

Please go to https://bitbucket.org/rude/love/issues/1168/ and download the latest, meaning scroll to the bottom, then scroll up until you find a suitable looking archive file. Extract it. Test by running the `love` script file from a terminal and let us know whether it works and if it doesn't tell us the output to the command line.

In both cases, tell us which archive file you downloaded and tested, your Linux distro/version and your graphics card and driver.

Use code tags to share your command line output in a reply to this thread please:

Code: Select all

[code]command line output
here
[/code]

Results

== 64 bit Linux ==

Intel open source confirmed working with:
(assuming love-0.10.2-amd64.tar.gz)
Linux Manjaro x64, kernel 4.8.5, Intel open source driver.
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 530 (rev 06)
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 530 (Skylake GT2)
OpenGL vendor string: Intel Open Source Technology Center

AMD open source confirmed working with:
love-0.10.2-amd64.tar.gz
Linux 4.7.6-1-ARCH x86_64
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Cape Verde PRO [Radeon HD 7750/8740 / R7 250E]
OpenGL renderer string: Gallium 0.4 on AMD CAPE VERDE (DRM 2.45.0 / 4.7.6-1-ARCH, LLVM 3.8.1)
OpenGL vendor string: X.Org

AMD proprietary not tested yet

NVIDIA open source confirmed working with:
DISTRIB_ID=LinuxMint
DISTRIB_RELEASE=2
DISTRIB_CODENAME=betsy
DISTRIB_DESCRIPTION="LMDE 2 Betsy"
PRETTY_NAME="Linux Mint LMDE"
NAME="Linux Mint LMDE"
ID=linuxmint
02:00.0 VGA compatible controller: NVIDIA Corporation C77 [GeForce 8200] (rev a2)
OpenGL renderer string: Gallium 0.4 on NVAA
OpenGL vendor string: nouveau

NVIDIA proprietary confirmed working with:
(assuming love-0.10.2-amd64.tar.gz)
Linux 4.8.6-1-ARCH x86_64
01:00.0 VGA compatible controller: NVIDIA Corporation GM206 [GeForce GTX 960] (rev a1)
OpenGL renderer string: GeForce GTX 960/PCIe/SSE2
OpenGL vendor string: NVIDIA Corporation

No driver/software rendering mode not working, as expected:
s-ol wrote:I also tried to run it in Xephyr emulation but it says

Code: Select all

Unable to create OpenGL window
This program requires a graphics card and video drivers which support OpenGL 2.1 or OpenGL ES 2.

SDL window creation error: GLX is not supported
and displays the last two sentences in a dialog.
== 32 bit Linux not available yet ==

How-To

How to find out your Linux distro and version:

Code: Select all

cat /etc/*-release
lsb_release -a
uname -mrs
cat /proc/version
How to find out your graphics card and driver:

Code: Select all

lspci | grep VGA
glxinfo | grep "OpenGL renderer string"
glxinfo | grep "OpenGL vendor"
If you can't run glxinfo, you might have to install mesa-utils or the -utils package of your graphics card driver.

Code: Select all

sudo apt-get install mesa-utils
Last edited by qubodup on Wed Nov 09, 2016 1:15 pm, edited 3 times in total.
lg.newImage("cat.png") -- made possible by lg = love.graphics
-- Don't force fullscreen (it frustrates those who want to try your game real quick) -- Develop for 1280x720 (so people can make HD videos)

User avatar
Nixola
Inner party member
Posts: 1940
Joined: Tue Dec 06, 2011 7:11 pm
Location: Italy

Re: Help Test portable Linux Love2d Binary

Post by Nixola » Mon Nov 07, 2016 12:24 pm

It works on Linux Manjaro x64 on kernel 4.8.5, Intel open source driver.

Code: Select all

$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 530 (rev 06)

$ glxinfo | grep "OpenGL renderer string"
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 530 (Skylake GT2) 

$ glxinfo | grep "OpenGL vendor"
OpenGL vendor string: Intel Open Source Technology Center
lf = love.filesystem
ls = love.sound
la = love.audio
lp = love.physics
lt = love.thread
li = love.image
lg = love.graphics

User avatar
bartbes
Sex machine
Posts: 4946
Joined: Fri Aug 29, 2008 10:35 am
Location: The Netherlands
Contact:

Re: Help Test portable Linux Love2d Binary

Post by bartbes » Mon Nov 07, 2016 12:33 pm

I've tested it myself on Arch with the NVIDIA proprietary driver:

Code: Select all

Linux 4.8.6-1-ARCH x86_64
01:00.0 VGA compatible controller: NVIDIA Corporation GM206 [GeForce GTX 960] (rev a1)
OpenGL renderer string: GeForce GTX 960/PCIe/SSE2
OpenGL vendor string: NVIDIA Corporation
As well as the Fedora 24 live cd, but I don't know a kernel version, nor which driver it was using.

User avatar
Fenrir
Party member
Posts: 222
Joined: Wed Nov 27, 2013 9:44 am
Contact:

Re: Help Test portable Linux Love2d Binary

Post by Fenrir » Mon Nov 07, 2016 1:04 pm

Wow awesome initiative, would make the linux distribution of games a lot easier (I already made an AppImage on my side for Wanderer, but I'm not super confident on its portability). I'll test it as soon as the 32bit version is available!

User avatar
pgimeno
Party member
Posts: 1943
Joined: Sun Oct 18, 2015 2:58 pm
Location: Valencia, ES

Re: Help Test portable Linux Love2d Binary

Post by pgimeno » Mon Nov 07, 2016 1:51 pm

I can test the 32-bit version on Debian Wheezy (oldstable) once it's out, with nVidia 340.96 proprietary drivers (legacy).

I'll test in a 64 bit Jessie with newer nVidia proprietary drivers as soon as I can. It's not my box and it's in use most of the time, so it may take a while. Only problem is that there was a previous working LÖVE installation, therefore all libraries are already pre-installed and I can't check with a pristine installation, which would have been best.

Sorry for this non-post.

User avatar
easy82
Party member
Posts: 184
Joined: Thu Apr 18, 2013 10:46 pm
Location: Hungary

Re: Help Test portable Linux Love2d Binary

Post by easy82 » Mon Nov 07, 2016 3:32 pm

Good job! :)

love-0.10.2-amd64.tar.gz does works here:

cat /etc/*-release

Code: Select all

DISTRIB_ID=LinuxMint
DISTRIB_RELEASE=17.3
DISTRIB_CODENAME=rosa
DISTRIB_DESCRIPTION="Linux Mint 17.3 Rosa"
NAME="Ubuntu"
VERSION="14.04.3 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.3 LTS"
VERSION_ID="14.04"
uname -mrs

Code: Select all

Linux 3.19.0-32-generic x86_64
lspci | grep VGA

Code: Select all

01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Granville [Radeon HD 6850M/6870M]
<edit>
glxinfo | grep "OpenGL renderer string"

Code: Select all

OpenGL renderer string: Gallium 0.4 on AMD JUNIPER
glxinfo | grep "OpenGL vendor"

Code: Select all

OpenGL vendor string: X.Org
</edit>

While love-0.10.1-amd64.tar.gz says:

Code: Select all

libGL error: unable to load driver: r600_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: r600
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
Last edited by easy82 on Thu Nov 10, 2016 3:03 pm, edited 1 time in total.

User avatar
bartbes
Sex machine
Posts: 4946
Joined: Fri Aug 29, 2008 10:35 am
Location: The Netherlands
Contact:

Re: Help Test portable Linux Love2d Binary

Post by bartbes » Tue Nov 08, 2016 9:36 am

So I tested the Fedora 24 live cd again, and it looks like it was using nouveau, since that module was loaded:

Code: Select all

Fedora 24 (live)
Linux 4.5.5-300.fc24.x86_64 x86_64
01:00.0 VGA compatible controller: NVIDIA Corporation GM206 [GeForce GTX 960] (rev a1)
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.8, 128 bits)
OpenGL vendor string: VMware, Inc.
({love.graphics.getRenderInfo()})[2] = 2.1 Mesa 11.2.1 (git-79b0e13)

User avatar
J-Reed
Prole
Posts: 5
Joined: Tue Nov 08, 2016 6:28 pm

Re: Help Test portable Linux Love2d Binary

Post by J-Reed » Tue Nov 08, 2016 7:12 pm

Great job! Confirming it works... love-0.10.2-amd64...Intel on Linux Mint Debian...

Code: Select all

DISTRIB_ID=LinuxMint
DISTRIB_RELEASE=2
DISTRIB_CODENAME=betsy
DISTRIB_DESCRIPTION="LMDE 2 Betsy"
PRETTY_NAME="Linux Mint LMDE"
NAME="Linux Mint LMDE"
ID=linuxmint

$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)

$glxinfo | grep "OpenGL renderer string"
OpenGL renderer string: Mesa DRI Intel(R) Sandybridge Desktop 

$ glxinfo | grep "OpenGL vendor"
OpenGL vendor string: Intel Open Source Technology Center
I too, have spent time trying to put together a portable version which I've only tested on my machine, but works. I found this really cool Bash script on the web which uses 'ldd' to copy ALL (I think) dependencies for an executable and places them into a directory of your choosing. So after having love installed to the system, the following script copied 64 dependency files (about 18.3 MB)...

Code: Select all

#!/bin/bash 
# Author : Hemanth.HM
# Email : hemanth[dot]hm[at]gmail[dot]com
# License : GNU GPLv3
#

function useage()
{
    cat << EOU
Useage: bash $0 <path to the binary> <path to copy the dependencies>
EOU
exit 1
}

#Validate the inputs
[[ $# < 2 ]] && useage

#Check if the paths are vaild
[[ ! -e $1 ]] && echo "Not a vaild input $1" && exit 1 
[[ -d $2 ]] || echo "No such directory $2 creating..."&& mkdir -p "$2"

#Get the library dependencies
echo "Collecting the shared library dependencies for $1..."
deps=$(ldd $1 | awk 'BEGIN{ORS=" "}$1\
~/^\//{print $1}$3~/^\//{print $3}'\
 | sed 's/,$/\n/')
echo "Copying the dependencies to $2"

#Copy the deps
for dep in $deps
do
    echo "Copying $dep to $2"
    cp "$dep" "$2"
done

echo "Done!"
Then, it's just a matter of using a another script like this to launch the LÖVE executable with your game...

Code: Select all

#!/bin/bash

cd "`dirname "$(readlink -f "$0")"`"

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/lib $PWD/bin/love $PWD/game/yourgame.love
Still a work in progress, and right now $PWD can't have any spaces (I think). Anyway, thought I'd post this in case it helps tracking down any dependencies.

User avatar
s-ol
Party member
Posts: 1077
Joined: Mon Sep 15, 2014 7:41 pm
Location: Cologne, Germany
Contact:

Re: Help Test portable Linux Love2d Binary

Post by s-ol » Tue Nov 08, 2016 7:29 pm

It's running perfectly on Arch Linux 4.8.6-1 on a GTX 970 with proprietary nvidia drivers (375.10).
Worked great with 3rd party binary modules (moonscript + love-imgui) immediately too.

I also tried to run it in Xephyr emulation but it says

Code: Select all

Unable to create OpenGL window
This program requires a graphics card and video drivers which support OpenGL 2.1 or OpenGL ES 2.

SDL window creation error: GLX is not supported
and displays the last two sentences in a dialog.

s-ol.nu /blog  -  p.s-ol.be /st8.lua  -  g.s-ol.be /gtglg /curcur

Code: Select all

print( type(love) )
if false then
  baby:hurt(me)
end

User avatar
qubodup
Inner party member
Posts: 775
Joined: Sat Jun 21, 2008 9:21 pm
Location: Berlin, Germany
Contact:

Re: Help Test portable Linux Love2d Binary

Post by qubodup » Tue Nov 08, 2016 7:40 pm

Thank you so much for your help, people! I updated the first post. As of now we are missing:
AMD proprietary
NVIDIA open source (was tested in vmware but if somebody is running native nouveau, a confirmation would be a bonus)

Amazing job everyone! :awesome:
lg.newImage("cat.png") -- made possible by lg = love.graphics
-- Don't force fullscreen (it frustrates those who want to try your game real quick) -- Develop for 1280x720 (so people can make HD videos)

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest