Varför väljer utvecklare DirectX?

Permalänk
Medlem
Skrivet av serverfel:

Hej!

Har en fråga.

Varför utvecklas spel i dx när opengl/vulkan finns? Är det för att spelen skall funka på xbox? Eller stödjer xbox opengl med? Borde den ju kunna göra? Doom finns väl på xbox...

Borde ju vara mycket smartare att använda en öppen standard. Eller vad är det jag har missat?

Ett ännu större mysterium är Apples Metal. Coolt namn men poänglöst.

Nä. Det är en standard man följer. Som att välja trosor eller kalsonger. Att skapa nya beräkningar för grafik skulle ruinera allihopa. Så man nyttjar program som är skapta för dx.
Man vill vara Microslut compatible.

Visa signatur

Homer Simpson: "Internet! Is that thing still around?"

Continuously updating

Permalänk
Medlem
Skrivet av GilbertG:

Vilket är snudd på dårskap. Det sätter verkligen köppar i hjulen för Vulkans potential och cementerar Apples obskyritet. Vulkan kunde bli Apples stora chans till att göra OS X till ett spel-OS att räkna med och därmed bredda Mac rätt rejält. Varför hatar de spel? Varför hatar de sig själva?

Det kan ju vara så enkelt som att deras produkter helt enkelt inte lämpar sig till tyngre spel och att de anser sig kunna implementera Metal på ett bättre sätt för de spel som faktiskt släpps till OSX. Märkligt dock att de valt bort Vulkan till iOS...

En annan tänkbar anledning är att de helt enkelt inte vill dela med sig av kod vilket känns typiskt Apple.

Skrivet av serverfel:

Wow... väldigt dyster bild av läget.... kanske ligger något i det, men jag tror ändå att många vill att Linux ska bli mer lättillgängligt.

Som jag skrev i mitt tidigare inlägg så är det största problemet att det finns alldeles för många viljor och åsikter. Linux är inte så värst 'nybörjarvänligt' som vi varit inne på tidigare (en hel del hårdvarustöd saknas, mycket ska skötas via CLI etc) och även om SteamOS är en viktig komponent för att öka intresset för Linux som spelplattform kommer det inte att leda någonvart förrän det skapas en mer konkret standard och att antalet 'officiella' distros minskar drastiskt.

Det är lite av ett moment 22 - ingen vill utveckla mjukvara för att användarbasen saknas och användarbasen saknas just p.g.a. avsaknaden av mjukvara...

Visa signatur

NZXT H5 | Asus Strix B550-F | 5800X3D | NZXT Kraken Elite 240 | 32GB Kingston Fury 3600MHz CL18 | Corsair RM850x Shift | Kingston Fury 2TB NVMe | 4070 Super FE | Dell G2724D 165Hz

Permalänk
Medlem

@ågren
För all del. Lär väl bli mediuminställningar som bäst, särskilt på retinaskärmar. Och så har de full kontroll på alla uppdateringar, dokumentation och är redo för nya modeller.

Skrev en lång harang innan jag fattade att du helt enkelt hade rätt. Postar ändå för den nyfikne:

Det är säkerligen så resonemanget går, men det där med kontroll har blivit ett mantra med allt mindre substans hos Apple. I det här fallet får de se till att anpassa sina ramverk åtminstone lite till vad som finns "där ute", för alternativet är att det inte blir några applikationer (spel) alls.

Det är uppenbart att Metal är främst tänkt för iOS, där de fortfarande har en stor marknadsandel och tjänar enorma pengar, medan delen till OS X bara är för kompatibilitet och sömlöshet mellan systemen (förrsten smått otroligt att de såhär nästan 10 år senare fortfarande lyckas hålla så höga marginaler)
Metal är säkerligen det som går att hämta mest kraft ur iOS-prylar

Att spel inte skulle lämpa sig på Mac känns som strunt, många vill väl i alla fall ha möjligheten även om det inte blir något hardcore. Finns ju rätt många spel som inte kräver särskilt mycket, som indie och MOBA, och vissa av dem är riktigt stora.

Jag tror att om porten till spel hade öppnats på Mac OS X så hade OS X nog rört sig i en lite bredare riktning, för då hade det funnits ekonomiska incitament för det. Mac lär förbli Mac, men de senaste åren har Apple sågat av gren efter gren på en redan väldigt välansad plattform.

/bitter Mac-användare

Dold text
Visa signatur

Räkna ut hur kraftigt nätaggregat du behöver på OuterVision Power Supply Calculator. 500W räcker för de allra flesta vanliga system. Seasonic är bäst. ;) – Elektrostatisk urladdning är ett verkligt problem.
"People who are serious about software should make their own hardware" – Alan Kay
Bojkotta maffian

Permalänk
Inaktiv

DirectX, för att det är lättare att porta från xbox one.

Permalänk
Medlem

Konsolerna har egna API:er både högnivå och lågnivå, X1 kör en egen version av DirectX exempelvis. Shaders är inga större problem att portera till både PS4 och X1, från D3D/HLSL exempelvis.

Avancerade spelmotorer stödjer i regel redan flera olika rendering-backends och abstraherar i någon mån grafikapierna för spelutvecklarna. Många motorer har t.ex. egna shading-språk, då är det främst i motorn som jobbet att köra på flera olika plattformar behövs göras. Spelutvecklare väljer eller har en motor in-house som stödjer D3D och då kör dem på det exempelvis. Relativt få utvecklare gör sina egna motorer, och då kommer aldrig saker som grafik-apier upp riktigt utan de väljer efter verktyg osv. Har du bara Windows som plattform så har du ju ingen anledning att tänka på portabilitet heller, och är den egenutvecklad behöver du ju bara lägga ner tid på plattformen du tänker köra oavsett vilket API du valt. Spelskaparna jobbar mot motorn och med motorns verktyg och externa verktyg kompatibla med motorn, de skriver spelkod för motorn osv, jobbar med modeller och texturer i de former som motorn tillåter eller stödjer. Det tekniska valet görs inte riktigt på så låg nivå som vilka grafik-apier som används i första hand.

