GeeXLab Released for Windows, Linux, macOS and Raspberry Pi

GeeXLab logo

1 – Release Highlights

A new version of GeeXLab is available for all platforms: Windows (32 and 64-bit), Linux (64-bit), Raspberry Pi / Raspbian (tested on Jessie and Stretch) and macOS (tested on latest macOS 10.12.6). I spent many hours these last days on the Raspberry Pi and macOS versions because GeeXLab was not fully operational on these platforms.

Raspberry Pi Input Management

On Raspberry Pi (ok I should say Raspbian!), the input management (keyboard and mouse) in the OpenGL ES version was broken. On some Raspberry Pi, you couldn’t quit the GL ES version of GeeXLab and above all, you couldn’t use the keyboard or mouse anymore, which is rather embarrasing (see this thread). The OpenGL 2.1 version didn’t suffer from the same bugs because low level input management is handled by X11. In the OpenGL ES version, there is no X11 to help in that task and keyboard, mouse and touchscreen have to be managed by low level code (you have to deal with input file descriptors). Now input devices are correctly detected and managed.

GeeXLab on Raspberry Pi
GeeXLab with OpenGL 2.1 support running a Shadertoy demo


The Return of GeeXLab on macOS

On macOS, GeeXLab has not been updated since november 2016, because of bugs in the window management. Since Xcode 7.0, the title bar is always empty: no system buttons nor title. This time, I took the time to investigate and I finally found the bug: Apple has changed some constants that are used to create a window (I like Apple for the great compatibility between versions of Xcode / macOS).

GeeXLab on macOS
GeeXLab 0.13.x on macOS. As you can see, the title bar is empty.

GeeXLab on macOS
GeeXLab on macOS. The bug is fixed!

GeeXLab OpenGL 4.0 tessellation demo on macOS
GeeXLab OpenGL 4.0 tessellation demo on macOS

I also fixed many small bugs / crashes releated to windows creation and management. Now GeeXLab for macOS works correctly and it’s a good thing.


Vulkan Support

On Windows and Linux, I added the support of tessellation in the Vulkan plugin and fixed few bugs including one related to the management of the swapchain. The Vulkan plugin seems to work properly on all GPUs (NVIDIA, AMD and Intel). I also updated the CPU / GPU synchronization code.

Vulkan API logo



On Windows, I added the support of LuaJIT. Lua is embedded in one of the core DLLs of GeeXLab and then I had to ship two DLLs with GeeXLab: one with regular Lua (version 5.3.4) and a second one with LuaJIT (where Lua is limited to 5.1.4). For example, in GeeXLab 64-bit there are:
– gxl_x64.dll (regular Lua)
– gxl_x64_luajit.dll (LuaJIT)

Then to use Lua 5.3.4 or LuaJIT, just rename the gxl_xxxx.dll file. GeeXLab is linked to gxl_x64.dll so as long as it finds this DLL, GeeXLab will run correctly.

LuaJIT in GeeXLab

2 – Downloads

The latest version of GeeXLab as well as code sample packs can be downloaded from THIS PAGE.

For bug-reports or feedbacks, a thread is available HERE.

3 – Changelog

Full changelog from beginning of time is available HERE.

Version - 2017.09.11
! [WINDOWS] updated Leap Motion plugin with Leap Motion SDK 3.2.0.
! [WINDOWS / LINUX] updated Vulkan plugin with latest Vulkan 1.0.60 header.
! [WINDOWS] updated OpenVR plugin with latest OpenVR SDK
! updated the GPU monitoring code of the Lua kx framework (v1.6) used by GeeXLab demos.
! [RPi] the RGB Matrix panel library has been updated for Raspbian Stretch.
! [RPi] in the OpenGL ES version, input management (keyboard and mouse) has been 
* [macOS] bugfix: system buttons and title bar are now correctly displayed for the 3D window.
  That was broken since Xcode 7.
* [macOS] bugfix: mouse position is now correctly updated.
* [macOS] bugfix: GeeXLab crashed when window was resized to fullscreen.
* [macOS] bugfix: GeeXLab window is now correctly displayed at startup.

Version - 2017.08.25
+ [WINDOWS] added support of LuaJIT.
+ [WINDOWS / LINUX] added support of tessellation in the Vulkan plugin.
* [WINDOWS / LINUX] fixed a bug in the swapchain management in the Vulkan plugin.
! [WINDOWS / LINUX] bugfixes and improvements in the Vulkan plugin.
- removed the vk_command_list_pipeline_barrier() function from 
 the gh_renderer lib.
! updated the Vulkan code of the Lua kx framework (v1.5) used by GeeXLab demos.
+ added pipeline_state_build_v3() to gh_renderer lib for the creation of a 
  pipeline state that will be used with a render target.
* fixed a parameter bug in the gh_texture.set_texel_2d_v2() in Lua.

Version - 2017.06.29
! [WINDOWS / LINUX] minor bugfixes and improvements in the Vulkan plugin.
! fixed minor bugs in the Lua kx framework used by GeeXLab demos.

Leave a Comment

Your email address will not be published. Required fields are marked *