OpenGL state on NVIDIA/AMD

Discussion in '3D Hardware, Software & Output Devices' started by DavidGraham, May 14, 2014.

  1. OpenGL guy

    Veteran

    Joined:
    Feb 6, 2002
    Messages:
    2,357
    Likes Received:
    28
    If you have "existing" code, why would you change it just to add a compatibility profile? Your code will continue to work without any modifications.
     
  2. Andrew Lauritzen

    Moderator Veteran

    Joined:
    May 21, 2004
    Messages:
    2,526
    Likes Received:
    454
    Location:
    British Columbia, Canada
    I guess we just have a different definition of "always" :) The way I read that is... always create a compatibility profile just in case you want to integrate "existing" code (from libraries, etc.) at some point. I imagine it is intentionally ambiguous.
     
  3. silent_guy

    Veteran Subscriber

    Joined:
    Mar 7, 2006
    Messages:
    3,754
    Likes Received:
    1,379
    I think you're overthinking this a bit too much: this FAQ is not award winning poetry that warrants the kind of in-depth meaning-behind-the-words analysis you'd spend your time on in 12th grade. :wink:

    I see this as a simple clarification about API to assuage the fears of developers about future compatibility of their existing code library.
     
  4. silent_guy

    Veteran Subscriber

    Joined:
    Mar 7, 2006
    Messages:
    3,754
    Likes Received:
    1,379
    I don't know how OpenGL deals with different API versions. But I think you'd want this compatibility profile when you have a large existing library that you want to reuse, in addition to adding new code that uses the latest API features?
     
  5. Andrew Lauritzen

    Moderator Veteran

    Joined:
    May 21, 2004
    Messages:
    2,526
    Likes Received:
    454
    Location:
    British Columbia, Canada
    Quite possibly :) But I also don't think I'm wrong, as my analysis is based more on experience than that quote - it just provided an easy thing to link.
     
  6. OpenGL guy

    Veteran

    Joined:
    Feb 6, 2002
    Messages:
    2,357
    Likes Received:
    28
    This is *precisely* the point. "Don't rewrite your code! Just use the compatibility profile."
     
  7. Blazkowicz

    Legend Veteran

    Joined:
    Dec 24, 2004
    Messages:
    5,607
    Likes Received:
    256
    They recommend to use "a" compatibility profile, to make an analogy it's a bit like recommending to make a DX9 path for your game (whether you make a DX10/11 one or not). That analogy got weaker since the end of Windows XP, but you get what I mean.

    Computers now have a 10 year useful life and that will only increase. I bet they are more users of Intel graphics for Pentium 4 / Core 2 Duo / Atom than users who can run OpenGL 4.4.

    Quadro users with a card based on the G80/G92/GT200 generation are maybe being in a middle of a hardware migration, if PCs are replaced about every 5 years up from the previous 3 year cycle..
     
    #67 Blazkowicz, May 21, 2014
    Last edited by a moderator: May 21, 2014
  8. OpenGL guy

    Veteran

    Joined:
    Feb 6, 2002
    Messages:
    2,357
    Likes Received:
    28
    LOL it's nothing of the sort. If you are writing an OpenGL 4.3 application, there's no need to enable the compatibility profile except to keep a certain IHV happy. OpenGL 4.3 specific code will never run on a device that doesn't have OpenGL 4.3 features regardless of whether you enable the compatibility profile.

    You have no idea what the compatibility profile really does.

    Say I write code for the OpenCL 4.3 core profile and actually leverage 4.3 features. If I now enable the compatibility profile my code doesn't miraculously start working on an OpenCL 3.0 device/driver! Enabling the compatibility profile just guarantees we can never get away from applications (perhaps unknowingly) using deprecated API features.
     
  9. slime

    Newcomer

    Joined:
    May 21, 2014
    Messages:
    3
    Likes Received:
    1
    There are a couple different concepts with desktop OpenGL versions and profiles:

    • Core Profile OpenGL 3+
    • Compatibility Profile OpenGL 3+
    • Old OpenGL (2.x and below)

    Core Profile includes all core OpenGL 3+ features and no deprecated/removed OpenGL 2.x features. All OpenGL 3+ implementations are required to support at least Core Profile.

    Compatibility Profile includes all of Core Profile as well as everything deprecated with the move to OpenGL 3+ (everything in blue here.) The concept of Compatibility Profile only exists in OpenGL 3+, any code written for OpenGL 2.x and below does not even know about Compatibility Profile (or Core Profile) contexts.

    Compatibility Profile does not have to be supported by an OpenGL 3+ implementation. In practice, both Mac OS X and Mesa chose not to implement Compatibility Profile at all, partially since it adds a ton of complexity to the implementation compared to just Core Profile GL3+.

    Both Mac OS X and Mesa still support OpenGL 2.x and below, as well as Core Profile OpenGL 3+, but not Compatibility Profile (all programs written for OpenGL 2 still work fine, and programs written for Core Profile OpenGL 3+ work fine too.)

    nvidia actively recommends using Compatibility Profile OpenGL when using OpenGL 4.x functionality. If a program developer were to take that recommendation to heart, it would prevent their code from working on Mac OS X and Mesa drivers, and it would also provide even more reason for nvidia and AMD to continue implementing Compatibility Profile support for new OpenGL versions in their drivers.

    I'm not a driver developer, but Compatibility Profile keeps so much cruft from OpenGL 1 around that I'm sure not implementing it would reduce the amount of bugs found in modern OpenGL drivers.
     
  10. Blazkowicz

    Legend Veteran

    Joined:
    Dec 24, 2004
    Messages:
    5,607
    Likes Received:
    256
    Hum okay I had the thing totally backward.

    Nvidia "conspiracy" makes more sense if that's explicit.
     
  11. Novum

    Regular

    Joined:
    Jun 28, 2006
    Messages:
    335
    Likes Received:
    8
    Location:
    Germany
    Not at all. That's my opinion on NVIDIA about their politics.
     
  12. firstminion

    Newcomer

    Joined:
    Aug 7, 2013
    Messages:
    217
    Likes Received:
    46
    Made me remember this quote

    http://richg42.blogspot.com.br/2014/05/the-truth-on-opengl-driver-quality.html
    "Vendor A is also jokingly known as the "Graphics Mafia". Be very careful if a dev from Vendor A gets embedded into your team. These guys are serious business."
     
  13. madyasiwi

    Newcomer

    Joined:
    Oct 7, 2008
    Messages:
    194
    Likes Received:
    32
    Unity developer weighs in here, which also contains links to blog of developer who port games to Mac here.
     
  14. Dave Baumann

    Dave Baumann Gamerscore Wh...
    Moderator Legend

    Joined:
    Jan 29, 2002
    Messages:
    14,079
    Likes Received:
    648
    Location:
    O Canada!
    Looks like Apple have had enough of OpenGL on iOS at least. "Metal" is their own "thin overhead" API for A7.
     
  15. idsn6

    Regular

    Joined:
    Apr 14, 2006
    Messages:
    476
    Likes Received:
    121
    Kudos, zorg.
     
  16. Alexko

    Veteran Subscriber

    Joined:
    Aug 31, 2009
    Messages:
    4,496
    Likes Received:
    910
    It's funny how some trends tend to sweep the entire industry all at once. I mean, if DX12 was too soon to be just a reaction to Mantle, then so is this. Which means AMD/DICE, Microsoft and Apple all started working on their thin APIs about the same time.
     
  17. Andrew Lauritzen

    Moderator Veteran

    Joined:
    May 21, 2004
    Messages:
    2,526
    Likes Received:
    454
    Location:
    British Columbia, Canada
    It's not really that surprising... the "industry" of graphics engineers isn't really that big and we all talk to most of the same people :) Nothing really happens in isolation or without building on ideas of others, which is great as anything less would stifle innovation.

    In any case I'm glad to see this happening and hope they have plans for OSX too. Likely this is going to be the push that the remaining platforms need to take this issue seriously.
     
Loading...

Share This Page

  • About Us

    Beyond3D has been around for over a decade and prides itself on being the best place on the web for in-depth, technically-driven discussion and analysis of 3D graphics hardware. If you love pixels and transistors, you've come to the right place!

    Beyond3D is proudly published by GPU Tools Ltd.
Loading...