id Tech 6 har fortfarande fokus på OpenGL, men har en riktigt bra backend för Vulkan. Utöver det så stödjer den APIerna på Xbox One och Playstation 4, vilket är minst fyra olika renderingsvägar. Andra motor har Direct3D som fokus, men stödjer APIerna på konsolerna utöver det. Eftersom de stödjer så många plattformar är shaders i Doom förmodligen skrivna i ett internt format som konverteras till 4 olika plattformar med 4 olika typer av APIer som inte är direkt relaterade till varandra. Att portera allt det "för hand" (med hjälp av verktyg, men inte något som är inbyggt i motorn) skulle inte fungera utan förseningar på flera plattformar får man anta.

Valve har jobbat för att Source-motorn ska ha bättre OpenGL-stöd samt på senare tid Vulkan för att de ska kunna stödja OS X och GNU/Linux bättre. Under en lång tid var den väldigt fokuserad på D3D. Vulkan är något de kan använda oavsett plattform och för att ta steget till lågnivå-API. På Windows har du Vulkanstöd från Windows 7 och blir inte begränsad till Windows 10-användarna eller helt låst till vad Microsoft gör i framtiden.

Osv osv.

Flera moderna motorer stödjer faktiskt både D3D12 och Vulkan. Cryteks CryEngine V ryktas få Vulkan-stöd senare och Epics Unreal Engine 4 har annonserat både Vulkan och DX12-stöd, UE4 kör främst Vulkan för mobiler just nu, alltså Android men kan få bredare stöd längre fram. CryEngine har tagit steget till DX12 idag, men inte till Vulkan än. Utöver det så stödjer CryEngine OpenGL sedan något år tillbaka, för att stödja Linux. Vulkan finns inte på konsoler, men det finns på mobiler och det finns MoltenVK för att köra Vulkan ovanpå Metal på iOS och OS X, samt att det finns på Linux och därav SteamOS då. Även de som är relativt "Windows-centric" kan välja Vulkan för att det upplevs som flexiblare och friare för utvecklarna, med mer inflytande (för Khronos-medlemmar) på API:ets framtid. Det är lite för tidigt för att se hur alla nya grejer kommer användas ännu, ge det lite tid.

SteamOS är inte riktigt en kommersiell produkt, så där ska man inte hoppas för mycket. Vad det gäller GNU/Linux finns det ingen som säljer en distribution med support, och garanterar att hårdvaran fungerar och gör allt för att det ska fungera för konsumenter. Det säljs till bara servrar i dag och i övrigt så är det utan någon garanti på att det fungerar och ingen som tar ansvar när det inte fungerar eller när något rasar p.g.a. förändringar i mjukvaran. Det är inte som med Android där vi har en hårdvaruleverantör som måste se till att ha ett operativsystem med fungerande drivrutiner och hela köret, där allt bara måste fungera utan att användaren behöver använda fulhack, som ser till att uppdateringar fungerar. Vad det gäller desktop och Linux så går det inte att betala någon för att ta ansvar för att det ska fungera, det går inte för ingen levererar något sådant, därför är det ingen konsumentprodukt och produkterna som ändå finns (kommer förinstallerade) är riktade mot utvecklare. Det är det communitydrivna man har att vända sig till där. Valve har aldrig varit på gång med någon kommersiell distribution av GNU/Linux för konsumenter. Du kan inte köpa en hög med komponenter och förvänta dig support från Valve eller komponenttillverkarna. Det finns ingen Steam Machine från Valve där de garanterar att allt lirar och kan jobba mot en enskild maskin. Det är ett hobbyprojekt i princip och Vulkan hos dem t.ex. kommer främst riktas mot Windows-användarna såklart. Allt det gör ju inte Vulkan sämre.

Permalänk
Medlem

@Petterk:

Väldigt intressant inlägg. Tack.
Gav mig lite bättre inblick.

Visa signatur

Min musik: https://www.youtube.com/channel/UCZKidNeIKsz8LZMO3VRcBdQ

Ryzen 3900x. Skärm: AOC cu34g2x/bk 144hz 34" ultrawide. RTX 2080ti

Laptop: MSI GT80 Titan Sli

Permalänk
Inaktiv
Skrivet av GilbertG:

Vilket är snudd på dårskap. Det sätter verkligen köppar i hjulen för Vulkans potential och cementerar Apples obskyritet. Vulkan kunde bli Apples stora chans till att göra OS X till ett spel-OS att räkna med och därmed bredda Mac rätt rejält. Varför hatar de spel? Varför hatar de sig själva?

Fast Android är inte så mycket ett Linux-OS utan snarare ett Google-OS, precis som att PS3- och PS4-OS:et snarare är ett PS-OS än ett FreeBSD-OS, precis som att bankautomater är just bankomater snarare än Windows-maskiner. Poängen är att tekniken de bygger på inte alls har något med slutprodukten att göra. "Produkten Lunix" är något man installerar på en dator, vilken som helst. Android, Playstation och bankomater är mer eller mindre slutna system.

Jag ser två stora hinder för Vulkans utveckling. Dels Apples avbräck, vilket gör att Vulkans stora behållning, att det ska fungera på alla skrivbords-OS, omintetgörs. Men med lite tur kan MoltenVK släta över det.
Det andra är att någon kommersiell aktör måste driva på spel på Linux på bred front. Valve verkade kunna bli den aktören, men de sitter med tummen i röven och verkar inte ha några ambitioner om någonting alls längre.

Linux är ju bara kärnan, det är ju allt runt om som bygger själva OS-et förstås.

Vulkan för OS X ska väl fortfarande vara möjlig men att jobbet sköts av någon annan än just Apple? Tycker mig ha läst det någonstans iallafall. Jobbet hamnar troligen hos grafiktillverkarna eller något. Men ja, riktigt synd att Apple inte ville vara delaktig och det är svårt att se någon direkt vettig motivering. Metal kan de gott köra på iPhone och iPad och allt vad det är.

Samtidigt är väl det sorgliga faktumet att Apple verkar strunta i desktop-användarna. Nedläggningen av Xserve tycker jag var trist och ett tecken på att företaget håller på och tappa stämpeln som ett seriöst märke för produktiva och professionella användare. :/

Skrivet av serverfel:

Wow... väldigt dyster bild av läget.... kanske ligger något i det, men jag tror ändå att många vill att Linux ska bli mer lättillgängligt.

