STG chip history
STG4000 series

Following the switch to TSMC for the NV4 it was announced by STM on the 8th April 1999 that they were entering a strategic partnership with VideoLogic, later renamed to Imagination Technologies (ImgTec), to use the PowerVR architecture in a new range of STM produced graphics chips. The STG4000 series of chips were branded as Kyro and based on the PowerVR series 3 architecture. It was also known variously as PVR350 and NP1 in the driver source.
The PowerVR architecture took a different approach to rendering compared to the typical immediate mode forward rendering that most other graphics hardware used. In this process as soon as primitives are sent to the hardware it starts rendering them. This means the order they are sent matters and it is possible the same pixel in the framebuffer could get rendered several times, called overdraw, which wastes texture reads and memory bandwidth.
Instead the series 3 used a tile based architecture to implement deferred rendering (TBDR). In this the framebuffer (screen) is split up into tiles of a particular size, for example 32x16 pixels as used in the STG4000. As primitives are sent to the hardware they are stored rather than rendered, with each tile maintaining a list of which primitives cover all or part of the tile. When all the primitives have been captured (or the buffer storing them is full, causing it to be flushed) each tile is processed. The primitive for each pixel in the tile is determined using an internal z-buffer, then rendered. This means each pixel is generally processed only once, saving a significant amount of bandwidth for texture reads and overdraw.
The architecture featured:
- 32bit Z/Stencil buffer
- Deferred Texturing
- Environment Mapped Bump Mapping
- DirectX Texture compression (DXT1/S3TC)
- Full 8 layers Multitexturing support
- Full Scene Anti Aliasing
STG4000X aka Kyro

Specification:
- 0.25µm
- 115/115/270MHz core/mem/RAMDAC
- 16-64MB SD/SGRAM for 1.8GB/s bandwidth
- 2 Render pipelines, with 1 Texture Mapping Unit per pipeline
- 230M/Pixel fillrate
- 4x AGP

Announced during Computex 2000 in Taipei, Taiwan on 6th June 2000, this was the first version of the Kyro. Products utilising it included:
- Club3D KYRO I CLK-1064TV
- Ennyah Technologies Michelan KYRO 3D Pro K4000
- Hercules 3D Prophet 4000XT
- Kifer Royal Kings KYRO-1 STG4000
- Lung Hwa 3D Best 4000
- MPLUSTECH KYRO
- PowerColor Evil Kyro
- SUMA KYRO
- VideoLogic Vivid!
STG4000 Preliminary Product Overview
Demos - VillageMark et al.
To show off the hardware multiple demos were made availble by ImgTec. These demos came from the PowerVR SDK (Software Development Kit) and were mostly intended to demonstrate specific graphic techniques. STM distributed a subset of these demos with this document:
- D3DFortune - high fill rate
- D3DHouse - multitexturing
- D3DDragonFly - Motion blur
- D3DParticles - 16bit dithering
- D3DWheel - Bump Mapping (EMBM)
- VillageMark - High scene complexity and overdraw benchmark

Source: Imagination blog
However many more were available via the SDK at the time of release and over the subsequent three years (although not all for Kyro hardware) including:
Balloon (DX8) - Dynamic Environment Mapping
Released 21/03/2000
Realistic environment maps can be created on the fly by rendering to a texture.
Bike Frame (DX7) - Environment Mapping
Released 15/03/2000
A simple case of environment mapping.
Blend (DX7) - Blend modes
Released 25/06/2001
Displays a grid of source and destination blend modes; shows which modes are available.
Bump Comp (DX7) - Bump Mapping Comparison
Released 06/07/2000
Illustrates a comparison of the various bump-mapping techniques.
Cartoon Halo (DX7) - Colour Key & Bilinear
Released 21/03/2000
What to do to remove the outline around the edge of the solid section when using CK polygons and bilinear is on.
Cloth (DX9)
Released 31/10/2003
Cloth Animation with VS_3_0 and PS_3_0. Not for Kyro hardware.
Cube Maze (DX7)
Released 29/06/2000
A translucent cube maze with random walls opaquely textured by compressed 1024x1024 textures.
Deferred Shading (DX9)
Released 31/10/2003
Deferred Shading with Multiple Render Targets.
Dest Alpha (DX7)

