
- #GAME CREATION SOFTWARE SUPPORTED BY MAC OS X 10.0 AND ABOVE FOR MAC#
- #GAME CREATION SOFTWARE SUPPORTED BY MAC OS X 10.0 AND ABOVE MOVIE#
- #GAME CREATION SOFTWARE SUPPORTED BY MAC OS X 10.0 AND ABOVE UPDATE#
- #GAME CREATION SOFTWARE SUPPORTED BY MAC OS X 10.0 AND ABOVE DRIVER#
This caused large amounts of time during which either the GPU or the CPU was doing no work, significantly reducing system throughput and consequently the game's framerate.

#GAME CREATION SOFTWARE SUPPORTED BY MAC OS X 10.0 AND ABOVE DRIVER#
Unfortunately, prior to the latest software update, occlusion queries caused the CPU-side driver to synchronize with the GPU, perhaps multiple times per frame.

So, while we are using the GPU to perform this computation for us, we aren't stopping CPU execution to wait for the result-we can pick up the result later, since it's OK for this algorithm that the query results are a fraction of a second "stale." So, if implemented properly by the graphics API, occlusion queries cause no synchronization between the GPU and CPU, allowing both processors to stay busy doing work.
#GAME CREATION SOFTWARE SUPPORTED BY MAC OS X 10.0 AND ABOVE MOVIE#
Clearly, the left side of the movie shows a convincing glare effect due to the scaling of the glow sprite intensity while the right side of the movie gives a very crude effect, with the glow showing through parts of the scene, breaking the illusion.įrom a technical standpoint, the key to the occlusion query feature is that our game can be written in such a way that it can receive the result of a given query asynchronously, at some point later (usually during a subsequent frame).

To illustrate the importance of using light source occlusion to drive glow sprite intensity, we've created a little clip from Half-Life 2: Episode One, which shows the effect with and without the query. It's a simple technique but it appears to be a complex optical effect which helps to convince your brain that you're looking at something truly bright. Because its intensity is attenuated with the occlusion of the light source geometry, the glow sprite fades gently in and out as it becomes more or less occluded by the rest of the scene. The percentage of a given light source's screen area which is actually visible is used to scale the intensity of an additive glow sprite which is drawn over the frame without any z-buffering. A given light source may be partly or wholly occluded by other geometry in the scene and we use the occlusion query to determine how occluded it is. What we do is issue queries for light-emitting objects in our scene such as light bulbs or a disc representing the sun. It's a simple technique that just about every game uses, but it produces a surprisingly convincing effect. We use GPU occlusion queries for a variety of effects in our game, but one of the easiest to explain is light glows. If you're not familiar with an occlusion query, it is a mechanism for an application (running on the CPU) to notify the GPU via OpenGL that it would like to know, for some set of draw calls, how many pixels are drawn to the screen, after shading, z-buffering etc.
#GAME CREATION SOFTWARE SUPPORTED BY MAC OS X 10.0 AND ABOVE UPDATE#
When we first released our Source engine games on the Mac, we had to turn occlusion queries off but, with the latest update to 10.6.4, we can turn them back on, giving players higher visual quality. In addition to low-level implementation changes which have improved performance across the board, Apple has also removed some implementation inefficiencies which allow us to improve visual quality, most notably in the area of GPU occlusion queries.

#GAME CREATION SOFTWARE SUPPORTED BY MAC OS X 10.0 AND ABOVE FOR MAC#
The combination of changes in our code and the latest graphics update available from Apple today removes a variety of software bottlenecks, resulting in significant graphics performance enhancements for Mac gamers. While we met our goal of making sure all of our customers had an acceptable gaming experience at launch, we have spent a large chunk of effort in the intervening months working with Apple and their GPU vendors to close the performance gap with Windows. When we launched Steam on Mac OS X back in May, there was a lot of buzz about performance, particularly relative to Windows running on the same machine.
