Skip to content

Releases: ladislawv/ogles2

ogles2.library 1.3 (release 1.3.3): OpenGL ES 2.0 for AmigaOS 3 on PiStorm

Choose a tag to compare

@ladislawv ladislawv released this 02 Nov 12:14

What's new in 1.3.3

Three fixes found while building ogles3.library; the library is still version 1.3 (dated 02.11.2026), so programs built for 1.3 need nothing new.

  • The shader compiler gives the same binary whatever it compiled before. When it compiled several programs in one run, a program without textures could inherit a previous program's texture setting (32-bit float or not), so the same shader came out slightly different depending on the order (light after tex: 7 bytes of its binary). Shader caches compile again with the new compiler automatically.
  • glDrawRangeElements with a range wider than the vertex arrays draws. The range need only contain the indices actually used; a draw whose declared end ran past the vertex buffer was dropped. The indices' own range is used then.
  • Library structs no longer packed by accident. A header left byte packing switched on for everything after it, so some 32-bit fields sat at odd addresses and were read a byte at a time.

Checked on an A1200: the GLES2 test packages pass as before, the reference images are byte for byte those of 1.3.2's tests, and gl4es' gears run as fast as with 1.3.2.

In 1.3.2

A repack of 1.3.1: the example programs (Examples/, Examples/SDL/) were archived without the AmigaDOS execute bit, so they would not start after unpacking. Nothing else changed; the library is still version 1.3. If you already unpacked 1.3.1, Protect ogles2/Examples/#? +e (and ogles2/Examples/SDL/#? +e) does the same.

Updated 2026-10-24: the SDL archive's SDL3 now runs its atomics under Forbid()/Permit(), about twice as fast under contention.

In 1.3.1

A rebuild of 1.3 with two fixes; the library is still version 1.3 (dated 21.10.2026), so programs built for 1.3 need nothing new.

  • Full-screen SDL windows drawn without the copy. SDL's full screen is a borderless window covering a screen of its own; ogles2 rendered it into an offscreen bitmap, copied it at every swap and waited for the frame. Such a window is now drawn straight into its screen, and the swap returns as soon as the frame is submitted. In the Doom 3 port at 1920x1080 the swap fell from 53 ms to 1.3 ms a frame (7.8 to 16.4 fps).
  • SDL archive: SDL2's relative mouse mode for the amigaos3 driver (mouse look no longer stops at the screen's edge), its AHI audio no longer plays byte-swapped (it was noise at every volume), and SDL's atomics no longer spin: an application with sound could freeze the whole Amiga at random, its audio thread spinning on a lock the application held.

OpenGL ES 2.0 for classic Amigas with a PiStorm, drawn by the Raspberry Pi 4's VideoCore GPU. Real programmable shaders on AmigaOS 3.x, source-compatible with AmigaOS 4's ogles2.library.

Highlights

  • Full GLSL ES 1.00 shaders, compiled by Mesa's V3D compiler – on the Amiga itself, or ahead of time and shipped with the program for instant start.
  • The whole GLES 2.0 core plus 32 extensions (164 entry points): framebuffer objects, float and depth textures, S3TC/DXT and ETC1, up to four render targets, clip control, 4x MSAA with alpha-to-coverage, vertex texture fetch, 32 texture units, shared contexts across tasks, vsync.
  • Tested against Khronos' dEQP-GLES2: of the 17,165 must-pass cases, the only failures are 25 cube-map cases from one documented difference (see below).
  • Fast: Quake III Arena with ioquake3's GLES2 renderer runs about 30% faster than on MiniGL (80.4 vs 61.3 fps, timedemo four, 640x480, A1200 with a Pi 4). Its ready-to-run package is in ioq3-amiga.
  • SDL2 and SDL3 with an ogles2 backend (separate developer archive), and gl4es for desktop-OpenGL programs.
  • Nothing to install if you don't want to: a program finds ogles2.library in its own libs/ drawer, and its shader binaries and shader records in shaders/.

