TODO List: Difference between revisions

Jump to navigation Jump to search
179 bytes added ,  28 January 2014
no edit summary
(Added delroth's JIT optimization ideas)
No edit summary
Line 5: Line 5:
== Add curl support ==
== Add curl support ==


  * Proposed by: Parlane
* Proposed by: Parlane
  * Difficulty: average
* Difficulty: average
  * Blocked by: Replace OpenSSL in wii-network
* Blocked by: Replace OpenSSL in wii-network


Curl is needed for the WC24 side of things and would also be beneficial to the "Check for updates" task below. We need to make sure we can have curl work with PolarSSL.
Curl is needed for the WC24 side of things and would also be beneficial to the "Check for updates" task below. We need to make sure we can have curl work with PolarSSL.
Line 13: Line 13:
== "Check for updates" feature ==
== "Check for updates" feature ==


  * Proposed by: Parlane
* Proposed by: Parlane
  * Difficulty: easy
* Difficulty: easy


Will require some changes on the website side, ping delroth if you want to work on that.
Will require some changes on the website side, ping delroth if you want to work on that.
Line 20: Line 20:
== Hardware errors detection ==
== Hardware errors detection ==


  * Proposed by: delroth
* Proposed by: delroth
  * Difficulty: average
* Difficulty: average


A lot of people overclock their CPU and/or memory to run Dolphin at full speed. This could potentially cause stability issues misdiagnosed as bugs in Dolphin. I'm not sure if there is an easy way to check for this kind of issues because they are very random (compared to issues due to bad memory), but having this kind of feature might be a good way to avoid invalid issues.
A lot of people overclock their CPU and/or memory to run Dolphin at full speed. This could potentially cause stability issues misdiagnosed as bugs in Dolphin. I'm not sure if there is an easy way to check for this kind of issues because they are very random (compared to issues due to bad memory), but having this kind of feature might be a good way to avoid invalid issues.
Line 27: Line 27:
== Generate crash informations on JIT segfault ==
== Generate crash informations on JIT segfault ==


  * Proposed by: delroth
* Proposed by: delroth
  * Difficulty: easy/average
* Difficulty: easy/average


When JIT-ed PPC code crashes because of an invalid memory access, the curent behavior is to display a cryptic message box to the user ("BackPatch - no support for operand size 1", or "Unhandled disasm case in write handler") and/or kill the whole program. This makes it hard to debug these issues after the crash happened because no debug informations has been left behind.
When JIT-ed PPC code crashes because of an invalid memory access, the curent behavior is to display a cryptic message box to the user ("BackPatch - no support for operand size 1", or "Unhandled disasm case in write handler") and/or kill the whole program. This makes it hard to debug these issues after the crash happened because no debug informations has been left behind.
Line 36: Line 36:
== Implement Post-Processing shaders in D3D11 ==
== Implement Post-Processing shaders in D3D11 ==


  * Proposed by: Sonicadvance1
* Proposed by: Sonicadvance1
  * Difficulty: average
* Difficulty: average


The OpenGL backend already supports post-processing shaders while the D3D11 backend doesn't. Implementing this feature should allow persons to use the same shaders for both the D3D and OGL backend by abstracting portions of the shaders out.
The OpenGL backend already supports post-processing shaders while the D3D11 backend doesn't. Implementing this feature should allow persons to use the same shaders for both the D3D and OGL backend by abstracting portions of the shaders out.
Line 43: Line 43:
== Implement more fastmem methods ==
== Implement more fastmem methods ==


  * Proposed by: Sonicadvance1
* Proposed by: Sonicadvance1
  * Difficulty: average/hard
* Difficulty: average/hard


Fastmem/backpatch has long been a method in Dolphin to gain additional(5-15%) speed out of a game due to slow memory accesses. Currently this is only being done for 32bit loads. Memory accesses can be further sped up by supporting 32bit stores and then even moving down to the 16bit and 8bit loads and stores.
Fastmem/backpatch has long been a method in Dolphin to gain additional(5-15%) speed out of a game due to slow memory accesses. Currently this is only being done for 32bit loads. Memory accesses can be further sped up by supporting 32bit stores and then even moving down to the 16bit and 8bit loads and stores.
Line 50: Line 50:
== Fix CPUCompare ==
== Fix CPUCompare ==


  * Proposed by: Sonicadvance1
* Proposed by: Sonicadvance1
  * Difficulty: average/hard
* Difficulty: average/hard


CPUCompare should be a very nice and easy way to directly compare the results between two CPU cores and see where they differ. A broken implementation has been in the source since open source birthing but nothing has been done with it. This could be gone about in a couple ways. Be it running two CPU cores side by side in the same program instance or two processes running and comparing real time.  
CPUCompare should be a very nice and easy way to directly compare the results between two CPU cores and see where they differ. A broken implementation has been in the source since open source birthing but nothing has been done with it. This could be gone about in a couple ways. Be it running two CPU cores side by side in the same program instance or two processes running and comparing real time.  
Line 57: Line 57:
== Qt GUI ==
== Qt GUI ==


  * Proposed by: neobrain
* Proposed by: neobrain
  * Difficulty: easy/average
* Difficulty: easy/average


There are lots of advantages of Qt over wxWidgets, and if you ever had to use one or the other you probably know why Qt rocks and why wxWidgets often is kind of "meh" to work with. The initial Qt GUI living in the dolphin-qt branch has been written by neobrain and recently brought up to date with recent master changes. Things left to do until a merge to master can happen include but aren't limited to:
There are lots of advantages of Qt over wxWidgets, and if you ever had to use one or the other you probably know why Qt rocks and why wxWidgets often is kind of "meh" to work with. The initial Qt GUI living in the dolphin-qt branch has been written by neobrain and recently brought up to date with recent master changes. Things left to do until a merge to master can happen include but aren't limited to:
  * Windows build files
* Windows build files
  * Proper theming
* Proper theming
  * Implementation of enough basic functionality so that daily usage is possible
* Implementation of enough basic functionality so that daily usage is possible
  * Switching from Qt to wxWidgets and vice-versa needs to be possible without requiring a full rebuild.
* Switching from Qt to wxWidgets and vice-versa needs to be possible without requiring a full rebuild.


== Janitorial Tasks ==
== Janitorial Tasks ==
  * Search for "Todo" in the source and try to work out how complete the todo.
* Search for "Todo" in the source and try to work out how complete the todo.
  * Make it compile with no warnings. Make sure to use warning flags when compiling! * Do not fix warnings in code that you don't understand! * It's not worth the risk of breaking things.
* Make it compile with no warnings. Make sure to use warning flags when compiling! * Do not fix warnings in code that you don't understand! * It's not worth the risk of breaking things.
  * Fix the [http://code.google.com/p/dolphin-emu/issues/list?q=label:Easy easy issues] or any of the other issues on our tracker.
* Fix the [http://code.google.com/p/dolphin-emu/issues/list?q=label:Easy easy issues] or any of the other issues on our tracker.


= JIT Optimization Ideas =
= JIT Optimization Ideas =
Line 93: Line 93:


If someone could get a good test coverage with an homebrew program and work on a mostly JITed floats/paired singles implem, it would reduce CPU usage by at least 5% in most games.
If someone could get a good test coverage with an homebrew program and work on a mostly JITed floats/paired singles implem, it would reduce CPU usage by at least 5% in most games.
= Tasks which require no coding skills =
== Write new Guides ==
* Postprocessing shaders (and remove Data/Sys/Shaders/README.txt from the source repository once that's written)
* BBA guide
* Developer workflow documentation


[[Category:Development]]
[[Category:Development]]

Navigation menu