Removing OpenGL 2.1 requirement from Love 0.10.0+

Questions about the LÖVE API, installing LÖVE and other support related questions go here.
Forum rules
Before you make a thread asking for help, read this.
Post Reply
User avatar
Taehl
Dreaming in associative arrays
Posts: 1024
Joined: Mon Jan 11, 2010 5:07 am
Location: CA, USA
Contact:

Removing OpenGL 2.1 requirement from Love 0.10.0+

Post by Taehl » Mon Mar 14, 2016 12:29 am

Since the only machine I have right now doesn't do OpenGL higher than 1.1, I've been forced to stick with the old version. If I don't even use shaders or any of that other fancy crap, why can't I disable them? And before anyone says that supporting lower than 2.1 is pointless and/or impossible, I would like to point out that Unity happily does so, even for games with heavy shaders and everything (it automagically removes them when the same content is run on a less-capable system).

Using an obsolete version of Love2D for the indefinite future is foolish, to say the least, especially if I want to actually release anything. Am I really going to have to maintain my own fork of Love2D just so I can get updates? :death:
Earliest Love2D supporter who can't Love anymore. Let me disable pixel shaders if I don't use them, dammit!
Lenovo Thinkpad X60 Tablet, built like a tank. But not fancy enough for Love2D 0.10.0+.

User avatar
slime
Solid Snayke
Posts: 2858
Joined: Mon Aug 23, 2010 6:45 am
Location: Nova Scotia, Canada
Contact:

Re: Removing OpenGL 2.1 requirement from Love 0.10.0+

Post by slime » Mon Mar 14, 2016 1:53 am

Taehl wrote:Since the only machine I have right now doesn't do OpenGL higher than 1.1
There are no GPUs (integrated or otherwise) produced in the last 20+ years which have such limited capabilities. However, the Microsoft OpenGL software renderer on Windows can only do OpenGL 1.1. It sounds like your actual graphics card isn't telling LÖVE that it exists, make sure you have the absolute latest graphics drivers!