Jo... jag har ingen positiv bild tyvärr. Jag hoppas jag har fel och något riktigt fantastiskt händer snart men jag har varit med lite för länge och hoppats för mycket. Ubuntu-släppet 2004 var verkligen en frisk vind och känslan av att Linux på skrivbordet verkligen kunde ta fart rejält nästa år.

Största misstaget med en linux-satsning i mitt tycke är just att säga att den använder Linux. Det verkar få många oroade. Bättre att avleda frågor kring vad OS'et baseras på med annat istället.

Jag har faktiskt en sak jag fantiserar om ibland, speciellt sedan VD-bytet och Microsofts snällare syn på Linux. Ett Windows-OS, inkl DirectX som körs med en Linux-kernel i grunden. För användaren ser det ut som ett vanligt Windows-OS men under skalet så är det mer eller mindre ren Linux. Vi har ju faktiskt Linux i Windows idag, steget vore nog inte alltför stort egentligen: http://www.theverge.com/2016/3/30/11331014/microsoft-windows-...

Frågan är ju varför Microsoft egentligen skulle vilja göra något sådant men de har något sådant för enterprise redan: http://www.geek.com/microsoft/microsoft-built-its-own-linux-b...
Med tanke på att Microsoft verkar stöpa om vad Windows som produktnamn är och innebär så vore det nog inte helt omöjligt att vi ser någon slags fusion eller hybrid framöver.

Permalänk
Medlem

@anon5930

Canonicals misstag är att kalla system för certifierade när de i praktiken inte erbjuder någon support och certifierade system inte ens fungerar felfritt. När en OEM-tillverkare säljer en maskin (skrivbord/desktop) med t.ex. Ubuntu så har du ingen support på hårdvaran/drivrutiner från varken tillverkaren eller Canonical. Läs villkoren på sånt här! När något rasar i en uppdatering har du ingenstans att vända dig. Du har ingen du kan klaga på som kommer se till att drivrutiner fixas och pushas ut till dig när något gått fel när de uppdaterat distron. Som konsument får du nöja dig med fulhack från communityt och vara utan support. På serversidan garanterar däremot tillverkaren att det fungerar! Som Canonical gör för desktops idag så säger de att system är certifierade, men de kanske inte ens bootar med den allmänt tillgängliga Ubuntu-avbilden du laddar ner från dem, utan bara med en speciell avbild som kommer när man köper datorerna med Ubuntu förinstallerade och inte är tillgänglig annars. Det finns som konsument/desktop-användare alltså ingen anledning att ge dem pengar och på serversidan finns det två andra stora leverantörer.

För desktops finns det ingen leverantör att vända sig till vare sig som konsument och slutkund eller som tillverkare. Enda en tillverkare skulle kunna göra där är att lansera en egen distribution och anställa ett gäng folk som kan skriva drivrutiner och hacka kernel. Fast det har de ingen anledning till om de kan sälja hårdvara kompatibel med Linux för server utan all den problematik och köra klienter på Windows. De får ju ändå prylar sålda.

Permalänk
Datavetare

Som redan nämnts i tråden är en huvudanledning att DirectX blivit dominerade just utvecklingsverktyg. Visual Studio är branschstandard för spelutveckling och kanske inte så konstigt att stödet för DX är bättre out-of-the-box då Microsoft står bakom både DX och VS.

Vidare är många plugins till Maya och Autodesk 3ds Max (tidigare 3D Studio) gjorde för att underlätta användning ihop med HLSL. En huvudanledning att det ens var möjligt att med små resurser lägga till Mantle stöd i ett par titlar var att Mantle använde HLSL (till skillnad från Vulkan som kör med SPIR-V).

Som jag förstått det är det mer jobb för spelutvecklare att konvertera mellan olika shader-språk än att implementera back-ends för t.ex. DX och OpenGL. Nu tror jag att SPIR-V explicit är designat så att det ska vara enkelt att gå mellan HLSL och SPIR-V, finns flera projekt där man försöker automatisera denna process. Tyvärr känns det ändå som att huvudspåret är HLSL, de flesta diskussioner som t.ex. denna handlar om hur man kan använda HLSL för Vulkan. Det i sin tur faller säkert tillbaka på att DX har bättre stöd i många program som spelprogrammerare ofta använder.

Angående diskussionen kring Metal. Tycker det är trist att Apple helt verkar lämnat arbetet kring OpenGL och Vulkan, men till deras försvar måste man ändå framhålla att de var först att lansera ett "low-level" API. Man var också i stark behov av något nytt, OpenGL prestanda under OSX har alltid varit funktionellt väldigt komplett och stabilt men prestanda har aldrig varit bra. Av de få spel som finns på OSX kunde samma spel på samma dator ofta prestera 50-100 % bättre under Windows än under OSX

Tvivlar också starkt på att speciellt många kommer använda tekniker likt MoltenVK, för mobiler är iOS normalt det OS man först utvecklar för och sedan portas spelet till andra OS. Nu är Metal, DX12 och Vulkan i grunden rätt lika men på iOS lär spelen bli skrivna direkt mot Metal för att sedan konverteras till Vulkan för Android.

För OSX (eller macOS som det nu heter) kan eventuellt MoltenVK bli lite mer relevant. Tvivlar stark på att det kommer Vulkan stöd direkt för macOS då det inte är grafikkretsleverantörerna som står för drivarna som på Windows, utan drivers utvecklar och distribueras av Apple själva.

Linux på skrivbordet lär tyvärr aldrig bli speciellt stort, finns en rad orsaker till det. Dels är Windows sedan WinXP "tillräckligt bra" för det en förkrossande majoritet gör på skrivbordet, de som sedan verkligen vill ha UNIX på skrivbordet har till största del gått till OSX/macOS. För oss som utvecklar mot och på Linux har virtualisering slagit den sista spiken i kistan, måste ha Linux i mitt jobb men idag fungerar det utmärkt att köra t.ex. virtualiserad Ubuntu-server under Windows eller OSX. Enda man måste ha "riktig" HW till är prestandamätningar och för de tillämpningar Linux typiskt används i är den HW väldigt sällan något som liknar en skrivbords PC.

