NVIDIA and TLS

Gareth Hughes gareth at nvidia.com
Mon Jun 16 14:41:07 PDT 2003


On Mon, 16 Jun 2003, Andy Ritger wrote:
> 
> So from an OpenGL point of view, here are several alternatives that
> I see for atleast the near term:
> 
>     - make NVIDIA's OpenGL implementation not thread-safe (just
>       use global data rather that thread-local data)
> 
>     - accept the performance hit of using pthread_getspecific()
>       on FreeBSD.  From talking to other OpenGL engineers,
>       conservative estimates of the performance impact on
>       applications like viewperf range from 10% - 15%.  I'd like
>       to quantify that, but certainly there will be a performance
>       penalty.

And these are *very* conservative estimates -- you're essentially adding a
function call into a path that is, on average, less than ten instructions
per OpenGL API call, where the number of API calls per frame is upward of 3
million (3 calls per vertex, over a million vertices for some Viewperf
benchmarks).  The API was designed this way for a reason, and fast
thread-local storage is a fundamental part of a high performance
implementation.

-- 
Gareth Hughes (gareth at nvidia.com)
OpenGL Developer, NVIDIA Corporation


More information about the freebsd-threads mailing list