Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 33 reacties

Valve heeft de OpenGL-debugger Vogl opensource gemaakt. De debugger is in staat om te tracen in OpenGL 1.0 tot en met 3.3 en ondersteunt in de toekomst ook OpenGL 4. De debugger is voor Linux ontwikkeld, en AMD en Nvidia hebben al interesse getoond om bij te dragen.

De sourcecode van de debugger is vanaf nu te vinden op GitHub. De reden waarom Valve de software opensource heeft gemaakt, is dat 'de OpenGL-api simpelweg te ingewikkeld is en te snel verandert voor het kleine ontwikkelteam bij Valve om bij te houden'. Dat schrijft Rich Geldreich, ontwikkelaar van de debugger bij Valve, op zijn eigen blog. In vergelijking met bestaande debuggingtools als ApiTrace zou Vogl in staat zijn om gemakkelijker grote OpenGL-games te debuggen en in staat zijn tot restorable state snapshotting, wat debuggen vele malen sneller en gemakkelijker moet maken.

Geldreich van Valve heeft de debugger eerder dit jaar geïntroduceerd tijdens een presentatie op de Steam Dev Days. In de tweede heflt van 'Moving Your Games to OpenGL' praat Geldreich uitgebreid over de ontwikkeling en toepassing van Vogl en stelt hij dat hij 'teleurgesteld is in de bestaande debuggers voor OpenGL'. Door Vogl opensource te maken wil Valve het voor ontwikkelaars gemakkelijker maken om met OpenGL en Linux te werken. Source Engine 2 werkt namelijk volledig met OpenGL en SteamOS draait op Linux. Op dit moment zijn de tools om te debuggen voor DirectX beter dan die voor OpenGL, wat ontwikkeling met die api hindert.

De tweede helft van 'Moving Your Games to OpenGL', waarin Geldreich over Vogl praat
Moderatie-faq Wijzig weergave

Reacties (33)

@Katsumii en Tobisas, die zijn al in een eerder tweakers artikel voorbij gekomen :)

Gaaf om te zien dat ze zo hard aan de weg timmeren, en goed om te horen dat 'Source 2' al op de meest recente openGL zit, top.
Excuses, had het toen niet op tweakers gezien en zag het vandaag op een boel andere techsites langskomen. Had gekeken of het vandaag op tweakers stond, maar daarbij gemist dat het een stuk eerder was langsgekomen.
Geen probleem hoor ;) alleen ter info vermeld.

Dat is in ieder geval ook een mooie vooruitgang :D zullen ze een groot deel van de steam library meteen beschikbaar mee kunnen maken voor de steambox, alleen denk ik wel dat ze het als een soort trucje achter de hand willen gebruiken, kijkend naar deze debugger en andere presentaties willen ze volgens mij toch vooral de developers zo ver krijgen om zelf OpenGL te gaan ondersteunen.
"De debugger is in Linux geschreven", Vet goeie programmeertaal dat Limeks
Ik wist niet dat het er toe deed op welk platform een debugger geschreven was. Als je op Mac OS een OpenGL debugger schrijft is dat toch ook niet de moeite om te laten weten dat jou IDE toch echt wel op dat OS draaide :9
Nee, je leest het verkeerd. Ze zijn daadwerkelijk in Linux gaan zitten.
Ik hoorde dat de kernel-space een aantal vrij grote en comfortabele werkplekken heeft. :+
In de zelfde categorie valt "de op Linux gebaseerde OpenGL-debugger". Het is misschien wel mogelijk in theorie maar volgens mij word er bedoeld dat de OpenGL-debugger voor het Linux platform is geschreven.

Maar sowieso een mooie ontwikkeling voor de ontwikkelaard die hiermee werken natuurlijk.
"De debugger is in Linux geschreven", Vet goeie programmeertaal dat Limeks
_O- Het is zo'n goeie programmeertaal, dat het zijn eigen Operating System is geworden _O- :+

Maar even serieus ik moest er echt goed om lachen, dankjewel ervoor :D .
Ik heb wel het gevoel dat Valve dit niet alleen vrijgeeft aan de OOS omdat het complex en snel veranderlijke materie is. Het is een onderdeel van Linux te transformeren in een volwaardig gaming platform dat de stoomdoos wel op prijs gaat stellen. Nu de AMD drivers nog en de grootste bubbels in het tapijt zijn platgestampt.
begin dit jaar was er al een update voor steamOS die ondersteuning voor AMD GPU's toevoegde.
Ik denk dat hij meer de driverkwaliteit van AMD/ati bedoeld.
iemand enig idee welke distro hij gebruikt?
Een distro met KDE als desktop environment.
Aan de theme's te zien zou ik zeggen.
Dat het veel lijkt op de default Kubuntu http://www.kubuntu.org/. Maar kan van alles zijn.
Ik gebruik nu zelf als 1,5 jaar KDE als developers zijnde net zoals hij zegt ik wil niet meer terug naar windows.
Niet alleen een debugger ook een begin aan een laag die direct3d naar opengl vertaalt.
http://www.gamingonlinux....n-layer-onto-github.3248/
Die al super outdated is. Directx 10 en 11 hebben een flinke redesign gehad tegen over 9 en zijn ook sneller door betere multithreading support.
Goed bezig, Valve! Dit soort tools zijn een fundamentele verbetering voor Linux. Niet alleen voor (Valve) games, maar voor alles wat iets met 3D doet. Tegenwoordig is dat niet langer het exclusieve terrein van games en CAD-tekenaars maar zijn er tal van softwarepakketten die een zetje in de rug krijgen van de grafische kaart.
Ook wel slim om de debugger open source te stellen. Enerzijds hebben andere er ook wat aan (wat weer Linux development kan stimuleren) en anderzijds is het bijhouden voor Valve veel makkelijker om de tool bij te houden.
Hoei, als gamesprogrammeur ben ik hier erg blij mee. Op Windows is er trouwens het tegenwoordig ook gratis GDebugger, ook een erg fijn programma, tevens voor profiling e.d.
Software mag niet direct praten met de GPU (grafische processor) dus hebben we drivers. Deze drivers ondersteunen dan weer OpenGL, wat een laag is waarmee software wel kan praten.