Idag finns Vulkan stöd från AMD, Nvidia och Intel under Linux. Prestandamässigt är tyvärr både AMD och Nvidia ett skämt med Vulkan under Linux...

Samma prestanda med 970 som 980 Ti... och i 4k får man bättre prestanda med 780 Ti under OpenGL än med Fury X under Vulkan för tillfället.

Frågan är om spelmarknaden ens är vettiga jaga för Linux folket. Linux används trots allt på långt fler system än Windows, det är helt dominerade i "molnet", för inbyggda-system, för "sakernas internet" och för en rad andra områden. Det kanske inte kan vara allt för alla och just skrivbordet är ett område där Windows och macOS redan är fullt tillräckligt bra så det finns liksom inget sätt för Linux att slå sig in på den marknaden.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem

@Yoshman

Drivrutinerna står Intel, AMD och Nvidia för. Nvidia distribuerar t.o.m. en variant av dessa själva. Den kontroll över de integrerade Apple har är inte samma sak som att de skriver drivrutinerna, sen är det Apple som har kontroll över ramverket för OpenGL och lite annat. Ungefär som vi har drivrutiner som använder Mesa på GNU/Linux. Core-profilen för OpenGL blir alltså det Apple implementerat, men det går fint för tillverkarna att lägga in egna extensions även där. Det är inget som hindrat Nvidia från att implementera CUDA, men givetvis är det inte riktigt lika enkelt att implementera Vulkan och man vill ju inte ha tre olika sätt/SDK att köra Vulkan för att vi har tre olika grafikkretstillverkare. De är säkert ganska upptagna med att jobba mot Metal också.

Vi får väl se om exempelvis Valve kör MoltenVK-spåret eller själv utvecklar något motsvarande. En uppdatering av Apples maskiner kan göra gaming där smått intressant igen. Om de får några intressanta GPUer och fortsätter sälja maskiner iaf.

Behövs nog en "killer-app" på den professionella sidan för att Apple ska börja arbeta med Vulkan på macOS. SPIR-V kan ju för övrigt vara en anledning att jobba med Vulkan på macOS då det är samma format/front-end som används för OpenCL 2.1. Fast det lär väl bli att alla får jobba med Metal eller jobba med verktyg som översätter till Metal. AMD kanske bör göra en Nvidia här och t.ex. skeppa egna drivare med stöd för senare OpenCL osv. Hur som har ju Apples egna program som använder OpenCL inte gått över till Metal än. Det tar lite tid innan vi ser hur allt landar.

Permalänk
Datavetare

@Petterk: hur mycket Apple gör av drivarna verkar var något som det tvistas friskt om på internet. Rent tekniskt kan AMD, Nvidia och Intel erbjuda egna OSX-drivare men i praktiken är det bara Nvidia som gör det och då enbart för att kunna erbjuda CUDA-stöd (som saknas i Apples Nvidia drivare).

Något som Vulkan stöd skulle också kräva nya drivers och allt som kräver separata drivare för något där Apple redan levererar drivare kommer aldrig bli något än en nischprodukt då många kör OSX/macOS för att få något som "just works". Att fipplar med separata drivare passar inte in där.

Apple gör rimligen mer än bara paketerar drivarna då alla tre tillverkarna stödjer nyare OpenGL standarder under Windows än vad OSX drivarna som Apple skeppar gör. Samma sak gäller OpenCL (som verkar vara en annan sak som Apple helt verkar ha tappat intresse för, trots att man var den som drog igång det hela, även här verkar Metal vara framtiden för dem).

Men man behöver inte gräva speciellt mycket för att se att Apple har bredare horisont för Metal än bara ett alternativ till DX12/Vulkan: OpenGL/OpenCL har aldrig fungerat bra ihop med Grand Central Dispatch (GCD). Sedan är OpenGL/OpenCL/Vulkan alla C APIer medan Apple främst använder ObjC och numera Swift som primära språk.

Metal är ett ObjC API (vilket gör Swift bindings trivialt) som fungerar bra ihop med GCD. Så verkar främst som Apple hoppas att kunna köra sitt eget race för att få saker att hänga ihop bättre på deras OS.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem

@Yoshman

Vad Apple gör av stacken finns faktiskt beskrivit i deras egna dokumentation även om det inte är någon djupdykning. Om vi tänker på Linux så används t.ex. libdrm_amdgpu av både öppna Mesa-drivern och av den stängda AMDGPU-Pro drivern, samt samma DRM i kerneln. Även Mesa har kod mot specifika drivrutiner, men det är ju Mesas front-end som styr vilka funktioner/API som är implementerade i den slutgiltiga libGL.so när du skriver en drivrutin. Motsvarande delar på macOS är säkert skrivna av Intel/AMD/Nvidia. Plus att de beskriver "backend" i deras OpenGL-implementation som en hårdvaruspecifik plug-in. Nvidias drivrutiner har fler optimeringar än CUDA, och t.ex. har de använt drivrutinen för att stödja eftermarknadskort. Nvidias drivrutin de distribuerar själv använder fortfarande Apples ramverk för OpenGL, men kan stoppa in optimeringar i deras del av stacken. Den är ibland därför mycket snabbare än varianten Apple skeppar. Här kanske grafikkortstillverkarna bör be Apple om att ta över utvecklingen av ramverket, så de kan ersätta den med något bättre.

FCPX kör fortfarande OpenCL t.ex. De får nog själva visa vad man kan göra innan resten följer efter. Det går dessutom bra att köra C++ med OpenCL 2.1/2.2 och då är det inte bara bindings/wrapper längre. C++ är långt mer utbrett bland de som skriver gpgpu-kod än ObjC. Även bland de som skriver spelmotorer för den delen.

MacOS används till stor del för nischprodukter, vilket är varför Nvidia ens har stöd för CUDA. Det används i en del proffsprodukter som förut skulle rullat på specialbyggda Irix eller Linux-maskiner. I många fall programsviter som inte tagit steget att köra på Windows. Att installera OS X/macOS och en drivrutin är långt enklare än att köpa speciella workstations med speciella operativsystem. Vad det gäller lite bredare användare som köper en Mac och installerar program från "Mac App Store" så har du ju som sagt inte Metal-stöd i FCPX/Motion/Compressor än. Adobe är också kvar på OpenCL/CUDA såklart. Vill de ha kvar en del av workstationmarknaden så har de lite att göra. Apple är dock upptagna med att vara återförsäljare och har ju över 60 000 anställda som jobbar som butikspersonal/i butikerna. Man får ge det lite tid som sagt, det visar sig vad de kommer göra och hur allt kommer användas. Förhoppningsvis är mjukvara i de flesta fallen högre prio än armband.

