arm64 | HackLAB https://www.geeks3d.com/hacklab 3D Programming, Prototyping and Gamedev with GeeXLab Thu, 13 Mar 2025 07:32:28 +0000 en-US hourly 1 https://wordpress.org/?v=6.7.1 GeeXLab 0.63 released https://www.geeks3d.com/hacklab/20250313/geexlab-0-63-scriptable-proto-engine/ https://www.geeks3d.com/hacklab/20250313/geexlab-0-63-scriptable-proto-engine/#respond Thu, 13 Mar 2025 07:32:28 +0000 https://www.geeks3d.com/hacklab/?p=1773 A new version of GeeXLab is ready. GeeXLab is scriptable prototyping engine to create 2D/3D applications in Lua, Python3 and GLSL (OpenGL and Vulkan).

The post GeeXLab 0.63 released first appeared on HackLAB.]]>

1 – Downloads



Downloads

 

2 – Release Notes

GeeXLab 0.63.0 is available for Windows 32/64-bit, Linux x86-64 (GLIBC 2.31) and Linux arm64 (GLIBC 2.36).

This new version of GeeXLab is a maintenance version with minor updates (GPU monitoring plugin) and bug fixes.

Updated libraries

The following libraries have been updated to their latest versions:

Core libraries:

SQLite engine: version 3.49.1 (all platforms)

Plugin libraries:

GPU monitoring: new commercial names and better RTX 50 Series support.

 
GeeXLab 0.63.0 is behind all the following applications: FurMark 2.7, GPU Shark 2.7, ASUS FurMark 2 ROG Edition 2.7, MSI Kombustor 4.1.32 and GPU Caps Viewer 1.64.

 
GeeXLab 0.63 arm64 running on the Raspberry Pi 5:
GeeXLab 0.63 arm64 - Raspberry Pi 5

 

3 – Changelog

This changelog is intended for all versions of GeeXLab.

Full changelog from beginning of time is available HERE.

Version 0.63.0.0 - 2025.03.11
+ (2025.03.11) GPU monitoring plugin - added commercial name:
  . ASUS TUF Gaming RX 9070 OC
  . SAPPHIRE Nitro+ RX 9070 XT
  . XFX RX 9070 XT Mercury OC Magnetic Air
  . XFX RX 9070 Quicksilver
  . GIGABYTE RX 9070 XT Gaming OC
  . NVIDIA GeForce RTX 5070 Founders Edition
  . Zotac RTX 5090 SOLID
+ (2025.03.11) GPU monitoring: restored VRAM temperature and hotspot sensors reading for NVIDIA GPUs
  (hotspot not supported on RTX 50 Series).
+ (2025.03.11) GPU monitoring: added support of NVIDIA GeForce RTX 5070.
+ (2025.03.11) added input_int() and input_float() to gh_imgui lib.
+ (2025.03.09) GPU monitoring: reading of ROP count on Linux for NVIDIA GPUs with NVIDIA drivers.
! (2025.03.06) updated SQLite database engine to version 3.49.1.
+ (2025.03.06) added show_debug_log_window() to gh_imgui lib.
+ (2025.03.06) GPU monitoring: updated with latest Intel GPU lib.
+ (2025.03.05) GPU monitoring: added support of AMD Radeon RX 9070 XT, RX 9070 and RX 7650 GRE.
The post GeeXLab 0.63 released first appeared on HackLAB.]]>
https://www.geeks3d.com/hacklab/20250313/geexlab-0-63-scriptable-proto-engine/feed/ 0
GeeXLab 0.60 released for Windows, Linux and ARM64 (*** UPDATED: v0.60.2 for Windows ***) https://www.geeks3d.com/hacklab/20241001/geexlab-0-60-released-for-windows-linux-and-arm64/ https://www.geeks3d.com/hacklab/20241001/geexlab-0-60-released-for-windows-linux-and-arm64/#respond Tue, 01 Oct 2024 09:03:29 +0000 https://www.geeks3d.com/hacklab/?p=1754 GeeXLab 0.60.0, the best prototyping engine in the known universe and beyond, is out on Windows, Linux and Raspberry Pi platforms with bug fixes + improvements.

