TitaniumGL is a 3D opengl driver implementation. It is capable to use hardware graphics acceleration or software rendering. Under Windows it acts as a OpenGL to Direct3D wrapper (dx9). On other OS-es, it works as a multicore software render). If D3D acceleration is not available on Windows, then TitaniumGL switches to software rendering internally. TitaniumGL supports a wide variety of graphics cards and operating systems.
Project's goal is to support classic OpenGL on old and new graphics
cards with broken/bad or missing OpenGL drivers.
TitaniumGL is mainly designed for Windows 7+, but will also work on Windows 9x and XP. Linux,, FreeBSD, and ReactOS operation systems.
Under Windows, TitaniumGL provides the OpenGL
functionality withfull hardware 3d
acceleration,
based on directx and your GPU. TitaniumGL is not a classic wrapper, instead of translating OpenGL to equivalent Direct3D functions, it implements the entire graphics stack, by basically implementing a virtual GPU. This allows for vendor specific bug mitigations, allows support for wide range of architectures and hardware with great performance.
Under Linux, BSD and ReactOS,
TitaniumGL emulates the graphics card with CPU
cores.
TitaniumGL is also compatible with nvidia's 3d
vision (native stereo display).
___________________________________________________________________________
Video: Quake2 demo version running with 80 fps
___________________________________________________________________________
TitaniumGL for
Windows can provide hardware accelerated OpenGL, if you are not able to install
graphics drivers from your graphics card
manufacturer, but the Windows driver has built in d3d acceleration.
TitaniumGL for
Windows is compatible with Windows 98, Windows 98
SE, Windows ME, Windows 2000, Windows 2003,
Windows XP, Windows Vista, 7, 8, and 8.1, but it will require DirectX9 graphics card with 128 MB video memory for good experience.
To use hardware accelerated TitaniumGL
for Windows, you may need the latest DirectX 9 and
DirectX compatible drivers to your graphics card,
wich is mostly included and installed in your
Windows. If not, download them, and install
DirectX from Microsoft's webpage
Notice: Under win9x, DirectX9 is buggy, and not backwards compatible with DX5 class 3D accelerators. Therefore, XP is recommended.
Please note #1: DO
NOT COPY TITANIUMGL TO YOUR WINDOWS DIRECTORY
(unless, you know what are you doing!)
To use, you should copy the dll to the directory
of your game's executable file, then simply start
the game. No installation needed!
Please note #2: To
install TitaniumGL for Linux or FreeBSD, you must
overwrite libGL.so.1 in your system with
TitaniumGL's graphics driver. You may backup the
original file. Read the readme.txt, before you do
anything. If glxinfo renderer string says
,,TitaniumGL'', the installation was succesfull. LD_PRELOAD will usually not work properly due to the buggy initialization code of some modern Linux games.
2023,
07.
Bugfix and new Win95/98/Direct3D7 backend
-New DirectX 7 based Win98 test version released for old DX5/6/7 era graphics cards.
-Small bugfixes in light and material code.
-Fixed bugs with point and line rendering.
-Added support for SGIS multitexture (not in extension list for now).
-Decreased API overhead a bit in D3D mode when loading textures.
-Optimized the code on single-core systems.
-Fixed some issues with multitexturing.
-Fixed a bug resulting crash when resizing the rendering window in Windows in software rendered mode.
-Fixed some integer types when loading a texture.
-Added some missing functionality to glGet.
-Added glGetBooleanv.
-UV coordinates were lost sometimes, when rendering from lists.
-VBO code got silently broken due to compiler update. Problem solved.
-Fixed a bug when uploading IBO data with glBufferSubDataARB.
-Added some missing functionality to push and pop attrib and clientattribs.
-Fixed ALPHA test functionality in D3D wrapper mode.
-Fixed flickering and box bugs in Medal of Honor.
-Fixed vegetation alpha issues in newer versions of Super Tuxkart.
~
2023,
06.
Full rewrite and refactoring of TitaniumGL.
-64 bit Windows version released.
-New command batching system.
-D3D acceleration autodetection and software fallback system.
-New, faster D3D subsystem.
-New software renderer - approx 3-8x faster than the old one.
-Switching to different license
-Fixed some missing BGR, BGRA, ABGR formats when using glDrawPixels
-Improved stability with Windows 98
-TitaniumGL got fine tuned to support newer type of video games.
-TitaniumGL now supports classic OpenGL game builds released after 2020.
-Fully separated API and state tracker.
-New (less buggy) lighting code.
-Removed some ancient unused extensions.
-Minimizing D3D API interaction for better speed.
-2x-3x faster texture uploading.
-New batching system supports up to 32 threads.
-New threading system which scales better up to 3-4 cores.
-Fixed broken Quad Strip implementation.
-TitaniumGL will do less memory copy operations to send the vertices to the gpu than before.
-TitaniumGL will optimize and simplify d3d vertex formats for more efficient operation.
-Faster tesselation code.
-Efficient pointer caching for less intensive utilization of memory management.
~
2015,
03.
-Added beta ARM binaries (nofpu, vfp and vf3 compatibility).
-Added 5x86 linux binaries for legacy CPU-s
~
2014,
01.
-Driver released (well a few days still left until 2014, whatever).
-Added mip-mapping support for the software renderer
-5-25% generic performance gain
-Fixed some ,,dotting'' bugs with the software renderer
-Fixed some segmentation fault bugs (texture upload forgot to lock rendering...)
-Fixed a memory-pool related crash on linux
-32 bit binary now compiled again with i686 flag
-Software renderer now supports up to 128 threads instead of 24
~
2013,
12.
-Voodoo Rampage/Specter 1000/2000 is now supported and working.
~
2013,
08.
-A new hardware
rendered version released with better Windows9x
compatibility, for legacy computers
-Software rendered version now runs on win9x too
-TitaniumGL software renderer now uses
packet-based out-of-order rendering
-Software rendered version can now utilize up to
24 cores.
-TitaniumGL now uses smaller memory stack
-1.5x-2x speed-up in the software renderer when
using 4 core computers
~
2012,
03.
-Finally, the
linux version is released!
-Changed memory management: faster memory access
-Some potential double-free memory corruption
bugs fixed
~
2011,
12.
-Automatic mipmap
generation has been added
-Automatic aniso filtering has been added
-Interlaved arrays DONT force texturing to
enabled, this was a mistake
-Now, max number of display list incrased to 5000
-glIsTexture returned broken result if tex id was
0
Older versions:
2011,
11.
-Z test is now
disabled by default as the specification says
-Binded texture number is 0 again by default
-Fixed the handling of the multitexture combiners
-Tesselator algorythm is optimised (+30%
speed-up)
-Texture 0 can now properly handle textures (at
last i hope so)
-glGet on GL_ACTIVE_TEXTURE or
GL_MAX_3D_TEXTURE_SIZE_EXT did disasterous things
-glFrustum now can be used on texture matrix
-Interlaved arrays now force texturing to enabled
-From now, some ogl 1.2 and 1.3 EXT functions can
be requested without the EXT or ARB post-tag
~
2011,
09.
-FreeBSD alpha
(first test release) is released
-ReactOS alpha (first test release) is released
~
2011,
06.
-Removed a small
memory leak in display list creation
-Matrix stack depth was only 62 instead of 64
-Texture matrix stack depth was 2 instead of 4
-Fixed glGet with GL_TEXTURE_2D
-Semi-functioning TexGen stub added
-Added fake sphere and cube mapping
-glRasterPos2f display list encoding was broken
-glrotate/glscale/gltranslate/glmaterial display
list encoding was broken
-Some texenv was not properly stored in the
texture
-Default selected texture on TMU0 is now 1
-Permedia cards working again
~
2011, 05.
-Extension added:
GL_ARB_map_buffer_range
-Extension added: GL_OES_matrix_get
-Color buffer writemask support has been added
-Speed-up around matrix calculations
-Thread handle leaking fixed
-Strange protch has been fixed in windowed
rendering
-Number of acessible TMU's incared from 3 to 4
-Added a bounch of missing texture formats, like
4_4_4_4, 10_10_10_2, etc...
-Added fixed-point support
-Added experimental OpenGL ES 1.x support and ES
context creation
-glPushAttrib was broken
-Fixed some bugs with Tuxracer
-Fixed some bugs in Tuxkart
-Default variables around light handling was
broken
-Fixed missing colors with porrasturvat
-Fixed crash with stepmania
-Some fixes around lighting and material handling
-Fixed display list drawing when texturing is
disabled
-Improved multi-cpu support
-Added some missing parameters to glGet
-Added some missing caps to glIsEnabled
-Improved SEGFAULT protection in VBO data mapper
-Added multisampling support under linux
-Scissoring now affects clear
-Big data blocks can now processed on multiple
cpu cores
-Default viewport is fixed with SDL's buggy
window init
-A small speed improvement in vertex processing
-A matrix calculation bug fixed with some complex
matrixes
-Direct access to Directx's Hardware T&L
pipeline in some situations
-Texture loading time improved for big textures.
-Perspective vertex flickering fixed
-Around total 50-300% speed-up.
~
2010, 11.
-Extension added:
GL_OES_byte_coordinates
-Extension added: GL_ATI_meminfo
-Extension added: GL_EXT_texture_edge_clamp
-2x-3x speed up with fullscreen rendering with
some older graphics cards.
-Secondary and third texture pipeline was corrupt
in some cases with vertex array or vbo
-Recursive display list handling was broken
-Display list command compatibility was extended
-UV was broken with display lists with secondary
and third texture pipeline
-Default precisity of the perspective correction
is incrased
-Fixed a backbuffer creation issue
-LINE and POINT drawing code changed, now line
and point sizes are supported
-2d bitmap framebuffer-draw moving has been fixed
-Scissor testing is now a bit faster
-Vertex UB color array fixed
-Fixed some clamping issues
-Fixed texture size issue with graphics cards
with more than 2 gbyte vram
~
2010,
09.
-Array'a normal
pointer was ignored if type wasnt float
-glWindowPos was missing
-Copying texture image to system ram was missing
-Some texture handling function was not
initialised
properly, mading segfault possible in some cases
-interleaved data input is now accepted
-VBO is now created even if incoming parameters
are NULL
-Geometry with Quad strips was corrupt
-In windowed rendering it was a too big protch on
the top of window
-now, 16-bit only 3d vga-s also can be used with
32-bit only games
-Transposed matrix function pointers was broken
-Texture-loss fixed with S3 Trio3D and Permedia2
-Client attrib bits was broken (fixed tuxkart and
torcs)
-Fixed some alpha-bugs
~
2010,
06.
-Folowing
extensions added:
-GL_EXT_blend_func_separate
-GL_ARB_texture_env_combine
-GL_EXT_texture_env_add.
-The code is now compiled in 6x86 mode as
default.
-DLL imagebase modifyed.
-Scissor test has been fixed in D3D mode.
-Driver now can handle up to cpu cores.
WARNING: The author does not possess an OpenGL license
from SGI or Chronos, and makes no claim that TitaniumGL is in any
way a worthy replacement for OpenGL or associated
with SGI. USE AT YOUR OWN RISK. See license for legal information.