from geometry to pixels



I just needed a simple app to see what CUDA version is installed on a remote machine and what the GPU is capable of. My trivial solution compiles with nvcc -lcudart -o cudainfo and only consists of one file:   #include <iostream>   using namespace std;   void printDeviceProperties( int deviceNumber, cudaDeviceProp deviceProperties ) […]


, , ,

NVidias Adaptive Vertical Sync

One new feature of NVidias new GPU line GeForce 600 (aka Kepler) is called ‘Adaptive Vertical Sync’ and from the slides and first descriptions it seems to be the OpenGL feature that Carmack was lobbying for: WGL_EXT_swap_control_tear / GLX_EXT_swap_control_tear. As long as the framerate is below 60Hz it behaves like no VSync is active – […]


, , , ,

Low-Level GPU Documentation

NOTE: As this document is growing, I moved it to a seperate page. Click here to get to the most recent version. Old content: While programming graphics applications means programming against an API that abstracts us from the actual hardware (OpenGL, Direct3D), it can still be interesting to dig a bit deeper. Having a good […]


, , , , , , ,

GPU Rasterizer Pattern

Visualizing the pattern in which the fragment processors are called for the individual fragments are some kind of ‘Hello World’ for atomic counters. The order in which the fragments generated by a draw call are created and the fragment shaders are calles are not defined, so the hardware can choose each order that best matches […]


, , , , ,