polymer icon indicating copy to clipboard operation
polymer copied to clipboard

render hardware interface (GL 4.5, DX12, VK, MTL)

Open ddiakopoulos opened this issue 6 years ago • 3 comments

Polymer is presently uses OpenGL 4.5 features across the codebase. The eventual goal will be to replace all GL with a rendering abstraction capable of targeting multiple graphics backends. A reasonable target might be GL, DX12, and Vulkan. For macOS, it should be possible to use MoltenVK to bring Metal2 support with minimal effort.

glsl => spir-v => api shader compiler (includes, defines, optimization, reflection)

Inspiration https://github.com/NVIDIAGameWorks/Falcor https://github.com/sgorsten/workbench

ddiakopoulos avatar Apr 10 '18 18:04 ddiakopoulos

Or just use bgfx? https://bkaradzic.github.io/bgfx/overview.html

bkaradzic avatar Jan 06 '19 01:01 bkaradzic

@bkaradzic of course! :) We're big fans at Adobe, clearly.

Last time I looked closely at Vulkan/spir-v support it was still in development on your end. I need to take a closer look now. There's so much great tooling for that ecosystem.

ddiakopoulos avatar Jan 06 '19 01:01 ddiakopoulos

Noticed here bgfx in comment here: https://github.com/ddiakopoulos/polymer/blob/1fdd5c6d4ce0e2d9cc36a70e40057e013d28b54f/samples/rhi-render/rhi.hpp#L25

Last time I looked closely at Vulkan/spir-v support it was still in development on your end. I need to take a closer look now.

VK renderer is not done yet, but SPIRV tooling is.

Whatever feature bgfx lacks it will have it faster than new renderer will have all features bgfx already has. Also allows you to focus on stuff that's unique for your project and your project does well, and I get more surface for improvement and testing.

bkaradzic avatar Jan 06 '19 02:01 bkaradzic