zwembroek schreef op donderdag 28 juni 2007 @ 12:39:
Het probleem zit hem in de verschillende opbouw van de geheugen blokken.
Bij de Xbox360 heeft de GPU en CPU de beschikking over een blok van 512mb aan geheugen, terwijl dit bij de PS3 is opgedeeld in twee blokken van 256mb.
Het schijnt nogal lastig te zijn om een Xbox360 game naar deze constructie te porten.
Games die wel de PS3 als hoofdplatform gebruiken hebben hier dus geen last van.
Werk geheugen is niet echt het probleem bij het programmeren. Vergeet niet dat het PS3 DDR geheugen voor GFX het langzame geheugen is (en even snel als het 360 geheugen), en de XDR vele malen sneller is dan het 360 werkgeheugen, zodat er door de CELL heen redelijk wat heen en weer kan worden geschoven via de interconnect bus.
Het probleem is meer dat code voor synchrone multi-cores niet echt te porten is naar een asynchrone core zoals de CELL. Als je dat wel doet, dan zullen ze waarschijnlijk (als ze het al doen) subroutines proberen te porten naar de SPEs, met als logisch gevolg veel verloren performance vanwege totaal andere data-structuren die niet optimaal zijn voor SPE's en het grote aantal SPE callbacks naar je XDR in plaats van je local store.
Aan de andere kant, als je de code vanaf het begin op CELL schrijft, is het wel redelijk te doen om dit de andere kant op te porten.
Wat sowieso wel zal helpen is dat de EDGE tools zoals ze in maart zijn vrijgegeven nu langzaam hun weg vinden in de toolchain van third party devs, zodat er waarschijnlijk vanaf sept/okt een stuk sterkere ports uit kunnen komen. Door juist low level routines aan te bieden kan met het abstractie niveau hoog houden in code, en zodoende toch eenvoudig porteerbare code maken.
Tot die tijd zal de meeste performance van 1st en 2nd party devs blijven komen.
Gotsent: single click MKV to PS3 compatible MP4 conversion:http://sentry23.googlepages.com . PSN Sentry-23