Graphics Module


Display is in general a single point of view of the scene. One may imagine group of screens laid out in circle and showing what is inside - such configuration would need several displays.

Those displays could be rendered at GPUs on distinct machines, on several GPUs on a single machine or even on a single GPU, of course if it is able to render content achieving the minimum frame-per-second ratio.

In a single graphic session many displays may exist - they may show the same content from different point of views, or they may render completely different contents, still being in some logical way linked together.


In the simplest terms each picture is a separate window of view of the rendered image. In the most basic configuration display has a single picture covering whole frame buffer. In more complex applications, frame can be split into several pictures, for which separate clients may submit in order to show the content as a whole again.

After rendering is done and resulting frame buffer is brought from device memory into the host memory, compression of each picture is done in parallel with a specified compression method (which can be set for each picture independently). After compression is completed, resulting image is available through HTTP protocol for clients.

Clients know where to look for following pictures because of Vitrall's notifications containing pictures' URLs. Notifications are sent immediately after server gets a response from appropriate rendering instance for a given sent request.

Response is sent by worker back to the controller as soon as it is parsed and availability of requested resources is assessed - controller does not wait with notifications for worker to complete rendering.

Depending on network latency, situation is possible, where client receives notification, requests picture from worker and starts to download it immediately.