FS#67760 - [pcsx2] Improper CMake build definitions passed

Attached to Project: Community Packages
Opened by Luke Carlton (JibbityJobbity) - Sunday, 30 August 2020, 09:07 GMT
Last edited by Maxime Gauduin (Alucryd) - Tuesday, 01 September 2020, 14:19 GMT
Task Type General Gripe
Category Packages: Multilib
Status Closed
Assigned To Maxime Gauduin (Alucryd)
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
In the PKGBUILD, there are several definitions when running CMake which aren't recommended.
I can see that OPENCL_API is enabled. The OpenCL renderer is still in its experimental stages and it's not recommended to have it enabled in the repo's build.
Secondly, I don't understand why DISABLE_ADVANCE_SIMD=ON is defined. The build option is there to disable certain SIMD operations for the debug build. Disabling this may cause performance issues.
I also think EGL_API=ON should be defined and EXTRA_PLUGINS=ON should be removed.
The EGL loader replaces GLX, which is default in the latest development build for several reasons such as some users running NVIDIA graphics processors on laptops not being able to launch the emulator with GLX.
For extra plugins, only the main set is really recommended and actively developed.

The AUR package (pcsx2-git) has definitions set up by one of the contributors, it might be worth looking at.

Additional info:
1.6.0-2 in multilib-testing
This task depends upon

Closed by  Maxime Gauduin (Alucryd)
Tuesday, 01 September 2020, 14:19 GMT
Reason for closing:  Implemented
Additional comments about closing:  1.7.0.r202.9c0865c0f-1
Comment by Maxime Gauduin (Alucryd) - Monday, 31 August 2020, 06:45 GMT
- OPENCL_API is experimental: Sources? Have you had issues with it? Not marked as experimental in 1.6.0.
- EGL_API: Sources? This, in contrast with OPENCL_API, _is_ marked as experimental in 1.6.0. Development builds are not the latest stable release.
- DISABLE_ADVANCE_SIMD: Wrong. It splits the Gsdx plugin into three variants with more advanced instructions, would be SSE2 only otherwise due to our build flags, so you'd actually be losing performance.
- EXTRA_PLUGINS: Have you had issues with any extra plugins? Some null plugins can be useful, and unmaintained plugins are being dropped from the repo altogether like zzogl anyway so I don't see the harm here.

So unless there are very good reasons to change anything, I'll be keeping the options as they are now.
Comment by Luke Carlton (JibbityJobbity) - Monday, 31 August 2020, 11:44 GMT
I've come back with these reasons, let me know what you think.

- I do have issues with OpenCL, but regardless, there is a reason why the AUR package and builds for other distributions have disabled it. If it were to be considered ready as a viable alternative to the primary hardware and software methods of rendering, it would be pushed out to more distributions. That also doesn't mention the fact that it is marked as experimental in the build.sh file provided in the GitHub repository.
- Here is the issue which has been closed after enabling EGL by default https://github.com/PCSX2/pcsx2/issues/3347. After some discussion, it was best considered that GLX should be removed entirely from the project.
- I can see that you like having several options given for SIMD feature sets, however, according to the article linked, the flag disables AVX support which is recommended over other SSE2/SSE4 https://pcsx2.net/component/content/article.html?id=266:linux-news
- There isn't a good use case for zzogl. It is less accurate and has a smaller feature set compared to GSdx. Leaving it in implies it is there to be used. The use case of the null plugin set is too niche to be considered useful and is there as a base to start any potential plugins in the future. The important part is that the main plugins are there so I'll let you decide on that.

Let me know what you think.
Comment by Maxime Gauduin (Alucryd) - Tuesday, 01 September 2020, 14:19 GMT
Published a new testing package since x86_64 support is _finally_ here. Disabled opencl since it is indeed marked experimental in build.sh, but not in BuildParameters.cmake for some reason. EGL is now the default, and I will continue to ship extra plugins.

For the record, I don't like having multiple SIMD options... SSE2 is our common denominator, so every package has to be compatible with very old CPUs.

Loading...