Edit: Av att döma från jobbannonser så skriver Apple själva bara drivrutiner (vet inte om de baseras på PowerVRs drivrutiner) för iOS, och för macOS så handlar det snarare om infrastrukturen som behövs för drivrutinerna och ramverken ovanpå och att de jobbar med Intel/AMD/Nvidia. Alltså man ska nog tänka mer åt Microsofts håll med WDDM och D3D när det kommer till vem som gör vad. Apple har inte obegränsat med utvecklare så jag gissar nog på att de flesta är upptagna med Metal och Apples egna SoCs just nu. Frågan är om de bör lämna över en del av denna mjukvaru-stack till Intel/AMD/Nvidia. Vill de verkligen implementera Vulkan och distribuera drivrutiner för OS X kan de väl göra det, det finns ju inget tidigare Vulkan-ramverk i vägen iaf. Att runda Apples OpenGL-implementation kan vara knepigare. De bör för övrigt kunna använda samma LLVM till både OpenCL och Metal, så man kan tycka att de ska kunna hålla drivrutinerna uppdaterade.

Permalänk
Datavetare

@Petterk: antag att Apple i princip inte gör något allt själva av drivrutinen, är några saker som är lite svår att begripa

  • hur kommer det sig att Nvidias egna OSX drivare presterar väldigt nära Windows-motsvarigheten, vilket är väsentligt mycket bättre än vad OSX inbyggda drivare presterar. Man fick t.ex. ~80 % bättre FPS i Tomb Raider (2013) länk (vilket vid tiden validerades av andra och stämmer också väl med de 50-100 % bättre prestanda under Windows jag sett på de två MBP jag haft med Nvidia GPU)

  • AMD, Intel och Nvidia har alla stöd för OpenGL 4.5 sedan ett par generationer tillbaka under Windows. Om nu samma kod används under OSX, varför är man där kvar på OpenGL 4.1, en revision från 2010...

  • Metal kräver direkt stöd i drivaren, vem utvecklar det stödet då det är helt specifikt för Apple?

Lyfter man sedan blicken mot ursprungsfrågan i denna tråd: anta macOS får officiellt Vulkan stöd från Apple, hur ändrar det något i det stora hela då spel fortfarande främst utvecklas i Visual Studio, VS lär fortsätta ha bättre stöd för DX än andra tekniker (i alla fall out-of-the-box) då VS och DX båda kommer från MS.

Kan överhuvudtaget macOS bli ett relevant spel OS då det bara finns på Apples datorer, sett till volym har en förkrossande majoritet av dessa datorer endast en iGPU från Intel och det verkar överhuvudtaget inte vara ett problem för de som köper Mac. Har själv inga problem att lägga runt 20 tkr på en rMBP, men skulle aldrig lägga en krona extra för att få en dGPU då det försämrar batteritid, formfaktorn är extremt olämplig för en dGPU som pumpar ut 40-60 W extra etc.

Linux på skrivbordet har ett liknande problem. Vill man köra Linux på skrivbordet fungerar Intels iGPUer överlägset bäst, framförallt om det handlar om en laptop (Optimus är djävulens påfund under Linux). Följer man mail-listorna för kernel-utveckling i Linux ser man väldigt många som ger samma råd: för bästa desktop-upplevelse under Linux ska man hålla sig till Intels GPUer, Linux-konsulterna vi har på jobbet (som kör Linux på laptops) är av samma åsikt. Så kanske inte bara en fråga om marknadsstorlek att de flesta titlar på Steam som fungerar på Linux typiskt är grafisk lite enklare, det är nog ungefär detta de flesta Linux-användare kan köra på sina Intel iGPU utrustade maskiner...

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem
Skrivet av anon5930:

Linux är ju bara kärnan, det är ju allt runt om som bygger själva OS-et förstås.

Vulkan för OS X ska väl fortfarande vara möjlig men att jobbet sköts av någon annan än just Apple? Tycker mig ha läst det någonstans iallafall. Jobbet hamnar troligen hos grafiktillverkarna eller något. Men ja, riktigt synd att Apple inte ville vara delaktig och det är svårt att se någon direkt vettig motivering. Metal kan de gott köra på iPhone och iPad och allt vad det är.

Samtidigt är väl det sorgliga faktumet att Apple verkar strunta i desktop-användarna. Nedläggningen av Xserve tycker jag var trist och ett tecken på att företaget håller på och tappa stämpeln som ett seriöst märke för produktiva och professionella användare. :/

Jo... jag har ingen positiv bild tyvärr. Jag hoppas jag har fel och något riktigt fantastiskt händer snart men jag har varit med lite för länge och hoppats för mycket. Ubuntu-släppet 2004 var verkligen en frisk vind och känslan av att Linux på skrivbordet verkligen kunde ta fart rejält nästa år.

Största misstaget med en linux-satsning i mitt tycke är just att säga att den använder Linux. Det verkar få många oroade. Bättre att avleda frågor kring vad OS'et baseras på med annat istället.

Jag har faktiskt en sak jag fantiserar om ibland, speciellt sedan VD-bytet och Microsofts snällare syn på Linux. Ett Windows-OS, inkl DirectX som körs med en Linux-kernel i grunden. För användaren ser det ut som ett vanligt Windows-OS men under skalet så är det mer eller mindre ren Linux. Vi har ju faktiskt Linux i Windows idag, steget vore nog inte alltför stort egentligen: http://www.theverge.com/2016/3/30/11331014/microsoft-windows-...

Frågan är ju varför Microsoft egentligen skulle vilja göra något sådant men de har något sådant för enterprise redan: http://www.geek.com/microsoft/microsoft-built-its-own-linux-b...
Med tanke på att Microsoft verkar stöpa om vad Windows som produktnamn är och innebär så vore det nog inte helt omöjligt att vi ser någon slags fusion eller hybrid framöver.

