Apparatus and method for controlling rendering quality

Provided is an apparatus and method for controlling rendering quality. The method for controlling rendering quality includes a thermal sensor sensing a temperature of a chip, a hull shader determining a level of detail (LOD) based on the temperature; and a tessellator tessellating segments that are divided according to the level of detail.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority under 35 USC §119 to Korean Patent Application No. 10-2014-0112308, filed on Aug. 27, 2014, in the Korean Intellectual Property Office, the disclosure of which is herein incorporated by reference in its entirety.

BACKGROUND

1. Technical Field

The present inventive concepts relate to an apparatus and method for controlling rendering quality. In particular, the inventive concepts relate to controlling rendering quality based on a temperature of an integrated circuit (“chip”).

2. Description of the Related Art

A Graphics Processing Unit (GPU) is a core that exclusively handles the graphics operations in a computing system. A graphics pipeline is a hardware configuration of the GPU that receives a three-dimensional (3D) object as an input and provides a two-dimensional (2D) rendering image as an output. Recently, the trend towards an increase of graphics resolution causes an abrupt increase of GPU operations and required memory bandwidth.

Furthermore, recent GPUs increase the rendering quality of graphics while supporting tessellation. However, the support for tessellation further increases the GPU operations and required memory bandwidth very significantly, thus greatly reducing the frame rate

Because the resulting reduction in frame rate deteriorates the user experience, methods to prevent this reduction are required. To prevent the reduction in frame rate there have been attempts to reduce an operation amount such that the tessellation level of a nearby object is heightened and the tessellation level of a distant object is lowered.

SUMMARY

The present inventive concepts described herein provide for apparatuses and methods for controlling rendering quality, which substantially reduces or prevents a reduction in frame rate.

In one aspect of the present inventive concept, there is provided a method for controlling rendering quality, comprising a thermal sensor sensing a temperature of a chip, a hull shader determining a level of detail (LOD) based on the temperature; and a tessellator tessellating segments that are divided according to the level of detail.

The sensing the temperature of the chip comprises determining which of at least one predetermined level the sensed temperature belongs to.

The sensing the temperature of the chip comprises determining whether the temperature of the chip belongs to a level that is equal to or higher than a threshold value of the chip.

An input signal of the hull shader includes a plurality of levels, and the determining the level of detail comprises the hull shader receiving an input of all the plurality of levels if the temperature is lower than the threshold temperature, and receiving an input of any one of the plurality of levels if the temperature is equal to or higher than the threshold temperature.

The plurality of levels are divided according to a size with which the segments are divided, and the determining the level of detail comprises the hull shader receiving the input of all the plurality of levels if the temperature is lower than the threshold temperature, and receiving only the level with which the divided segment is largest among the plurality of levels if the temperature is equal to or higher than the threshold temperature.

The determining the level of detail comprises the hull shader determining a first-order level of detail; and determining the first-order level of detail as the level of detail if the temperature is lower than the threshold temperature, and determining one of a preset maximum level of detail and the first-order level of detail, which has a smaller value than the value of the preset maximum level of detail, as the level of detail if the temperature is equal to or higher than the threshold temperature.

The determining the level of detail comprises the hull shader determining a first-order level of detail; and determining the first-order level of detail as the level of detail if the temperature is lower than the threshold temperature, and determining a value that is obtained by subtracting a reduction value from the first-order level of detail as the level of detail if the temperature is equal to or higher than the threshold temperature.

The reduction value is predetermined.

The reduction value is determined by a difference between the temperature and the threshold temperature.

In another aspect of the present inventive concept, there is provided a method for controlling rendering quality, comprising a thermal sensor sensing a temperature of a chip, and a graphics processing unit performing rendering based on the temperature.

The performing the rendering comprises performing tessellation based on a first level of detail if the temperature is lower than a threshold temperature, and performing tessellation based on a second level of detail that is lower than the first level of detail if the temperature is equal to or higher than the threshold temperature.

The performing the rendering comprises performing texturing based on a first texture level of detail if the temperature is lower than a threshold temperature, and performing texturing based on a second texture level of detail that is lower than the first texture level of detail if the temperature is equal to or higher than the threshold temperature.

The performing the rendering comprises performing the rendering with a first resolution if the temperature is lower than a threshold temperature, and performing the rendering with a second resolution that is lower than the first resolution if the temperature is equal to or higher than the threshold temperature.

The performing the rendering comprises performing anti-aliasing (AA) with a first extended multiple if the temperature is lower than a threshold temperature, and performing the anti-aliasing (AA) with a second extended multiple that is smaller than the first extended multiple if the temperature is equal to or higher than the threshold temperature.

The performing the rendering comprises performing texture filtering in a first mode if the temperature is lower than a threshold temperature, and performing the texture filtering in a second mode in which an operation amount is smaller than an operation amount in the first mode if the temperature is equal to or higher than the threshold temperature.

A device for controlling rendering quality comprises a central processing unit (CPU) configured to generate a mesh describing the surface of a three-dimensional (3D) object. The mesh comprises a plurality of primitives, wherein each primitive includes at least one vertex. A sub-graphic system is configured to receive the mesh from the CPU, and to render a display of a 3D object from the mesh. A rendering quality of the display is determined by at least a temperature measurement provided to a rendering quality state machine.

Alternative embodiments of the device for controlling rendering quality include one of the following features, or any combination thereof. The rendering quality state machine is included in the sub-graphic system. The rendering quality state machine is included in the CPU. The rendering quality of the display is determined by at least one of a tessellating level of detail, a texturing level of detail, a frame buffer resolution, an extended multiple of anti-aliasing, a texture filtering mode and a filtering ratio. The display of the 3D object includes a plurality of fragments, each fragment including a texture and a shading.

The subjects to be solved by the present inventive concept are not limited to the above-described subjects, and further subjects that have not been mentioned could be clearly understood by those skilled in the art from the following description.

