Author Topic: (WIP) Vulkan plugin for GeeXLab  (Read 10864 times)

0 Members and 1 Guest are viewing this topic.

JeGX

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1786
    • View Profile
    • Geeks3D.com
(WIP) Vulkan plugin for GeeXLab
« on: February 22, 2016, 09:36:33 AM »
I started the coding of this #Vulkan plugin...

After two days of struggle, I can now clear the framebuffer (what a joke!)  :P
We can create a renderer + render window on a particular GPU, and the scene resize is also managed.

Next step: pipeline object + SPIR-V programs.


Quote
2016/2/22@09:22:45(0000000001) < > GeeXLab v0.9.6.1 (Feb 22 2016@09:14:00)
2016/2/22@09:22:45(0000000002) < > Cross Platform Lab for Real Time 3D Programming and Demo Coding
2016/2/22@09:22:45(0000000003) < > (C)2009-2016 Geeks3D (www.geeks3d.com)
2016/2/22@09:22:45(0000000004) < > GeeXLab is starting up...
2016/2/22@09:22:45(0000000005) < > Windows version: Windows 10 build 10586
2016/2/22@09:22:45(0000000006) < > platform: Windows 64-bit
....

2016/2/22@09:22:49(0000000082) < > [Vulkan] Vulkan renderer (Windows, Linux)
2016/2/22@09:22:49(0000000083) < > [Vulkan] Vulkan core library loaded ok.
2016/2/22@09:22:49(0000000084) < > [Vulkan] # Vulkan devices: 2
2016/2/22@09:22:49(0000000085) < > [Vulkan] [ GPU 1 ]--------------------------------------
2016/2/22@09:22:49(0000000086) < > [Vulkan] - GPU name: GTX 750
2016/2/22@09:22:49(0000000087) < > [Vulkan] - DeviceID: 10DE-1381
2016/2/22@09:22:49(0000000088) < > [Vulkan] - Raw driver version: 1493811200
2016/2/22@09:22:49(0000000089) < > [Vulkan] - Vulkan API version: 1.0.3
2016/2/22@09:22:49(0000000090) < > [Vulkan] - Device type: VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
2016/2/22@09:22:49(0000000091) < > [Vulkan] [ GPU 2 ]--------------------------------------
2016/2/22@09:22:49(0000000092) < > [Vulkan] - GPU name: GTX 960
2016/2/22@09:22:49(0000000093) < > [Vulkan] - DeviceID: 10DE-1401
2016/2/22@09:22:49(0000000094) < > [Vulkan] - Raw driver version: 1493811200
2016/2/22@09:22:49(0000000095) < > [Vulkan] - Vulkan API version: 1.0.3
2016/2/22@09:22:49(0000000096) < > [Vulkan] - Device type: VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
...









JeGX

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1786
    • View Profile
    • Geeks3D.com
(WIP) Vulkan plugin for GeeXLab: the RGB triangle!
« Reply #1 on: February 25, 2016, 08:36:58 AM »
More than two days to get the Hello World of graphics programming!

To get this RGB triangle, I had to code most of the important functionalities of the plugin: PSOs (pipeline state object),  SPIR-V shaders (as well as the tool to convert GLSL to SPIR-V), vertex and uniform buffers... and waste a lot of time with bugs!

It's cool to see this triangle, the starting point of all virtual worlds...


JeGX

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1786
    • View Profile
    • Geeks3D.com
(WIP) Vulkan plugin for GeeXLab: textures
« Reply #2 on: February 26, 2016, 05:38:58 PM »
The plugin has some basic texture management. The following demo shows a simple textured quad:


JeGX

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1786
    • View Profile
    • Geeks3D.com
(WIP) Vulkan plugin for GeeXLab: line width
« Reply #3 on: March 11, 2016, 05:47:36 PM »
Cool, the line width is back with Vulkan!

Line width: 4.0



Line width: 10.0


JeGX

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1786
    • View Profile
    • Geeks3D.com
(WIP) Vulkan plugin for GeeXLab: texture 2d array
« Reply #4 on: March 30, 2016, 05:14:03 PM »
An array of 2D textures is a simple way to use many textures (all with same dim). Here, a 8-texture array and a single quad rendered 8 times:



JeGX

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1786
    • View Profile
    • Geeks3D.com
(WIP) Vulkan plugin for GeeXLab: true type fonts
« Reply #5 on: March 30, 2016, 05:36:46 PM »
A very cool feature available in the next update of GeeXLab: a built-in support of True Type Fonts (no plugin required as in the case of the ftgl plugin) that works with all versions of OpenGL (GL2 / GL3+) and, of course, Vulkan.



JeGX

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1786
    • View Profile
    • Geeks3D.com
(WIP) Vulkan plugin for GeeXLab - Linux support
« Reply #6 on: April 14, 2016, 11:42:29 AM »
The Vulkan plugin now works on Linux too (tested on Linux Mint 17.3 + GeForce GTX 780 + R364.12). I can now release the first version of GeeXLab with Vulkan support...