Abstract:
An apparatus, method and program are provided for calculating a result value to a required precision of a repeating iterative sum, wherein the repeating iterative sum comprises multiple iterations of an addition using an input value. Addition is performed in a single iteration of addition as a sum operation using overlapping portions of the input value and a shifted version of the input value, wherein the shifted version of the input value has a partial overlap with the input value. At least one result portion is produced by incrementing an input derived from the input value using the output from the sum operation and the result value is constructed using the at least one result portion to give the result value to the required precision. The repeating iterative sum is thereby flattened into a flattened calculation which requires only a single iteration of addition using the input value, thus facilitating the calculation of the result value of the repeating iterative sum.
Abstract:
A graphics processing system comprising storage for storing texture data representative of a plurality of texels in a texture space and a graphics processor coupled to the storage. The graphics processor comprises a texture mapping unit operable to receive request data to request the calculation of a value at a position in the texture space using an interpolation process, the request data comprising weight data representative of weights for input to the interpolation process, and process the weight data with the texture data to perform the interpolation process, thereby calculating the value at the position in the texture space.
Abstract:
A method of operating a graphics processor when rendering a frame representing a view of a scene using a ray tracing process in which part of the processing for a ray tracing operation is offloaded to a texture mapper unit of the graphics processor. Thus, when the graphics processor's execution unit is executing a program to perform a ray tracing operation the execution unit is able to message the texture mapper unit to perform one or more processing operations for the ray tracing operation. This operation can be triggered by including an appropriate instruction to message the texture mapper unit within the ray tracing program.
Abstract:
When performing anisotropic filtering when sampling a texture in a graphics processing system, a number of positions for which to sample the texture along an anisotropy direction is determined. When the determined number of positions for which to sample the texture along the anisotropy direction is a non-integer value that exceeds a lower integer value by more than a threshold amount, samples are taken along the anisotropy direction in the texture for a number of positions corresponding to the next higher multiple of 2 to the determined non-integer number of positions to be sampled. When the determined number of positions for which to sample the texture along the anisotropy direction does not exceed the lower integer value by at least the threshold amount, samples are taken along the anisotropy direction in the texture for a number of positions corresponding to the lower integer value.
Abstract:
A method of operating a cache system is disclosed. Information indicating a link between associated header and payload cache entries is maintained. The link information may be used to reduce cache coherency traffic.
Abstract:
When performing anisotropic filtering when sampling a texture to provide an output sampled texture value for use when rendering an output in a graphics processing system, an anisotropy direction along which to take samples in the texture is determined by determining X and Y components of a vector of arbitrary length corresponding to the direction of the major axis of an assumed elliptical projection of the sampling point for which the texture is being sampled onto the surface to which the texture is being applied, and then normalising the determined X and Y vector components to provide X and Y components for a unit vector corresponding to the direction of the major axis of the elliptical footprint of the sampling point to be used as the anisotropy direction along which to take samples in the texture.
Abstract:
A data processing apparatus comprises processing circuitry arranged to process processing threads using resources accessible to the processing circuitry. A pipeline is provided for handling at least two pending threads awaiting processing by the processing circuitry. The pipeline includes at least one resource-requesting pipeline stage for requesting access to resources for the pending threads. A priority controller controls priority levels of the pending threads. The priority levels define a priority with which pending threads are granted access to resources. When a pending thread reaches a final pipeline stage, if the request resources are not yet available then the priority level of that thread is raised selectively and the thread is returned to a first pipeline stage of the pipeline. If the requested resources are available then the thread is forwarded from the pipeline.
Abstract:
A texture cache comprises at least two banks of cache storage to cache texels for processing in texture mapping operations. Access to the cached texels corresponding to a given chunk of texels of a given texture image is controlled according to a selected bank mapping selected from two or more bank mappings supported by the texture cache access control circuitry. Each bank mapping corresponds to a different mapping of the respective texels within the given chunk to the banks of cache storage. In at least one operating mode, the selected bank mapping is selected for the given chunk of texels of the given texture image depending on: at least one of first/second chunk position coordinates associated with the given chunk of texels; and at least one further texture attribute associated with the given texture image.
Abstract:
There is disclosed a method of storing an encoded block of data in memory comprising encoding a block of data elements and determining a memory location (26) at which the encoded block of data is to be stored. The memory location (26) at which the encoded block of data is stored is then indicated in a header (406) for the encoded block of data by including in the header a memory address value (407) together with a modifier value (500) representing a modifier that is to be applied to the memory address value (407) when determining the memory location (26). When the encoded block of data is to be retrieved, the header (406) is read and processed to determine the memory location (26).
Abstract:
When performing anisotropic filtering when sampling a texture to provide an output sampled texture value for use when rendering an output in a graphics processing system, a number of positions for which to sample the texture along an anisotropy direction along which samples will be taken in the texture is determined by determining the square root of the coefficient F for an ellipse having the form Ax2+Bxy+Cy2=F corresponding to the projection of the sampling point for which the texture is being sampled onto the surface to which the texture is to be applied, and using the determined square root of the ellipse coefficient F to determine the number of positions for which samples should be taken along the anisotropy direction in the texture.