Destination alpha
Dragon Fly (DX7) - Motion Blur
Released 16/03/2000
A great motion blur effect can be achieved by rendering recursively to a texture.
Duck (DX7) - Specular Highlights
Released 16/03/2000
Showing specular highlights with no performance drop.
FableMark (DX8) - Stencil Benchmark

A performance benchmark containing a very high proportion of stencil polygons.
Film TV (DX7) - Recursive Render to Texture
Released 21/03/2000
Shows the recursive case, where the rendered texture is used in the texture scene.
Fire (DX8) - Procedural Textures with EMBM
Released 24/05/2002
EMBM can be used to procedurally generate hundreds of textures from only two input textures.
Fur (DX7) - Furry Skin
Released 16/01/2001
Demonstrates a technique to simulate fur.
Fog Halo (DX7)

Coloured fog.
Fortune (DX7) - Fill Rate

Fill rate and over draw advantage. Later version included higher detail textures.
Gun (DX7) - Z Compare Modes
Released 16/03/2000
Illustrates how the problem of weapons or HUDs penetrating into scene objects can be tackled - either by turning Z off or by changing the Z compare mode.
House (DX7) - 8 Texture Layers
Released 16/03/2000
PowerVR supports 8 texture layers.
Island Tides (DX7) - Z Accuracy

Demonstrates the accuracy of the 32-bit Z buffer.
ITC (DX8) - Internal True Colour
Released 24/05/2002
PowerVR produces 32-bit quality even on a 16-bit render target.
Light (DX7) - Depth Buffer Reads
Released 20/04/2001
KYRO fully supports depth buffer accesses - this demonstrates the fastest way to read pixels.
Marble (DX7) - Stencilling Shadow Volumes
Released 14/03/2000
A marble face inside a cage with the shadows of the cage passing over the mask using D3D stencils.
Materials (DX7) - Perturbed-UV Bump Mapping
Released 15/03/2000
Perturbed-UV bump mapping is applied on all sorts of materials, depending on the desired effect (plastic, metal etc).
MIP-map (DX7) - MIP-map Creation
Released 26/04/2000
Demonstrates various methods of MIP-map content generation.
Mirror Z (DX7) - Mirror Portal (Depth Trick)
Released 29/09/2000
Shows a mirror using the depth-clear method.
Misty (DX7) - Vertex and Table Fog
Released 11/04/2000
Using the vertex and built in table to show fog effects.
Multi-Texture (DX7 & OpenGL) - Multi-Texturing
Released 11/12/2000
This will show a cube being built up of N layers with complete control over the texture stages.
Nautilus (DX7) - Vertex and Table Fog
Released 14/03/2000
Using the vertex and built in table to show fog effects.
Nefertiti Island (DX7) - Multiple features
Released 21/11/2000
Allows many features to be turned on and off and in combination with other.
Ocean (DX7) - Microtexturing
Released 25/09/2000
Moving closer to an object gradually reveals more surface detail.
Pane (DX7) - Reflective Translucent Surfaces
Released 25/04/2000
Translucent mirrors using render to texture.
Paper Storm (DX7) - Stencil Shadows
Released 11/04/2000
Casting shadows in a room with 4 bits of stencil.
Particles (DX7) - 24bit Versus 16bit Dithered
Released 15/03/2000
Insufficient frame-buffer colour depth causes colour artefacts, especially on conventional 3D renderers.
Scanner (DX7 & OpenGL) - Volume Effects with Stencil
Released 25/06/2001
Using different textures for the inside and outside of a scanner beam a dinosaur is shown dynamically X-rayed.
Shadow Land (DX8) - Terrain Shadows in Vertex Lighting
Released 24/05/2002
Uses vertex lighting on a terrain to light, with shadows, from an infinite light source - i.e. the sun.
Shady (DX7) - Overlapping Shadows
Released 02/10/2000
Three methods for creating overlapping flat shadows are presented - resolving the problem of darker overlap areas.
Shell Tutorial (DX7, DX8 & OpenGL)
Released 23/04/2001
It's easy to program Direct3D and OpenGL with the PowerVR Shell.
Silver (DX7) - Non-Hardware Cubic Environment Mapping

