2010-07-23 14 views
12

Ich arbeite gerade an ein paar Shadern für ein iPad-Spiel und es scheint, als würde der GLSL-Compiler von Apple keine (oder sehr wenige) Optimierungen vornehmen. Ich kann eine einzelne Zeile in einem Shader bewegen und meine FPS von 30 auf 24 setzen, aber ich habe wirklich keine Ahnung, warum das passiert.PowerVR SGX535 Shader-Leistung (OpenGL ES 2.0)

Hat jemand irgendwelche Referenzen für die folgenden:

  • was PowerVR Anweisungen von GLSL Anweisungen erzeugt werden?
  • Wie lauten die Timings der PowerVR-Anweisungen?
  • Welche Art von Parallelverarbeitungseinheiten sind in der PowerVR535 und wie können sie ausgenutzt werden?

Danke, Tristan

Antwort

5

http://www.imgtec.net/factsheets/SDK/POWERVR%20SGX.OpenGL%20ES%202.0%20Application%20Development%20Recommendations.1.1f.External.pdf

Diese Documet sollten Sie Ihre Shadern für maximale Leistung zu optimieren. Apple sollte ähnliche Informationen bereitstellen.

+2

Danke für die Antwort. Leider hat PowerVR aus weiterem Lesen entschieden, die eigentliche Assembly, in die GLSL kompiliert wird, nicht zu veröffentlichen. Die beste Wette, die ich fand, war die Verwendung von PowerVRUniSCo, um Zykluszahlen für Vertex- und Fragment-Shader zu geben. Ärgerlich ist dieses Tool nur für PC und Linux verfügbar. –

13

Imagination Technologies hat kürzlich Mac-Unterstützung für ihren PVRUniSco-Compiler und den interaktiven Shader-Editor PVRUniSCoEditor hinzugefügt. Diese können downloaded for free als Teil des PowerVR SDK sein. Der Compiler unterstützt sowohl die PowerVR SGX 53x-Serie als auch die 540-Serie im iPad 2. Leider läuft der Editor als eine klobige X11-Anwendung, aber zumindest funktioniert es jetzt.

Der Editor gibt Ihnen eine zeilenweise Schätzung der Anzahl der GPU-Zyklen, die für Ihren Vertex- oder Fragment-Shader erforderlich sind, sowie genauere Schätzungen für den besten und den schlechtesten Fall der benötigten Zyklen.

Ich benutze es wurde mein iOS Shadern zu profilieren, und es hat sich bei der Suche nach Hotspots äußerst nützlich erwiesen: PVRUniSCoEditor

+0

Gut zu wissen Nichts war nerviger als das Mischen auf meinen PC, um Timings zu testen. –

+1

Update vom April 2013: Das neueste PowerVR-SDK enthält Tools (Befehlszeilencompiler und GUI-Editoren wie PVRShaman und PVRShaderEditor), die X11 nicht benötigen, und kann geschätzte Zykluszahlen für Shader-Code mit Anmerkungen versehen. – mattorb