(EDIT: That said, the Intel GMA 950 – which is based on 12 year old technology that was even outdated 12 years ago, doesn't have the necessary hardware capabilities either. Its Windows drivers only expose support for ~OpenGL 1.4. On Linux it has a driver which does partial software emulation in order to provide OpenGL 2.1 support, so it should work if you use that. Its Direct3D driver on Windows does a similar partial software emulation thing as well.)
Taehl wrote:If I don't even use shaders or any of that other fancy crap, why can't I disable them?
Shaders aren't fancy, they are actually the only way GPU hardware renders anything (and have been, for more than a decade). Even with "no shader active", either LÖVE or the graphics driver is supplying its own shaders, depending on which version of LÖVE you use.

viewtopic.php?f=3&t=81781&start=20#p195878
Taehl wrote:I would like to point out that Unity happily does so, even for games with heavy shaders and everything (it automagically removes them when the same content is run on a less-capable system).
Unity has similar hardware requirements to LÖVE at this point. However they use Direct3D on Windows, which has more consistent driver support compared to OpenGL on Windows (which is related to my first paragraph).

User avatar
Taehl
Dreaming in associative arrays
Posts: 1024
Joined: Mon Jan 11, 2010 5:07 am
Location: CA, USA
Contact:

Re: Removing OpenGL 2.1 requirement from Love 0.10.0+

Post by Taehl » Mon Mar 14, 2016 2:07 am

slime wrote:
Taehl wrote:Since the only machine I have right now doesn't do OpenGL higher than 1.1
There are no GPUs (integrated or otherwise) produced in the last 20+ years which have such limited capabilities. [...] It sounds like your actual graphics card isn't telling LÖVE that it exists
I have a Thinkpad X60 Tablet. Produced exactly 10 years ago. Its GPU is a Mobile Intel Express 945 chip. Its spec claims it goes up to OpenGL 1.4 max, but things over 1.1, in my experience, aren't a guarantee. I had far worse luck on each and every flavor of Linux I cared to try, so it's not Windows 7's fault.
slime wrote:
Taehl wrote:If I don't even use shaders or any of that other fancy crap, why can't I disable them?
Shaders aren't fancy, they are actually the only way GPU hardware renders anything (and have been, for more than a decade). Even with "no shader active", either LÖVE or the graphics driver is supplying its own shaders, depending on which version of LÖVE you use.
Can't I disable PIXEL shaders? I'm aware the vertex shaders have been a thing for a very long time, and I just want Love2D to be able to use them again.
Earliest Love2D supporter who can't Love anymore. Let me disable pixel shaders if I don't use them, dammit!
Lenovo Thinkpad X60 Tablet, built like a tank. But not fancy enough for Love2D 0.10.0+.

User avatar
slime
Solid Snayke
Posts: 2858
Joined: Mon Aug 23, 2010 6:45 am
Location: Nova Scotia, Canada
Contact:

Re: Removing OpenGL 2.1 requirement from Love 0.10.0+

Post by slime » Mon Mar 14, 2016 2:11 am

Taehl wrote:I have a Thinkpad X60 Tablet. Produced exactly 10 years ago. Its GPU is a Mobile Intel Express 945 chip. Its spec claims it goes up to OpenGL 1.4 max, but things over 1.1, in my experience, aren't a guarantee. I had far worse luck on each and every flavor of Linux I cared to try, so it's not Windows 7's fault.
Check out my edit to my previous post.
slime wrote:Can't I disable PIXEL shaders? I'm aware the vertex shaders have been a thing for a very long time, and I just want Love2D to be able to use them again.
You cannot, they are very integrated into love.graphics' code now. Your GPU also doesn't support GLSL vertex shaders anyway (which are very integrated into love.graphics' code as well).

Even phones from 7+ years ago have GPUs that can run shaders (and nvidia and ATI GPUs from ~14 years ago can do it too), for what it's worth.

User avatar
Taehl
Dreaming in associative arrays
Posts: 1024
Joined: Mon Jan 11, 2010 5:07 am
Location: CA, USA
Contact:

Re: Removing OpenGL 2.1 requirement from Love 0.10.0+

Post by Taehl » Mon Mar 14, 2016 2:22 am

I saw you previous post. Linux was an unbroken chain of fail. Are you suggesting I can force Love2D to use DirectX?

I know all about the technology. I've been following it since about '96. Geometry shaders FTW. I'm excited about Vulkan and everything. It's wonderful that technology is getting better, and even old phones can do impressive graphics tricks. That doesn't make the slightest difference to the machine in front of me. It's happily capable of running games like Half-Life and Unreal Tournament, and even a few modern ones like Freedom Planet, at 60 FPS. The only issue is that it doesn't support modern graphics tricks I'm not using anyway. Why are programmable pixel shaders required for even the basic Hello World?
Earliest Love2D supporter who can't Love anymore. Let me disable pixel shaders if I don't use them, dammit!
Lenovo Thinkpad X60 Tablet, built like a tank. But not fancy enough for Love2D 0.10.0+.

User avatar
slime
Solid Snayke
Posts: 2858
Joined: Mon Aug 23, 2010 6:45 am
Location: Nova Scotia, Canada
Contact:

Re: Removing OpenGL 2.1 requirement from Love 0.10.0+

Post by slime » Mon Mar 14, 2016 2:42 am

Taehl wrote:I saw you previous post. Linux was an unbroken chain of fail. Are you suggesting I can force Love2D to use DirectX?
There is https://github.com/google/angle , but it doesn't support your GPU I believe. BobbyJones is one LÖVE user who was able to run 0.10 on a computer he was using by running it in a Linux distro instead of Windows.
Taehl wrote:Geometry shaders
Geometry shaders are unfortunately mostly useless – they heavily impact performance, and almost all of the things they can do are possible through other better-performing means. A lot of phone GPUs even skipped geometry shaders entirely and just support vertex shaders, pixel shaders, and compute shaders.
Taehl wrote:The only issue is that it doesn't support modern graphics tricks I'm not using anyway. Why are programmable pixel shaders required for even the basic Hello World?
Because shaders aren't tricks, they're code that determines the position of everything you draw, and the colors of all the pixels on the screen.

Supporting pre-shader OpenGL, shader-capable OpenGL, and OpenGL ES 2 at the same time would require two fairly different codepaths inside love.graphics, which means more chance of bugs, less ability to add to or change love.graphics in the future, less reliable features for LÖVE users (even 0.10's videos require and use shaders), and a much larger time and effort commitment than I can give for something that's just a hobby for me separate from my full-time job – all to support decade-old hardware that less and less people use each day, and of those people practically none expect to run new games on such hardware.

User avatar
Taehl
Dreaming in associative arrays
Posts: 1024
Joined: Mon Jan 11, 2010 5:07 am
Location: CA, USA
Contact:

Re: Removing OpenGL 2.1 requirement from Love 0.10.0+

Post by Taehl » Mon Mar 14, 2016 3:36 am

I like geometry shaders for how they can add more detail and generate entirely new geometry, not merely subdivide. Wonderful for procedural content. It's also a better solution than most implementations of parallax mapping with occlusion, IMHO. Not really seen much in current games, I know, but Nvidia has some nice demos with it.

I understand your reasons for dropping legacy support. I don't disagree with them either. Sadly, from my perspective this is a major, deal-breaking kind of thing. I've been a proud and vocal proponent of Love2D for years. Now I can't even run it? :( I'm going to have to switch to giant, corporate Unity because it'll actually run on my machine instead of the lightweight open-source framework I favor?
Earliest Love2D supporter who can't Love anymore. Let me disable pixel shaders if I don't use them, dammit!
Lenovo Thinkpad X60 Tablet, built like a tank. But not fancy enough for Love2D 0.10.0+.

User avatar
Tjakka5
Party member
Posts: 240
Joined: Thu Dec 26, 2013 12:17 pm

Re: Removing OpenGL 2.1 requirement from Love 0.10.0+

Post by Tjakka5 » Mon Mar 14, 2016 7:46 am

Or you could buy a new gpu. Something like a Nvidia GT9600 for around 20,- will run Love fine.
Check out my portfolio: http://tjakka5.sorunome.de/

Post Reply

Who is online

Users browsing this forum: DKipppp, Google [Bot] and 17 guests