DETAILED DESCRIPTION

Hereinafter, referring toFIG. 1throughFIG. 5, a computing system including a GPU to which a method for controlling rendering quality according to an embodiment of the present inventive concept is applied will be described.

Referring toFIG. 1, a computing system to which a method for controlling rendering quality according to an embodiment of the present inventive concept is applied includes a GPU100, a memory200, and a thermal sensor300.

The GPU100, the memory200, and the thermal sensor300may be positioned physically adjacent to at least one of the GPU100, the memory200and the thermal sensor300. For example, the GPU100, the memory200, and the thermal sensor300may be positioned on one chip10, but are not limited thereto. The term “chip” refers to an integrated circuit. In one embodiment, the chip is a monolithic silicon chip. In another embodiment, the chip is a multi-chip module. Other various to the term “chip” are envisioned within the scope of this disclosure, whose temperature is used to control rendering quality. The GPU100and the thermal sensor300may be positioned on the same chip and the memory200may be separately positioned. Further, the graphics processing unit100, the memory200, and the thermal sensor300may be respectively positioned on different chips.

If the thermal sensor300can sense the temperature of the chip10according to the operation of the GPU100, the positions of the GPU100, the memory200, and the thermal sensor300are not specially limited.

The graphics processing unit100is configured to perform tile-based rendering by including a graphics pipeline configuration. Accordingly, the graphics pipeline may also be called a rendering pipeline. The graphics pipeline configuration can process multiple streams of graphical data in parallel. The graphics pipeline may be implemented entirely in hardware, entirely in software or a combination thereof.

The memory200is configured to store data. The memory200may store graphic data that is processed by the GPU100or may store graphic data that is provided to the graphics processing unit100. Furthermore, the memory200may serve as an operating memory of the GPU100. The memory200may include at least one volatile memory, such as a DDR SDRAM (Double Data Rate Static DRAM) or SDR SDRAM (Single Data Rate SDRAM), at least one nonvolatile memory, such as EEPROM (Electrical Erasable Programmable ROM) or a flash memory, or a combination of volatile and nonvolatile memories.

In one embodiment, the thermal sensor300may sense the temperature of the GPU100as an indirect measurement of the temperature of the chip10. The thermal sensor300may be positioned on the chip10. The thermal sensor300may sense the temperature of the GPU100and may transfer the sensed temperature to the GPU100. The thermal sensor300may be an on-chip thermal sensor.

The thermal sensor300may have a plurality of temperature levels. That is, the thermal sensor300may determine which level the sensed temperature of the chip10belongs to among various predetermined temperature levels. The various levels may be a plurality of temperature levels. In this case, the thermal sensor300may determine whether the temperature of the chip10belongs to the level that is equal to or higher than a threshold temperature of the chip10.

The threshold temperature is defined as an interrupt temperature of the chip10. The interrupt temperature is a reference temperature at which the reliability of the chip10begins to deteriorate or causes damage to the chip10. When the interrupt temperature is reached, steps are taken to stop the operation of the chip10to prevent further or lasting damage.

Referring toFIG. 2, the GPU100includes a vertex processing unit110, a primitive assembly unit120, a tiling unit130, a rendering quality state machine140, a rasterizer150, and a fragment processing unit160.

The vertex processing unit110is configured to convert a received input of a vertex, and to output the converted vertex. The vertex may be provided from a central processing unit (CPU). The vertex processing unit110is configured to receive and output a single vertex. For example, the vertex may include properties, such as a position, normal vector, and color value, but is not limited thereto. The position property of the vertex may be provided as coordinates of a three-dimensional (3D) space. For example, the position property of the vertex may include x coordinates, y coordinates, and z coordinates. The x coordinates may be horizontal coordinates, the y coordinates may be vertical coordinates, and the z coordinates may be depth coordinates. The vertex processing unit110may convert an object space vertex into a clip space vertex. Specifically, the vertex processing unit110may convert the object space vertex into a world space vertex, the world space vertex into a camera space vertex, and the camera space vertex into the clip space vertex.

The primitive assembly unit120is configured to receive the clip space vertex and to generate and output a primitive. The primitive assembly unit120may generate a primitive that is composed of at least one vertex. For example, the primitive assembly unit120may generate a triangle type primitive that is composed of three vertexes. Hereinafter, embodiments of the present inventive concept will be described using the triangle type primitive. However, the present inventive concept is not limited thereto, but may be applied to other types of primitives, (e.g. point, line, or quad type primitives), in the same manner. The primitive may include properties of connection information. The connection information may indicate the order for connecting the vertexes that constitute the primitive (in clockwise or counterclockwise direction). In accordance with values of the connection information, the front face and the back face of the primitive can be discriminated from each other.

The tiling unit130may be configured to receive an input of the primitive and to generate and output a primitive list. Hereinafter, referring toFIG. 3, the tiling unit130according to an embodiment of the present inventive concept will be described in more detail.

First, referring toFIG. 3, the tiling unit130may include a bounding box calculator131and a primitive list generator132.

The tiling unit130may divide an image frame to be rendered into a plurality of tiles. Each tile may be composed of a plurality of pixels or fragments that are included in the image frame. Further, the tiling unit130may divide each tile into a plurality of sub-tiles that are smaller than the tile.

The tiling unit may approximately determine which tiles the primitive touches through tile binning of the input primitive. For a primitive to be deemed as touching the tile, at least a partial region of the primitive must belong to the interior of the corresponding tile. Furthermore, the tiling unit130may allocate the primitive that touches the tile to the primitive list for the corresponding tile. The graphics pipeline may perform rendering with respect to the respective tiles to complete the rendering with respect to the whole image frame.

