skumbananaaa
Topic Author
Posts: 6
Joined: 21 Sep 2020, 12:35

C++ Vulkan Implementation

02 Oct 2020, 11:45

I created a Vulkan implementation of NoesisGUI in a game engine me and my friends are developing which uses Vulkan as the underlying graphics API. I thought I could share it here if anyone wants to take a look. I haven't had time to test it very much. Tiled rendering hasn't been tested at all. All the GUI code can be found in "GUI/Core".

The GUIRenderer in the engine is part of our RenderGraph rendering system, basically it receives resource updates from the RenderGraph, currently just the back buffer and a depth/stencil texture, all the other resources are created by the GUI system itself.

Since NoesisGUI uses alot of dynamic state I had to create different caches, the most complicated one is GUIPipelineStateCache, it manages and creates new Pipelines when requested depending on different requested dynamic state features.
Examples of these are:
  • Vertex Type
  • Stencil Mode
  • Blend Mode
Other examples of caches and managers are the buffer caches, descriptor set caches and the GUIShaderManager.

The repo:
https://github.com/IbexOmega/CrazyCanvas
 
User avatar
jsantos
Site Admin
Posts: 3897
Joined: 20 Jan 2012, 17:18
Contact:

Re: C++ Vulkan Implementation

06 Oct 2020, 12:42

Great job! We are working in an official Vulkan renderer. Once we released it, please have a look at it to improve the offscreen part of your renderer.

EDIT: I added a link to this project here
 
skumbananaaa
Topic Author
Posts: 6
Joined: 21 Sep 2020, 12:35

Re: C++ Vulkan Implementation

06 Oct 2020, 12:53

Yeah, thanks, I'll be sure to do that!

Who is online

Users browsing this forum: No registered users and 1 guest