Downloads

Archive For
ogles2-1.3.3.lha Users: the library, the shader compiler, an installer, OGLES2Log, four examples
ogles2-1.3.3-sdk.lha Amiga programmers: the same plus the SDK (headers, GCC and vbcc import libraries, autodoc, GettingStarted.txt, example sources)
ogles2-1.3.3-sdk.zip Cross-development on a PC: the SDK alone
ogles2-1.3.3-sdl.lha / .zip SDL programmers: SDL2 and SDL3 with the ogles2 backend; unpacks over the SDK

SHA256SUMS holds the checksums.

Examples (in the user archive)

  • triangle, cube – the basics: a window, buffers, textures, depth.
  • boingocean – the Boing ball floating on a ray-marched ocean, all in shaders; 60 fps at 640x480 (boingocean FULLSCREEN).
  • boing2026 – the 1984 Boing Ball in a neon room: shadow mapping, floor reflection, bloom, 4x MSAA; 53 fps at 640x480.

Requirements

  • An Amiga with a PiStorm and a Raspberry Pi 4B or CM4, Emu68 (tested: 1.1.0-beta.1)
  • AmigaOS 3.x (tested on 3.2) with Picasso96 or CyberGraphX
  • A 32-bit RTG screen mode

Installing

Unpack ogles2-1.3.3.lha and run Install-ogles2: it asks before each step (LIBS:ogles2.library, LIBS:v3dglslc, SYS:OGLES2Cache with its assign, C:OGLES2Log). Or skip installing: copy Libs/ogles2.library into a program's libs/ drawer.

