Beyond Porting: How Modern OpenGL Can Radically Reduce Driver Overhead (Steam Dev Days 2014)

แชร์
ฝัง
  • เผยแพร่เมื่อ 30 ต.ค. 2024

ความคิดเห็น • 57

  • @filwit
    @filwit 10 ปีที่แล้ว +8

    Execellent talk! Very helpful, thanks for the upload.

  • @Space_Gaucho
    @Space_Gaucho 10 ปีที่แล้ว +10

    I completely understood all that was said and i'm being totally 100% honest.

  • @michaelschlachter8865
    @michaelschlachter8865 10 ปีที่แล้ว +38

    DIRECT X IS DEAD TO ME.

    • @michaelschlachter8865
      @michaelschlachter8865 10 ปีที่แล้ว +1

      long live the glew flesh.

    • @TheWeepingCorpse
      @TheWeepingCorpse 10 ปีที่แล้ว +2

      It's been dead to me sine 2012.

    • @C5FlyingSquad
      @C5FlyingSquad 10 ปีที่แล้ว +1

      ***** Cos OpenGL seems to have some bright stuff in th pipeline, as well as a good API.

    • @TheMrKeksLp
      @TheMrKeksLp 8 ปีที่แล้ว +3

      ALL HAIL OPENGL

    • @seditt5146
      @seditt5146 5 ปีที่แล้ว +3

      Here we are 5 years later and OpenGL API is still a nightmare and under performs compared to DX.(significantly in some of the test I have run, but around 33% in most and I don't know much bout DirectX).

  • @WindKun
    @WindKun 10 ปีที่แล้ว +7

    John Carmack has been doing this for "Uhm" 20 years.

    • @snokzor
      @snokzor 10 ปีที่แล้ว +6

      Isn't John Carmack more of a 'mmm' person

    • @GeorgeTsiros
      @GeorgeTsiros 2 ปีที่แล้ว +2

      @@snokzor more of a "...ugh." person. After he finishes a sentence he lets out a squeak.

  • @Anti-Bully.Ranger
    @Anti-Bully.Ranger 10 ปีที่แล้ว +2

    I giggled a little when i saw the t-shirt.

  • @iamvfx
    @iamvfx 10 ปีที่แล้ว +4

    Why driver overhead exists in the first place?

    • @SerBallister
      @SerBallister 8 ปีที่แล้ว +2

      Because command buffers are deeply pipelined making any kind of server->client sync expensive as you need to flush pipes/etc.

    • @seditt5146
      @seditt5146 5 ปีที่แล้ว +2

      Many of the API calls need to take place in Kernel mode. Switching back and forth is expensive. The API stores the calls in a pipeline so that it makes as few of these mode switches as possible. If you can get all the data onto the GPU in a single instance these switches can all but be eliminated.

  • @DanielJamesCollier
    @DanielJamesCollier 9 ปีที่แล้ว +2

    where can I get that t-shirt love it !

  • @richardlange4870
    @richardlange4870 10 ปีที่แล้ว

    ARITE, LETS SWITCH TO MANTLE!

  • @ninefingers6306
    @ninefingers6306 10 ปีที่แล้ว

    These new openGL extensions will work with AMD too?

    • @GrahamSellers
      @GrahamSellers 10 ปีที่แล้ว +11

      Most do already as part of core OpenGL 4.3. The rest will be available soon.

  • @exapsy
    @exapsy 9 ปีที่แล้ว

    Sméagol ??? Where have you been masta ?

  • @RMJ1984
    @RMJ1984 10 ปีที่แล้ว +7

    I've said it time and time again. The sooner Microsoft gets pulled, from controlling the PC the better.
    Just imagine how much they have slowed and hindered the pc with their crummy directx.
    Imagine if they had actually optimized windows for gaming, but obviously that wont happen, because they play on 2 horses. they want games on their consoles instead of windows.
    There is so much performance to gain, if we get opengl low level api, then some other gaming OS, where gaming is the number priority

    • @SianaGearz
      @SianaGearz 10 ปีที่แล้ว +2

      At this point, performance gains from OpenGL are still behind Mantle, and compatibility is meh. I ship OpenGL software, and AMD gives us grief quite a bit of time with fresh driver bugs, nVidia super rarely, and Apple is super unpleasant to work with (too divergent), but no surprises. Of course this is also a product of DirectX being the main interface for hardware makers, but the unifying force of Microsoft on implementation level also makes things a lot easier for everyone!
      Except well. If Microsoft released DirectX10 for Windows XP, it really would have saved some gamedevs a lot of time, and for those with little time, it could have improved performance of all titles. Arses.
      Something curious happened recently though. Consoles had their low-overhead APIs for like ever, except for the very first Xbox, where it was a major mistake on Microsoft's part not to provide one, if you'd like to read up a postmortem on "State of Emergency" port, you'll know why. Now AMD released a Windows low-level API called Mantle probably derived from their Xbox One involvement, and Microsoft announced a follow-up, that Direct3D 12 is very Mantle-like, and applicable to GeForce series Fermi and up, and AMD series 7 and up. It'll take a while to hit the shelves, but it looks like Microsoft is serious. I don't think there's anything holding up PC gaming performance besides graphics API/driver stack deficiencies - there's of course other deficiencies in Windows, but they don't add up like that.

    • @seditt5146
      @seditt5146 3 ปีที่แล้ว +2

      Crummy DX? It amazes me how many people feel OGL is faster and better than DirectX. It never was nor has been. Likely never ever will be.

    • @GeorgeTsiros
      @GeorgeTsiros 2 ปีที่แล้ว +3

      @@seditt5146 apples to oranges tho. dx is windows-specific. ogl is language and platform neutral. So, it would be more accurate to say that ogl is faster everywhere except windows. Second, microsoft spent a decade, maybe more, doing its worst to shove opengl away and force people to use direct3d.

    • @seditt5146
      @seditt5146 2 ปีที่แล้ว

      @@GeorgeTsiros So what did they do to shove OGL away other than not directly support it which would have been completely retarded of them to do?

    • @GeorgeTsiros
      @GeorgeTsiros 2 ปีที่แล้ว

      @@seditt5146 seems you need to learn some things about microsoft's history with opengl. Start reading.

  • @lennyhome
    @lennyhome 10 ปีที่แล้ว +6

    How do you expect any independent developer to have time and resources to deal with this kind of complications? OpenGL became successful because it was simple, but after years of corporate poking, it turned into DirectX. Embrace, Extend and Extinguish at its finest.

    • @LAG09
      @LAG09 10 ปีที่แล้ว +12

      This is not just for indies (who generally start from nothing or just use an already existing engine) and do you really think OpenGL should be stale?
      Microsoft's "Embrace, Extend, Extinguish"-strategy builds around adding proprietary extensions to such an extent that you end up with two standards, one which is compatible with the other wile the other isn't compatible with the first.
      While vendors can add their own extensions to OpenGL, they still all contribute to the standard and it's only just a few specific things that end up being vendor exclusive. I personally prefer a few features being vendor specific in an open standard over a closed vendor specific standard with no vendor specific features.

    • @lennyhome
      @lennyhome 10 ปีที่แล้ว +1

      Fuck the Khronos group. OpenGL used to be cool because you could use it as-is without an "engine" and/or other gay appendages. I guess somebody wansn't happy about that.

    • @abyssaldision5134
      @abyssaldision5134 10 ปีที่แล้ว +12

      lennyhome OpenGL is an low level API, you don't need an engine to use it. And yes OpenGL got more complex but the hardware is also got more complex to be more powerful & faster.

    • @TheMrKeksLp
      @TheMrKeksLp 8 ปีที่แล้ว +4

      +lennyhome You can still use a GL11 if that's what your into but most guys are interested in actual quality and performance. Sorry but calling an engine/framework "gay" is beyond pathetic. If you cannot be arsed to learn the simplest things programming might be a bit out of your reach

    • @VictorRodriguez-zp2do
      @VictorRodriguez-zp2do 4 ปีที่แล้ว +2

      If you don't like it you can use old versions of OpenGL and there will be no problems.

  • @hydroxoniumionplus
    @hydroxoniumionplus 10 ปีที่แล้ว

    his barn door is open

  • @roberrafi4194
    @roberrafi4194 10 ปีที่แล้ว +2

    Khronos, or whoever in charge, crippled OpenGL by removing the real OpenGL features to "compatible profile". They added needless complexities in hope it will catch with Direct3D crap. Hardware changed yes but it's now faster and more capable, and this should remain transparent to the API. The only thing I can think of is programmable functionality, and anything else is just a failed attempt to imitate Direct3D.

    • @nilspin
      @nilspin 10 ปีที่แล้ว

      But I often wonder if we'd be able to do cool stuff with the old rigid fixed function pipeline instead of this complex(but way more flexible) version of OpenGL

    • @TheMrKeksLp
      @TheMrKeksLp 8 ปีที่แล้ว +2

      I honestly don't understand how anyone can be so against change. Feel free to use GL11 but don't wonder when it looks like utter shite

  • @tsenotsenov443
    @tsenotsenov443 10 ปีที่แล้ว

    Sooo yeah.... I couldn't find a solution anywhere on the web sooo this being a video about opengl here is what i get when i try to compile my code :
    'Desolation.exe' (Win32): Loaded 'C:\Users\EducatedMF\Documents\Visual Studio 2012\Projects\Desolation\Debug\Desolation.exe'. Symbols loaded.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64
    tdll.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\kernel32.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\KernelBase.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Users\EducatedMF\Documents\Visual Studio 2012\Projects\Desolation\Debug\freeglut.dll'. Module was built without symbols.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\user32.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\gdi32.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\lpk.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\usp10.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcrt.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\advapi32.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\sechost.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64
    pcrt4.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\sspicli.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\cryptbase.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\opengl32.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\glu32.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ddraw.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\dciman32.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\setupapi.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\cfgmgr32.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\oleaut32.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ole32.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\devobj.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\dwmapi.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\winmm.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\imm32.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msctf.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64
    voglv32.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\shell32.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\shlwapi.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\version.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\gdi32.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Unloaded 'C:\Windows\SysWOW64\gdi32.dll'
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\wintrust.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\crypt32.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msasn1.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64
    tmarta.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\Wldap32.dll'. Cannot find or open the PDB file.
    The thread 0xaf4 has exited with code 0 (0x0).
    The thread 0xc34 has exited with code 0 (0x0).
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\powrprof.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Unloaded 'C:\Windows\SysWOW64\powrprof.dll'
    The thread 0x23e8 has exited with code 0 (0x0).
    The thread 0x868 has exited with code 0 (0x0).
    'Desolation.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ole32.dll'. Cannot find or open the PDB file.
    'Desolation.exe' (Win32): Unloaded 'C:\Windows\SysWOW64\ole32.dll'
    The thread 0x20b0 has exited with code 0 (0x0).
    The thread 0x6cc has exited with code 0 (0x0).
    The program '[7688] Desolation.exe' has exited with code 0 (0x0).
    Any ideas ?

    • @mstreurman
      @mstreurman 10 ปีที่แล้ว +2

      yup, it means you haven't loaded the PDB's from the VS Server....

  • @TheUltimateDwarf
    @TheUltimateDwarf 10 ปีที่แล้ว +4

    Umm, yeah umm it umm umm you know umm

    • @sundhaug92
      @sundhaug92 10 ปีที่แล้ว +9

      His brain is buffering

    • @rickyoswald
      @rickyoswald 10 ปีที่แล้ว

      My um, sort of thoughs um exactly.

    • @The_Ballo
      @The_Ballo 9 ปีที่แล้ว +4

      sundhaug92 He needs to implement ARB_BINDLESS_THOUGHT

    • @TheMrKeksLp
      @TheMrKeksLp 8 ปีที่แล้ว +2

      +The Ball He shouldn't map his speech buffer with GL_MAP_UNSYCHRONIZED... stalls of death :D

    • @TheUltimateDwarf
      @TheUltimateDwarf 8 ปีที่แล้ว

      hahaha XD

  • @grillob3
    @grillob3 10 ปีที่แล้ว

    Too much talk! i wanna see this happening! If nvidia does not come up with something like mantle i will be buying amd cards next up grade! i got 89fps to 124 on bf4 on my second pc that has 2 7970 stock + phenom 970 @ 4.0 now as good as my main pc with 3 gtx 680 1300/ 7000 +3930 @ 4.7

  • @mstreurman
    @mstreurman 10 ปีที่แล้ว +4

    Okay, Please NEVER EVER put Mr. Everitt on stage again, um... um... um... um... I quit watching this otherwise very interesting video because um... um... um... um... I um... Started um,.... Irritating um... myself um... on um... his um... ums um... um... um...

    • @johnbrown9181
      @johnbrown9181 8 ปีที่แล้ว

      +Michel Streurman um... you know... um... um... um... but he.. um... has a... you know... teapot... um... t-shirt. um... I... uh... also... uh... stop, even though he, uh... doesn't say uh... uh... uh... doesn't say "uh..." or... uh... anything like that.