The post GeeXLab 0.60 released for Windows, Linux and ARM64 (*** UPDATED: v0.60.2 for Windows ***) first appeared on HackLAB.]]>

1 – Downloads



Downloads

 

2 – Release Notes

GeeXLab 0.60.0 is available for Windows 32/64-bit, Linux 64-bit (GLIBC 2.31) and ARM64 (GLIBC 2.36).

This new version of GeeXLab brings many small changes, bug fixes and improvements.

Updated libraries

The following libraries have been updated to their latest versions:

Core libraries:
Lua engine: version 5.4.7 (all platforms)
Dear ImGui: version 1.91.1 (all platforms)
SQLite engine: version 3.46.1 (all platforms)
curl: version 8.10.0 (windows)
LuaSocket: version 3.1.0 (all platforms)

Plugin libraries:
FFmpeg: version 7.0.2 (windows – other platforms: 7.0)
ASSIMP: version 5.4.2 (all platforms)
PhysX 5: version 5.4.0 (windows)
Python 3: version 3.12.6 (windows)

 
GeeXLab 0.60.0 is behind all the following applications: FurMark 2.4, GPU Shark 2.4, ASUS FurMark 2 ROG Edition 2.4, YAFFplayer 0.10.0, h4shg3n 0.5.5, MSI Kombustor 4.1.30 and MadView3D 0.5.0! That’s why this release took me a bit time to finalize.

 

arm64 / aarch64 and Raspberry Pi platforms

A word about arm64 / aarch64 platform. Now GeeXLab is available in two flavors for arm64: one pure arm64 version and one arm64 version for Raspberry Pi. Both versions have been compiled on Raspberry Pi OS Bookworm on a RPi 5 hardware. The pure arm64 version should work on any Linux for arm64 with GLIBC 2.36 or higher. I don’t have a non-RPi arm64 platform, so if you, dear reader, have such a platform, please try to launch GeeXLab and let me know if it works. The second version is still for arm64 but specifically for Raspberry Pi hardware / OS: this version has dependencies with the RGBA Led Matrix support and GPIO support using WiringPi.

A second word about arm64 versions. GLIBC 2.36 is now required because GeeXLab is now compiled on the Raspberry Pi 5 board with Raspberry Pi OS Bookworm (Debian 12). It’s now a pleasure to work with the RPi 5, this board is fast and everything run smoothly (except Xwayland that still does not work). The latest iteration of Raspberry Pi OS Bookworm (July 4th 2024) seems to work on all Raspberry Pi hardware (RPi3, RPi4 and RPi5) that’s why Debian 12 Bookworm is now my new OS for RPi development.

GeeXLab running on a arm64 platform (Raspberry Pi)

 

NVIDIA Vulkan driver on Windows

Let’s quickly talk about the gh_renderer.bind_render_window() added to GeeXLab 0.60.1. This function is called in the startup demo of GeeXLab (in the startup-demo/ folder in init.lua). The call to bind_render_window() deserves an explanation.

Without this call, the startup demo crashes if there are two NVIDIA graphics cards in the system. In my development machine, I have a GeForce RTX 2070 + GeForce GT 1030 drove by R561.09. If I remove the GT 1030, the demo works fine. With both cards, the demo crashes. This is an OpenGL demo that in middle of the init script, initializes Vulkan and reads Vulkan information (see InitVkInfo()). Any OpenGL call after InitVkInfo() leads to a crash (OpenGL function pointers seem correct but crash when we called them). After few hours of debugging, I had the feeling that the crash happened as if the OpenGL context was lost or not properly restored after Vulkan calls. That’s why I tested with bind_render_window() and… YES, that fixed the crash! The bind_render_window() function is a wrapper around wglMakeCurrent.

However, it’s not a victory. The crash is still there in 32-bit. With bind_render_window() the crash disappears in 64-bit but not in 32-bit.

Duplicated Vulkan devices

The other thing is that with 2 graphics cards, the NVIDIA Vulkan driver duplicates all Vulkan physical devices. Instead of detecting
two physical devices (the RTX 2070 and the GT 1030), the NVIDIA Vulkan driver returns:
– GPU 0: NVIDIA GeForce RTX 2070
– GPU 1: NVIDIA GeForce RTX 2070
– GPU 2: NVIDIA GeForce GT 1030
– GPU 3: NVIDIA GeForce GT 1030

