In comment to Geenz Spad <ge...@exodusviewer.com <mailto:ge...@exodusviewer.com>>:
There is much more to it than the knee jerk opensource community reaction of resisting to "Apple made it the default for new projects, so you should too!” By migrating the code to to the Apple defaults makes the code much more portable across macOS system versions and often ensures that the code runs with few or no modifications even if Apple makes big breaks to the underlying system software or even hardware. Having worked in Apple Product Management I have seen it over and over again that developers who fail to maintain their code according to the Apple guidelines suffer badly when Apple does something “unexpected. Very good examples of this is the disaster that Microsoft Office has been on macOS for years, as also is the case for almost the entire Adobe product suite. Others are using QT that often result in sub par experiences both for developers and users. Many of these applications simply vanish from the market as the developers are not able to move the application forward. One such example of an “unexpected” change is the introduction of Metal, where the viewer rendering code has not been changed for this fact resulting in a GPU crash on any version of the viewer when running on macOS 10.11. (regardless of LL or TPV developed.) The GPU crash has been both acknowledged by Apple product development and by LL, but the LL code needs to be fixed for it to work. This crash is clearly related to memory management both on the GPU and on the main system. (NVDA(Graphics): Channel exception! Exception type = 0x1f Access Violation Error (MMU Error 2)) It happens because macOS 10.11 use Metal for compositing the desktop so memory usage has changed. Installing NVIDIA’s driver removes the crash, but it results in a loss of typically 10 fps for the viewer. By acknowledging that a macOS application is distinctly different from the standard C++ application, and structuring the code for the macOS version thereafter, one would not only do everyone, including LL, a favor but it would also make the path for a viewer running on iOS devices much shorter. It would improve performance, give macOS users access to system services they find across their application portfolio, and would make development more consistent and reliable. It would possibly also reduce the number of issues reported to the LL service desk and improve retention for new signups. I’ll have macOS 10.12 beta 2 installed today and see how the viewers run, but on beta 1 only one of all the tested viewers ran (still with crashing plugins.) One popular viewer compiled with the old GCC could not start at all. My intention is to remove all the code that prevents compilation with ARC, acknowledging that MRC will still be needed for some interfacing with Foundation and C++. For the Renderer issue I am not in a position to fix the GPU crash. I have yet to confirm if this issue still exist on 10.12 as that requires a viewer that actually runs on it without one or more components crashing. TC, Geir
_______________________________________________ Policies and (un)subscribe information available here: http://wiki.secondlife.com/wiki/OpenSource-Dev Please read the policies before posting to keep unmoderated posting privileges