Jump to content

[Development Decision] Should we drop old ARB shaders?


  

39 members have voted

  1. 1. Should we drop old ARB shader and stick to GLSL?

    • Yes, remove ARB code and only use GLSL
      26
    • No, we should work hard and support both ARB and GLSL
      3
    • Try to keep both, but make GLSL the default
      10
  2. 2. Do you have an OpenGL 2.0 capable graphics card? (almost every card since 2004)

    • Yes
      37
    • No
      2


Recommended Posts

This is most likely, since it would be a programming bug in the Blend generation code. With a good debugger it would be pretty easy to figure it out. If the diffuse and blend textures match, it's a bug in the code.

If this can be a problem can you add an assertion to check for that, at least on debug builds?

Link to comment
Share on other sites

  • 3 weeks later...

Looks like a strong majority ended up supporting ARB. Perhaps we could try optimizing our GLSL shaders to reduce some of the performance differences.

If there is barely any difference, we can continue optimizing our code for GLSL specifically, which will pay off in the long term.

What do you guys think?

Link to comment
Share on other sites

IMO we shouldn't drop ARB support at all unless someone is really overhauling the rendering engine in such a way that supporting both is too much of an obstacle (not simply an inconvenience). I don't think that is likely, but we can cross that bridge when we get there. The way to proceed with GLSL is to clean up its existing code, make sure we detect GLSL support properly (not a config option), begin enabling it on supported systems and noting which drivers and GPUs have GLSL support but perform poorly or are buggy, and fall back to ARB on those systems, the kind of thing we already do in HWDetect.

  • Like 4
Link to comment
Share on other sites

  • 2 weeks later...

IMO we shouldn't drop ARB support at all unless someone is really overhauling the rendering engine in such a way that supporting both is too much of an obstacle (not simply an inconvenience). I don't think that is likely, but we can cross that bridge when we get there. The way to proceed with GLSL is to clean up its existing code, make sure we detect GLSL support properly (not a config option), begin enabling it on supported systems and noting which drivers and GPUs have GLSL support but perform poorly or are buggy, and fall back to ARB on those systems, the kind of thing we already do in HWDetect.

Yep, I perfectly agree.

Link to comment
Share on other sites

I agree to disagree. :)

Stuff happens ^^

Well, decide on the basis of what's best for the game in the future but consider to wait with the changes if (as it seams right now) roughly 10% of the users can't play 0 A.D. any more. That number will most likely decrease over time.

If I can't play/contribute to 0 A.D. any more I will accept your choice (and hopefully get compatible hardware soon).

Still I think if it's not that much of an issue right now (I think path finder and range manager have higher priority and would even make the game playable on more instead of less hardware) and I'd love if you could wait dropping ARB.

Edited by FeXoR
Link to comment
Share on other sites

I am not even sure ARB shaders would allow for continued support for this computer, my parents' Gateway with a Nvidia GeForce 4200 Ti, due to the use of OpenGL 2.0. My own slightly newer Gateway E-4500D can handle the game, with its internal graphics no less, though for some strange reason the moving parts of the main menu background constantly flicker and I don't know if the fancy graphics work. I don't know when the game stopped working with the GeForce 4200 Ti, because I was using a GeForce 6200 in order to play things like Battlefield 2 for a time, but the GeForce 6200 doesn't seem to perform as good as even the internal graphics card on my computer for CnC Generals and the BfME series.

Edited by Zeta1127
Link to comment
Share on other sites

So when you guys moved away from the fixed-function renderer to OpenGL 2.0 and ARB shaders, you meant it when you said that older graphics card would be left behind. I guess I really shouldn't be surprised that even a fine graphics card like the GeForce4 Ti just never had it. I guess I am going to have to rely on my Gateway, flickering 0 A.D. main menu and all, in order to play the game for the foreseeable future.

Edited by Zeta1127
Link to comment
Share on other sites

Regarding fixed-function pipeline, we have decided already months ago that it will be dropped in future releases. So all in all, it shouldn't really be a surprise. You can get a cheap modern laptop with just 200$. I don't see any reason to support fixed function pipeline as it is, since it's a relic

Look at this from another perspective - should we had incorporated MS-DOS support in 2003, just because some people somewhere still used it? Even though it was a decade-old relic already? :)

  • Like 1
Link to comment
Share on other sites

We aim for a 2015 release according to the Indiegogo fund raiser. I think most people will have updated/should update in this time period.

Exactly. If we plan to support 10-year old hardware, then any hardware since 2005 will have OpenGL 2.0 support.

The only issue can be with some non-standard compliant drivers that fail to optimize or properly compile the GLSL shaders - so far we had an issue with pre-processor not working on OSX GLSL compiler. It might be simply because people are using outdated graphics drivers. Perhaps we should compile a list of suggested drivers for every platform? It would make our life easier if we just ensured proper driver suite is installed with the game, right?

As for ARB shaders, the main problem is that the ARB shader code is already outdated compared to our GLSL code. It's becoming more and more of a maintenance issue than anything else. On performance I'd rather look at our current GLSL implementation and how well the code is optimized - the fact is that we haven't actually optimized the shader code at all kind of puts it in an unfair position.

Link to comment
Share on other sites

Perhaps we should compile a list of suggested drivers for every platform? It would make our life easier if we just ensured proper driver suite is installed with the game, right?

Can we somehow simply check whether the features that 0 A.D. requires are supported or not? New drivers may appear, old drivers my start supporting the features we require, and checking the features instead of the drivers, if possible, sounds like a safer and more flexible approach.

  • Like 1
Link to comment
Share on other sites

Can we somehow simply check whether the features that 0 A.D. requires are supported or not? New drivers may appear, old drivers my start supporting the features we require, and checking the features instead of the drivers, if possible, sounds like a safer and more flexible approach.

I think the problematic cases are when drivers have bugs and/or incorrectly implement features. Though cross-checking features would be a good way to eliminate hopeless ancient drivers.

  • Like 1
Link to comment
Share on other sites

Yes. (Personally I've always been (and still am) in favour of keeping the fixed-function support, since I don't see it being much of a maintenance burden if the engine uses sensible abstractions, and I think compatibility is very valuable.)

Pretty optimistic to believe that the <3GHz pentium 4 or <<2.6 GHz Athlon 64 cpu that goes with those cards will be able to run the game logic. A used openGL >>2.0 AGP/PCI-express card is practically free today.

Edited by Norvegia
Link to comment
Share on other sites

Pretty optimistic to believe that the <3GHz pentium 4 or <<2.6 GHz Athlon 64 cpu that goes with those cards will be able to be able to run the game logic. A used openGL >>2.0 AGP/PCI-express card is practically free today.

Doesn't even need to be used, I got a new, supported OpenGL >4.0 card on sale for $15.

Link to comment
Share on other sites

  • 2 weeks later...

I think the problematic cases are when drivers have bugs and/or incorrectly implement features. Though cross-checking features would be a good way to eliminate hopeless ancient drivers.

Just going to chime in and mention that we have had problems for SuperTuxKart because some drivers report they can handle frame-buffer objects while in reality they can't. Otherwise the 3D engine we're using should disable it automatically. In other words: never trust a driver. It might be drunk.

  • Like 3
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...