STG chip history

STG4000 series

Pre-release marketing for the Kyro card
Pre-release marketing for the Kyro card

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:

STG4000X aka Kyro

STG4000X chip
STG4000X chip

Specification:

Hercules 3D Prophet 4000XT with heatsink and fan removed
Hercules 3D Prophet 4000XT with heatsink and fan removed

Announced during Computex 2000 in Taipei, Taiwan on 6th June 2000, this was the first version of the Kyro. Products utilising it included:

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:

Hand drawn sketch of the village layout
Hand drawn sketch of the VillageMark layout
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.

*No downloads*

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.

*No downloads*

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.

D3D Application only
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.

Hercules Kyro I and II promotional material
Hercules Kyro I and II promotional advert material
Source: Imagination blog

STG4003X

Specification:

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

STG4005 Engineering Sample chip
STG4005 Engineering Sample chip

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

STG4500X chip from the authors collection
STG4500X chip from the authors collection

Specification:

Hercules 3D Prophet 4500 with heatsink and fan removed
Hercules 3D Prophet 4500 with heatsink and fan removed

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:

VideoLogic Kyro II promotional material VideoLogic Kyro II promotional material
VideoLogic Kyro II promotional material
Source: Imagination blog
VideoLogic Vivid!XS
VideoLogic Vivid!XS

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.

Screenshot of the Temple demo Screenshot of the Temple demo
Screenshots of the Temple demo

Download v1.0.2

Download v1.0.3

Download v1.0.4

Download v1.0.5

Download v1.0.6

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.

Screenshot of the KyroII Quake3 demo Screenshot of the KyroII Quake3 demo Screenshot of the KyroII Quake3 demo Screenshot of the KyroII Quake3 demo
Screenshots of the KyroII Quake3 demo

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:

Hercules installer

Self extracting archive

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

STG4800X chip from the authors collection
STG4800X chip from the authors collection

Specification:

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 unreleased promotional imagery
Hercules 3D Prophet 4800 promotional imagery

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:

Test of NPR technqiues using parts of the Temple demo Test of NPR technqiues using parts of the Temple demo Test of NPR technqiues using parts of the Temple demo
Tests of NPR technqiues using parts of the Temple demo
Test of Procedural EMBM technqiues Test of Procedural EMBM technqiues
Tests of Procedural EMBM technqiues

High Polygon Terrain Fly-through

Idea

Purpose

Features

3DS Rendered Terrain Fly Through concept art 3DS Rendered Terrain Fly Through concept art 3DS Rendered Terrain Fly Through concept art
3D Studio Max Rendered Terrain Fly Through concept art

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

Features

3DS Rendered Tron Style concept art 3DS Rendered Tron Style concept art
3D Studio Max Rendered Tron Style concept art

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.

Hatching.pdf

Still Life demo screenshot Still Life demo screenshot Still Life demo screenshot

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 demo screenshot Kyro Energy demo screenshot Kyro Energy demo screenshot

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 demo screenshot Kyro Toon demo screenshot Kyro Toon demo screenshot

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.

Alien Probe unreleased demo screenshot Alien Probe unreleased demo screenshot Alien Probe unreleased demo screenshot Alien Probe unreleased demo screenshot Alien Probe unreleased demo screenshot
Screenshots of the unreleased Alien Probe demo.
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