Jo, det finns ju MoltenVK som nämnts, men det hade ju varit bättre om Apple varit med på båten.

Apple har i princip helt lagt av med all professionalism, de har blivit som Nintendo som enbart säljer ganska nischade konsumentprodukter. Mac behandlas mest som stationära (och dyra, förstås) Iphonetillbehör. Vilket är ekonomiskt helt logiskt ändå, för de har aldrig sålt så många Macar som nu, och det är framför allt nyfikna Iphoneägare som driver det. Men det känns inte som en hållbar strategi, för när plattformen blir helt nerdummad och alla feta skrivbordsapplikationer är borta och bara glorifierade Iphoneappar återstår lär nyfikenheten försvinna. Det är så himla trist.

Intressant tanke att Microsoft kanske tar in delar av Linux i Windows. Kan mycket väl bli så, men de lär ju göra det med strategin https://en.wikipedia.org/wiki/Embrace,_extend_and_extinguish

Visa signatur

Räkna ut hur kraftigt nätaggregat du behöver på OuterVision Power Supply Calculator. 500W räcker för de allra flesta vanliga system. Seasonic är bäst. ;) – Elektrostatisk urladdning är ett verkligt problem.
"People who are serious about software should make their own hardware" – Alan Kay
Bojkotta maffian

Permalänk
Medlem
Skrivet av Yoshman:

@Petterk: antag att Apple i princip inte gör något allt själva av drivrutinen, är några saker som är lite svår att begripa

  • hur kommer det sig att Nvidias egna OSX drivare presterar väldigt nära Windows-motsvarigheten, vilket är väsentligt mycket bättre än vad OSX inbyggda drivare presterar. Man fick t.ex. ~80 % bättre FPS i Tomb Raider (2013) länk (vilket vid tiden validerades av andra och stämmer också väl med de 50-100 % bättre prestanda under Windows jag sett på de två MBP jag haft med Nvidia GPU)

  • AMD, Intel och Nvidia har alla stöd för OpenGL 4.5 sedan ett par generationer tillbaka under Windows. Om nu samma kod används under OSX, varför är man där kvar på OpenGL 4.1, en revision från 2010...

  • Metal kräver direkt stöd i drivaren, vem utvecklar det stödet då det är helt specifikt för Apple?

Lyfter man sedan blicken mot ursprungsfrågan i denna tråd: anta macOS får officiellt Vulkan stöd från Apple, hur ändrar det något i det stora hela då spel fortfarande främst utvecklas i Visual Studio, VS lär fortsätta ha bättre stöd för DX än andra tekniker (i alla fall out-of-the-box) då VS och DX båda kommer från MS.

Kan överhuvudtaget macOS bli ett relevant spel OS då det bara finns på Apples datorer, sett till volym har en förkrossande majoritet av dessa datorer endast en iGPU från Intel och det verkar överhuvudtaget inte vara ett problem för de som köper Mac. Har själv inga problem att lägga runt 20 tkr på en rMBP, men skulle aldrig lägga en krona extra för att få en dGPU då det försämrar batteritid, formfaktorn är extremt olämplig för en dGPU som pumpar ut 40-60 W extra etc.

Linux på skrivbordet har ett liknande problem. Vill man köra Linux på skrivbordet fungerar Intels iGPUer överlägset bäst, framförallt om det handlar om en laptop (Optimus är djävulens påfund under Linux). Följer man mail-listorna för kernel-utveckling i Linux ser man väldigt många som ger samma råd: för bästa desktop-upplevelse under Linux ska man hålla sig till Intels GPUer, Linux-konsulterna vi har på jobbet (som kör Linux på laptops) är av samma åsikt. Så kanske inte bara en fråga om marknadsstorlek att de flesta titlar på Steam som fungerar på Linux typiskt är grafisk lite enklare, det är nog ungefär detta de flesta Linux-användare kan köra på sina Intel iGPU utrustade maskiner...

Fast de använder ju som sagt inte samma OpenGL-bibliotek som på Windows utan måste köra med Apples OpenGL-implementation som drivrutinen sen byggs ihop med, ungefär som Intels drivrutin kör Mesa under Linux och en egen OpenGL-implementation på Windows. Vet inte varför du försöker feltolka mig där. Säger explicit att de inte kör samma OpenGL-implementation som på Windows, Windows har inte ens något OpenGL-ramverk att bygga ihop med drivrutiner så som det har med DX. Det går ändå att dela kod mellan dessa olika drivrutiner, särskilt på lägre nivå. Mesa/drivrutiner byggda för Mesa har traditionellt legat efter Windows och proprietära drivrutiner när det gäller OGL/OCL av samma anledning.

Du kan gräva i grafikdrivrutinsfilerna för OS X för att se hur en del av det hela hänger ihop.

Om Vulkan är relevant eller inte att i huvudsak utveckla för beror snarare på verktygen från spelmotorutvecklarna/teamet eller vilka externa verktyg de tagit in. Att det i huvudsak utvecklas på VS är inte så intressant om motorn ändå är portabel och stödjer flera plattformar innan spelutvecklarna som ska skapa innehåll ens kommer över miljön. De verktyg som behöver rulla på OS X eller Linux kommer göra det.

Vad det gäller Metal så skriver Intel, AMD och Nvidia en LLVM backend för det. Apple står för front-end. Apple sitter såklart inte och optimerar för specifika GPU ISAs. Det går också att utröna från jobbannonser. Ex https://www.linkedin.com/jobs/view/162497456

Vulkan är ju inte bara för spel, säg att du har en proffs-applikation som nyttjar Vulkan som du jobbar med för att få ihop ditt levebröd. Då är det inga problem att välja en MBP som är några tusenlappar dyrare för att få ett ordentligt accelererat program. Hemanvändare som spelar på Mac sitter snarare på en iMac 27. Säg att iMac 27 uppdateras med Polaris 10 eller GP106, det skulle ge ett lyft från t.ex. Pitcairn.

Vad det gäller bärbara så har du samma problem på Windows, varför skulle du ha en GPU som bara tar batteritid? Eventuellt strul med Optimus osv där med. Nej, Intel-grafik är bäst för de flesta där med. De flesta arbetsstationer som kör Windows lär t.o.m. vara bärbara som bara har två kärnor och hyperthreading, och är således klenare än en MBP15. Tekniker, utvecklare och ingenjörer klarar sig ändå på dem för majoriteten av sysslor.

