Google Summer of Code: Difference between revisions

From Dolphin Emulator Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 5: Line 5:
= Suggested Projects =
= Suggested Projects =
This is a list of suggested projects. If any of these is actually feasible for a GSoC project needs to be evaluated, but this list should give some hints at areas that still need work in Dolphin.
This is a list of suggested projects. If any of these is actually feasible for a GSoC project needs to be evaluated, but this list should give some hints at areas that still need work in Dolphin.
== Automated Test Suite ==
TODO: Description


== Proper GPU synchronisation ==
== Proper GPU synchronisation ==

Revision as of 15:41, 11 November 2012

About GSoC

http://code.google.com/intl/de/soc/

Suggested Projects

This is a list of suggested projects. If any of these is actually feasible for a GSoC project needs to be evaluated, but this list should give some hints at areas that still need work in Dolphin.

Automated Test Suite

TODO: Description

Proper GPU synchronisation

TODO: Description

Speedup Software Renderer

The current GPU accelerated backends in Dolphin have a huge disadvantage compared to software renderers: API restrictions. Lots of GC/Wii hardware features (zcomploc, destination alpha, zfreeze, compressed Z) can only be emulated with huge work and some dirty tricks or cannot be emulated at all because the functionality is not exposed by PC GPU APIs like Direct3D and OpenGL. With a software renderer on the other hand, you get all of these "hard to emulate" features for free but end up sacrificing performance if not done with speed in mind.

The goal of this project is to enhance (not replace!) the currently quite well-functioning software renderer with "fast" code paths. How exactly these "fast" code paths are implemented is free to the student. Some approaches include, but aren't limited to:

  • using SSE wherever possible (the other backends already have an SSE texture decoder)
  • vectorizing the renderer pipeline
  • making use of GPU accelerationg where feasible and possible without sacrificing accuracy, possibly making use of modern GPU features like compute shaders and transform feedback. Keep in mind this stuff should be cross-platform compatible though and we don't want to end up with "sub-backends", i.e. this is tied to using OpenGL.
  • Just-in-Time recompilation of software renderer code paths, using LLVM (if it's suited for the task) or a tailor-made JIT

More Accurate DSP HLE Emulation

TODO: Description, cf. DSP_LLE