For this, the bounding box calculator131may calculate a bounding box that forms a boundary of the primitive. For example, in the case of a triangle type primitive, the bounding box calculator131may calculate the bounding box using the maximum value and the minimum value of x coordinates and y coordinates of three vertexes that constitute the primitive. On the other hand, in some embodiments of the present inventive concept, a 3D bounding box may be calculated. In this case, the bounding box calculator131may calculate the 3D bounding box using the x coordinates, y coordinates, and z coordinates of the primitive. For example, in the case of the triangle type primitive, the bounding box calculator131may calculate the 3D bounding box using the maximum value and the minimum value of the x coordinates, y coordinates, and z coordinates of the three vertexes that constitutes the primitive.

The primitive list generator132may generate and output a primitive list for each tile to the memory200. The primitive list that is output and stored in the memory200as described above may be used in a rasterizer150to be described later.

The rendering quality state machine140may receive temperature information from the thermal sensor300. The rendering quality state machine140may determine the rendering quality based on the temperature.

The rendering quality may be determined by various elements. For example, the rendering quality may be determined by a tessellating level of detail (LOD). Specifically, if the LOD is low, the rendering quality may be correspondingly low, thus reducing the number of required operations.

The rendering quality may be determined by a texturing LOD. For example, if the texture LOD is low, the rendering quality may become low, and thus reducing the number of required operations.

The rendering quality may also be determined by resolution of a frame buffer object (FBO). Specifically, if the resolution of the frame buffer object is low, the rendering quality may become low, and thus reducing the number of required operations.

The rendering quality may also be determined by an extended multiple of anti-aliasing (AA). Specifically, if the extended multiple of the anti-aliasing is low, the rendering quality may become low, and thus reducing the number of required operations.

The rendering quality may also be determined by a texture filtering mode. Specifically, if an operation amount is small in the texture filtering mode, the rendering quality may become low, and thus reducing the number of required operations.

The rendering quality may also be determined by a filtering ratio of texture filtering. Specifically, if the filtering ratio of texture filtering is low, the rendering quality may become low, and thus reducing the number of required operations.

The rendering quality state machine140may determine the rendering quality based on the temperature, and may update the GPU rendering quality state of the GPU100.

For the updated GPU rendering quality, at least one of the tessellating level of detail, the texturing level of detail, the resolution of the frame buffer object, the extended multiple of the anti-aliasing, the texture filtering mode, and the filtering ratio of the texture filtering, are updated. The rasterizer150may convert a primitive into a fragment by performing rasterization of the primitive. Hereinafter, referring toFIG. 5, the operation of the rasterizer150will be described in more detail.

FIG. 4is a block diagram explaining the detailed configuration of the rasterizer ofFIG. 2.

Referring toFIG. 4, the rasterizer150may include a primitive list reader151, an interpolation unit152, and an early depth tester153.

The primitive list reader151may read the primitive list for each tile from the memory200. Specifically, the primitive list reader151may receive an input of primitives that belong to each tile according to the rendering order.

The interpolation unit152may generate a set of fragments using the primitives provided through the primitive list reader151. In one embodiment, the fragment includes three-dimensional (3D) dots that constitute the interior of the primitive. Respective fragments may correspond to respective pixels of an image frame. Specifically, the x coordinates and y coordinates of the fragment may be aligned to a pixel-grid of a 2D screen. The interpolation unit152may determine positions of fragments, normal vectors, and color values through interpolation of values of vertexes that constitute the primitive. For example, the position properties of the fragments may include x coordinates, y coordinates, and z coordinates substantially in the same manner as the position properties of the vertexes. Among them, the z coordinates may indicate the depth value of the fragment.

The early depth tester153may perform early depth test of the fragment level for each tile. The early depth test determines the visibility of fragments that belong to the interior of the corresponding tile, to determine visible fragments to be displayed on the image frame of which the rendering is completed, and to discard the data of invisible fragments.

The early depth tester153may determine the maximum depth value and the minimum depth value of the fragments that belong to the interior of the corresponding tile according to the result of the test. The early depth tester153may determine the visibility of the fragment through comparison of the depth value of the tile with the depth value of the fragment. Unlike the maximum depth value and the minimum depth value of the in the tiling stage, the maximum depth value and the minimum depth value among the depth values of the fragments that belong to the interior of the corresponding tile may be allocated as the maximum depth value and the minimum depth value respectively of the tile in the rasterization stage. If the depth value of the fragment is larger than the maximum depth value of the tile, the early depth tester153may determine that the corresponding fragment is an invisible fragment. On the other hand, if the depth value of the fragment is smaller than the maximum depth value of the tile, the early depth tester153may determine the corresponding fragment as a visible fragment. In the case where the fragment having the maximum depth value of the tile is replaced by the fragment having the same x coordinates and y coordinates, and having the depth value that is smaller than the maximum depth value of the tile, the early depth tester153may update the maximum depth value of the tile with the depth value of the fragment.

The rasterizer150may perform anti-aliasing to prevent the occurrence of an aliasing phenomenon that appears as a stair-step shape due to the limited resolution when an image is enlarged. Specifically, the anti-aliasing performed by the rasterizer150converts the stair-step shape of the rasterized image into a smooth straight-line shape.

When the temperature of the chip10is lower than a threshold temperature of the chip10, the rasterizer150can normally perform the anti-aliasing. However, if the temperature is equal to or higher than the threshold temperature, the extended multiple of the anti-aliasing can be reduced.

Because the anti-aliasing effectively enlarges the pixels so that the pixels become smooth, both the precision and the number of operations increase as the enlargement ratio of the pixels increases. Accordingly, by reducing the extended multiple of the anti-aliasing, the number of operations of the GPU100can be reduced.

In some embodiments, rather than using only the threshold temperature to determine a reference, a plurality of temperature levels are used to change the extended multiple according to the determined plurality of temperature levels.

Referring again toFIG. 2, the fragment processing unit160may receive an input of fragments and may perform hidden surface elimination, lighting, surface shading, and texture mapping with respect to the input fragments. The fragment processing unit160may output an image frame, for which the rendering has been completed, to the display. Hereinafter, referring toFIG. 5, the fragment processing unit160will be described in detail.