Med SteamOS och Steams bibliotek kommer du inte långt med Intels grafik, beta-versionen där har drivrutiner för Polaris och Pascal. Många kör relativt kraftfulla gpuer där. Problemet är ju bara att själva modellen för SteamOS är trasig. Det måste till mer än ett communitybygge som kanske fungerar med ens hårdvara för att det ska vara attraktivt. T.o.m. Microsoft har ACPI-problem på deras Windows 10-only datorer de själva bygger. Hur tror du det blir om man blandar in retail-hårdvara och GNU/Linux-distron utan att någon erbjuder support? Intel-grafiken är mer lämplig för in-home streaming där.

Permalänk
Medlem
Skrivet av GilbertG:

Jo, det finns ju MoltenVK som nämnts, men det hade ju varit bättre om Apple varit med på båten.

Apple har i princip helt lagt av med all professionalism, de har blivit som Nintendo som enbart säljer ganska nischade konsumentprodukter. Mac behandlas mest som stationära (och dyra, förstås) Iphonetillbehör. Vilket är ekonomiskt helt logiskt ändå, för de har aldrig sålt så många Macar som nu, och det är framför allt nyfikna Iphoneägare som driver det. Men det känns inte som en hållbar strategi, för när plattformen blir helt nerdummad och alla feta skrivbordsapplikationer är borta och bara glorifierade Iphoneappar återstår lär nyfikenheten försvinna. Det är så himla trist.

Intressant tanke att Microsoft kanske tar in delar av Linux i Windows. Kan mycket väl bli så, men de lär ju göra det med strategin https://en.wikipedia.org/wiki/Embrace,_extend_and_extinguish

Kom inte med bullshit, Apple har i princip sålt 15-20 miljoner datorer årligen sedan innan de sålde hundratals miljoner iPhones årligen. iOS-enheter har tagit fokus, men de har inte drastiskt ökat försäljningen av datorer. Om vi tänker de senaste 5 åren.

Många inbyggda program i macOS har blivit mycket mer kraftfulla, även om det göms genom att de använder teknik som byggs in i plattformen. Inbyggda Photos är t.ex. mycket kraftfullare än gamla iPhoto. iMovies, Pages, Number och Keynote har säkert aldrig varit bättre än idag. FCPX har blivit ett bra verktyg det också. Xcode har säkert aldrig varit bättre heller.

Sen får man såklart tänka på att de tjänar mer på andra produkter än de gör från att sälja Macar och att mycket av verksamheten är deras butiker. Bara ca 10% av deras försäljning är Macar. Anledningen att de ens tjänar så mycket på Macar är snarare för att de blivit något dyrare. De har ändå tappat som andel av försäljningen från föregående år. Problemet för Apple är mer att det ofta är samma utvecklare som ska jobba med alla deras produkter. Men de lägger fortfarande resurser på macOS och deras datorer.

Permalänk
Datavetare

@Petterk: fast även Apple har massor med jobbannonser ute till deras Interactive Media Group som bl.a. jobbar med

"Our team's responsibilities span from low-level GPU driver and compiler development to implementing APIs such as Metal, OpenGL and OpenCL."

ett exempel av många man hittar på LinkedIn är denna.

Hur kan du vara så säker på att det är AMD, Nvidia och Intel som står för i princip hela driver-delen när ingen verkar kunna ge ett svar på hur mycket Apple gör respektive GPU-tillverkarna gör på t.ex. stack overflow?

Och tycker du det inte är lite märkligt att Nvidias egna OSX-drivare är så enormt mycket snabbare än de som Apple skeppar med OSX, det på konsument GPUer som 750M. Ok om det bara handlat om Quadro-korten då dessa är AIB till Mac Pro, men nu handlar det om mobila GPUer som suttit i MacBook Pro.

Nvidias Linux-drivare verkar ju inte vara mycket mer än en wrapper kring samma BLOB som används på Windows, så det mesta av Nvidias egna OSX drivare är med stor sannolikhet identisk med Windows drivarna.

Av egen erfarenhet kan jag säga att väldigt stor andel av indie titlar man hittar på Steam fungerar alldeles utmärk på senare Intel GPUer. Rätt många av dessa finns också till OSX och Linux. Men självklart är det totalt kört att spela alla moderna trippel-A titlar ens på Intels Iris Pro med lägsta inställningar, har försökt på min 5775C med Iris Pro 6200

Men det var också min poäng: även om Apple fixade stöd för både Vulkan och även DX12 under macOS så kvarstår ju just problemet att de system som idag kommer med macOS har nästan uteslutande Intels iGPU eller enklare dGPU för mobila enheter. Dessa system är inte i närheten kraftiga nog att dra runt krävande spel så finns liksom ingen poäng för dessa spelutvecklare att stödja macOS idag.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Inaktiv

Värt att tänka på är att Apple satsar hårt på Polaris: http://wccftech.com/amd-polaris-radeon-400-series-gpus-sweep-...

Vad det innebär för kommande Appledatorer återstår att se men att det kanske finns lite mer prestanda nu än tidigare får man ju hoppas på.

Mac Pro kör dessutom FirePro men är samtidigt inte byggd för att spela på förstås.

Fortfarande synd att de skippar officiellt stöd för Vulkan dock.

Permalänk
Medlem
Skrivet av Yoshman:

@Petterk: fast även Apple har massor med jobbannonser ute till deras Interactive Media Group som bl.a. jobbar med

"Our team's responsibilities span from low-level GPU driver and compiler development to implementing APIs such as Metal, OpenGL and OpenCL."

ett exempel av många man hittar på LinkedIn är denna.

Hur kan du vara så säker på att det är AMD, Nvidia och Intel som står för i princip hela driver-delen när ingen verkar kunna ge ett svar på hur mycket Apple gör respektive GPU-tillverkarna gör på t.ex. stack overflow?

Och tycker du det inte är lite märkligt att Nvidias egna OSX-drivare är så enormt mycket snabbare än de som Apple skeppar med OSX, det på konsument GPUer som 750M. Ok om det bara handlat om Quadro-korten då dessa är AIB till Mac Pro, men nu handlar det om mobila GPUer som suttit i MacBook Pro.