Cubic environment without hardware support.
Soft Shadow (DX8) - Soft-Edged Stencil Shadows
Released 19/08/2002
Multiple stencil-volumes are used to generate soft-edged shadows.
Sparkle (DX7) - Enhanced Specular Highlights
Released 16/03/2000
Specular-dependant 'sparkle' polygons are added to the scene to create a sparkling effect.
Star (DX7) - Enhanced Environment Mapping with Multi-Texturing
Released 16/03/2000
Environment mapping with flexible vertex format and multi-texturing.
Stereo (DX7) - Stereoscopic Model Viewer
Released 14/03/2004
Stereoscopic Model Viewer for 3ds files.
Strips View (DX7) - Strips Generator and Viewer
Released 14/03/2000
Using strips rather than individual polygons results in a performance gain. This program generates optimised strips for 3D Studio models and displays the 'stripped' object.
Texture Addressing (DX7)
Released 14/03/2000
Illustrates the use of different texture address modes.
Texture Formats (DX7)
Released 14/03/2000
Illustrates the use of different texture formats.
Texture Tiling (DX7)
Released 28/03/2000
Solutions for displaying texture tiles on screen with no visual artefacts.
Tools library (DX7, DX8 & OpenGL)

Tools library source
Tree (DX7) - Full-Screen Anti-Aliasing
Released 22/03/2000
The tree with leaves and thin branches used in conjunction with full-screen anti-aliasing will result in a better filtered image.
Trilinear (DX7) - Trilinear Texture Filtering
Released 11/12/2000
Translucent, trilinear balls are demonstrated with notes as to what they should look like.
Tubes (DX7) - Full-Screen Anti-Aliasing
Released 02/04/2001
Demonstrates that 4x (2x2) super-sampling with KYRO greatly improves the quality of the entire screen; both edges and textures.
Tutorial (DX7, DX8 & OpenGL)
Released 11/12/2000
Shows the minimal code required to draw a triangle using the Direct3D or OpenGL shell, then expands it.
Vase (DX7) - Multi-Texture
Released 15/03/2000
A 4444 texture can be used to cut out an environment map.
VillageMark (DX7 & OpenGL) - Overdraw advantage

Demonstrates PowerVR's overdraw advantage using a realistic scene of a village.
In benchmark mode, the camera tours the village then presents a frame rate for comparison. Below is the original sketched map of the village. The textures used were photographs taken in and around Kings Langley where PowerVR/ImgTec are based.
OpenGL Application only *note this version renders incorrectly on modern hardware*
Voxel (DX9)
Released 31/10/2003
Voxel Rendering with PS_3_0.
Wheel (DX7) - Bump mapping
Released 14/03/2000
A wheel rolling on a stone road. Bump mapping is applied on both the wheel and the road.
Z Build (DX7) - Pre-rendered Z

Demonstrates using a pre-rendered background and blit to the Z buffer.

Source: Imagination blog
STG4003X
Specification:
- 0.18µm
- 175/175/270MHz core/mem/RAMDAC
- 16-64MB SD/SGRAM 128bit for 2.8GB/s bandwidth
The first of the Kyro II models this differed from other models by having a 270MHz RAMDAC rather than 300MHz and was intended for consumer applications rather than PC AIB's. There are no known uses of this chip.
STG4005X
Intended to be a lower cost variant running at a slightly lower clock speed of 166MHz. There are no known uses of this chip. This is probably also the source of the false statement in Nvidia's infamous anti-Kyro presentation that the Kyro II running at 175MHz was really an overclocked 166MHz chip, when it wasn't.
STG4500X aka Kyro II

Specification:
- 0.18µm
- 175/175/300MHz core/mem/RAMDAC
- 16-64MB SD/SGRAM 128bit for 2.8GB/s bandwidth
- 2 Render pipelines, with 1 Texture Mapping Unit per pipeline
- 350M/Pixel fillrate
- 4x AGP (configured as 2x due to compatibility issues with some motherboards)

Announced on the 12th March 2001 the STG4500X was a process shrink development of the STG4000X with 15 million transistors, compared to 12 million in the STG4000. This allowed for a clock speed increase of 50MHz, along with the addition of support for S3TC texture compression.
This attracted several more hardware manufacturers to build cards around this chip, including:
- CHANCE-I BLOOD KYRO-2
- Club3D Kyro II
- Ennyah Technologies Michelan 3D Pro 4500
- Hercules 3D Prophet 4500
- InnoVISION Inno3D Kyro II 4500
- Joytech Apollo Kyro II
- Kifer Royal Kings KYRO-2 STG4500
- Lung Hwa 3D Best 4500
- MPLUSTECH Kyro II
- OJU CTN CV-024AKYRO II
- PowerColor Kyro II
- SUMA Kyro II
- VideoLogic Vivid!XS