Referring toFIG. 5, the fragment processing unit160includes a texture unit161, a hull shader162, and a tessellator163.

The texture unit161may perform texturing and texture filtering. In expressing 3D, geographic objects are made, and textures are put thereon. The process of putting the textures on the objects is called texturing. Because such textures have the same resolution, the sizes of surfaces of a nearby object and a distant object may differ from each other, and widely or narrowly coloring the surfaces is called texture filtering.

When the temperature of the chip10is lower than the threshold temperature of the chip10, the texture unit161may normally determine the texture level of detail. However, if the temperature of the chip10is equal to or higher than the threshold temperature, the texture level of detail may be reduced.

In some embodiments, rather than using only the threshold temperature to determine a reference, a plurality of temperature levels are used to change the texture level of detail according to the determined temperature levels.

The texture level of detail determines how many fragments are individually textured. Accordingly, if the texture level of detail is lowered, the number of operations of the GPU100may be reduced.

When the temperature of the chip10is lower than the threshold temperature of the chip10, the texture unit161may determine the texture filtering in a predetermined mode. However, if the temperature of the chip10is equal to or higher than the threshold temperature, the texture filtering may be performed in another mode having a small number of operations.

The predetermined mode may be a tri-linear mode, and another mode may be a bi-linear mode or a nearest neighbor mode, but are not limited thereto.

During enlargement, the mode may generally be a nearest neighbor mode or a bi-linear mode.

The nearest neighbor mode is a mode in which pixel data of an extended portion during enlargement is complemented by using 100% of a neighboring pixel value.

The bi-linear mode is a mode in which the pixel of the extended portion during enlargement is complemented by mixing it with a nearby pixel. Since the pixel value is mixed with the neighboring pixel value, the spherical surface is smoothed and is expressed as pearly to give the surface a natural appearance.

During reduction, the mode may generally be a nearest neighbor no mipmaps mode, a bilinear no mipmaps mode, a nearest neighbor nearest mipmaps mode, a bilinear nearest mipmap mode, a nearest neighbor linear mipmap mode, or a trilinear mode.

During reduction, it is important to process the mipmap in which textures overlap each other in addition to the processing of the enlarged portion.

The nearest neighbor no mipmaps mode is a mode in which textures of an overlapping portion during reduction is processed in a nearest neighbor method. The bilinear no mipmaps mode is a mode in which the textures of the overlapping portion during reduction is processed in a bilinear method. The nearest neighbor nearest mipmaps mode is a mode in which the textures of the overlapping portion during reduction is processed in the nearest neighbor method, and one of pixels of a nearby portion between the mipmap in the next step and the mipmap in the current step is selected and processed in processing the mipmap. The bilinear nearest mipmap mode is a mode in which the texture of the overlapping portion during reduction is processed in the bilinear method, and the mipmap is processed in the nearest method. The nearest neighbor linear mipmap mode is a mode in which the textures of the overlapping portion during reduction is processed in the nearest neighbor method, and maps of the near positions of the current step and the next step are mixed to be used when the mipmap is processed. The trilinear mode is a mode in which in which the texture of the overlapping portion during reduction is processed in the bilinear method, and the mipmap is processed in the linear method.

Among the above-described modes, the trilinear mode requires the largest number of operations. Accordingly, if the temperature of the chip10is equal to or higher than the threshold temperature in the case where the texture unit161performs the texture filtering in the trilinear mode, the texture unit161may perform the texture filtering in another mode requiring a smaller number of operations. Furthermore, the temperature is not simply limited to the threshold temperature, but the mode can be adjusted with a plurality of levels according to the temperatures.

The texture level of detail determines how many fragments are individually textured. Accordingly, if the texture level of detail is lowered, the number of operations of the GPU100may be decreased.

When the temperature of the chip10is lower than the threshold temperature, the texture unit161may normally perform the texture filtering. However, if the temperature of the chip10is equal to or higher than the threshold temperature, the filtering ratio may be reduced.

In some embodiments, rather than using only the threshold temperature to determine a reference, a plurality of temperature levels are used to change the filtering ratio according to the determined temperature levels. Accordingly, the number of operations of the GPU100may be decreased according to the change of the reduction of the filtering ratio.

The hull shader162may receive information from the memory200, which the texture unit161had previously output to the memory200. The hull shader162may determine the tessellating level of detail. That is, the hull shader162may determine how many fragments the polygons on graphics are to be divided into. Specifically, the tessellating level of detail is to determine how many fragments to divide the polygons into.

The hull shader162may receive the updated GPU rendering quality state from the information that the rendering quality state machine140outputs to the memory200. Accordingly, the hull shader162may determine the level of detail.

Because the hull shader162determines the level of detail through the updated GPU rendering quality state and the GPU rendering quality state is determined by the temperature, the level of detail of the hull shader162may differ depending on the temperature.

When the temperature is lower than the threshold temperature of the chip10, the hull shader162can normally determine the level of detail. However, if the temperature is equal to or higher than the threshold temperature, the level of detail can be reduced.

FIG. 6is an example view explaining a refinement pattern mode that enters as an input of a hull shader ofFIG. 5.

The hull shader162receives an input of a refinement pattern mode. The refinement pattern mode is data that the vertex processing unit110stored in the memory200. The refinement pattern mode may include a plurality of levels.

Referring toFIG. 6illustrating triangles, the outmost triangle may be defined as a first level (1), and the inner inverted triangle may be defined as a second level (2). Furthermore, the vertically divided triangle may be defined as a third level (3). Specifically, the level may be defined according to the division degree of the triangle. However, the above-described explanation is merely an example, and the level definition is not limited thereto. The hull shader162may receive an input of the plurality of level values. For example, the hull shader162may receive information including the first level, second level and third level (1,2,3).