There is probably a bug in the NV VK driver. I tried to uninstall it (I used the latest DDU 18.0.8 for that), reinstalled it, but no change, any Vulkan utility (GPU Shark 2, GPU Caps Viewer, Vulkan Capability Viewer, vkinfo, GLview) still displayed 4 devices…

Modern graphics programming is blood, sweat and pain!


Angry JeGX programming

 

3 – Changelog

This changelog is intended for all versions of GeeXLab.

Full changelog from beginning of time is available HERE.

Version 0.60.2.0 - 2024.10.03
* (2024.10.03) (lua) fixed a memory leak in gh_sqlite3.db_column_get_text() 
  and gh_sqlite3.db_column_get_text_v2().
! (2024.10.02) added return value to gh_utils.clipboard_set_text().
* (2024.10.02) (windows) fixed a bug in gh_utils.clipboard_set_text().

Version 0.60.1.0 - 2024.09.30
+ (2024.09.30) (windows / lua) added bind_render_window() to gh_renderer. 

Version 0.60.0.0 - 2024.09.27
+ (2024.09.22) added get_gpu_type() to gh_gml lib. This function returns the 
  type of the GPU: integrated or discrete.
+ (2024.09.22) added get_content_region_available() to gh_imgui.
* (2024.09.22) fixed bug in gh_imgui.begin_child_v2(). 
! (2024.09.17) updated curl support with latest version 8.10.0
! (2024.09.17) updated Python 3.12 plugin with latest Python 3.12.6.
* (2024.09.12) fixed a crash in gh_imgui.input_text() / input_text_multiline() if 
  initial_text is not valid.
+ (2024.09.11) added file_browser_is_opened() to to gh_imgui lib.
! (2024.09.10) updated imgui-filebrowser support (set of gh_imgui.file_browser_xxxxx() functions) 
  with latest version. 
* (2024.09.06) fixed a bug in load_textures_from_zip() and load_textures_from_zip_v2()
  of gh_model lib. The textures_dir parameter was not used.
! (2024.09.04) updated Dear ImGui support with latest version 1.91.1.
+ (2024.08.15) added text_link() and text_link_open_url() to gh_imgui lib.
! (2024.08.15) updated SQLite 3 engine with version 3.46.1.
! (2024.08.15) updated ASSIMP plugin with version 5.4.2.
! (2024.08.15) (Windows) updated GPU monitoring plugin with latest NVAPI R560.
! (2024.08.08) (Windows) updated FFmpeg plugin with latest FFmpeg 7.0.2 SDK.
! (2024.07.02) updated constants in {GeeXLab folder}/libs/lua/imgui.lua and {GeeXLab folder}/libs/python/imgui.py.
! (2024.07.02) (Windows) updated PhysX 5 plugin with latest PhysX 5.4.0 SDK.
! (2024.07.01) updated Lua engine with version 5.4.7.
! (2024.05.30) improved the management of Python 3 plugins (terminate and immediate mode execution on Windows).  
! (2024.05.27) (Windows) improved Intel GPU monitoring. The GPU monitoring is now loaded and initialized earlier in GeeXLab startup phase.
! (2024.05.14) (Windows) the menu bar is now disabled by default.
+ (2024.05.13) added init_v2() to gh_imgui with the possibility to disable ImGui ini file.
+ (2024.05.13) added new functions (v2) to gh_sqlite3 lib to deal with multiple SQLite statements.
! (2024.04.28) updated LuaSocket with version 3.1.0
+ (2024.04.28) gh_utils lib in Lua: added widechar versions (suffixed by _w) of sys_exec(), shell_exe(), shell_exe_v2(), process_create(), open_url() and trace().
+ (2024.04.28) Lua: added wprint(), widechar version of global function print().
* (2024.04.28) fixed a memory leak in gh_utils.clipboard_set_text().
* (2024.04.28) fixed a memory leak in gh_utils.buffer_read_string().
The post GeeXLab 0.60 released for Windows, Linux and ARM64 (*** UPDATED: v0.60.2 for Windows ***) first appeared on HackLAB.]]>
https://www.geeks3d.com/hacklab/20241001/geexlab-0-60-released-for-windows-linux-and-arm64/feed/ 0