The shader compiler (v3dglslc, 19 MB) is only needed by programs that write shaders at run time (gl4es, SDL's GLES2 renderer); programs that ship their shader binaries run without it.

Known differences from GLES 2.0

  • Cube maps are always filtered seamlessly across faces (GLES 3 behaviour); 25 dEQP cases fail because of it.
  • With EXT_draw_buffers, gl_FragColor goes to the first render target only.
  • Framebuffer objects are not multisampled; only the default framebuffer is.
  • 32-bit float textures are sampled with nearest filtering, and only 8-bit (and 16-bit packed) formats can be rendered into.
  • The context tag values differ from AmigaOS 4's: OS4 source compiles unchanged, but binaries must be rebuilt.

Full details: SDK/doc/ogles2.doc (--deviations--).

Licence

ogles2.library incorporates PiStorm3D's V3D backend and is under the Hyperion MiniGL Open Source License. Everything else written for the project – including the import libraries and headers programs link against – is MIT, so programs of any licence may use it. The shader compiler is Mesa (MIT). See LICENSE and licences/.

Credits

Developed by R-Typer and Ladislawv, with Claude Opus 5.5 (Anthropic's AI assistant). Built on PiStorm3D by Steffen "MagicSN" Haeuser and its V3D backend by Dennis van der Boon, the V3D assembler and documentation by Macoy Madson, and Mesa's V3D driver and compiler (Broadcom, VMware and the Mesa contributors). Thanks to Michal Schulz for Emu68 and to Claude Schwarz and contributors for PiStorm.

ogles2.library 1.3 (release 1.3.2): OpenGL ES 2.0 for AmigaOS 3 on PiStorm

Choose a tag to compare

@ladislawv ladislawv released this 23 Oct 18:40

What's new in 1.3.2

A repack of 1.3.1: the example programs (Examples/, Examples/SDL/) were archived without the AmigaDOS execute bit, so they would not start after unpacking. Nothing else changed; the library is still version 1.3. If you already unpacked 1.3.1, Protect ogles2/Examples/#? +e (and ogles2/Examples/SDL/#? +e) does the same.

Updated 2026-10-24: the SDL archive's SDL3 now runs its atomics under Forbid()/Permit(), about twice as fast under contention.

In 1.3.1

A rebuild of 1.3 with two fixes; the library is still version 1.3 (dated 21.10.2026), so programs built for 1.3 need nothing new.

  • Full-screen SDL windows drawn without the copy. SDL's full screen is a borderless window covering a screen of its own; ogles2 rendered it into an offscreen bitmap, copied it at every swap and waited for the frame. Such a window is now drawn straight into its screen, and the swap returns as soon as the frame is submitted. In the Doom 3 port at 1920x1080 the swap fell from 53 ms to 1.3 ms a frame (7.8 to 16.4 fps).
  • SDL archive: SDL2's relative mouse mode for the amigaos3 driver (mouse look no longer stops at the screen's edge), its AHI audio no longer plays byte-swapped (it was noise at every volume), and SDL's atomics no longer spin: an application with sound could freeze the whole Amiga at random, its audio thread spinning on a lock the application held.

OpenGL ES 2.0 for classic Amigas with a PiStorm, drawn by the Raspberry Pi 4's VideoCore GPU. Real programmable shaders on AmigaOS 3.x, source-compatible with AmigaOS 4's ogles2.library.

Highlights

  • Full GLSL ES 1.00 shaders, compiled by Mesa's V3D compiler – on the Amiga itself, or ahead of time and shipped with the program for instant start.
  • The whole GLES 2.0 core plus 32 extensions (164 entry points): framebuffer objects, float and depth textures, S3TC/DXT and ETC1, up to four render targets, clip control, 4x MSAA with alpha-to-coverage, vertex texture fetch, 32 texture units, shared contexts across tasks, vsync.
  • Tested against Khronos' dEQP-GLES2: of the 17,165 must-pass cases, the only failures are 25 cube-map cases from one documented difference (see below).
  • Fast: Quake III Arena with ioquake3's GLES2 renderer runs about 30% faster than on MiniGL (80.4 vs 61.3 fps, timedemo four, 640x480, A1200 with a Pi 4). Its ready-to-run package is in ioq3-amiga.
  • SDL2 and SDL3 with an ogles2 backend (separate developer archive), and gl4es for desktop-OpenGL programs.
  • Nothing to install if you don't want to: a program finds ogles2.library in its own libs/ drawer, and its shader binaries and shader records in shaders/.

Downloads

Archive For
ogles2-1.3.2.lha Users: the library, the shader compiler, an installer, OGLES2Log, four examples
ogles2-1.3.2-sdk.lha Amiga programmers: the same plus the SDK (headers, GCC and vbcc import libraries, autodoc, GettingStarted.txt, example sources)
ogles2-1.3.2-sdk.zip Cross-development on a PC: the SDK alone
ogles2-1.3.2-sdl.lha / .zip SDL programmers: SDL2 and SDL3 with the ogles2 backend; unpacks over the SDK

SHA256SUMS holds the checksums.

Examples (in the user archive)

  • triangle, cube – the basics: a window, buffers, textures, depth.
  • boingocean – the Boing ball floating on a ray-marched ocean, all in shaders; 60 fps at 640x480 (boingocean FULLSCREEN).
  • boing2026 – the 1984 Boing Ball in a neon room: shadow mapping, floor reflection, bloom, 4x MSAA; 53 fps at 640x480.

Requirements

  • An Amiga with a PiStorm and a Raspberry Pi 4B or CM4, Emu68 (tested: 1.1.0-beta.1)
  • AmigaOS 3.x (tested on 3.2) with Picasso96 or CyberGraphX
  • A 32-bit RTG screen mode

Installing

Unpack ogles2-1.3.2.lha and run Install-ogles2: it asks before each step (LIBS:ogles2.library, LIBS:v3dglslc, SYS:OGLES2Cache with its assign, C:OGLES2Log). Or skip installing: copy Libs/ogles2.library into a program's libs/ drawer.

The shader compiler (v3dglslc, 19 MB) is only needed by programs that write shaders at run time (gl4es, SDL's GLES2 renderer); programs that ship their shader binaries run without it.

Known differences from GLES 2.0

  • Cube maps are always filtered seamlessly across faces (GLES 3 behaviour); 25 dEQP cases fail because of it.
  • With EXT_draw_buffers, gl_FragColor goes to the first render target only.
  • Framebuffer objects are not multisampled; only the default framebuffer is.
  • 32-bit float textures are sampled with nearest filtering, and only 8-bit (and 16-bit packed) formats can be rendered into.
  • The context tag values differ from AmigaOS 4's: OS4 source compiles unchanged, but binaries must be rebuilt.

Full details: SDK/doc/ogles2.doc (--deviations--).

Licence

ogles2.library incorporates PiStorm3D's V3D backend and is under the Hyperion MiniGL Open Source License. Everything else written for the project – including the import libraries and headers programs link against – is MIT, so programs of any licence may use it. The shader compiler is Mesa (MIT). See LICENSE and licences/.

Credits

Developed by R-Typer and Ladislawv, with Claude Opus 5.5 (Anthropic's AI assistant). Built on PiStorm3D by Steffen "MagicSN" Haeuser and its V3D backend by Dennis van der Boon, the V3D assembler and documentation by Macoy Madson, and Mesa's V3D driver and compiler (Broadcom, VMware and the Mesa contributors). Thanks to Michal Schulz for Emu68 and to Claude Schwarz and contributors for PiStorm.

ogles2.library 1.3 (release 1.3.1): OpenGL ES 2.0 for AmigaOS 3 on PiStorm

Choose a tag to compare

@RTyp3r RTyp3r released this 21 Oct 20:57

What's new in 1.3.1

A rebuild of 1.3 with two fixes; the library is still version 1.3 (dated 21.10.2026), so programs built for 1.3 need nothing new.

  • Full-screen SDL windows drawn without the copy. SDL's full screen is a borderless window covering a screen of its own; ogles2 rendered it into an offscreen bitmap, copied it at every swap and waited for the frame. Such a window is now drawn straight into its screen, and the swap returns as soon as the frame is submitted. In the Doom 3 port at 1920x1080 the swap fell from 53 ms to 1.3 ms a frame (7.8 to 16.4 fps).
  • SDL archive: SDL2's relative mouse mode for the amigaos3 driver (mouse look no longer stops at the screen's edge), its AHI audio no longer plays byte-swapped (it was noise at every volume), and (updated 2026-10-22) SDL's atomics no longer spin: an application with sound could freeze the whole Amiga at random, its audio thread spinning on a lock the application held.

OpenGL ES 2.0 for classic Amigas with a PiStorm, drawn by the Raspberry Pi 4's VideoCore GPU. Real programmable shaders on AmigaOS 3.x, source-compatible with AmigaOS 4's ogles2.library.

Highlights

  • Full GLSL ES 1.00 shaders, compiled by Mesa's V3D compiler – on the Amiga itself, or ahead of time and shipped with the program for instant start.
  • The whole GLES 2.0 core plus 32 extensions (164 entry points): framebuffer objects, float and depth textures, S3TC/DXT and ETC1, up to four render targets, clip control, 4x MSAA with alpha-to-coverage, vertex texture fetch, 32 texture units, shared contexts across tasks, vsync.
  • Tested against Khronos' dEQP-GLES2: of the 17,165 must-pass cases, the only failures are 25 cube-map cases from one documented difference (see below).
  • Fast: Quake III Arena with ioquake3's GLES2 renderer runs about 30% faster than on MiniGL (80.4 vs 61.3 fps, timedemo four, 640x480, A1200 with a Pi 4). Its ready-to-run package is in ioq3-amiga.
  • SDL2 and SDL3 with an ogles2 backend (separate developer archive), and gl4es for desktop-OpenGL programs.
  • Nothing to install if you don't want to: a program finds ogles2.library in its own libs/ drawer, and its shader binaries and shader records in shaders/.

Downloads

Archive For
ogles2-1.3.1.lha Users: the library, the shader compiler, an installer, OGLES2Log, four examples
ogles2-1.3.1-sdk.lha Amiga programmers: the same plus the SDK (headers, GCC and vbcc import libraries, autodoc, GettingStarted.txt, example sources)
ogles2-1.3.1-sdk.zip Cross-development on a PC: the SDK alone
ogles2-1.3.1-sdl.lha / .zip SDL programmers: SDL2 and SDL3 with the ogles2 backend; unpacks over the SDK

SHA256SUMS holds the checksums.

Examples (in the user archive)

  • triangle, cube – the basics: a window, buffers, textures, depth.
  • boingocean – the Boing ball floating on a ray-marched ocean, all in shaders; 60 fps at 640x480 (boingocean FULLSCREEN).
  • boing2026 – the 1984 Boing Ball in a neon room: shadow mapping, floor reflection, bloom, 4x MSAA; 53 fps at 640x480.

Requirements

  • An Amiga with a PiStorm and a Raspberry Pi 4B or CM4, Emu68 (tested: 1.1.0-beta.1)
  • AmigaOS 3.x (tested on 3.2) with Picasso96 or CyberGraphX
  • A 32-bit RTG screen mode

Installing

Unpack ogles2-1.3.1.lha and run Install-ogles2: it asks before each step (LIBS:ogles2.library, LIBS:v3dglslc, SYS:OGLES2Cache with its assign, C:OGLES2Log). Or skip installing: copy Libs/ogles2.library into a program's libs/ drawer.

The shader compiler (v3dglslc, 19 MB) is only needed by programs that write shaders at run time (gl4es, SDL's GLES2 renderer); programs that ship their shader binaries run without it.

Known differences from GLES 2.0

  • Cube maps are always filtered seamlessly across faces (GLES 3 behaviour); 25 dEQP cases fail because of it.
  • With EXT_draw_buffers, gl_FragColor goes to the first render target only.
  • Framebuffer objects are not multisampled; only the default framebuffer is.
  • 32-bit float textures are sampled with nearest filtering, and only 8-bit (and 16-bit packed) formats can be rendered into.
  • The context tag values differ from AmigaOS 4's: OS4 source compiles unchanged, but binaries must be rebuilt.

Full details: SDK/doc/ogles2.doc (--deviations--).

Licence

ogles2.library incorporates PiStorm3D's V3D backend and is under the Hyperion MiniGL Open Source License. Everything else written for the project – including the import libraries and headers programs link against – is MIT, so programs of any licence may use it. The shader compiler is Mesa (MIT). See LICENSE and licences/.

Credits

Developed by R-Typer and Ladislawv, with Claude Opus 5.5 (Anthropic's AI assistant). Built on PiStorm3D by Steffen "MagicSN" Haeuser and its V3D backend by Dennis van der Boon, the V3D assembler and documentation by Macoy Madson, and Mesa's V3D driver and compiler (Broadcom, VMware and the Mesa contributors). Thanks to Michal Schulz for Emu68 and to Claude Schwarz and contributors for PiStorm.

ogles2.library 1.3: OpenGL ES 2.0 for AmigaOS 3 on PiStorm

Choose a tag to compare

@ladislawv ladislawv released this 18 Oct 14:43

OpenGL ES 2.0 for classic Amigas with a PiStorm, drawn by the Raspberry Pi 4's VideoCore GPU. Real programmable shaders on AmigaOS 3.x, source-compatible with AmigaOS 4's ogles2.library.

Highlights

  • Full GLSL ES 1.00 shaders, compiled by Mesa's V3D compiler – on the Amiga itself, or ahead of time and shipped with the program for instant start.
  • The whole GLES 2.0 core plus 32 extensions (164 entry points): framebuffer objects, float and depth textures, S3TC/DXT and ETC1, up to four render targets, clip control, 4x MSAA with alpha-to-coverage, vertex texture fetch, 32 texture units, shared contexts across tasks, vsync.
  • Tested against Khronos' dEQP-GLES2: of the 17,165 must-pass cases, the only failures are 25 cube-map cases from one documented difference (see below).
  • Fast: Quake III Arena with ioquake3's GLES2 renderer runs about 30% faster than on MiniGL (80.4 vs 61.3 fps, timedemo four, 640x480, A1200 with a Pi 4). Its ready-to-run package is in ioq3-amiga.
  • SDL2 and SDL3 with an ogles2 backend (separate developer archive), and gl4es for desktop-OpenGL programs.
  • Nothing to install if you don't want to: a program finds ogles2.library in its own libs/ drawer, and its shader binaries and shader records in shaders/.

Downloads

Archive For
ogles2-1.3.lha Users: the library, the shader compiler, an installer, OGLES2Log, four examples
ogles2-1.3-sdk.lha Amiga programmers: the same plus the SDK (headers, GCC and vbcc import libraries, autodoc, GettingStarted.txt, example sources)
ogles2-1.3-sdk.zip Cross-development on a PC: the SDK alone
ogles2-1.3-sdl.lha / .zip SDL programmers: SDL2 and SDL3 with the ogles2 backend; unpacks over the SDK

SHA256SUMS holds the checksums.

Examples (in the user archive)

  • triangle, cube – the basics: a window, buffers, textures, depth.
  • boingocean – the Boing ball floating on a ray-marched ocean, all in shaders; 60 fps at 640x480 (boingocean FULLSCREEN).
  • boing2026 – the 1984 Boing Ball in a neon room: shadow mapping, floor reflection, bloom, 4x MSAA; 53 fps at 640x480.

Requirements

  • An Amiga with a PiStorm and a Raspberry Pi 4B or CM4, Emu68 (tested: 1.1.0-beta.1)
  • AmigaOS 3.x (tested on 3.2) with Picasso96 or CyberGraphX
  • A 32-bit RTG screen mode

Installing

Unpack ogles2-1.3.lha and run Install-ogles2: it asks before each step (LIBS:ogles2.library, LIBS:v3dglslc, SYS:OGLES2Cache with its assign, C:OGLES2Log). Or skip installing: copy Libs/ogles2.library into a program's libs/ drawer.

The shader compiler (v3dglslc, 19 MB) is only needed by programs that write shaders at run time (gl4es, SDL's GLES2 renderer); programs that ship their shader binaries run without it.

Known differences from GLES 2.0

  • Cube maps are always filtered seamlessly across faces (GLES 3 behaviour); 25 dEQP cases fail because of it.
  • With EXT_draw_buffers, gl_FragColor goes to the first render target only.
  • Framebuffer objects are not multisampled; only the default framebuffer is.
  • 32-bit float textures are sampled with nearest filtering, and only 8-bit (and 16-bit packed) formats can be rendered into.
  • The context tag values differ from AmigaOS 4's: OS4 source compiles unchanged, but binaries must be rebuilt.

Full details: SDK/doc/ogles2.doc (--deviations--).

Licence

ogles2.library incorporates PiStorm3D's V3D backend and is under the Hyperion MiniGL Open Source License. Everything else written for the project – including the import libraries and headers programs link against – is MIT, so programs of any licence may use it. The shader compiler is Mesa (MIT). See LICENSE and licences/.

Credits

Developed by R-Typer and Ladislawv, with Claude Opus 5.5 (Anthropic's AI assistant). Built on PiStorm3D's V3D backend by Steffen "MagicSN" Haeuser, the V3D assembler and documentation by Macoy Madson, and Mesa's V3D driver and compiler (Broadcom, VMware and the Mesa contributors). Thanks to Michal Schulz for Emu68 and to Claude Schwarz and contributors for PiStorm.