PCSX2 Documentation/Contributing To-Do List: Difference between revisions

From PCSX2 Wiki
Jump to navigation Jump to search
No edit summary
(This is a really outdated list. Looks like it's older than the github list. This can probably be removed or redirected to the github list.)
 
(12 intermediate revisions by 3 users not shown)
Line 6: Line 6:


==QA / Portability==
==QA / Portability==
* Port GSThread to std::thread => started by krysto
* Port core thread to std::thread
* Port core thread to std::thread
* C11 aligned_alloc
* C11 aligned_alloc
Line 12: Line 11:
* Replace volatile/lock-free queue with real C++ atomic
* Replace volatile/lock-free queue with real C++ atomic
* [C++11 auto port](http://clang.llvm.org/extra/clang-modernize.html). Initial requirement: drop XP and support clang/llvm
* [C++11 auto port](http://clang.llvm.org/extra/clang-modernize.html). Initial requirement: drop XP and support clang/llvm
* [Clean header include](https://code.google.com/p/include-what-you-use/). Investigate.
* [Clean header include](https://github.com/include-what-you-use/include-what-you-use). Investigate.
* Address sanitizer (gcc or clang) and others sanitizer.
* Address sanitizer (gcc or clang) and others sanitizer.
* Valgrind (not sure it can run PCSX2, maybe limit the scope to plugin)
* Valgrind (not sure it can run PCSX2, maybe limit the scope to plugin)
Line 19: Line 18:


==GUI==
==GUI==
* support wx3.0 => linux port is done but windows part is not ready yet.
* check linux chapter ;) Various improvements are actually cross platform!
* check linux chapter ;) Various improvements are actually cross platform!


==Linux==
==Linux==
You're welcome to the [Linux contribution thread](http://forums.pcsx2.net/Thread-Areas-of-interest-for-new-linux-developers) to have full details. Here is a handy list of features need implementation. Feel free to propose new ones.
You're welcome to the [Linux contribution thread](http://forums.pcsx2.net/Thread-Areas-of-interest-for-new-linux-developers) to have full details. Here is a handy list of features need implementation. Feel free to propose new ones.


==House keeping and general compilation==
==House keeping and general compilation==
* Clean up warnings
* Clean up warnings
  #Same as gcc flags but without the need of complete test.
#Same as gcc flags but without the need of complete test.
* Clean up GCG flags
* Clean up GCG flags
  #Put default global flags in cmake/BuildParameters.cmake\\
#Put default global flags in cmake/BuildParameters.cmake\\
  #Try to use standard flags as much as possible (aka On). Extensive tests must be done to validate a flag update.
#Try to use standard flags as much as possible (aka On). Extensive tests must be done to validate a flag update.
* Support clang (dev build/run without crash) => started by urushima
* Speed comparison clang/GCC
* Speed comparison clang/GCC
* Support avx (gsdx) => Mostly done. Some compilation errors remain.
* Add missing/update copyright header  
* Add missing/update copyright header  
* LTO support => started by prudho
* LTO support => started by prudho
* PGO support
* PGO support


### Core
==Core==
* Support XZ compressed ISOs
* Support XZ compressed ISOs


### GSdx
==GSdx==
* Fix OpenGL. I would advice to compare dx trace vs OpenGL trace.
* Fix OpenGL. I would advice to compare dx trace vs OpenGL trace.
* Implement DX features on OGL (video recording ....)
* Test/Fix GLES3.1 (it often breaks after GL update)
* Test/Fix GLES3.1 (it often breaks after GL update)
* Add tooltip on gsdx gui
* Finish shader subroutine usage (+find a way to clean shader and avoid duplication)
* Finish shader subroutine usage (+find a way to clean shader and avoid duplication)
* Finish buffer storage
* Finish buffer storage
* OSD => started by myself in a branch feel free to pick it up
* OSD => Finish port to Direct3D
* Gameplay recording


### CDVD
==Debian package==
* Port CDVDgiga to linux ?
 
### zzogl
* Reduce GL requirement to 3.3 + gl4 extension
* Use multibind
* Fix EGL
* Port GLSL to window
* Drop old GLSL backend (and much later Nivida CG)
 
### Debian package
* Needs a refresh to the latest standard
* Needs a refresh to the latest standard
* Clean debian/copyright => debmake -k
* Clean debian/copyright => debmake -k


## Very long term features
==Very long term features==
Those features will require a lot of work, and an organized long-term effort.
Those features will require a lot of work, and an organized long-term effort.
* PS2 ROM reimplementation (wrongly named HLE bios)
* PS2 ROM reimplementation (wrongly named HLE bios)
Line 73: Line 55:
* Win/Linux ARM port
* Win/Linux ARM port
* OSX support
* OSX support
{{PCSX2 Documentation Navbox}}

Latest revision as of 13:37, 10 February 2018

Contributing

  • Be patient
  • Your contribution will gladly be reviewed but free time is an expensive resource
  • Discuss your future contribution with us before coding it
  • Let's avoid duplicate work! Besides, the specification could be clarified this way.

QA / Portability

  • Port core thread to std::thread
  • C11 aligned_alloc
  • C++11 alignof/alignas syntax
  • Replace volatile/lock-free queue with real C++ atomic
  • [C++11 auto port](http://clang.llvm.org/extra/clang-modernize.html). Initial requirement: drop XP and support clang/llvm
  • [Clean header include](https://github.com/include-what-you-use/include-what-you-use). Investigate.
  • Address sanitizer (gcc or clang) and others sanitizer.
  • Valgrind (not sure it can run PCSX2, maybe limit the scope to plugin)
  • Reformat the core/plugin to a constant style with tool like astyle
  • Support Windows/OSX in CMake

GUI

  • check linux chapter ;) Various improvements are actually cross platform!

Linux

You're welcome to the [Linux contribution thread](http://forums.pcsx2.net/Thread-Areas-of-interest-for-new-linux-developers) to have full details. Here is a handy list of features need implementation. Feel free to propose new ones.

House keeping and general compilation

  • Clean up warnings
  1. Same as gcc flags but without the need of complete test.
  • Clean up GCG flags
  1. Put default global flags in cmake/BuildParameters.cmake\\
  2. Try to use standard flags as much as possible (aka On). Extensive tests must be done to validate a flag update.
  • Speed comparison clang/GCC
  • Add missing/update copyright header
  • LTO support => started by prudho
  • PGO support

Core

  • Support XZ compressed ISOs

GSdx

  • Fix OpenGL. I would advice to compare dx trace vs OpenGL trace.
  • Test/Fix GLES3.1 (it often breaks after GL update)
  • Finish shader subroutine usage (+find a way to clean shader and avoid duplication)
  • Finish buffer storage
  • OSD => Finish port to Direct3D

Debian package

  • Needs a refresh to the latest standard
  • Clean debian/copyright => debmake -k

Very long term features

Those features will require a lot of work, and an organized long-term effort.

  • PS2 ROM reimplementation (wrongly named HLE bios)
  • x86_64 port (x32 could yield better perf)
  • Android X86 port
  • Win/Linux ARM port
  • OSX support