> The graphics card isn't swapping out memory, neither the system does for the 
> graphics card. As fare as I know the graphic card just overrides "any" RAM. 
> this results in pixel garbage,

This isn't quite right.  Mac OS X does have virtualized vram that does in fact 
"swap" (though it swaps to system memory -- in some contrived cases it can even 
swap from other gpus, but I won't get into that case here).

VRAM is basically dedicated to 3 things:  textures, "drawables" (IOSurfaces, 
FBOs, CGLContexts -- all texture-like things), and "other" (vertex data, 
shaders, other typically small-ish things).

Every single drawing command issued has a finite number of resources necessary 
to render.  For example, if you have 4 textures bound, all 4 obviously need to 
be resident (modulo some client storage hinting, which can allow sourcing from 
vram at a performance hit -- nothing does this by default that I'm aware of) 
along with the destination.  Only if the total size of all necessary resources 
for this draw operation exceed vram do you get garbage (for example:  bind all 
16 texture units to distinct 2GB textures, and you'll have a working set size 
of ~32GB.  This will make every current video card fall over and die).  
Normally garbage indicates some other problem though (an application errantly 
marking something purgeable or client-storage when in fact it isn't, or a 
driver bug sometimes), and you'll just get solid white when you've exceeded the 
limits.  This takes a fair amount of effort to do.

When you issue a drawing command that needs some set of resources and there 
isn't room, the driver will page out whatever's currently in vram to system 
memory as necessary.  This, in turn, can cause the machine to begin paging to 
disk if the system is low on ram.  Rendering will succeed in this case, but it 
will typically be slow.

I too suspect a codec problem or a decoder problem;  QC doesn't have a lot of 
visibility into what video decoding does, and a leak there could cause some 
pretty severe problems pretty quickly (vram tends to be limited, and leaks of 
vram tend to leak very quickly, quickly causing paging).

--
Christopher Wright
[email protected]



 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Quartzcomposer-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/quartzcomposer-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to