PointCloudLibrary / pcl

Point Cloud Library (PCL)
https://pointclouds.org/
Other
9.98k stars 4.62k forks source link

Migrate from OpenGL #3818

Open kunaltyagi opened 4 years ago

kunaltyagi commented 4 years ago

Is your feature request related to a problem? Please describe.

OpenGL has been in deprecation since MacOS 10.9 and has been fully replaced by Metal 2 in 10.14. It can be removed at Apple's whims. Vulkan was essentially glNext so we should be moving ahead anyways.

Describe the solution you'd like

Options (in increasing order of likelihood):

  1. Stop supporting OpenGL related functionality on MacOS (current status)
  2. Use Metal instead. Official example of migration
  3. Shift to Vulkan: This is a chance to take a look at how PCL handles OpenGL and potentially refactor it enabling better support for other backends.

If we shift to Vulkan instead, we can use libraries such a MoltenVK (Vulkan over Metal) to maintain one single code for all platforms. A lot of engines have reported that refactoring using Vulkan gives them significant speed-ups on the same hardware.

Describe alternatives you've considered

In the mean time, we can shift to GLOVE (GL over Vulkan) + MoltenVK to keep using current implementation in Mac.

tompollok commented 4 years ago

Shifting to Vulkan is a good idea, but regarding Metal: Who uses PCL on a mac?

shrijitsingh99 commented 4 years ago

Switching to Vulkan seems like a good idea considering the decline of OpenGL. I am little skeptical about the licensing related to MoltenVK, there is no guarantee that they will not shift to a paid licensing model in the future. Depending on how much effort would be required to port an maintain Metal, we can consider that too.

SergioRAgostinho commented 4 years ago

I am little skeptical about the licensing related to MoltenVK, there is no guarantee that they will not shift to a paid licensing model in the future.

A considerable number of relatively big open source projects switched to it and Valve seems to be financing things to ensure it remains open source. Notably Wine, which I assume would be very strict with its licensing choices. I this was a real threat for them, I don't believe they would have adopted it. Given that, I would rather stick with to MoltenVK, than go for platform dependent code.

AustinDeric commented 4 years ago

We would be interested in running PCL with vulkan drivers. This would enable PCL to be run on the following GPUs:

I and my organization would be interested in helping add vulkan support.

kunaltyagi commented 4 years ago

Looking for people with more experience in OpenGL/Vulkan to help create a migration plan.