[sldev] branches/shadow-draft missing llrender.cpp

Soft soft at lindenlab.com
Wed May 28 15:47:39 PDT 2008


On Wed, May 28, 2008 at 4:25 PM, Tofu Linden <tofu.linden at lindenlab.com> wrote:
> Soft wrote:
>>
>> On Wed, May 28, 2008 at 4:11 PM, Tofu Linden <tofu.linden at lindenlab.com>
>> wrote:
>>>
>>> The unexpected 'bonus' tessellation on flat surfaces does nothing
>>> to help describe the shape of the geometry but exists (AFAIK) as
>>> a hack to make per-vertex lighting look significantly less ugly.
>>>
>>> The shadow-draft branch's per-pixel lighting almost certainly
>>> makes the extra tessellation redundant, but on the other hand
>>> I don't think there's data to suggest that the extra polygons
>>> are an appreciable performance hit (not that they help).
>>
>> Actually, they can help tremendously. Our ginormous 4 megabyte 1k by
>> 1k RGBA textures blow out the texture cache on many a graphics card.
>> Tesselating large surfaces increases the likelihood of cache hits.
>
> I was under the impression that non-ancient GPUs rasterize into
> (and out of) microtiles for this reason amongst others.

I'm not sure what you mean by microtiles. Tile-based rendering is a
patent minefield if that's what you mean. It's not universal.

If you mean swizzling the address lines so rectangles of texture and
display memory are contiguous for cache coherency, when the source and
destination go a thousand pixels at a span, if you're still spanning
more than n cache pages between the source and the destination,
swizzling can make things *worse* for an n-way associative cache.

It's possible I'm ages out of date on this and hardware manufacturers
have welcomed our 4 megabyte texture overlords by now, resizing caches
to cope. But I'm betting against it with those 64mb shared memory
chipsets. :)


More information about the SLDev mailing list