Say Goodbye to GLSL Hacker and Welcome Back GeeXLab


GLSL Hacker is a project I started about 3 years ago with a first public version released on January 2013.

It was a heavely revamped version of a previous demotool called GeeXLab (the first public version of GeeXLab has been released around 6 years ago in this post).

The first version of GeeXLab was cool but the lack of low level control like binding a GPU program (or a texture) or changing a render state when you want, was, in some situations, a problem.

What I really needed (and this is still the case) is a demotool that allows me to do what I want when I want. This is an essential feature for my tests and my articles on Geeks3D.com. What’s more, the 3d routines behind the first GeeXLab have been developed more than a decade ago. The first GeeXLab had the same roots than Demoniak3D and Hyperion (Hyperion was the first demotool relased in 2004…).

That’s why I started a new project called GLSL Hacker. GLSL Hacker had all features I wanted: simple organization (init, per frame and resize scripts), support of several programming languages (Lua and Python) and low level. There is no deferred or retained modes: you have a direct access to render calls. Example:

gpu_program.bind(color_prog)
object.render(torus)

The first instruction sets the active GPU program in the renderer. All 3d objects after this first command will be rendered with color_prog. The second command renders the torus. It renders the torus now and not later (the torus render call is executed immediately and is not stored in an internal command list for later execution).

GLSL Hacker was based on a new set of 3D routines (with an OpenGL renderer) and was cross-platform. Perfect.


DX12 logo

Then came Direct3D 12 and its real time shading language called HLSL… Direct3D 12 is the new 3D API from Microsoft and shares the same principles than Apple’s Metal, AMD’s Mantle or Vulkan (first implementations of Vulkan should be available soon in graphics drivers).

I decided to take the train of these new APIs and I implemented a Direct3D 12 renderer in GLSL Hacker. It was an interesting task because I wanted GLSL Hacker to still support OpenGL (both old and modern OpenGL!). And then I realized that GLSL in the name of the demotool was no longer suited for a Direct3D capable tool. And what about Vulkan or Metal? That was the end of this good GLSL Hacker.

The choice of a new name is a difficult task. Especially today where all names and all twitters accounts are already taken (often by ghosts). That’s why I decided to dig up GeeXLab. After all, GeeXLab is a cool name, it’s not related to OpenGL nor Direct3D (nor Vulkan nor Metal) and GeeXLab has already its own twitter account: @GeeXLab as well as its homepage: www.geexlab.com (or www.geeks3d.com/geexlab/).


GeeXLab

In a word, GeeXLab is not a new tool: it’s GLSL Hacker with a new name. GeeXLab is based on the same source code than GLSL Hacker and is 100% compatible with all existing GLSL Hacker demos. The big difference with GLSL Hacker is that GeeXLab supports Direct3D 12 and its HLSL programs. Later, GeeXLab will also support Vulkan when NVIDIA/AMD’s first implementations will be ready…

2 comments