TODO List: Difference between revisions

Jump to navigation Jump to search
m
freenode -> libera
(→‎JIT Optimization Ideas: Align section titles with conventions)
m (freenode -> libera)
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
This page is kind of a TODO list for the Dolphin project: project members add interesting ideas they don't have time to implement here. If you are a developer looking to contribute to Dolphin, picking one of these ideas might be a good way to start! Join us on IRC to ask for more informations if needed: #dolphin-dev @ Libera.
== Tasks ==
== Tasks ==
This page is kind of a TODO list for the Dolphin project: project members add interesting ideas they don't have time to implement here. If you are a developer looking to contribute to Dolphin, picking one of these ideas might be a good way to start! Join us on IRC to ask for more informations if needed: #dolphin-dev @ freenode.
=== Add CURL Support ===
* Proposed by: Parlane
* Difficulty: average
* 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.
=== Hardware Errors Detection ===
=== Hardware Errors Detection ===
* Proposed by: delroth
* Proposed by: delroth
Line 23: Line 15:


Writing a crash dump file with the PPC backtrace, state of all the PPC registers, code of the JIT block that caused the crash + exact instruction causing the crash, and maybe information about the user hardware would be very nice.
Writing a crash dump file with the PPC backtrace, state of all the PPC registers, code of the JIT block that caused the crash + exact instruction causing the crash, and maybe information about the user hardware would be very nice.
=== Implement Post-Processing Shaders in D3D11 ===
* Proposed by: Sonicadvance1
* Difficulty: average
The OpenGL back-end already supports post-processing shaders while the D3D11 back-end doesn't. Implementing this feature should allow persons to use the same shaders for both the D3D and OGL back-end by abstracting portions of the shaders out.


=== Implement More Fastmem Methods ===
=== Implement More Fastmem Methods ===
Line 46: Line 32:
* 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 [https://bugs.dolphin-emu.org/projects/emulator/issues?utf8=%E2%9C%93&set_filter=1&f%5B%5D=status_id&op%5Bstatus_id%5D=o&f%5B%5D=cf_7&op%5Bcf_7%5D=%3D&v%5Bcf_7%5D%5B%5D=1&f%5B%5D=&c%5B%5D=tracker&c%5B%5D=status&c%5B%5D=priority&c%5B%5D=subject&c%5B%5D=assigned_to&c%5B%5D=updated_on&group_by= easy issues] or any of the other issues on our tracker.
* Fix the [https://bugs.dolphin-emu.org/projects/emulator/issues?utf8=%E2%9C%93&set_filter=1&f%5B%5D=status_id&op%5Bstatus_id%5D=o&f%5B%5D=cf_7&op%5Bcf_7%5D=%3D&v%5Bcf_7%5D%5B%5D=1&f%5B%5D=&c%5B%5D=tracker&c%5B%5D=status&c%5B%5D=priority&c%5B%5D=subject&c%5B%5D=assigned_to&c%5B%5D=updated_on&group_by= easy issues] or any of the other issues on our tracker.
=== <s>Implement Post-Processing Shaders in D3D11</s> ===
* Proposed by: Sonicadvance1
* Difficulty: average
The OpenGL back-end already supports post-processing shaders while the D3D11 back-end doesn't. Implementing this feature should allow persons to use the same shaders for both the D3D and OGL back-end by abstracting portions of the shaders out.
=== <s>Add cURL Support</s> ===
* Proposed by: Parlane
* Difficulty: average
* 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.


=== <s>"Check for updates" Feature</s> ===
=== <s>"Check for updates" Feature</s> ===
Line 69: Line 68:


Ideally, HW modules should be able to provide ASM routines for some of their memory reads/writes and make things even faster for basic cases of "just read a global variable".
Ideally, HW modules should be able to provide ASM routines for some of their memory reads/writes and make things even faster for basic cases of "just read a global variable".
=== Busy Wait Loop Detection ===
* Proposed by: delroth
If we could detect loops that exit only depending on some memory value, and this memory value is not written to in the body of the loop, we should know that it will never leave the loop unless an interrupt is raised. We can then stop scheduling the Jit until we get an interrupt.


=== Macroblocks ===
=== Macroblocks ===
Line 81: Line 76:


=== Finally Implementing Floats/Paired Singles Properly ===
=== Finally Implementing Floats/Paired Singles Properly ===
* Proposed by: delroth
If someone could get a good test coverage with an homebrew program and work on a mostly JITed floats/paired singles implementation, 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 implementation, it would reduce CPU usage by at least 5% in most games.


Line 86: Line 82:
* Proposed by: delroth
* Proposed by: delroth
Because of the crazy paired singles design (one double and one single register), we do lots of expensive (checkout ppc_fp branch), redundant format conversions. Almost all of them could be avoided by converting on use, but the register cache would need a bit of redesign.
Because of the crazy paired singles design (one double and one single register), we do lots of expensive (checkout ppc_fp branch), redundant format conversions. Almost all of them could be avoided by converting on use, but the register cache would need a bit of redesign.
=== <s>Busy Wait Loop Detection</s> ===
* Proposed by: delroth
If we could detect loops that exit only depending on some memory value, and this memory value is not written to in the body of the loop, we should know that it will never leave the loop unless an interrupt is raised. We can then stop scheduling the Jit until we get an interrupt.


== Tasks which require no coding skills ==
== Tasks which require no coding skills ==

Navigation menu