If the temperature sensed by the thermal sensor300is lower than the threshold temperature, the hull shader162may receive the refinement pattern mode, including information for each of the three levels (1,2,3). However, if the temperature is equal to or higher than the threshold temperature, the hull shader162may receive only the first level information of (1) among (1,2,3). In this case, the determination of the level of detail is limited to the level of (1), and thus the whole number of operations is reduced. Specifically, if the temperature is high, the number of operations can be reduced.

The number of operations may be reduced according to the threshold temperature, but is not limited thereto. The hull shader162may reduce the number of operations in the above-described method according to another temperature level that is not the threshold temperature.

In another embodiment of the present inventive concept, the hull shader162may determine a first-order level of detail regardless of the updated GPU rendering quality state that is related to the temperature of the chip10.

Thus, if the temperature of the chip10is lower than the threshold temperature, the hull shader162may determine the first-order level of detail as the level of detail. If the temperature of the chip10is equal to or higher than the threshold temperature, the hull shader162may use either the preset maximum level of detail or the first-order level of detail having a smaller value, as the level of detail. The preset maximum level of detail may be a value that is set within a range of operation amount that can be performed by the chip10.

Furthermore, if the temperature of the chip10is lower than the threshold temperature, the hull shader162may determine the first-order level of detail as the level of detail. If the temperature of the chip10is equal to or higher than the threshold temperature, the hull shader162may determine a value that is obtained by subtracting a reduction value from the first-order level of detail as the level of detail.

The reduction value may be predetermined, but is not limited thereto. The reduction value may be calculated and determined on the basis of a difference between the temperature of the chip10and the threshold temperature. In this case, it becomes possible to control the rendering quality more precisely and reliably.

Referring again toFIG. 5, the tessellator163may receive the level of detail from the hull shader162. The tessellator163may perform tessellation on the basis of the level of detail.

The tessellation is to recognize and fill a portion in which hardware is not predetermined on the basis of the predetermined level of detail. Accordingly, forming of concavo-convexes can be implemented quite realistically. In this case, the level of detail means the degree of fine filling. Accordingly, if the level of detail becomes lowered, the operation amount of tessellation may be decreased.

Hereinafter, referring toFIG. 7andFIG. 8, a computing system to which a method for controlling rendering quality according to another embodiment of the present inventive concept will be described. Details of the functional blocks including in the GPU1100and GPU100are described above.

FIG. 7is a block diagram explaining a computing system to which a method for controlling rendering quality according to another embodiment of the present inventive concept is applied.

Referring toFIG. 7, a computing system includes a graphics processing unit (GPU)1100, a memory1200, a central processing unit (CPU)1300, and a thermal sensor1400.

At least one of the GPU1100, the memory1200, the CPU1300, and the thermal sensor1400may be positioned adjacent to either the GPU1100, the memory1200, the CPU1300or the thermal sensor1400. For example, the GPU1100, the memory1200, the CPU1300and the thermal sensor1400may be positioned on one chip20, but are not limited thereto. If the thermal sensor1400can sense the temperature of the chip20according to the operation of the GPU1100, the positions of the GPU1100, the CPU1300, the memory1200, and the thermal sensor1400are not specially limited.

The GPU1100is configured to perform tile-based rendering. To accomplish this, the GPU1100includes graphics pipeline configurations. The graphics pipeline may also be called a rendering pipeline. The graphics pipeline configurations can process graphic data in parallel. The graphics pipeline configurations may be configured by software or hardware.

The memory1200is configured to store data. The memory1200may store graphic data that is processed by the GPU1100or may store graphic data that is provided to the GPU1100. Furthermore, the memory1200may serve as an operating memory of the GPU1100. The memory1200may include at least one volatile memory, such as a DDR SDRAM (Double Data Rate Static DRAM) or SDR SDRAM (Single Data Rate SDRAM), or at least one nonvolatile memory, such as EEPROM (Electrical Erasable Programmable ROM) or a flash memory, or a combination of volatile and nonvolatile memories.

The CPU1300may transfer temperature information to the GPU1100. In this case, the temperature may be updated with the GPU rendering quality state to be transferred. In addition, the CPU1300may transfer various commands to the GPU1100. Specifically, the CPU1300may transfer commands, such as rendering and image loading, to the GPU1100.

The thermal sensor1400may sense the temperature of the GPU1100. The thermal sensor1400may be positioned on the chip20. The thermal sensor1400may sense the temperature of the GPU1100as an indication of the temperature of the chip20, and may transfer the sensed temperature to the GPU1100. The thermal sensor1400may be an on-chip thermal sensor.

The thermal sensor1400may have a plurality of temperature levels. That is, the thermal sensor1400may determine which level the sensed temperature of the chip20belongs to among various predetermined temperature levels. The various levels may be a plurality of temperature levels. In this case, the thermal sensor1400may determine whether the temperature of the chip20belongs to the level that is equal to or higher than a threshold temperature of the chip20.

The threshold temperature means an interrupt temperature of the chip20. The interrupt temperature is a reference temperature at which reliability of the chip20deteriorates or the damage of the chip20has a substantial likelihood of occurring, and thus it is intended to stop the operation of the chip20.

FIG. 8is a block diagram explaining the detailed configuration of a graphics pipeline of a GPU ofFIG. 7.

Referring toFIG. 8, the CPU1300includes a rendering quality state machine1310. The rendering quality state machine1310receives the temperature from the thermal sensor1400to determine the rendering quality. In the above-described embodiment of a GPU100(seeFIG. 2), the rendering quality state machine1310is inside the GPU100, whereas in this embodiment of a GPU1100, the rendering quality state machine1310may be positioned in the CPU1300.

The rendering quality state machine1310may determine the rendering quality through the temperature, and may update the GPU rendering quality state of the GPU1100.

The rendering quality state machine1310may transfer the temperature or the GPU rendering quality state to the hull shader162included in the Fragment Processing Unit1160to determine the tessellating level of detail.