OpenGL is een open standaard die ervoor zorgt dat de software de GPU kan gebruiken om graphics te renderen (veelal 3D graphics, maar 2D kan ook).

Een game engine vertelt OpenGL dus bijvoorbeeld om een driehoek te renderen op een bepaalde locatie in 3D ruimte, waarna OpenGL dit dus door de grafische kaart laat renderen. OpenGL zorgt er echter niet voor dat dit op het beeld verschijnt, daar is nog andere software voor (DirectX kan dit dan weer wel).

Ook kunnen moderne GPU's (circa 2000 en later) wat uitgebreider geprogrammeert worden met een zogeheten shader. Dit zijn programma's die op de GPU worden uitgevoerd om dit veel sneller te doen dan traditioneel op de CPU. Hierbij moet je denken aan real-time belichting bijvoorbeeld, maar tegenwoordig heel veel andere dingen.
OpenGL heeft met GLSL (GL Shader Language) ook daar een oplossing voor.

Om samen te vatten is OpenGL dus een abstractielaag die met de GPU praat, zodat programma's niet direct met de hardware hoeven te praten wat onveilig zou zijn en zou zorgen voor software die niet werkt op verschillende GPU's.

[Reactie gewijzigd door Wolfos op 13 maart 2014 16:10]

opengl is zover ik weet een set 'instructies' waarmee je een programma kan schrijven dat door de videokaart uitgevoert wordt. Elk gerenderde beeld word gemaakt door een enorm aantal complexe berekeningen die bijvoorbeeld uitrekenen welke positie een punt heeft als het via de virtuele camera op het scherm getoverd word, en welke kleur deze heeft (hiervoor ook berekeningen voor belichting).
OpenGL word alleen gebruikt om beelden te genereren, net als de concurrent van microsoft directX. Het belangrijkste verschil hiertussen is dat openGL op vrijwel alle platformen draait en directX alleen op windows systeemen, ook (direct-)xbox.
Toepassingen die de parralele rekenkracht van de GPU willen gebruiken voor andere toepassingen kunnen openCl of het verwante cuda systeem gebruiken, cuda draait alleen op videokaarten van nvidia.

de wikipedia van opengl is best duidelijk:
https://en.wikipedia.org/wiki/OpenGL

een paar leuke filmpjes over wat er in een gpu allemaal berekent wordt:
http://www.youtube.com/pl...uckrPkEUK5iMQrQyvj9Z6WCrm
Nog een verschil is dat DirectX ook dingen zoals input, audio en window management regelt. De graphics API van DirectX heet Direct3D, wat dus de tegenhanger van OpenGL is.

Een open equivalent van DirectX is eerder SDL (Simple Directmedia Layer), dat een crossplatform library is die ook input, audio en window management regelt, en waar je dan OpenGL als graphics API bij kan gebruiken.
SDL is echter grote bagger en de API is een verschrikking.

Het is beter om native drivers te schrijven voor input, audio, en windowing context - zo moeilijk is dat dan ook niet en je bent niet vastgebonden aan de SDL-idioterij die de schoonheid van je hele codebase om zeep helpt (en werkelijk, wat een schijt-API is het - zowel qua perfomance als code cleansiness).

[Reactie gewijzigd door Squarepusher op 14 maart 2014 15:27]

Google? Wikipedia?
Het is een abstractie laag net als DirectX, die er voor zorgt dat jou software alleen hoeft te weten hoe de abstractie laag werkt en niet de onderliggende hardware. Dat moeten de hardware bouwers dan in hun driver stoppen.
Als Direct3D, wat weer een onderdeel is van DirectX.
Basically een manier voor software om 3D graphics te kunnen produceren zonder dat de software voor ieder stuk video hardware aparte ondersteuning hoeft in te bouwen en dit voor ieder stuk software opnieuw hoeft te worden gedaan. Dat is -heel- erg kort door de bocht, maar om echt de werkelijkheid na te gaan dan krijg je een heel technisch verhaal waar eerst een les aan vooraf moet gaan om uit te leggen hoe een modern operating system werkt.

Je bent vast wel bekend met het fenomeen "graphics engine"; dat is dan weer een high level abstractie laag om OpenGL of Direct3D heen gebouwd. Waar je in OpenGL zult spreken van het tekenen ("renderen") van groepen van polygonen zul je in de context van een graphics engine dan bijvoorbeeld eerder praten over het tekenen van hele modellen.

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True