Source: Imagination blog

Demo - Temple
For the Kyro II it was agreed that STM would produce a demo with ImgTec support to show off the hardware. The result was Temple, also known as Temple Demo and TempleMark, that could be run as both a looping demo (default) or as a benchmark to test other hardware in comparison to the Kyro II.
For an in-depth look at Temple see part 7 of this series - Temple Demo deep dive.


Download v1.0.7 Unofficial Hornet build - see the deep dive for what this fixes
Quake3 Level
A Quake3 level was also comissioned and built by Kevin D Blake "Ska". It was to follow a similar theme as the Temple demo with Cat statues and Egyptian hieroglyphs on some wall textures. It used up to 4 layers of textures per object compared to the usual 2 layers at the time to demonstrate the Kyro's ability to handle this in a single rendering pass rather than two passes on most other hardware.




The original release was thought to be lost, however can now be found below in several versions. A tweaked version that does not overwrite the Quake3 default files could be found on the German website 3dcenter.de and is also mirrored below:
Zip file - extract into Quake3 installation folder
3dcenter.de tweaked map only version
3dcenter.de tweaked map english instructions
Updated KyroII.dm3 to dm_68 file - install into baseq3\demos folder, to run type \demo KyroII.dm3 at the console
The level works with a point release 1.32 installation updated with a modern source port - tested with Quake3e but others should work too.
STG4800X aka Kyro II SE

Specification:
- 0.18µm
- 200/200/300MHz core/mem/RAMDAC
- 64MB SDR SDRAM 128bit bus for 3.2GB/s bandwidth
- 2 Render pipelines, with 1 Texture Mapping Unit per pipeline
- 400M/Pixel fillrate
- 4x AGP with SBA
A refresh of the STG4500X with some architectural tweaks and a clock speed increase to 200MHz. Originally intended to launch in mid-August 2001 the chip was delayed several times and was finally ready almost a year after the Kyro II had been released. Whilst the chip was sampled and a number of pre-production boards produced, with some even sent to reviewers in mid-July 2002, it was never put into production following the demise of STM's Graphics Products Division in February 2002.
Only two products using the chip were announced:
- Hercules 3D Prophet 4800
- VideoLogic Vivid!XS Elite

Apart from the higher clock speed the chip was also to feature Enhanced T&L (EnT&L) technology which "unites the advanced features of KYRO II SE with transform and lighting to provide superior performance to cost comparable solutions, mixing intelligent 3D and CPU resources to calculate in real time lighting and shadows at up to a 15% performance boost."1
A questions and answers with Hercules at http://www.paraknowya.com/specials/Q&A/#Herc provided the following details:
"3D Prophet 4800 enhanced T&L is a software process enhanced by the Kyro hardware. The Kyro hardware sorts the surfaces & 3D objects of the angle of vision, eliminating invisible triangles prior to applying the transform and lighting, and these sorted 3D objects are animated & lighted in software T&L. The benefit compared to the 4500 traditional software T&L goes up to 15% additional fps in games limited by the geometry. Games limited by the fill rate, as Quake III, will be boosted with 3D Prophet 4800 by its faster clock compared to the 4500."
However this answer is misleading due to implying that the hardware would be culling invisible triangles before applying T&L, despite requiring the transform part of T&L for the hardware to be able to determine which triangles can be culled in the first place. This would necesitate two way traffic across the AGP bus which is a significant barrier to high performance. It does however confirm the use of software T&L.
The Vivid!XS Elite release announcement more accurately conveyed: "To deliver optimal cost-performance KYRO II SE supports the new EnT&L; driver technology which unites the advanced features of KYRO II SE with transform and lighting to provide superior performance to cost comparable solutions. EnT&L; is optimized for KYRO II SE AGP 4X SBA operation and Implicit Guard Band Clipping."
EnT&L was just a software implementation of the Direct3D7 fixed function T&L pipeline. However from the few reviews of the 4800 that briefly appeared online in mid-2002 they showed that in a good number of cases enabling it actually reduced performance, certainly in 3D Mark 2001 by 0% to ~10% depending on the test, and Temple demo by 4.1%, whilst having zero impact in Fablemark.
As expected it was exposed by falsely claiming hardware support in the driver by exporting the D3DDEVCAPS_HWTRANSFORMANDLIGHT capabilty flag. The EnT&L functionality appeared in the 2.x series drivers and was made available to all Kyro models, despite previous announcements that it would only be supported on the STG4800.
Demos
Following on from the Temple demo work started on a number of new demos. At the start of May 2001 the plan was to produce two main demos, internally called "High Polygon Terrain Fly Through" and "Tron Styled demo", alongside a number of smaller technical demos to demonstrate specific graphical techniques, particularly Non-Photo Realstic rendering techniques as demonstrated below:





High Polygon Terrain Fly-through
Idea
- Follow an exploration probe through martian landscape
Purpose
- Show that KyroII can handle large numbers of polygons
- Terrains exhibit large amounts of overdraw
Features
- T&L costs cpu cycles, so must cut down on other features
- Vertex blending on landscape
- Maximum of 2 textures per object
- Lods
- Fog
- 60k polygons



Tron Style demo
Idea A high tech demo loosely styled on Tron which will take the viewer on a trip through the Kyro chip. The camera will fly along circuits, racing data packets along a vast electronic landscape. There will be narrow trenches and tunnels, reminiscent of Star Wars.
There will be a central generator room which has various particle effects, plasma, light pulses, futuristic robots flying around. The vuewer will follow this for a while before flying through a portal at the edge of the room into another demo. There could be several portals which enable this demo to act as a link to other demos.
Purpose
- Exploit all features of the Kyro
Features
- Animated textures – demostrating the availabilty of more texture memory than other hardware due to not needing to store Z buffers etc.
- Animated objects just to give the demo more life.
- Follow a fixed flighpath but may be allowed to look around to see what else is going on.
- More stencil buffer shadows the before
- Stencil buffer reflections shows the always on stencil buffer
- High utilisation of multi-texturing – maybe using all 8 textures. This will allow the use of projected light maps.
- Ability to turn textures on and off. Purely a visual thing, but intended to help developers to see how they could use multi-textures.
- Overdraw mode to show the user how much geometry the Kyro normally culls.


Follow up
Over the subsequent weeks the Terrain Fly Through became "Alien Probe", the Tron Styled demo idea would be dropped, and the technical demos evolved into Still Life, Kyro Energy and Kyro Toon.
These demos were intended for the release of the STG4800 however as it was increasingly delayed it was decided to release them as general promotional products for the Kyro range. They were in beta testing in late June 2001, and all apart from Alien Probe finally made it on to the Kyro marketing website at the end of November 2001.
Demo - Still Life
This is an example of NPR (Non-Photo Realistic) rendering. The scene is not conventionally lit or shaded. Instead a blend of 6 textures are used, along with a 7th texture for the silhouette to implement a hatching technique.
The demo was planned to be released to coincide with Siggraph (August 12-17th 2001) when the paper detailing the technique was presented, but ended up being delayed and released with the rest.
Still Life beta Kyro hardware only
Still Life v1.0 hornet build any hardware
Demo - Kyro Energy
Kyro's hardware support for Environmental bump mapping allowed the generation of real-time procedural bump maps to simulate the path of raindrops. This was used to give the appearance of realistic reflective moisture droplets on a flat surface.
Kyro Energy beta Kyro hardware only
Kyro Energy v1.0 hornet build any hardware
Demo - Kyro Toon
Demonstrates the emulatation one of the more common Direct3D8 vertex and pixel shader techniques - cartoon or "toon" rendering, but achieved using Direct3D7.
Kyro Toon beta Kyro hardware only
Kyro Toon v1.0 hornet build any hardware
Demo - Alien Probe [unreleased]
As mentioned above this demo was produced to counter the perception that the Kyro hardware could not handle high polygon count scenes. It was included in the set of beta releases for testing but it isn't clear why it wasn't released. When run on modern hardware there are some rendering issues which may also have been seen on Kyro hardware. It may also not have had enough "wow" factor.
The below screenshots are captured on modern(ish) hardware.





Note the planet being approached should have two texture layers with a semi-transparent animated cloud layer on top but is rendered as completely white on modern hardware.
Alien Probe beta Kyro hardware only
Alien Probe v1.0 hornet build any hardware