Referring toFIG. 8, the GPU1100includes a vertex processing unit1110, a primitive assembly unit1120, a tiling unit1130, a rasterizer1150, and a fragment processing unit1160.

The GPU1100may control the rendering quality according to the updated GPU rendering quality state. Specifically, the GPU1100may perform the rendering through adjustment of at least one of a tessellating level of detail, a texturing level of detail, resolution of a frame buffer object, an extended multiple of anti-aliasing, a texture filtering mode, and a filtering ratio of texture filtering.

The computer system according to the method for controlling rendering quality according to an embodiment of the present inventive concept controls the rendering quality using the temperature. The rendering quality is an element that determines the graphic quality. Accordingly, in the case where the performance of the GPU1100is supported, there is no problem even if the rendering quality is high. However, in the case where the performance of the GPU1100is not good, the frame per second (FPS), that is, the frame rate, becomes low if the rendering quality is high.

If the frame rate is lowered, disconnection of an image that a user is viewing may occur. This may be perceived by the user as a fatal picture quality problem that is more severe than that of the rendering quality. In order to prevent such a problem, the computing system, lowers the rendering quality to recover the frame rate. However, because this problem occurs only when the number of operations of the GPU1100exceeds the performance range, the rendering quality may be determined by sensing this operating problem through measurement of the temperature of the GPU1100.

Hereinafter, referring toFIG. 1,FIG. 2, andFIG. 9, a method for controlling rendering quality according to an embodiment of the present inventive concept will be described.

Referring toFIG. 9, according to the method for controlling rendering quality according to an embodiment of the present inventive concept, the temperature of the GPU100is first sensed at step S100.

Specifically, referring toFIG. 1, the temperature may be sensed by the thermal sensor300. The thermal sensor may be an on-chip thermal sensor. Sensing the temperature may include determining which level the sensed temperature belongs to among at least one predetermined temperature level. Levels according to various temperature ranges may be predetermined, and the thermal sensor may be output which level the measured temperature belongs to corresponding to the predetermined temperature levels.

Referring again toFIG. 9, the rendering quality is determined at step S200.

Specifically, referring toFIG. 2, the rendering quality may be determined by the rendering quality state machine140.

The rendering quality state machine140may receive the temperature or the level of the measured temperature to determine the corresponding rendering quality. In this case, the rendering quality may be lowered as the temperature becomes high. That is, as the temperature is increased, the rendering quality may be determined to be lowered to reduce the number of operations.

Referring again toFIG. 9, the GPU rendering quality state is updated at step S300.

Specifically, referring toFIG. 2, the GPU rendering quality state may be updated by the rendering quality state machine140.

The rendering quality state machine140updates the GPU rendering quality state according to the determined rendering quality. The GPU rendering quality state may be adjusted for of at least one of the tessellating level of detail, the texturing level of detail, the resolution of the frame buffer object, the extended multiple of the anti-aliasing, the texture filtering mode, and the filtering ratio of the texture filtering. The adjustment of the above-described elements may be performed by the rendering quality state machine140, and may be determined by each individual rendering unit. The rendering unit may be the hull shader162, the tessellator163, and the rasterizer150.

Referring again toFIG. 9, the rendering is performed at step S400.

Specifically, referring toFIG. 2, the GPU100may perform the rendering. In this case, the rendering may be performed by adjusting at least one of the tessellating level of detail, the texturing level of detail, the resolution of the frame buffer object, the extended multiple of the anti-aliasing, the texture filtering mode, and the filtering ratio of the texture filtering according to the updated GPU rendering quality.

Referring toFIG. 10, rasterizing is performed at step S410.

Rasterizing means to convert a primitive that is vector information into a raster image, that is, a pixel. Referring toFIG. 2, the GPU100includes the rasterizer150, which may perform the rasterizing.

Anti-aliasing means to prevent the occurrence of an aliasing phenomenon that shows the stair-step shape due to the limit of resolution when an image is enlarged. Specifically, the anti-aliasing converts the stair-step shape of the rasterized image into a smooth straight-line shape. Referring toFIG. 2, the rasterizer150may perform the anti-aliasing.

Referring again toFIG. 9, texturing is performed (S430).

In expressing 3D, geographic objects are made, and textures are put thereon. Such a process of putting the textures on the objects is called texturing. Referring toFIG. 2, the texture unit161may perform the texturing. Texture filtering is performed at step S440.

Through texturing, all textures have the same resolution, and because the sizes of surfaces of a nearby object and a distant object may differ from each other, widely or narrowly coloring the surfaces is called the texture filtering. Referring toFIG. 2andFIG. 5, the texture unit161may perform the texture filtering. Tessellation is performed at step S450.

Tessellation recognizes and fills a portion in which hardware is not predetermined on the basis of the predetermined level of detail. Accordingly, forming of concavo-convexes can be implemented quite realistically. In this case, the level of detail means the degree of fine filling. Referring toFIG. 2andFIG. 5, the graphics processing unit100may include the tessellator163, which performs the tessellation.

Referring toFIG. 11, it is first determined whether the temperature of the chip is higher than the threshold temperature at step S421.

Specifically, referring toFIG. 1andFIG. 2, the temperature may be measured by the thermal sensor300, and the temperature information may be updated as the GPU rendering quality state.

If the temperature is lower than the threshold temperature, the anti-aliasing may be performed with a first extended multiple at step S423. If the temperature is equal to or higher than the threshold temperature, the anti-aliasing may be performed with a second extended multiple at step S425. The second extended multiple is smaller than the first extended multiple. Specifically, if the temperature of the chip10is higher than the threshold temperature, the anti-aliasing may be performed with a smaller extended multiple.

Furthermore, it is not a limit that the extended multiple be adjusted only in the case where the temperature is higher than the threshold temperature. The temperature may belong to any one of a plurality of levels, and the anti-aliasing may be performed with the corresponding extended multiple according to the plurality of levels.

