US20090295819A1 - Floating Point Texture Filtering Using Unsigned Linear Interpolators and Block Normalizations - Google Patents

Floating Point Texture Filtering Using Unsigned Linear Interpolators and Block Normalizations Download PDF

Info

Publication number
US20090295819A1
US20090295819A1 US12/130,364 US13036408A US2009295819A1 US 20090295819 A1 US20090295819 A1 US 20090295819A1 US 13036408 A US13036408 A US 13036408A US 2009295819 A1 US2009295819 A1 US 2009295819A1
Authority
US
United States
Prior art keywords
texel data
floating point
normalized
texture
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US12/130,364
Other versions
US8502832B2 (en
Inventor
Brian BUCHNER
Anthony P. DeLaurier
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Priority to US12/130,364 priority Critical patent/US8502832B2/en
Publication of US20090295819A1 publication Critical patent/US20090295819A1/en
Assigned to ADVANCED MICRO DEVICES, INC. reassignment ADVANCED MICRO DEVICES, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BUCHNER, BRIAN, DELAURIER, ANTHONY P.
Application granted granted Critical
Publication of US8502832B2 publication Critical patent/US8502832B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers

Definitions

  • the present invention is generally directed to computing operations performed in computing systems, and more particularly directed to graphics processing tasks performed in computing systems.
  • a graphics processing unit is a complex integrated circuit that is specially designed to perform graphics processing tasks.
  • a GPU may, for example, execute graphics processing tasks required by an end-user application, such as a video game application. In such an example, there are several layers of software between the end-user application and the GPU.
  • the end-user application communicates with an application programming interface (API).
  • API allows the end-user application to output graphics data and commands in a standardized format, rather than in a format that is dependent on the GPU.
  • Several types of APIs are commercially available, including Direct® developed by Microsoft Corp. and OpenGL® developed by Silicon Graphics, Inc.
  • the API communicates with a driver.
  • the driver translates standard code received from the API into a native format of instructions understood by the GPU.
  • the driver is typically written by the manufacturer of the GPU.
  • the GPU then executes the instructions from the driver.
  • Texture filtering is a method used to determine the texture color for a texture mapped pixel through the use of the colors of nearby pixels of the texture, or texels. The process is also referred to as texture smoothing or texture interpolation.
  • texture filtering requires a high degree of computational complexity.
  • a concept of mip mapping is used whereby multiple bitmap versions of the image are stored, each version being encoded and stored at a reduced level of detail. In this manner, as the view of the image is minimized, such as moving away from the image, the displayed image is a version with a reduced level of detail. Because of this reduction in detail, texture filtering can be calculated on a version of the image with a reduced level of detail thereby not increasing the required level of computation as an image is minimized.
  • nearest neighbor interpolation simply returns the color of the texel closest to the center of the requested pixel. While this method requires minimal computation, it also results in a large amounts of “blockiness” during magnification as well as aliasing and shimmering during any type of minification. Nearest neighbor interpolation can also be used with mip mapping, using the nearest mip map level according to the distance from the image. This approach aids in the reduction of aliasing and shimmering, but does not solve blockiness.
  • a bilinear filtering concept is employed whereby instead of relying upon a single texel, the four nearest texels to the pixel in question are sampled and the colors of each texel are combined by a weighted average according to distance.
  • This technique results in a smoothing gradient of color change from one texel to the next, instead of a sudden change when a pixel center crosses a texel boundary.
  • Anisotropic filtering is typically the highest quality filtering available in consumer based three dimensional graphics cards. Bilinear and trilinear filtering results are correct only when the viewer is looking at the texture perpendicularly. Under these techniques an object will appear blurry when the textured surface is at an oblique angle. Anisotropic filtering corrects this error by sampling in the correct trapezoid shape according to the viewing angle and then trilinearly filtering the results.
  • the present invention includes a texture filter system comprising a pre-formatter module, an interpolator module, an accumulator module, and a format module.
  • the pre-formatter module is configured to receive texel data and convert it to a normalized fixed point format.
  • the interpolator module is configured to perform an interpolation on the normalized fixed point texel data from the pre-formatter module and generate re-normalized floating point texel data.
  • the accumulator module is configured to accumulate floating point texel data from the interpolator module to achieve the desired level of bilinear, trilinear, and anisotropic filtering.
  • the format module is configured to convert texel data from the accumulator module into a standard floating point representation.
  • the pre-formatter module is configured to receive texel data in a floating point format.
  • the pre-formatter module analyzes the data for exponent deltas and performs a block normalization on the incoming floating point data in order to generate a set of fixed point texel data relative to a common, largest, exponent.
  • the interpolator module is configured to perform one or more interpolations utilizing fixed point calculations from which the results are accumulated in the accumulator module.
  • the format module is configured to convert the accumulated texel data in the accumulator module into a standard floating point representation.
  • the pre-formatter module is configured to receive texel data in a fixed point format.
  • the interpolator module is configured to perform one or more interpolations utilizing fixed point calculations from which the results are accumulated in the accumulator module.
  • the format module is configured to convert the accumulated texel data in the accumulator module into a standard floating point representation.
  • the pre-formatter module is configured to receive texel data in a signed or unsigned format.
  • FIG. 1 is a system diagram depicting an implementation of a texture pipe system according to an embodiment of the present invention.
  • FIG. 2 is a system diagram depicting an implementation of a texture filter system according to an embodiment of the present invention.
  • FIG. 3 is a system diagram depicting an implementation of a pre-formatter module within a texture filter system according to an embodiment of the present invention.
  • FIG. 4 is a system diagram depicting an implementation of a interpolator module within a texture filter system according to an embodiment of the present invention.
  • FIG. 5 is a flowchart depicting an implementation of a method for texture filtering according to an embodiment of the present invention.
  • the present invention relates to a texture filter with the ability to receive texel data in multiple formats, including floating point and fixed point, in a signed or unsigned format.
  • floating point texel data is converted and normalized into a fixed point format. Once the texel data is in a fixed point format then the interpolations can be preformed using fixed point data calculations. In this manner the implementation of the functionality within the interpolator module does not necessitate the use of floating point arithmetic logic. After the interpolations are accumulated in the accumulator module the format module converts the texel data into a standard floating point representation.
  • references in the specification to “one embodiment”, “an embodiment”, “an example embodiment”, etc. indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it would be within the knowledge of one skilled in the art to incorporate such a feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
  • FIG. 1 is an illustration of a system 100 where a requesting resource 110 generates a texture request to a texture pipe system 120 .
  • Texture pipe system 120 comprises a texture addressing system 122 , a texture cache system 124 , and a texture filter system 126 .
  • the texture addressing system 122 within the texture pipe system 120 generates appropriate addresses required for a single bilinear texture operation. These addresses are applied to texture cache system 124 which contains texel data associated with each pixel. Texture cache system 124 then presents the texel data associated with the requested pixel to texture filter system 126 which is the focus of this invention.
  • Texture filter system 126 receives texel data from texture cache system 124 and, after the data is processed, presents the texel data back to the requesting resource 110 .
  • Texture filter system 126 comprises a pre-formatter module 210 , an interpolator module 220 , an accumulator module 230 , and a format module 240 .
  • Pre-formatter module 210 is configured to receive texel data and performs a block normalization thereby generating normalized fixed point texel data.
  • Interpolator module 220 receives the normalized fixed point texel data and performs one or more interpolations, each of which are accumulated in accumulator module 230 , to achieve the desired level of bilinear, trilinear, and anisotropic texture filtering.
  • Format module 240 converts the accumulated texel data from accumulator module 230 to a standard floating point representation for the requesting resource 110 .
  • FIG. 3 illustrates the components that comprise pre-formatter module 210 within texture filter system 126 according to an embodiment of the present invention.
  • Pre-formatter module 210 is configured to receive texel data in a floating point or fixed point format.
  • texel data may be signed or unsigned.
  • pre-formatter module 210 treats floating point texel format data differently than fixed point texel format data.
  • floating point data can be represented as (m ⁇ b e ) where m is the mantissa, b is the base of the number, and e is the exponent. In the case of fixed point data there are a certain number of digits after, and/or before the decimal point, but there is no base value or exponent value.
  • pre-formatter module 210 receives a block of texel data which is comprised of floating point texel data representing four texels.
  • extractor module 310 will extract the mantissas, exponents, and signs associated with each texel.
  • the exponents of the floating point texels are received by maximum/delta module 320 .
  • Maximum/delta module 320 provides two functions. First, within the block of floating point texels received by pre-formatter module 210 , the maximum/delta module 320 identifies the exponent of maximum value (most positive).
  • maximum/delta module 320 calculates the difference between this maximum exponent and the exponent for each floating point texel value. Then, for each floating point texel mantissa, mantissa shifter module 330 normalizes the mantissa with respect to the exponent of maximum value. This normalization is accomplished by shifting the mantissa right by the number of bit positions equal to the respective (for that texel) exponent delta calculated by maximum/delta module 320 . In addition, if a floating point texel mantissa is negative then two's compliment module 340 will convert the shifted negative floating point texel mantissa into an unsigned two's compliment value. In summary, pre-formatter module 210 , in the case of receiving a block of floating point texel data, will generate a block of unsigned, normalized mantissa values 342 along with the corresponding maximum block exponent value 322 .
  • Pre-formatter module 210 of FIG. 3 also identifies when an invalid texel value is encountered, including an infinity, undefined, and negative zero. In addition, pre-formatter module 210 will merge a hidden 1 into the mantissa for normalized floating point texel data that does not explicitly represent the leading 1 .
  • FIG. 4 illustrates the components that comprise interpolator module 220 within the texture filter system 126 according to an embodiment of the present invention. Since pre-formatter module 210 has converted the texel data into a fixed point format, interpolator module 220 does not have to accommodate floating point data while performing interpolations. As shown in FIG. 4 , interpolator module 220 comprises a interpolator 410 and a re-normalization module 420 . Interpolator module 220 receives normalized mantissas 342 and maximum exponent value 322 from pre-formatter module 210 .
  • Normalized mantissas 342 are used by interpolator 410 in performing an interpolation of the block of normalized mantissas using a weighted algorithm based on horizontal integer weight wH 411 input and vertical integer weight wV 413 input.
  • the results of the interpolation are then sent to re-normalization module 420 which adjusts the maximum exponent value 322 to account for the number of bit positions required when renormalizing the interpolation result, thereby producing normalized floating point mantissa 430 with floating point exponent 440 .
  • Interpolator module 220 of FIG. 4 is configured to perform multiple interpolations which may be necessary to achieve various levels of texture filtering including, but not limited to, bilinear, trilinear, and anisotropic.
  • Accumulator module 230 accumulates the results of multiple interpolations in order to produce the desired level of filtering.
  • Format module 240 is configured to convert floating point texel data from the accumulator module 230 into a desired standard floating point format, such as the IEEE-Float 32 representation.
  • FIG. 5 is a flowchart depicting a method 500 for floating point texture filtering using unsigned linear interpolators and block normalization.
  • Method 500 begins at step 502 .
  • a texture filter receives a block of floating point texel data as a result of a requesting resource issuing a texture request.
  • the pre-formatter module generates normalized fixed point texel data and a common, highest, exponent from the block of floating point texel data.
  • the interpolator module performs interpolation operations on the normalized block of fixed point texel data.
  • the interpolator module generates re-normalized floating point texel data based from the interpolation operations and the maximum exponent identified in the pre-formatting process.
  • the accumulating module accumulates re-normalized data from the interpolator module with the ability to produce bilinear, trilinear, and anisotropic filter data.
  • the format module formats the accumulated re-normalized texel data into a standard floating point representation.
  • FIGS. 1 , 2 , 3 , 4 , and 5 can be implemented in software, firmware, or hardware, or using any combination thereof. If programmable logic is used, such logic can execute on a commercially available processing platform or a special purpose device.
  • embodiments of the present invention can be designed in software using a hardware description language (HDL) such as, for example, Verilog or VHDL.
  • HDL hardware description language
  • the HDL-design can model the behavior of an electronic system, where the design can be synthesized and ultimately fabricated into a hardware device.
  • the HDL-design can be stored in a computer product and loaded into a computer system prior to hardware manufacture.

Abstract

Apparatus and systems utilizing fixed point filtering to perform floating point texture filtering. A texture pipe unit consisting of a texture addressing unit, texture cache unit, and texture filter unit accepts texture requests for a specified pixel from a resource and returns formatted bilinear filtered results based on the specific pixel's corresponding four texels. The texture filtering unit consists of a pre-formatter module, interpolator module, accumulator module and a format module. The pre-formatter module accepts texel data in a floating point or fixed point format. However, if the data is in a floating point format the pre-formatter module converts the floating point data into a normalized fixed point data format whereby the interpolator module may perform its bilinear interpolator functions using standardized fixed point systems and apparatus without necessitating the use of floating point arithmetic units. A method utilizing fixed point filtering to perform floating point texture filtering is also presented.

Description

    BACKGROUND
  • 1. Field of the Invention
  • The present invention is generally directed to computing operations performed in computing systems, and more particularly directed to graphics processing tasks performed in computing systems.
  • 2. Related Art
  • A graphics processing unit (GPU) is a complex integrated circuit that is specially designed to perform graphics processing tasks. A GPU may, for example, execute graphics processing tasks required by an end-user application, such as a video game application. In such an example, there are several layers of software between the end-user application and the GPU.
  • The end-user application communicates with an application programming interface (API). An API allows the end-user application to output graphics data and commands in a standardized format, rather than in a format that is dependent on the GPU. Several types of APIs are commercially available, including Direct® developed by Microsoft Corp. and OpenGL® developed by Silicon Graphics, Inc. The API communicates with a driver. The driver translates standard code received from the API into a native format of instructions understood by the GPU. The driver is typically written by the manufacturer of the GPU. The GPU then executes the instructions from the driver.
  • Typically, GPUs also support a concept known as texture filtering. Texture filtering is a method used to determine the texture color for a texture mapped pixel through the use of the colors of nearby pixels of the texture, or texels. The process is also referred to as texture smoothing or texture interpolation. However, high image quality texture filtering requires a high degree of computational complexity.
  • As an aid to reduce the amount of data needed during texture filtering, a concept of mip mapping is used whereby multiple bitmap versions of the image are stored, each version being encoded and stored at a reduced level of detail. In this manner, as the view of the image is minimized, such as moving away from the image, the displayed image is a version with a reduced level of detail. Because of this reduction in detail, texture filtering can be calculated on a version of the image with a reduced level of detail thereby not increasing the required level of computation as an image is minimized.
  • The simplest form of texture filtering is referred to as nearest neighbor interpolation which simply returns the color of the texel closest to the center of the requested pixel. While this method requires minimal computation, it also results in a large amounts of “blockiness” during magnification as well as aliasing and shimmering during any type of minification. Nearest neighbor interpolation can also be used with mip mapping, using the nearest mip map level according to the distance from the image. This approach aids in the reduction of aliasing and shimmering, but does not solve blockiness.
  • In order to solve some of these problems, a bilinear filtering concept is employed whereby instead of relying upon a single texel, the four nearest texels to the pixel in question are sampled and the colors of each texel are combined by a weighted average according to distance. This technique results in a smoothing gradient of color change from one texel to the next, instead of a sudden change when a pixel center crosses a texel boundary.
  • However, where the rendering of an image changes from one mip map level to another there tends to be a very noticeable change in the quality at the boundaries between the levels which is not solved using bilinear filtering. In this situation the concept of trilinear filtering is used which involves doing a texture lookup and bilinear filtering on the two closest mip map levels, and then performing a linear interpolation of the results. This results in a smooth degradation of texture quality as distance from the viewer increases, rather than a series of steps.
  • Anisotropic filtering is typically the highest quality filtering available in consumer based three dimensional graphics cards. Bilinear and trilinear filtering results are correct only when the viewer is looking at the texture perpendicularly. Under these techniques an object will appear blurry when the textured surface is at an oblique angle. Anisotropic filtering corrects this error by sampling in the correct trapezoid shape according to the viewing angle and then trilinearly filtering the results.
  • While the more sophisticated bilinear, trilinear, and anisotropic filtering techniques produce better results they require higher amounts of computation. In addition, where the dynamic range of sampled texels is large, the required computations typically are done using floating point arithmetic solutions in order to preserve data quality. Floating point calculations require the use of floating point arithmetic logic units within a GPU which increases the associated cost and area required in a circuit to implement.
  • What are needed, therefore, are systems and/or methods to alleviate the aforementioned deficiencies. Particularly, what is needed is a quality, efficient and cost effective approach to perform bilinear, trilinear, and anisotropic filtering without the need for floating point arithmetic calculations and the associated floating point arithmetic units.
  • BRIEF SUMMARY
  • Consistent with the principles of the present invention as embodied and broadly described herein, the present invention includes a texture filter system comprising a pre-formatter module, an interpolator module, an accumulator module, and a format module. The pre-formatter module is configured to receive texel data and convert it to a normalized fixed point format. The interpolator module is configured to perform an interpolation on the normalized fixed point texel data from the pre-formatter module and generate re-normalized floating point texel data. The accumulator module is configured to accumulate floating point texel data from the interpolator module to achieve the desired level of bilinear, trilinear, and anisotropic filtering. The format module is configured to convert texel data from the accumulator module into a standard floating point representation.
  • In an embodiment of the invention, the pre-formatter module is configured to receive texel data in a floating point format. In this embodiment the pre-formatter module analyzes the data for exponent deltas and performs a block normalization on the incoming floating point data in order to generate a set of fixed point texel data relative to a common, largest, exponent. The interpolator module is configured to perform one or more interpolations utilizing fixed point calculations from which the results are accumulated in the accumulator module. The format module is configured to convert the accumulated texel data in the accumulator module into a standard floating point representation.
  • In another embodiment the pre-formatter module is configured to receive texel data in a fixed point format. The interpolator module is configured to perform one or more interpolations utilizing fixed point calculations from which the results are accumulated in the accumulator module. The format module is configured to convert the accumulated texel data in the accumulator module into a standard floating point representation.
  • In yet another embodiment the pre-formatter module is configured to receive texel data in a signed or unsigned format.
  • Further embodiments, features, and advantages of the invention, as well as the structure and operation of the various embodiments of the invention are described in detail below with reference to accompanying drawings.
  • BRIEF DESCRIPTION OF THE FIGURES
  • The accompanying drawings, which are incorporated in and constitute part of the specification, illustrate embodiments of the invention and, together with the general description given above and the detailed description of the embodiment given below, serve to explain the principles of the present invention. In the drawings:
  • FIG. 1 is a system diagram depicting an implementation of a texture pipe system according to an embodiment of the present invention.
  • FIG. 2 is a system diagram depicting an implementation of a texture filter system according to an embodiment of the present invention.
  • FIG. 3 is a system diagram depicting an implementation of a pre-formatter module within a texture filter system according to an embodiment of the present invention.
  • FIG. 4 is a system diagram depicting an implementation of a interpolator module within a texture filter system according to an embodiment of the present invention.
  • FIG. 5 is a flowchart depicting an implementation of a method for texture filtering according to an embodiment of the present invention.
  • DETAILED DESCRIPTION
  • The present invention relates to a texture filter with the ability to receive texel data in multiple formats, including floating point and fixed point, in a signed or unsigned format. In embodiments of this invention, floating point texel data is converted and normalized into a fixed point format. Once the texel data is in a fixed point format then the interpolations can be preformed using fixed point data calculations. In this manner the implementation of the functionality within the interpolator module does not necessitate the use of floating point arithmetic logic. After the interpolations are accumulated in the accumulator module the format module converts the texel data into a standard floating point representation.
  • While specific configurations, arrangements, and steps are discussed, it should be understood that this is done for illustrative purposes only. A person skilled in the pertinent art(s) will recognize that other configurations, arrangements, and steps may be used without departing from the spirit and scope of the present invention. It will be apparent to a person skilled in the pertinent art(s) that this invention may also be employed in a variety of other applications.
  • It is noted that references in the specification to “one embodiment”, “an embodiment”, “an example embodiment”, etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it would be within the knowledge of one skilled in the art to incorporate such a feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
  • While the present invention is described herein with reference to illustrative embodiments for particular applications, it should be understood that the invention is not limited thereto. Those skilled in the art with access to the teachings provided herein will recognize additional modifications, applications, and embodiments within the scope thereof and additional fields in which the invention would be of significant utility.
  • FIG. 1 is an illustration of a system 100 where a requesting resource 110 generates a texture request to a texture pipe system 120. Texture pipe system 120 comprises a texture addressing system 122, a texture cache system 124, and a texture filter system 126. Once a requesting resource 110 issues a texture request to texture pipe system 120, the texture addressing system 122 within the texture pipe system 120 generates appropriate addresses required for a single bilinear texture operation. These addresses are applied to texture cache system 124 which contains texel data associated with each pixel. Texture cache system 124 then presents the texel data associated with the requested pixel to texture filter system 126 which is the focus of this invention.
  • The system of FIG. 2 illustrates the components comprising the texture filter system 126 according to an embodiment of the present invention. Texture filter system 126 receives texel data from texture cache system 124 and, after the data is processed, presents the texel data back to the requesting resource 110. Texture filter system 126 comprises a pre-formatter module 210, an interpolator module 220, an accumulator module 230, and a format module 240. Pre-formatter module 210 is configured to receive texel data and performs a block normalization thereby generating normalized fixed point texel data. Interpolator module 220 receives the normalized fixed point texel data and performs one or more interpolations, each of which are accumulated in accumulator module 230, to achieve the desired level of bilinear, trilinear, and anisotropic texture filtering. Format module 240 converts the accumulated texel data from accumulator module 230 to a standard floating point representation for the requesting resource 110.
  • FIG. 3 illustrates the components that comprise pre-formatter module 210 within texture filter system 126 according to an embodiment of the present invention. Pre-formatter module 210 is configured to receive texel data in a floating point or fixed point format. In addition, texel data may be signed or unsigned. However, pre-formatter module 210 treats floating point texel format data differently than fixed point texel format data. Symbolically, floating point data can be represented as (m·be) where m is the mantissa, b is the base of the number, and e is the exponent. In the case of fixed point data there are a certain number of digits after, and/or before the decimal point, but there is no base value or exponent value. Therefore, fixed format texel data is multiplexed directly using bypass module 315 to normalized mantissas 342 output without further processing by extractor module 310, maximum/delta module 320, mantissa shifter module 330, and two's compliment module 340 In the case of a floating point texel, extractor module 310 will capture the mantissa value, the exponent value, and the sign of incoming texel data.
  • In one embodiment pre-formatter module 210 receives a block of texel data which is comprised of floating point texel data representing four texels. In this case where pre-formatter module 210 receives a block of floating point texel data, extractor module 310 will extract the mantissas, exponents, and signs associated with each texel. The exponents of the floating point texels are received by maximum/delta module 320. Maximum/delta module 320 provides two functions. First, within the block of floating point texels received by pre-formatter module 210, the maximum/delta module 320 identifies the exponent of maximum value (most positive). Secondly, maximum/delta module 320 calculates the difference between this maximum exponent and the exponent for each floating point texel value. Then, for each floating point texel mantissa, mantissa shifter module 330 normalizes the mantissa with respect to the exponent of maximum value. This normalization is accomplished by shifting the mantissa right by the number of bit positions equal to the respective (for that texel) exponent delta calculated by maximum/delta module 320. In addition, if a floating point texel mantissa is negative then two's compliment module 340 will convert the shifted negative floating point texel mantissa into an unsigned two's compliment value. In summary, pre-formatter module 210, in the case of receiving a block of floating point texel data, will generate a block of unsigned, normalized mantissa values 342 along with the corresponding maximum block exponent value 322.
  • Pre-formatter module 210 of FIG. 3 also identifies when an invalid texel value is encountered, including an infinity, undefined, and negative zero. In addition, pre-formatter module 210 will merge a hidden 1 into the mantissa for normalized floating point texel data that does not explicitly represent the leading 1.
  • FIG. 4 illustrates the components that comprise interpolator module 220 within the texture filter system 126 according to an embodiment of the present invention. Since pre-formatter module 210 has converted the texel data into a fixed point format, interpolator module 220 does not have to accommodate floating point data while performing interpolations. As shown in FIG. 4, interpolator module 220 comprises a interpolator 410 and a re-normalization module 420. Interpolator module 220 receives normalized mantissas 342 and maximum exponent value 322 from pre-formatter module 210. Normalized mantissas 342 are used by interpolator 410 in performing an interpolation of the block of normalized mantissas using a weighted algorithm based on horizontal integer weight wH 411 input and vertical integer weight wV 413 input. The results of the interpolation are then sent to re-normalization module 420 which adjusts the maximum exponent value 322 to account for the number of bit positions required when renormalizing the interpolation result, thereby producing normalized floating point mantissa 430 with floating point exponent 440.
  • Interpolator module 220 of FIG. 4 is configured to perform multiple interpolations which may be necessary to achieve various levels of texture filtering including, but not limited to, bilinear, trilinear, and anisotropic. Accumulator module 230 accumulates the results of multiple interpolations in order to produce the desired level of filtering.
  • Format module 240 is configured to convert floating point texel data from the accumulator module 230 into a desired standard floating point format, such as the IEEE-Float 32 representation.
  • FIG. 5 is a flowchart depicting a method 500 for floating point texture filtering using unsigned linear interpolators and block normalization. Method 500 begins at step 502. In step 504, a texture filter receives a block of floating point texel data as a result of a requesting resource issuing a texture request. In step 506, the pre-formatter module generates normalized fixed point texel data and a common, highest, exponent from the block of floating point texel data.
  • In step 508, the interpolator module performs interpolation operations on the normalized block of fixed point texel data. In step 510 the interpolator module generates re-normalized floating point texel data based from the interpolation operations and the maximum exponent identified in the pre-formatting process. In step 512, the accumulating module accumulates re-normalized data from the interpolator module with the ability to produce bilinear, trilinear, and anisotropic filter data. In step 514, the format module formats the accumulated re-normalized texel data into a standard floating point representation.
  • The functions, processes, systems, and methods outlined in FIGS. 1, 2, 3, 4, and 5 can be implemented in software, firmware, or hardware, or using any combination thereof. If programmable logic is used, such logic can execute on a commercially available processing platform or a special purpose device.
  • As would be apparent to one skilled in the relevant art, based on the description herein, embodiments of the present invention can be designed in software using a hardware description language (HDL) such as, for example, Verilog or VHDL. The HDL-design can model the behavior of an electronic system, where the design can be synthesized and ultimately fabricated into a hardware device. In addition, the HDL-design can be stored in a computer product and loaded into a computer system prior to hardware manufacture.
  • It is to be appreciated that the Detailed Description section, and not the Summary and Abstract sections, is intended to be used to interpret the claims. The Summary and Abstract sections may set forth one or more but not all exemplary embodiments of the present invention as contemplated by the inventor(s), and thus, are not intended to limit the present invention and the appended claims in any way.
  • The present invention has been described above with the aid of functional building blocks illustrating the implementation of specified functions and relationships thereof. The boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed.
  • The foregoing description of the specific embodiments will so fully reveal the general nature of the invention that others can, by applying knowledge within the skill of the art, readily modify and/or adapt for various applications such specific embodiments, without undue experimentation, without departing from the general concept of the present invention. Therefore, such adaptations and modifications are intended to be within the meaning and range of equivalents of the disclosed embodiments, based on the teaching and guidance presented herein. It is to be understood that the phraseology or terminology herein is for the purpose of description and not of limitation, such that the terminology or phraseology of the present specification is to be interpreted by the skilled artisan in light of the teachings and guidance.
  • While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example only, and not limitation. It will be apparent to persons skilled in the relevant art that various changes in form and detail can be made therein without departing from the spirit and scope of the invention. Thus, the breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.

Claims (21)

1. A texture filtering system, comprising:
a pre-formatter module configured to accept texel data and generate normalized fixed point texel data;
an interpolator module configured to perform an interpolation on the normalized fixed point texel data from the pre-formatter module and generate re-normalized floating point texel data;
an accumulator module configured to accumulate floating point texel data from the interpolator module; and
a format module configured to convert texel data from the accumulator module into a standard floating point representation.
2. The texture filtering system of claim 1, wherein the pre-formatter module is configured to receive texel data in a signed format and an unsigned format.
3. The texture filtering system of claim 1, wherein the pre-formatter module is configured to receive texel data in a floating point format and a fixed point format.
4. The texture filtering system of claim 1, wherein the interpolator module is configured to perform a bilinear interpolation.
5. The texture filtering system of claim 1, wherein the interpolator module is configured to perform one or more interpolations in order to achieve at least one of:
a bilinear texture filtering;
a trilinear texture filtering; and
an anisotropic texture filtering.
6. The texture filtering system of claim 1, wherein the functionality of the pre-formatter module comprises:
extracting a sign, an exponent, and a mantissa from each floating point texel in a block of floating point texel data;
identifying if an infinity, undefined, and negative zero exist in the floating point texel data;
merging a hidden 1 into the mantissa for normalized floating point texel data;
two's complementing a negative mantissa; and
applying a block normalization wherein (i) a largest exponent is identified and (ii) a delta is calculated between each exponent and the largest exponent, the mantissa being shifted right by the delta.
7. The texture filtering system of claim 6, wherein the block of floating point texel data represents four texels.
8. The texture filtering system of claim 1, wherein the interpolator module is configured to generate re-normalized floating point texel comprising:
performing an interpolation on the fixed point texel data using a horizontal weight and a vertical weight; and
re-normalizing the fixed point texel data to floating point texel data based on a largest exponent of the fixed point texel data from the pre-formatter module.
9. The texture filtering system of claim 8, wherein the interpolation is configured to be implemented as more than one linear interpolation.
10. A method for texture filtering, comprising:
receiving floating point texel data;
generating normalized fixed point texel data from the floating point texel data;
performing interpolation on the normalized fixed point texel data;
generating re-normalized floating point texel data;
accumulating re-normalized texel data; and
formatting the accumulated re-normalized texel data into a standard floating point representation.
11. The texture filtering method of claim 10, wherein generating normalized fixed point texel data further comprises:
extracting a sign, an exponent, and a mantissa from the floating point texel data;
identifying if an infinity, undefined, and negative zero exist in the floating point texel data;
merging a hidden 1 into the mantissa for normalized floating point texel data;
two's complementing a negative mantissa; and
applying a block normalization wherein (i) a largest exponent is identified and (ii) a delta is calculated between each exponent and the largest exponent, the mantissa being shifted right by the delta.
12. The texture filtering method of claim 10, wherein interpolation further comprises:
performing an interpolation on the fixed point texel data using a horizontal weight and a vertical weight; and
re-normalizing the fixed point texel data to floating point texel data.
13. The texture filtering method of claim 10, wherein interpolation further comprises:
achieving a bilinear texture filter;
achieving a trilinear texture filter; and
achieving an anisotropic texture filter.
14. The texture filtering method of claim 10, wherein the method is performed by synthesizing hardware description language instructions.
15. A system for texture filtering, comprising:
a processor; and
a memory in communication with said processor, said memory for storing a plurality of processing instructions for directing said processor to:
receive floating point texel data;
generate normalized fixed point texel data from the floating point texel data;
perform interpolation on the normalized fixed point texel data;
generate re-normalized floating point texel data;
accumulate re-normalized texel data; and
format the accumulated re-normalized texel data into a standard floating point representation.
16. The texture filtering system of claim 15, wherein generating normalized fixed point texel data further comprises:
extracting a sign, an exponent, and a mantissa from the floating point texel data;
identifying if an infinity, undefined, and negative zero exist in the floating point texel data;
merging a hidden 1 into the mantissa for normalized floating point texel data;
two's complementing a negative mantissa; and
applying a block normalization wherein (i) a largest exponent is identified and (ii) a delta is calculated between each exponent and the largest exponent, the mantissa being shifted right by the delta.
17. The texture filtering system of claim 15, wherein interpolation further comprises:
performing a interpolation on the fixed point texel data using a horizontal weight and a vertical weight; and
re-normalizing the fixed point texel data to floating point texel data.
18. The texture filtering system of claim 15, wherein interpolation further comprises:
achieving a bilinear texture filter;
achieving a trilinear texture filter; and
achieving an anisotropic texture filter.
19. A system for texture filtering, comprising:
means for receiving floating point texel data;
means for generating normalized fixed point texel data from the floating point texel data;
means for performing interpolation on the normalized fixed point texel data;
means for generating re-normalized floating point texel data;
means for accumulating re-normalized texel data; and
means for formatting the accumulated re-normalized texel data into a standard floating point representation.
20. A computer readable medium carrying one or more sequences of one or more instructions for execution by one or more processors to perform a method for texture filtering, comprising:
receiving floating point texel data;
generating normalized fixed point texel data from the floating point texel data; performing interpolation on the normalized fixed point texel data;
generating re-normalized floating point texel data;
accumulating re-normalized texel data; and
formatting the accumulated re-normalized texel data into a standard floating point representation.
21. The computer readable medium method of claim 20, wherein generating normalized fixed point texel data further comprises:
extracting a sign, an exponent, and a mantissa from the floating point texel data;
identifying if an infinity, undefined, and negative zero exist in the floating point texel data;
merging a hidden 1 into the mantissa for normalized floating point texel data;
two's complementing a negative mantissa; and
applying a block normalization wherein (i) a largest exponent is identified and (ii) a delta is calculated between each exponent and the largest exponent, the mantissa being shifted right by the delta.
US12/130,364 2008-05-30 2008-05-30 Floating point texture filtering using unsigned linear interpolators and block normalizations Active 2031-03-24 US8502832B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/130,364 US8502832B2 (en) 2008-05-30 2008-05-30 Floating point texture filtering using unsigned linear interpolators and block normalizations

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/130,364 US8502832B2 (en) 2008-05-30 2008-05-30 Floating point texture filtering using unsigned linear interpolators and block normalizations

Publications (2)

Publication Number Publication Date
US20090295819A1 true US20090295819A1 (en) 2009-12-03
US8502832B2 US8502832B2 (en) 2013-08-06

Family

ID=41379235

Family Applications (1)

Application Number Title Priority Date Filing Date
US12/130,364 Active 2031-03-24 US8502832B2 (en) 2008-05-30 2008-05-30 Floating point texture filtering using unsigned linear interpolators and block normalizations

Country Status (1)

Country Link
US (1) US8502832B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090295821A1 (en) * 2008-05-30 2009-12-03 Advanced Micro Devices, Inc. Scalable and Unified Compute System
EP2705501A4 (en) * 2011-05-02 2015-09-30 Sony Computer Entertainment Inc Texturing in graphics hardware
US20170032543A1 (en) * 2015-07-29 2017-02-02 Samsung Electronics Co., Ltd. Texture processing apparatus and method
US20190311519A1 (en) * 2018-04-05 2019-10-10 Imagination Technologies Limited High Accuracy Texture Filtering in Computer Graphics

Citations (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5218680A (en) * 1990-03-15 1993-06-08 International Business Machines Corporation Data link controller with autonomous in tandem pipeline circuit elements relative to network channels for transferring multitasking data in cyclically recurrent time slots
US5224208A (en) * 1990-03-16 1993-06-29 Hewlett-Packard Company Gradient calculation for texture mapping
US6021511A (en) * 1996-02-29 2000-02-01 Matsushita Electric Industrial Co., Ltd. Processor
US6104415A (en) * 1998-03-26 2000-08-15 Silicon Graphics, Inc. Method for accelerating minified textured cache access
US6532012B2 (en) * 1995-08-04 2003-03-11 Sun Microsystems, Inc. Geometry instructions for graphics data compression
US6731303B1 (en) * 2000-06-15 2004-05-04 International Business Machines Corporation Hardware perspective correction of pixel coordinates and texture coordinates
US20040189652A1 (en) * 2003-03-31 2004-09-30 Emberling Brian D. Optimized cache structure for multi-texturing
US6897871B1 (en) * 2003-11-20 2005-05-24 Ati Technologies Inc. Graphics processing architecture employing a unified shader
US20060028482A1 (en) * 2004-08-04 2006-02-09 Nvidia Corporation Filtering unit for floating-point texture data
US20060053188A1 (en) * 2004-08-11 2006-03-09 Ati Technologies Inc. Apparatus with redundant circuitry and method therefor
US20060093044A1 (en) * 2004-08-24 2006-05-04 Brad Grantham Scalable method and system for streaming high-resolution media
US20060101307A1 (en) * 2004-10-01 2006-05-11 Lockheed Martin Corporation Reconfigurable computing machine and related systems and methods
US7073088B2 (en) * 2001-11-29 2006-07-04 Samsung Electronics Co., Ltd. Data bus arrangement and control method for efficiently compensating for faulty signal lines
US7081894B1 (en) * 1996-02-06 2006-07-25 Sony Computer Entertainment, Inc. Picture drawing apparatus and picture drawing method
US7110006B2 (en) * 1998-11-09 2006-09-19 Broadcom Corporation Video, audio and graphics decode, composite and display system
US20060250409A1 (en) * 2005-04-08 2006-11-09 Yosuke Bando Image rendering method and image rendering apparatus using anisotropic texture mapping
US7136068B1 (en) * 1998-04-07 2006-11-14 Nvidia Corporation Texture cache for a computer graphics accelerator
US20070011434A1 (en) * 2003-09-18 2007-01-11 International Business Machines Corporation Multiple Parallel Pipeline Processor Having Self-Repairing Capability
US7164426B1 (en) * 1998-08-20 2007-01-16 Apple Computer, Inc. Method and apparatus for generating texture
US20070211070A1 (en) * 2006-03-13 2007-09-13 Sony Computer Entertainment Inc. Texture unit for multi processor environment
US7280107B2 (en) * 2005-06-29 2007-10-09 Microsoft Corporation Procedural graphics architectures and techniques
US7330188B1 (en) * 1999-03-22 2008-02-12 Nvidia Corp Texture caching arrangement for a computer graphics accelerator
US7352374B2 (en) * 2003-04-07 2008-04-01 Clairvoyante, Inc Image data set with embedded pre-subpixel rendered image
US20080094408A1 (en) * 2006-10-24 2008-04-24 Xiaoqin Yin System and Method for Geometry Graphics Processing
US20080094405A1 (en) * 2004-04-12 2008-04-24 Bastos Rui M Scalable shader architecture
US20080094407A1 (en) * 2006-06-20 2008-04-24 Via Technologies, Inc. Systems and Methods for Storing Texture Map Data
US20080284786A1 (en) * 1998-06-16 2008-11-20 Silicon Graphics, Inc. Display System Having Floating Point Rasterization and Floating Point Framebuffering
US20090295821A1 (en) * 2008-05-30 2009-12-03 Advanced Micro Devices, Inc. Scalable and Unified Compute System
US7936359B2 (en) * 2006-03-13 2011-05-03 Intel Corporation Reconfigurable floating point filter

Patent Citations (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5218680A (en) * 1990-03-15 1993-06-08 International Business Machines Corporation Data link controller with autonomous in tandem pipeline circuit elements relative to network channels for transferring multitasking data in cyclically recurrent time slots
US5224208A (en) * 1990-03-16 1993-06-29 Hewlett-Packard Company Gradient calculation for texture mapping
US6532012B2 (en) * 1995-08-04 2003-03-11 Sun Microsystems, Inc. Geometry instructions for graphics data compression
US7081894B1 (en) * 1996-02-06 2006-07-25 Sony Computer Entertainment, Inc. Picture drawing apparatus and picture drawing method
US6021511A (en) * 1996-02-29 2000-02-01 Matsushita Electric Industrial Co., Ltd. Processor
US6104415A (en) * 1998-03-26 2000-08-15 Silicon Graphics, Inc. Method for accelerating minified textured cache access
US7136068B1 (en) * 1998-04-07 2006-11-14 Nvidia Corporation Texture cache for a computer graphics accelerator
US20080284786A1 (en) * 1998-06-16 2008-11-20 Silicon Graphics, Inc. Display System Having Floating Point Rasterization and Floating Point Framebuffering
US7164426B1 (en) * 1998-08-20 2007-01-16 Apple Computer, Inc. Method and apparatus for generating texture
US7110006B2 (en) * 1998-11-09 2006-09-19 Broadcom Corporation Video, audio and graphics decode, composite and display system
US7330188B1 (en) * 1999-03-22 2008-02-12 Nvidia Corp Texture caching arrangement for a computer graphics accelerator
US6731303B1 (en) * 2000-06-15 2004-05-04 International Business Machines Corporation Hardware perspective correction of pixel coordinates and texture coordinates
US7073088B2 (en) * 2001-11-29 2006-07-04 Samsung Electronics Co., Ltd. Data bus arrangement and control method for efficiently compensating for faulty signal lines
US20040189652A1 (en) * 2003-03-31 2004-09-30 Emberling Brian D. Optimized cache structure for multi-texturing
US7352374B2 (en) * 2003-04-07 2008-04-01 Clairvoyante, Inc Image data set with embedded pre-subpixel rendered image
US20070011434A1 (en) * 2003-09-18 2007-01-11 International Business Machines Corporation Multiple Parallel Pipeline Processor Having Self-Repairing Capability
US6897871B1 (en) * 2003-11-20 2005-05-24 Ati Technologies Inc. Graphics processing architecture employing a unified shader
US20080094405A1 (en) * 2004-04-12 2008-04-24 Bastos Rui M Scalable shader architecture
US20060028482A1 (en) * 2004-08-04 2006-02-09 Nvidia Corporation Filtering unit for floating-point texture data
US20060053188A1 (en) * 2004-08-11 2006-03-09 Ati Technologies Inc. Apparatus with redundant circuitry and method therefor
US20060093044A1 (en) * 2004-08-24 2006-05-04 Brad Grantham Scalable method and system for streaming high-resolution media
US20060101307A1 (en) * 2004-10-01 2006-05-11 Lockheed Martin Corporation Reconfigurable computing machine and related systems and methods
US20060250409A1 (en) * 2005-04-08 2006-11-09 Yosuke Bando Image rendering method and image rendering apparatus using anisotropic texture mapping
US7280107B2 (en) * 2005-06-29 2007-10-09 Microsoft Corporation Procedural graphics architectures and techniques
US20070211070A1 (en) * 2006-03-13 2007-09-13 Sony Computer Entertainment Inc. Texture unit for multi processor environment
US7936359B2 (en) * 2006-03-13 2011-05-03 Intel Corporation Reconfigurable floating point filter
US20080094407A1 (en) * 2006-06-20 2008-04-24 Via Technologies, Inc. Systems and Methods for Storing Texture Map Data
US20080094408A1 (en) * 2006-10-24 2008-04-24 Xiaoqin Yin System and Method for Geometry Graphics Processing
US20090295821A1 (en) * 2008-05-30 2009-12-03 Advanced Micro Devices, Inc. Scalable and Unified Compute System
US20090309896A1 (en) * 2008-05-30 2009-12-17 Advanced Micro Devices, Inc. Multi Instance Unified Shader Engine Filtering System With Level One and Level Two Cache
US20090315909A1 (en) * 2008-05-30 2009-12-24 Advanced Micro Devices, Inc. Unified Shader Engine Filtering System

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090295821A1 (en) * 2008-05-30 2009-12-03 Advanced Micro Devices, Inc. Scalable and Unified Compute System
US20090309896A1 (en) * 2008-05-30 2009-12-17 Advanced Micro Devices, Inc. Multi Instance Unified Shader Engine Filtering System With Level One and Level Two Cache
US20090315909A1 (en) * 2008-05-30 2009-12-24 Advanced Micro Devices, Inc. Unified Shader Engine Filtering System
US8558836B2 (en) 2008-05-30 2013-10-15 Advanced Micro Devices, Inc. Scalable and unified compute system
EP2705501A4 (en) * 2011-05-02 2015-09-30 Sony Computer Entertainment Inc Texturing in graphics hardware
US9508185B2 (en) 2011-05-02 2016-11-29 Sony Interactive Entertainment Inc. Texturing in graphics hardware
US20170032543A1 (en) * 2015-07-29 2017-02-02 Samsung Electronics Co., Ltd. Texture processing apparatus and method
KR20170014350A (en) * 2015-07-29 2017-02-08 삼성전자주식회사 Method and apparatus for processing texture
CN106408634A (en) * 2015-07-29 2017-02-15 三星电子株式会社 Texture processing apparatus and method
US10388033B2 (en) * 2015-07-29 2019-08-20 Samsung Electronics Co., Ltd. Texture processing apparatus and method
KR102444240B1 (en) * 2015-07-29 2022-09-16 삼성전자주식회사 Method and apparatus for processing texture
US20190311519A1 (en) * 2018-04-05 2019-10-10 Imagination Technologies Limited High Accuracy Texture Filtering in Computer Graphics

Also Published As

Publication number Publication date
US8502832B2 (en) 2013-08-06

Similar Documents

Publication Publication Date Title
US7355603B2 (en) Filtering unit for floating-point texture data
US8432410B1 (en) 3D graphics API extension for a shared exponent image format
US8195882B2 (en) Shader complex with distributed level one cache system and centralized level two cache
US8487948B2 (en) Apparatus and method for texture level of detail computation
EP0875860B1 (en) Precise gradient calculation system and method for a texture mapping system of a computer graphics system
US8009172B2 (en) Graphics processing unit with shared arithmetic logic unit
CN100504923C (en) Grain engine for grain video signal processing, graph processor and method
WO2021249091A1 (en) Image processing method and apparatus, computer storage medium, and electronic device
EP2831754B1 (en) Post tesellation edge cache
US8502832B2 (en) Floating point texture filtering using unsigned linear interpolators and block normalizations
KR20070074590A (en) Perspective transformation of two-dimensional images
CN114373056A (en) Three-dimensional reconstruction method and device, terminal equipment and storage medium
US8253758B2 (en) Dynamically configurable bilinear filtering system
US7619635B1 (en) Anisotropic texture sampling for odd ratios
CN113506305B (en) Image enhancement method, semantic segmentation method and device for three-dimensional point cloud data
JP2002015327A (en) Image type discrimination device, image processor using the same, and image type discrimination method
CN112837254A (en) Image fusion method and device, terminal equipment and storage medium
US7522173B1 (en) Conversion of data in an sRGB format to a compact floating point format
US7737988B1 (en) Using font filtering engines for texture blitting
US20210304488A1 (en) Sampling for partially resident textures
US9449420B2 (en) Reducing the domain shader/tessellator invocations
CN111127588B (en) DirectX-based large data volume parameter curve playback method
JP2005025254A (en) Computer graphics plotting device
WO2009145919A1 (en) Shader complex with distributed level one cache system and centralized level two cache
KR20080097355A (en) Coordinate computations for non-power of 2 texture maps

Legal Events

Date Code Title Description
AS Assignment

Owner name: ADVANCED MICRO DEVICES, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BUCHNER, BRIAN;DELAURIER, ANTHONY P.;REEL/FRAME:028129/0463

Effective date: 20080410

STCF Information on status: patent grant

Free format text: PATENTED CASE

CC Certificate of correction
FPAY Fee payment

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8