Abstract:
A hybrid method or apparatus for processing OpenGL display list commands. A deamon intercepts display list commands issued by a client to an OpenGL stack. Responsive to a newList [list commands] endList sequence: the daemon stores a representation of a first subset of the list commands; and creates, in the stack, a display list corresponding to a second subset of the list commands. Responsive to a callList command: the daemon issues to the stack at least one immediate mode command corresponding to the first subset of the list commands and at least one callList command invoking the display list corresponding to the second subset of the list commands. The daemon may also store a representation of an expression or function. Responsive to the callList command, the daemon may evaluate the expression or function and conditionally change the step of invoking the display list based on the outcome.
Abstract:
A modified display list contains a series of n nested bounding volumes. The first bounding volume in the series contains the remaining n-1 bounding volumes the series. The second bounding volume contains the remaining n-2 bounding volumes in the series, and so on. Upon invocation, the graphics display system processes the modified list sequentially and tests the bounding volumes as they are encountered. As soon as a bounding volume is encountered whose coordinates define a region that should not be rendered, further sequential processing of rendering commands in the list may be halted. If any state commands remain in the list, those commands or an equivalent set of state commands may be executed, and then processing of the list is complete. Alternatively, if push/pop state commands exist on either side of the list, then processing of the list may be halted without more.
Abstract:
An apparatus for communicating with a network comprises a data packet pipeline and a monitoring element. The data packet pipeline is configured to transfer data between a buffer and a network socket. The monitoring element is configured to provide an indication of an operational performance parameter for at least one component of the data packet pipeline thereby enabling an operational problem within the pipeline may be isolated based on the indication.
Abstract:
A transmitting apparatus comprises a plurality of communication sessions and a transport manager. The transport manager is configured to establish and manage network sockets for communicating between the transmitting apparatus and a network. The transport manager is configured to receive a plurality of session requests respectively corresponding with a plurality of applications that produce data, each of the session requests identifying a respective set of receiving units and a respective transport protocol. The transport manager is configured to select, in response to each one of the session requests, at least one of the sessions to service a corresponding one of the applications. The transport manager is further configured to establish a network socket for each of the selected sessions, wherein the transport manager configures the network socket to communicate, with the set of receiving units identified by the corresponding session request, via the transport protocol identified by the corresponding session request.
Abstract:
An apparatus for communicating with a network comprises a packet pointer pool, a queue, logic, and a network interface. The packet pointer pool has a plurality of entries that respectively point to different memory blocks. The logic is configured to pull one of the entries from the packet pointer pool. Such logic is configured to store a data packet in one of the memory blocks pointed to by the one entry and to insert the one entry into the queue. Logic is configured to pull the one entry from the queue and to retrieve the data packet from the one memory block based on the one entry. The network interface is configured to communicate the data packet with a network.
Abstract:
A memory management system and method that quickly allocates and reuses memory for storage of data, such as display lists in a graphics system. The memory manager allocates memory without information regarding the amount of memory that is to be required while minimizing system-level memory allocation calls and maximizing the contiguity of the allocated memory which is used. The memory manager acquires from system memory a memory block that is of a predetermined size that is significantly larger than the anticipated memory size required to store a display list. The memory manager allocates to the display list that portion of the acquired memory block necessary for storing the display list, maintaining control over the unused portion of the acquired memory in a memory pool of available memory for future allocation to another display list without performing subsequent system-level calls.
Abstract:
A system for buffering data received from a network comprises a network socket, a plurality of buffers, a buffer pointer pool, receive logic, and packet delivery logic. The buffer pointer pool has a plurality of entries respectively pointing to the buffers. The receive logic is configured to pull an entry from the pool and to perform a bulk read of the network socket. The entry points to one of the buffers, and the receive logic is further configured to store data from the bulk read to the one buffer based on the entry. The packet delivery logic is configured to read, based on the entry, the one buffer and to locate a missing packet sequence in response to a determination, by the packet delivery logic, that the one buffer is storing an incomplete packet sequence. The packet delivery logic is further configured to form a complete packet sequence based on the incomplete packet sequence and the missing packet sequence.
Abstract:
A network communication apparatus comprises an application, a plurality of communication sessions, a transport manager, and buffer logic. The application is configured to initiate a session request specifying a set of receiving units and a transport protocol. The transport manager is configured to allocate at least one of the communication sessions to the application in response to the session request. The transport manager is further configured to provide a session identifier that identifies the allocated session. The transport manager configures, based on the session request, the allocated session to communicate with the specified set of receiving units via the specified protocol. The buffer logic is configured to store data produced by the application into the shared memory accessible to each of the communication sessions and to associate the stored data with the session identifier. The allocated session is configured to retrieve the data based on the session identifier and to transmit the retrieved data through a network to the specified set of receiving units via the specified protocol.
Abstract:
An apparatus for transmitting to a network comprises a queue, packetization logic, interface logic, and queue logic. The packetization logic is configured to packetize data into a plurality of data packets and to store, to the queue, entries pointing to the data packets. The interface logic is configured to read the entries from the queue. The interface logic, for each of the read entries, is configured to retrieve one of the packets pointed to by the read entry and to transmit the retrieved packet to a network socket. The queue logic is configured to limit, based on a number of retransmission requests detected by the queue logic, a number of entries that the packetization logic may store to the queue during a particular time period thereby controlling a transmission rate of the apparatus.