Referring toFIG. 12, it is first determined whether the temperature of the chip is higher than the threshold temperature at step S431.

Specifically, referring toFIG. 1andFIG. 2, the temperature may be measured by the thermal sensor300, and the temperature information may be updated as the GPU rendering quality state.

If the temperature is lower than the threshold temperature, the texturing may be performed with a first texture level of detail at step S433. If the temperature is equal to or higher than the threshold temperature, the texturing may be performed with a second texture level of detail at step S435. The second texture level of detail is lower than the first texture level of detail. That is, if the temperature of the chip10is higher than the threshold temperature, the texturing may be performed with a lower texture level of detail.

Furthermore, it is not a limit that the texture level of detail be adjusted only in the case where the temperature is higher than the threshold temperature. The temperature may belong to any one of a plurality of levels, and the texturing may be performed with the corresponding texture level of detail according to the plurality of levels.

Hereinafter, referring toFIG. 1,FIG. 2, andFIG. 13, the texture filtering will be described in detail.

Referring toFIG. 13, it is first determined whether the temperature of the chip is higher than the threshold temperature at step S441.

Specifically, referring toFIG. 1andFIG. 2, the temperature may be measured by the thermal sensor300, and the temperature information may be updated as the GPU rendering quality state.

If the temperature is lower than the threshold temperature, the texture filtering may be performed in a first mode at step S443. If the temperature is equal to or higher than the threshold temperature, the texture filtering may be performed in a second mode at step S445. The operation amount in the second mode may be smaller than the operation amount in the first mode. That is, if the temperature of the chip10is higher than the threshold temperature, the texture filtering may be performed with a smaller operation amount in the mode.

Furthermore, it is not a limit that the mode be adjusted only in the case where the temperature is higher than the threshold temperature. That is, the temperature may belong to any one of a plurality of levels, and the texture filtering may be performed in the corresponding mode according to the plurality of levels.

The first mode may be a tri-linear mode, and the second mode may be a bi-linear mode or a nearest neighbor mode, but are not limited thereto.

During enlargement, the mode may generally be a nearest neighbor mode or a bi-linear mode.

The nearest neighbor mode is a mode in which pixel data of an extended portion during enlargement is complemented by using 100% of a neighboring pixel value.

The hi-linear mode is a mode in which the pixel of the extended portion during enlargement is complemented by mixing it with a nearby pixel. Since the pixel value is mixed with the neighboring pixel value, the spherical surface shows smooth and is expressed pearly to be natural.

During reduction, the mode may generally be a nearest neighbor no mipmaps mode, a bilinear no mipmaps mode, a nearest neighbor nearest mipmaps mode, a bilinear nearest mipmap mode, a nearest neighbor linear mipmap mode, or a trilinear mode.

During reduction, it is important to process the mipmap in which textures overlap each other in addition to the processing of the enlarged portion.

The nearest neighbor no mipmaps mode is a mode in which textures of an overlapping portion during reduction is processed in a nearest neighbor method. The bilinear no mipmaps mode is a mode in which the textures of the overlapping portion during reduction is processed in a bilinear method. The nearest neighbor nearest mipmaps mode is a mode in which the textures of the overlapping portion during reduction is processed in the nearest neighbor method, and one of the pixels of a nearby portion between the mipmap in the next step and the mipmap in the current step is selected and processed in processing the mipmap. The bilinear nearest mipmap mode is a mode in which the texture of the overlapping portion during reduction is processed in the bilinear method, and the mipmap is processed in the nearest method. The nearest neighbor linear mipmap mode is a mode in which the textures of the overlapping portion during reduction is processed in the nearest neighbor method, and maps of the near positions of the current step and the next stop are mixed to be used when the mipmap is processed. The trilinear mode is a mode in which in which the texture of the overlapping portion during reduction is processed in the bilinear method, and the mipmap is processed in the linear method.

Among the above-described modes, the trilinear mode requires the largest number of operations. Accordingly, the first mode may be a trilinear mode, and the second mode may be another mode, such as a bilinear mode or a nearest neighbor no mipmaps mode.

Referring toFIG. 14, it is first determined whether the temperature of the chip is higher than the threshold temperature at step S451.

Specifically, referring toFIG. 1andFIG. 2, the temperature may be measured by the thermal sensor300, and the temperature information may be updated as the graphics processing unit rendering quality state.

If the temperature is lower than the threshold temperature, the tessellation may be performed with a first level of detail at step S453. If the temperature is equal to or higher than the threshold temperature, the tessellation may be performed with a second level of detail at step S455. The second level of detail is lower than the first level of detail. That is, if the temperature of the chip10is higher than the threshold temperature, the tessellation may be performed with a lower level of detail.

Furthermore, it is not a limit that the level of detail be adjusted only in the case where the temperature is higher than the threshold temperature. That is, the temperature may belong to any one of a plurality of levels, and the tessellation may be performed with the corresponding level of detail according to the plurality of levels.

InFIG. 11throughFIG. 14, the steps of comparing the temperature with the threshold temperature may be entirely united into one step. That is, the comparison and determination of the temperature levels may be performed only once, and the rendering may be applied according to the results in the respective steps. Furthermore, the steps of adjusting the rendering quality according to the temperature may be performed in parallel, or a part thereof is omitted and only the remainder may be performed.

Hereinafter, referring toFIG. 1,FIG. 2, andFIG. 15, a method for controlling rendering quality according to another embodiment of the present inventive concept will be described.

Referring toFIG. 15, after the GPU rendering quality state updating step at step S300, it is determined whether the temperature of the chip is higher than the threshold temperature at step S350.

Specifically, referring toFIG. 1andFIG. 2, the temperature may be measured by the thermal sensor300, and the temperature information may be updated as the GPU rendering quality state.

