摘要:
A graphics processing unit 2 includes a texture pipeline 6 having a first pipeline portion 18 and a second pipeline portion 20. A subject instruction within the first pipeline portion 18 is recirculated within the first pipeline portion 18 until descriptor data to be loaded from a memory 4 by that subject instruction has been cached within a shared descriptor cache 22. When the descriptor has been stored within the shared descriptor cache 22, then the subject instruction is passed to the second pipeline portion 20 where further processing operations are performed and the subject instruction recirculated until those further processing operations have completed. The descriptor data is locked within the shared descriptor cache 22 until there are no pending subject instructions within the texture pipeline 6 which required to use that descriptor data.
摘要:
When encoding a set of texture data elements 30 for use in a graphics processing system, the direction along which the data values of the set of texture data elements in question exhibit the greatest variance in the color space is estimated by using one or more infinite planes 41 to divide the texture data elements in the color space. For each such plane, texture data element values on each side of the plane are added up to give respective sum points 48, 49, and the vector 50 between these two sum points determined. The direction in the data space of one of the determined vectors 50 is then used to derive endpoint color values to use when encoding the set of texture data elements.
摘要:
To encode and compress a data array 30, the data array 30 is first divided into a plurality of blocks 31. A quadtree representation is then generated for each block 31 by initializing each leaf node of the quadtree to the value of the data element of the block 31 of the data array 30 that the leaf node corresponds to, and initializing each non-leaf node to the minimum value of its child nodes, and then subtracting from each node except the root node the value of its parent node. A set of data indicating the differences between respective parent and child node values in the quadtree representing the block of the data array is then generated and stored, together with a set of data representing a quadtree indicating the number of bits that have been used to signal the respective difference values.
摘要:
A data array 20 to be stored is first divided into a plurality of blocks 21. Each block 21 is further sub-divided into a set of sub-blocks 22, and a set of data for each sub-block 22 is then stored in a body data buffer 30. A header data block 23 is stored for each block 21 at a predictable memory address within a header buffer 24. Each header data block contains pointer data indicating the position within the body buffer 30 where the data for the sub-blocks for the block 21 that that header data block 23 relates to is stored, and data indicating the size of the stored data for each respective sub-block 22.
摘要:
A 3D graphics rendering pipeline is used to carry out data comparisons for motion estimation in video data encoding. Video data for the pixel block of the video frame currently being encoded is loaded into the output buffers of the rendering pipeline. The video data for the comparison pixel blocks from the reference video frame is stored as texture map values in the texture cache of the rendering pipeline. Once the sets of pixel data for comparison have been stored, the rendering pipeline is controlled to render a primitive having fragment positions and texture coordinates corresponding to the data values that it is desired to compare. As each fragment is rendered, the stored and rendered fragment data is compared by fragment compare unit and the determined differences in the data values are accumulated in an error term register.
摘要:
A texture map 1 for use in graphics processing is encoded by first subdividing the texture map 1 into a plurality of texture element blocks 2. The texture data elements in each texel block to be encoded are then divided into different partitions (sub-sets) 10, 11, 12 within the block. The partitioned block 2 is then encoded in a compressed form as an encoded texture data block 13. Each encoded block is partitioned using a partitioning pattern generation function to generate the partitioning patterns. The partitioning pattern generation function sorts the texture data elements of the block into respective partitions based on their respective positions within the block. To do this the partitioning pattern generation function generates a series of sawtooth waves at various angles, phases and frequencies across the block of texture data elements to be encoded.
摘要:
A graphics processor includes a vertex shader 20 that processes input attribute values from a vertex buffer 26 to generate output vertex shaded attribute values 28 to be used by a rasteriser/fragment shader 22 of the graphics processor when processing an image for display. The system recognises when a vertex shader output attribute value to be generated from a vertex shader input attribute value by the vertex shader 20 will be a copy of the vertex shader input attribute value from which it is to be generated. In this event, the vertex shader 20 does not generate the copy vertex shader output attribute value, but the rasteriser/fragment shader 22 instead processes the corresponding vertex shader input attribute value in place of the copy vertex shader output attribute value that would otherwise have been generated by the vertex shader 20.
摘要:
In a graphics processing system, the left, right, top and bottom edge planes for the purposes of clipping are set to the maximum values that can be represented using floating-point format numbers, vertex positions are snapped to a grid of predefined vertex positions, and the precision of selected vertices is prioritized when deriving edge functions for a given primitive. In respect of the depth near and far clipping planes, those planes are set to the maximum floating-point number format that can be represented for “Z” in the graphics system, but then fragments that have a Z value that falls outside the range zero to one are discarded using a depth test. In respect of the eye-plane, the need for clipping is avoided by modifying edge equations generated for a primitive in dependence on the sign of a “W” value for each vertex of the primitive.
摘要:
A graphics processor 20 includes a graphics object list building unit 28 that determines the location of each draw call in a scene to be rendered and generates a list of draw calls for each sub-region (tile) that the scene to be rendered is divided into. The draw call lists are stored in a memory 23. A graphics object selection unit 29 of a renderer 22 of the graphics processor 20 then determines which draw call is to be rendered next by considering the draw call list 26 stored in the memory 23 for the sub-region (tile) of the scene that is currently being rendered.
摘要:
A scene 50 to be rendered is divided into plural individual sub-regions or tiles 51. The individual sub-regions 51 are also grouped into differing groups of sets of plural sub-regions. There is a top level layer comprising a set 54 of 8×8 sub-regions which encompasses the entire scene area 50. There is then a group of four 4×4 sets of sub-regions 53, then a group of sixteen 2×2 sets of sub-regions 52, and finally a layer comprising the 64 single sub-regions 51. A primitive list building unit takes each primitive 80 in turn, determines a location for that primitive, compares the primitive's location with the locations of the sub-regions 51 and the locations of the sets of sub-regions 52, 53 and 54, and allocates the primitive to respective primitive lists for the sub-regions and sets of sub-regions accordingly.