Nvidias Linux-drivare verkar ju inte vara mycket mer än en wrapper kring samma BLOB som används på Windows, så det mesta av Nvidias egna OSX drivare är med stor sannolikhet identisk med Windows drivarna.

Av egen erfarenhet kan jag säga att väldigt stor andel av indie titlar man hittar på Steam fungerar alldeles utmärk på senare Intel GPUer. Rätt många av dessa finns också till OSX och Linux. Men självklart är det totalt kört att spela alla moderna trippel-A titlar ens på Intels Iris Pro med lägsta inställningar, har försökt på min 5775C med Iris Pro 6200

Men det var också min poäng: även om Apple fixade stöd för både Vulkan och även DX12 under macOS så kvarstår ju just problemet att de system som idag kommer med macOS har nästan uteslutande Intels iGPU eller enklare dGPU för mobila enheter. Dessa system är inte i närheten kraftiga nog att dra runt krävande spel så finns liksom ingen poäng för dessa spelutvecklare att stödja macOS idag.

Ja, IMG skriver lågnivå-drivrutiner till A7+ och det går att utröna av flera jobbannonser. "iOS GPU Driver Engineer" är en populär titel i en drös CVs. Det finns inga annonser där de letar efter samma sak till deras datorer och för Intel/AMD/Nvidias hårdvara.

Tycker du inte det är konstigt att AMD (och Nvidia) söker drivrutinsutvecklare för Mac om de inte utvecklar drivrutiner?

Nvidias webdriver har jag inte disassemblerat men den är är uppbyggd med en bundle för OpenGL och en för Metal. OpenGL-drivrutinen är ca 37MiB. Hur som använder de Apples "infrastruktur" i form av OpenGL.framwork och Metal.framework och hela köret som hänger med. På Linux och Windows har de egen variant av OpenGL-biblioteken rakt igenom i stort sett vilket är varför de kan stödja samma features på Windows och Linux. Det är nog ändå svårt att jämföra binärerna rakt av. Web-drivern och default-drivrutinen är nog enklare att jämföra med varandra.

Permalänk
Datavetare
Skrivet av Petterk:

Ja, IMG skriver lågnivå-drivrutiner till A7+ och det går att utröna av flera jobbannonser. "iOS GPU Driver Engineer" är en populär titel i en drös CVs. Det finns inga annonser där de letar efter samma sak till deras datorer och för Intel/AMD/Nvidias hårdvara.

Tycker du inte det är konstigt att AMD (och Nvidia) söker drivrutinsutvecklare för Mac om de inte utvecklar drivrutiner?

Nvidias webdriver har jag inte disassemblerat men den är är uppbyggd med en bundle för OpenGL och en för Metal. OpenGL-drivrutinen är ca 37MiB. Hur som använder de Apples "infrastruktur" i form av OpenGL.framwork och Metal.framework och hela köret som hänger med. På Linux och Windows har de egen variant av OpenGL-biblioteken rakt igenom i stort sett vilket är varför de kan stödja samma features på Windows och Linux. Det är nog ändå svårt att jämföra binärerna rakt av. Web-drivern och default-drivrutinen är nog enklare att jämföra med varandra.

Tycker du hela tiden totalt ignorera det jag har svårast att greppa: hur kommer det sig att Nvidias egna OSX drivare presterar 60-80 % bättre än de om Apple skeppar om det är Nvidia som utvecklar båda?

Jag har ingen aning om vem som gör vad så säger inte att du har fel, men får liksom inte ihop logiken. Vad konsensus verkar vara är att Apple gör en del och GPU-tillverkarna gör en del. Hur mycket som görs av respektive part verkar folk vara väldigt oense om dock.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem
Skrivet av Yoshman:

Tycker du hela tiden totalt ignorera det jag har svårast att greppa: hur kommer det sig att Nvidias egna OSX drivare presterar 60-80 % bättre än de om Apple skeppar om det är Nvidia som utvecklar båda?

Jag har ingen aning om vem som gör vad så säger inte att du har fel, men får liksom inte ihop logiken. Vad konsensus verkar vara är att Apple gör en del och GPU-tillverkarna gör en del. Hur mycket som görs av respektive part verkar folk vara väldigt oense om dock.

De har nog mer kontroll över web-drivern, men vad det beror på att det är prestandaskillnad är nog omöjligt att säga utan tillgång till källkoden för de båda. Nvidia är som sagt inte ensamma om att anställa utvecklare till Mac-drivrutiner trotts att de är ensamma om att själva distribuera sådana drivrutiner. AMDGPU med Mesa/Gallium och AMDGPU-Pro med stängda OpenGL-drivare har ju exempelvis prestandaskillnad och där delar de både DRM och libdrm_amdgpu, trotts att AMD bidrar med kod till Mesa-drivaren så har du prestandaskillnad. Nu använder Nvidias web-driver fortfarande alla av Apples bibliotek även där, så inte lika enkelt att peka på något, men jag ser ingen anledning för att koden som körs kernel mode och en stor del av user-mode av drivrutinen skulle vara någon större skillnad på. Har inte default-drivaren att jämföra mot web-driver binärerna, så kan inte säga om det syns någon större skillnad redan där, det är väl ingen större sak att kolla om man äger en Mac däremot. Självklart är de i vilket fall inblandad i att skriva båda de drivrutinerna.

Edit: Anledningen ska vara att Apples default-drivare bygger på 310 som är ganska gammal nu (~2012-13) och deras egna som de distribuerar själv på 346. Främst därför deras egna drivrutiner stödjer nyare hårdvara. Nog bör du kunna hitta ganska mycket att optimera på 2-3 år. Även om du måste använda Apples OGL-implementation. Varför inte Apple vill ha nyare drivrutiner är väl frågan där, de är nog lite för konservativa. Bästa som kan hända där är väl att Apple släpper en Mac med Nvidiagrafik (Mac Mini, iMac, Mac Pro eller MBP spelar inte så stor roll bara det är något med dGPU) så att de därför måste skeppa nyare drivrutin som default. Då skulle vi nog se ökad prestanda även på äldre maskiner.