If the temperature is lower than the threshold temperature, the rendering may be performed with a first resolution at step S400a. If the temperature is equal to or higher than the threshold temperature, the rendering may be performed with a second resolution at step S400b. The second resolution is lower than the first resolution. Specifically, if the temperature of the chip10is higher than the threshold temperature, the rendering may be performed with a lower resolution.

Furthermore, it is not a limit that the resolution be adjusted only in the case where the temperature is higher than the threshold temperature. The temperature may belong to any one of a plurality of levels, and the rendering may be performed in the corresponding model according to the plurality of levels.

According to the method for controlling the rendering quality according to the embodiments of the present inventive concept, the rendering quality is determined on the basis of the temperature, and thus an interrupt according to the frame rate and the temperature is prevented to improve user experience.

Referring toFIG. 16, a device900may be a cellular phone, a smart phone terminal, a handset, a personal digital assistant (PDA), a laptop computer, a video game unit, or other devices. The device900may use code division multiple access (CDMA), time division multiple access (TDMA), such as a global system GSM for mobile communication, or other wireless communication standards.

The device900may provide bi-directional communication through a reception path and a transmission path. Signals transmitted by one or more base stations on the reception path may be received through an antenna911or may be provided to a receiver (RCVR)913. The receiver913may perform conditioning and digitalization of a received signal and provide samples to a digital section920for additional processing. On the transmission path, a transmitter (TMTR)915may receive data transmitted from the digital section920, perform processing and conditioning of the data, and generate a modulated signal. The modulated signal may be transmitted to one or more base stations through the antenna911.

The digital section920may be implemented by one or more digital signal processors (DSP), a microprocessor, and a reduced instruction set computer (RISC). Further, the digital section920may be fabricated on one or more application-specific integrated circuits (ASIC) or other types of integrated circuits (IC).

The digital section920may include, for example, various processing and interface units, such as a modem processor934, a video processor922, an application processor924, a display processor928, a controller/multi-core processor926, a CPU930, and an external bus interface (EBI)932.

The video processor922may perform processing of graphic applications, and may adopt the GPU100or GPU1100according to the embodiments of the present inventive concept. In general, the video processor922may include a certain number of processing units or modules for a certain set of graphic operations. A specific part of the video processor922may be implemented by firmware or software. For example, the control unit may be implemented by firmware or software modules (e.g., procedures or functions) for performing the above-described functions. Firmware or software codes may be stored in a memory (e.g., memory200inFIG. 1), or may be executed by a processor (e.g., the multi-core processor926). The memory may be contained within the processor or be separate from the processor.

The video processor922may implement a software interface, such as open graphic library (OpenGL) or Direct3D. The CPU930may perform a series of graphic processing operations together with the video processor922. The controller/multi-core processor926may include at least two cores, and allocate work-loads to each of the at least two cores depending on the work loads, which the controller/multi-core processor926is to process, to process the corresponding work loads at the same time.

Referring toFIG. 17, a computing system100Q according to an embodiment of the present inventive concept includes a CPU1005, a system memory2000, a sub-graphic system3000, and a display4000.

The CPU1005is configured to generate a mesh through driving of an application. The mesh may describe the surface of an object. The mesh may be composed of a plurality of primitives, and the primitive may be composed of at least one vertex.

The system memory2000is configured to store data. The system memory2000may store data that is processed by the CPU1005. The system memory2000may be configured to store data. The system memory2000may store data that is processed by the CPU1005. The system memory2000may serve as an operating memory of the CPU1005. The system memory2000may include one or more volatile memories, such as a DDR SDRAM (Double Data Rate Static DRAM) and SDR SDRAM (Single Data Rate SDRAM), or one or more nonvolatile memories, such as EEPROM (Electrical Erasable Programmable ROM), and a flash memory, or a combination of volatile and nonvolatile memories.

The sub-graphic system3000may include a GPU3100, a graphic memory3200, a display controller3300, a graphic interface3400, and a graphic memory controller3500.

The GPU3100may be configured substantially in the same manner as the GPU100or GPU1100according to the embodiments of the present inventive concept as described above. The GPU3100may perform tile-based rendering by using a plurality of primitives that constitute the mesh. The GPU3100may receive an input of data of the vertexes that constitute the mesh from the CPU1005. The GPU3100may assemble the primitives including at least one vertex and may perform the rendering using the assembled primitives.

The graphic memory3200may store graphic data that is processed by the GPU3100or graphic data provided to the GPU3100. Furthermore, the graphic memory3200may serve as an operating memory of the GPU3100.

The display controller3300may control the display4000to display rendered image frames.

The graphic interface3400may perform interfacing between the CPU1005and the GPU3100, and the graphic memory controller3500may provide a memory access between the system memory2000and the GPU3100.

The computing system1000may further include one or more input devices, such as buttons, a touch screen, and a microphone and/or one or more output devices, such as speakers (not shown). Furthermore, the computing system1000may further include an interface device for exchanging data with an external device by wired or wireless communication. The interface device may include, for example, an antenna or a wire/wireless transceiver.

According to embodiments, the computing system1000may be a certain computing system, such as a mobile phone, a smart phone, a personal digital assistant (PDA), a desktop computer, a notebook computer, or a tablet.

The method explained in relation to the embodiments of the present inventive concept or steps of an algorithm may be directly implemented by a hardware module, a software module, or a combination thereof, which may be executed by a processor. The software module may reside in a RAM memory, a flash memory, a ROM memory, an EPROM memory, an EEPROM memory, a register, a hard disk, a detachable disk, a CD-ROM, or a certain computer-readable recording medium that is well known in the technical field to which the present inventive concept pertains. An example recording medium may be connected to a processor, and the processor may read information from the recording medium or write information in the recording medium. As another method, the recording medium may be integrally formed with the processor. The processor and the recording medium may reside in an application-specific integrated circuit (ASIC). The ASIC may reside in a user terminal. As another method, the processor and the recording medium may reside as individual constituent elements in the user terminal.