Rendering apparatus, method, graphics processor, electronic device

By introducing a control module into the rendering pipeline to control the input and output states of the rendering submodules, task isolation of the rendering submodules is achieved, solving the inefficiency problem of the rendering pipeline when the workload is uneven and improving the execution efficiency of rendering tasks.

CN120909803BActive Publication Date: 2026-01-23MOORE THREADS TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202511438579.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-10-09
Publication Date
2026-01-23
Estimated Expiration
2045-10-09

AI Technical Summary

Technical Problem

The rendering pipeline of existing graphics processors is underutilized when the workload is small, resulting in reduced execution efficiency, especially when there are branching paths.

Method used

A control module is introduced into the rendering pipeline to control the on/off state of the input and output terminals of the rendering submodules, thereby isolating the rendering submodules and enabling them to execute different rendering tasks or different parts of the same task.

Benefits of technology

It improves the utilization of the rendering pipeline and the execution efficiency of rendering tasks, and reduces the idle time of modules, especially when the workload is uneven.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120909803B_ABST
    Figure CN120909803B_ABST
Patent Text Reader

Abstract

The present disclosure relates to the chip technical field, and proposes a rendering device, method, graphic processor and electronic equipment. In the rendering device, at least two rendering sub-modules are distributed on different branch paths of a rendering pipeline; a rendering sub-module performs a rendering task to render input data to obtain a rendering result; a control module controls the conduction of an input end and an output end, connects the rendering result of the rendering sub-module connected to the input end to the rendering sub-module connected to the output end, and disconnects the input end and the output end after the rendering result is output; the control module controls the rendering sub-module connected to the input end and the rendering sub-module connected to the output end to respectively perform different rendering tasks or different parts of the same rendering task by controlling the conduction or disconnection of the input end and the output end. For the rendering pipeline including the branch paths, the idle time of the module can be reduced, and the utilization rate of the rendering pipeline and the execution efficiency of the rendering task can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present disclosure relates to the chip technical field, and in particular to a rendering device, method, graphic processor and electronic device. BACKGROUND

[0002] For a graphic processor, a rendering task is usually required to be frequently executed and time-consuming, and therefore, a rendering pipeline is usually arranged in the graphic processor for executing the rendering task.

[0003] However, in the prior art, the rendering pipeline can only execute one rendering task at the same time. If the task amount is small, for example, the number of primitives to be rendered is small, most of the modules / devices in the rendering pipeline will be idle for a long time in the process of executing the rendering task, which reduces the utilization of the rendering pipeline and the execution efficiency of the rendering task. When the rendering pipeline includes branch paths, the idle modules / devices are more, and the utilization of the rendering pipeline will be further reduced. Therefore, how to improve the utilization of the rendering pipeline and the execution efficiency of the rendering task has become a research hotspot in the field. SUMMARY

[0004] Therefore, the present disclosure provides a rendering device, method, graphic processor and electronic device. The rendering device of the present disclosure increases a control module for controlling the execution process of a rendering task, and can reduce the idle time of the modules, improve the utilization of the rendering pipeline and the execution efficiency of the rendering task for the rendering pipeline including branch paths.

[0005] According to an aspect of the present disclosure, a rendering device is provided, which includes a rendering pipeline and a plurality of control modules. The rendering pipeline includes a plurality of rendering sub-modules, and at least two rendering sub-modules are distributed on different branch paths of the rendering pipeline. The rendering sub-module is configured to execute a rendering task, render input data, and obtain a rendering result. The control module is configured to control the conduction of the input end and the output end, output the rendering result of one or more rendering sub-modules connected to the input end to one or more rendering sub-modules connected to the output end, and control the disconnection of the input end and the output end after the rendering result of the one or more rendering sub-modules connected to the input end is output. The control module controls the rendering sub-modules connected to the input end and the output end to execute different rendering tasks or different parts of the same rendering task by controlling the conduction or disconnection of the input end and the output end.

[0006] In a possible implementation, when the control module is connected to a plurality of rendering sub-modules through the input end or the output end, the plurality of rendering sub-modules execute different parts of the same rendering task.

[0007] In a possible implementation, an input end of the first control module is an input end of the device, and an output end of the first control module is connected to an input end of the first rendering submodule; an input end of the i-th control module is connected to an output end of the (i-1)-th rendering submodule, and an output end of the i-th control module is connected to an input end of the i-th rendering submodule, where i is an integer greater than 1; and an output end of the last rendering submodule is an output end of the device; each rendering submodule includes one or more rendering submodules, and each control module includes one or more control modules.

[0008] In a possible implementation, the control module is further configured to, after the input end and the output end of the control module are disconnected, output a first request to a previous control module, the first request indicating that a rendering submodule connected to the input end of the current control module is idle, and the first request being used to control the input end and the output end of the previous control module to be turned on. When the previous control module includes a plurality of control modules, the first request is output to the plurality of control modules simultaneously.

[0009] In a possible implementation, the device further includes a configuration module configured to store configuration information of at least one rendering task, and the data input into the rendering submodule corresponds to a target task, the target task being one of the at least one rendering task; and the rendering submodule is configured to acquire, from the configuration module, configuration information related to the rendering submodule in the configuration information of the target task, and perform the target task according to the acquired configuration information.

[0010] In a possible implementation, the control module is configured to, when the configuration module has stored the configuration information related to the rendering submodule connected to the output end of the control module in the configuration information of the target task, control the input end and the output end of the control module to be turned on in response to receiving the first request. When the next control module of the control module includes a plurality of control modules, the input end and the output end of the control module are controlled to be turned on in response to receiving the first request from the plurality of control modules.

[0011] In a possible implementation, the configuration module includes W first registers, K is a maximum value of a number of rendering tasks simultaneously performed by a rendering pipeline, each first register stores configuration information of a rendering task, K is an integer greater than 1, and W is an integer greater than K; and the last rendering submodule is further configured to, after the target task is performed, notify the configuration module to clear the first register storing the configuration information of the target task; and the configuration module is configured to, when there is a free first register, load configuration information of a new rendering task.

[0012] In a possible implementation, the apparatus further stores enabling information of at least one rendering task, the enabling information indicating rendering sub-modules participating in rendering when the rendering task is executed, and input ends of the i-level control modules are further connected to output ends of the 1st to the i-2nd rendering sub-modules respectively, and the control modules are further configured to, according to the enabling information of the target task, determine at least one rendering sub-module connected to the input end to participate in rendering, control the input end and the output end to be conductive, and output a rendering result of the rendering sub-module connected to the input end to the rendering sub-module participating in rendering connected to the output end; and after the rendering result of the rendering sub-module connected to the input end is output, control the input end and the output end to be disconnected.

[0013] In a possible implementation, the rendering sub-modules are further configured to, according to the enabling information of the target task, determine each rendering sub-module in a later-stage rendering sub-module that executes the target task first, and after a rendering result is obtained, output a second request to a control module connected to an input end of the determined rendering sub-module, the second request indicating that data used by the determined rendering sub-module to execute the target task has been generated; and the control modules are further configured to, according to the enabling information of the target task, determine each rendering sub-module in an earlier-stage rendering sub-module that executes the target task last, and after the input end and the output end are disconnected, output a first request to a control module connected to an input end of the determined rendering sub-module; and the first request and the second request are used to control the input end and the output end of the control module to be conductive.

[0014] In a possible implementation, the control modules are configured to, when the configuration modules have stored configuration information of the target task that is related to the rendering sub-module connected to the output end, control the input end and the output end to be conductive in response to receiving the first request and the second request.

[0015] According to another aspect of the present disclosure, a rendering method is provided, which is applied to a rendering device, the device comprising a rendering pipeline and a plurality of control modules, the rendering pipeline comprising a plurality of rendering sub-modules, at least two of which are distributed on different branch paths of the rendering pipeline; the method comprising: the rendering sub-modules performing rendering tasks to render input data to obtain rendering results; the control modules controlling the conduction of their input terminals and output terminals, outputting the rendering results of one or more rendering sub-modules connected to the input terminals to one or more rendering sub-modules connected to the output terminals; after the rendering results of the one or more rendering sub-modules connected to the input terminals are output, the control modules control the disconnection of their input terminals and output terminals; wherein the control modules control the rendering sub-modules connected to the input terminals and the rendering sub-modules connected to the output terminals to perform different rendering tasks or different parts of the same rendering task by controlling the conduction or disconnection of their input terminals and output terminals.

[0016] In a possible implementation, when the control module is connected to a plurality of rendering sub-modules at the input terminal or the output terminal, the plurality of rendering sub-modules perform different parts of the same rendering task.

[0017] In a possible implementation, the input terminal of the first-level control module serves as the input terminal of the device, and the output terminal is connected to the input terminal of the first-level rendering sub-module; the input terminal of the i-level control module is connected to the output terminal of the (i-1)-level rendering sub-module, and the output terminal of the i-level control module is connected to the input terminal of the i-level rendering sub-module, i being an integer greater than 1; the output terminal of the last-level rendering sub-module serves as the output terminal of the device; wherein each level of rendering sub-module comprises one or more rendering sub-modules, and each level of control module comprises one or more control modules.

[0018] In a possible implementation, the method further comprises: after the disconnection of the input terminal and the output terminal of the control module, outputting a first request to the previous-level control module, the first request indicating that the rendering sub-module connected to the input terminal of the current control module is idle, and the first request being used to control the conduction of the input terminal and the output terminal of the previous-level control module; wherein when the previous-level control module comprises a plurality of control modules, the first request is simultaneously output to the plurality of control modules.

[0019] In a possible implementation, the device further comprises a configuration module, and the method further comprises: the configuration module storing configuration information of at least one rendering task, the data input to the rendering sub-module corresponding to a target task, the target task being one of the at least one rendering task; the rendering sub-module obtaining, from the configuration module, configuration information related to the rendering sub-module in the configuration information of the target task, and performing the target task according to the obtained configuration information.

[0020] In a possible implementation, the control module controls the input end and the output end of the control module to be connected, including: when the configuration module has stored the configuration information of the target task related to the rendering submodule connected to the output end of the control module, the control module controls the input end and the output end of the control module to be connected in response to receiving the first request; when the next level of the control module includes a plurality of control modules, the control module controls the input end and the output end of the control module to be connected in response to receiving the first request from the plurality of control modules.

[0021] In a possible implementation, the configuration module includes W first registers, K is the maximum value of the number of rendering tasks executed simultaneously by the rendering pipeline, each first register stores the configuration information of a rendering task, K is an integer greater than 1, and W is an integer greater than K; the method further includes: after the last level of rendering submodule finishes executing the target task, the configuration module is notified to clear the first register storing the configuration information of the target task; when there is a free first register, the configuration module loads the configuration information of a new rendering task.

[0022] In a possible implementation, the device further stores enabling information of at least one rendering task, the enabling information indicating a rendering submodule participating in rendering when the rendering task is executed, the input end of the i-level control module is further connected to the output end of the 1st-level rendering submodule to the i-2-level rendering submodule, and the method further includes: when the control module determines, according to the enabling information of the target task, that at least one rendering submodule connected to the output end of the control module participates in rendering, the control module controls the input end and the output end of the control module to be connected, and outputs the rendering result of the rendering submodule connected to the input end to the rendering submodule participating in rendering connected to the output end; after the rendering result of the rendering submodule connected to the input end is output, the control module controls the input end and the output end of the control module to be disconnected.

[0023] In a possible implementation, the method further includes: the rendering submodule determines, according to the enabling information of the target task, each rendering submodule in the later level of rendering submodules that executes the target task first, and after obtaining the rendering result, inputs a second request to the control module connected to the input end of the determined rendering submodule, the second request indicating that the data used by the determined rendering submodule to execute the target task has been generated; the control module determines, according to the enabling information of the target task, each rendering submodule in the former level of rendering submodules that executes the target task last, and after controlling the input end and the output end of the control module to be disconnected, outputs a first request to the control module connected to the input end of the determined rendering submodule; the first request and the second request are used to control the input end and the output end of the control module to be connected.

[0024] According to another aspect of the present disclosure, a graphics processor is provided, comprising the rendering device of any one of the above.

[0025] According to another aspect of the present disclosure, an electronic device is provided, comprising the graphics processor of the above.

[0026] The rendering device according to the embodiments of the present disclosure comprises a rendering pipeline and a plurality of control modules, the rendering pipeline comprises a plurality of rendering sub-modules, at least two rendering sub-modules are distributed on different branch paths of the rendering pipeline, the rendering sub-module is configured to perform a rendering task, render input data to obtain a rendering result; the control module is configured to control the conduction of the input end and the output end, output the rendering result of one or more rendering sub-modules connected to the input end to one or more rendering sub-modules connected to the output end; after the rendering result of one or more rendering sub-modules connected to the input end is output, the control module controls the disconnection of the input end and the output end; the control module controls the rendering sub-modules connected to the input end and the rendering sub-modules connected to the output end to perform different rendering tasks or different parts of the same rendering task by controlling the conduction or disconnection of the input end and the output end. By controlling the conduction or disconnection of the input end and the output end of the control module, the isolation between the rendering sub-modules is realized, so that different rendering sub-modules can perform different rendering tasks at the same time, the idle time of the modules can be reduced, the utilization rate of the rendering pipeline is improved, and the execution efficiency of the rendering task is improved.

[0027] Other features and aspects of the present disclosure will become apparent from the following detailed description of exemplary embodiments with reference to the accompanying drawings. BRIEF DESCRIPTION OF DRAWINGS

[0028] The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate exemplary embodiments, features, and aspects of the present disclosure and serve to explain the principles of the present disclosure.

[0029] Figure 1 A schematic diagram showing the structure of a rendering pipeline of the prior art.

[0030] Figure 2 A schematic diagram showing the execution of a rendering task by a rendering pipeline of the prior art.

[0031] Figure 3 A schematic diagram showing the execution of a rendering task by a rendering pipeline of the prior art.

[0032] Figure 4 A schematic diagram showing the execution of a rendering task by a rendering pipeline of the prior art.

[0033] Figure 5 An exemplary application scenario of the rendering device according to the embodiments of the present disclosure is shown.

[0034] Figure 6 A schematic diagram showing a structure of a rendering device according to an embodiment of the present disclosure.

[0035] Figure 7 A schematic diagram showing a rendering pipeline performing a rendering task according to an embodiment of the present disclosure.

[0036] Figure 8 A schematic diagram showing a structure of a rendering device according to an embodiment of the present disclosure.

[0037] Figure 9 A schematic diagram showing a structure of a configuration module according to an embodiment of the present disclosure.

[0038] Figure 10 A schematic diagram showing a structure of a rendering device according to an embodiment of the present disclosure.

[0039] Figure 11 A schematic diagram showing a rendering pipeline performing a rendering task according to an embodiment of the present disclosure.

[0040] Figure 12 A schematic diagram showing a control module, a rendering submodule enabled in a rendering pipeline according to an embodiment of the present disclosure.

[0041] Figure 13 A schematic diagram showing a flow of a rendering method according to an embodiment of the present disclosure. DETAILED DESCRIPTION

[0042] Various exemplary embodiments, features, and aspects of the present disclosure will be explained in detail below with reference to the accompanying drawings. Like reference numerals in the drawings denote like elements or components. Although various aspects of embodiments are illustrated in the drawings, the drawings are not necessarily drawn to scale unless specifically noted.

[0043] As used herein, the terms "comprise", "comprising", "have", "having", "include", "including", "contain", "containing", "provide", "providing", or variants thereof, are open-ended, and include one or more stated features, integers, elements, steps, components or functions but do not preclude the presence or addition of one or more other features, integers, elements, steps, components, functions or groups thereof.

[0044] When an element is referred to as being "connected", "coupled", "responsive", or "related" to another element, it can be directly connected, coupled, responsive, or related to the other element, or intervening elements can be present.

[0045] Although the terms first, second, third, etc., may be used herein to describe various elements / operations, these elements / operations should not be limited by these terms. These terms are only used to distinguish one element / operation from another. Therefore, without departing from the teachings of the inventive concept, a first element / operation in some embodiments may be referred to as a second element / operation in other embodiments.

[0046] The term “exemplary” as used herein means “serving as an example, embodiment, or illustration.” Any embodiment illustrated herein as “exemplary” is not necessarily to be construed as superior to or better than other embodiments.

[0047] Furthermore, to better illustrate this disclosure, numerous specific details are set forth in the following detailed description. Those skilled in the art will understand that this disclosure can be practiced without certain specific details. In some instances, methods, means, components, and circuits well known to those skilled in the art have not been described in detail in order to highlight the main points of this disclosure.

[0048] Figure 1 A schematic diagram illustrating the structure of a prior art rendering pipeline. (e.g.) Figure 1 As shown, based on the rendering functions implemented by the rendering pipeline, it can be divided into modules 1-6. This rendering pipeline includes two branch paths: the first branch path includes modules 2 and 4, and the second branch path includes modules 3 and 5. Modules 1 and 6 are located on the main path. The input of module 1 serves as the input of the rendering pipeline. The output of module 1 connects to the inputs of modules 2 and 3. The output of module 2 connects to the input of module 4. The output of module 3 connects to the input of module 5. The outputs of modules 4 and 5 connect to the input of module 6. The output of module 6 serves as the output of the rendering pipeline. The rendering pipeline can only execute one rendering task at a time. Module 1 can only receive data for the next rendering task after module 6 has output the rendering result of the previous task.

[0049] Figures 2-4 This diagram illustrates how a prior art rendering pipeline performs rendering tasks.

[0050] like Figure 2As shown, when the workload is large, there are many primitives to process. Assuming the task requires rendering primitives A through D, and each module can process one primitive per work cycle, then completing the task requires 7 work cycles. Specifically, in work cycle 1, module 1 processes primitive A; in work cycle 2, module 1 processes primitive B, while modules 2 and 3 process primitive A; in work cycle 3, module 1 processes primitive C, while modules 2 and 3 process primitive B, and modules 4 and 5 process primitive A; in work cycle 4, module 1 processes primitive D, while modules 2 and 3 process primitive C, while modules 4 and 5 process primitive B, and module 6 processes primitive A. This continues until work cycle 7, when module 6 processes primitive D, at which point all modules have completed processing of all primitives.

[0051] like Figure 3 As shown, when the task volume is relatively small, there are fewer primitives to process, and there may be idle modules in each work cycle. Assume the task requires rendering primitive E, and each module can process one primitive in one work cycle. In this case, completing the task requires four work cycles. Specifically, in work cycle 1, module 1 processes primitive E; in work cycle 2, modules 2 and 3 process primitive E; in work cycle 3, modules 4 and 5 process primitive E; and in work cycle 4, module 6 processes primitive E.

[0052] like Figure 4 As shown, assuming the first task requires rendering primitive E and the second task requires rendering primitive F, then completing the first and second tasks requires 8 work cycles. The rendering pipeline completes the execution of the first task in work cycles 1-4, and the workflow of each work cycle is as follows: Figure 3 As shown. Next, in work cycle 5, module 1 processes graphic element F; in work cycle 6, modules 2 and 3 process graphic element F; in work cycle 7, modules 4 and 5 process graphic element F; in work cycle 8, module 6 processes graphic element F, completing the execution of the second task.

[0053] Compare Figure 2 and Figure 3 The example shows that when the workload is small, the rendering pipeline utilization decreases. (Comparison) Figure 3 and Figure 4 As the example shows, because the rendering pipeline can only execute one rendering task at a time, and because it includes branch paths, the execution efficiency of rendering tasks is relatively low. Furthermore, if the rendering pipeline is long, the time to execute a single rendering task will also increase, which will further reduce the execution efficiency of the rendering tasks.

[0054] Therefore, the present disclosure provides a rendering device, a method, a graphics processor and an electronic device. The rendering device of the present disclosure increases a control module to control the execution process of a rendering task. For a rendering pipeline including branch paths, the idle time of the module can be reduced, the utilization rate of the rendering pipeline is improved, and the execution efficiency of the rendering task is improved.

[0055] Figure 5 An exemplary application scenario of the rendering device according to an embodiment of the present disclosure is shown.

[0056] As shown in Figure 5 , the rendering device can be arranged in a graphics processor to execute a rendering task. The graphics processor can input data to be rendered into the rendering device, and the rendering device can execute the rendering task, render the input data, and output a rendering result. The rendering result can be output to a display device (not shown) for display, or to a storage device (not shown) for storage, or to another data processing device (not shown) for further processing.

[0057] The exemplary structure and function of the rendering device are described below.

[0058] In a possible implementation, the rendering device includes a rendering pipeline and a plurality of control modules, the rendering pipeline includes a plurality of rendering sub-modules, and at least two rendering sub-modules are distributed on different branch paths of the rendering pipeline.

[0059] The rendering sub-module is configured to execute a rendering task, render input data, and obtain a rendering result.

[0060] The control module is configured to control the conduction of the input end and the output end, output the rendering result of the one or more rendering sub-modules connected to the input end to the one or more rendering sub-modules connected to the output end, and disconnect the input end and the output end after the rendering result of the one or more rendering sub-modules connected to the input end is output.

[0061] The control module controls the rendering sub-modules connected to the input end and the output end of the control module to execute different rendering tasks or different parts of the same rendering task by controlling the conduction or disconnection of the input end and the output end.

[0062] For example, the rendering device can include a rendering pipeline and a plurality of control modules, the rendering pipeline includes a plurality of rendering sub-modules, and at least two rendering sub-modules are distributed on different branch paths of the rendering pipeline.

[0063] Figure 6 A schematic diagram of the structure of the rendering device according to an embodiment of the present disclosure is shown.

[0064] In one possible implementation, the input terminal of the first-level control module serves as the input terminal of the device, and the output terminal is connected to the input terminal of the first-level rendering submodule.

[0065] The input of the i-th level control module is connected to the output of the (i-1)-th level rendering submodule, and the output of the i-th level control module is connected to the input of the i-th level rendering submodule, where i is an integer greater than 1.

[0066] The output of the final rendering submodule serves as the output of the device.

[0067] Each level of rendering submodule includes one or more rendering submodules, and each level of control module includes one or more control modules.

[0068] For example, such as Figure 6 As shown, the rendering apparatus may include a rendering pipeline and control modules 1-5. The rendering pipeline includes rendering submodules 1-6. Rendering submodules 1 and 6 are located on the main path, rendering submodules 2 and 4 are located on branch path 1, and rendering submodules 3 and 5 are located on branch path 2.

[0069] exist Figure 6 In the example, control module 1 acts as the first-level control module, controlling rendering submodule 1, which is also a first-level rendering submodule. Control module 2 acts as the second-level control module, controlling rendering submodules 2 and 3, which are also second-level rendering submodules. Control modules 3 and 4 act as the third-level control modules, and rendering submodules 4 and 5 act as third-level rendering submodules, where control module 3 controls rendering submodule 4, and control module 4 controls rendering submodule 5. Control module 5 acts as the fourth-level control module, controlling rendering submodule 6, which is also a fourth-level rendering submodule.

[0070] exist Figure 6 In the example, the input terminal of control module 1 serves as the input terminal of the rendering device. The output terminal of control module 1 is connected to the input terminal of rendering submodule 1. The output terminal of rendering submodule 1 is connected to the input terminal of control module 2. The output terminal of control module 2 is connected to the input terminals of rendering submodule 2 and rendering submodule 3, respectively. The output terminal of rendering submodule 2 is connected to the input terminal of control module 3. The output terminal of rendering submodule 3 is connected to the input terminal of control module 4. The output terminal of control module 3 is connected to the input terminal of rendering submodule 4. The output terminal of control module 4 is connected to the input terminal of rendering submodule 5. The output terminals of rendering submodule 4 and rendering submodule 5 are connected to the input terminal of control module 5, respectively. The output terminal of control module 5 is connected to the input terminal of rendering submodule 6. The output terminal of rendering submodule 6 serves as the output terminal of the rendering device.

[0071] The input terminals of control modules 2-4 are each connected to one rendering sub-module, and the input terminal of control module 5 is connected to two rendering sub-modules. The output terminals of control modules 1 and 3-5 are each connected to one rendering sub-module, and the output terminal of control module 2 is connected to two rendering sub-modules.

[0072] It should be understood that the structure of the rendering apparatus is not limited to the examples described above. As long as the rendering apparatus includes a rendering pipeline and multiple control modules, and the rendering pipeline includes multiple rendering sub-modules, with at least two rendering sub-modules distributed on different branch paths of the rendering pipeline, it is acceptable. This disclosure does not limit the specific structure of the rendering apparatus.

[0073] The rendering submodule is used to execute rendering tasks, render input data, and obtain rendering results. The control module can control the connection between its input and output terminals, so that the rendering results of one or more rendering submodules connected to the input terminal of the control module can be directly output to one or more rendering submodules connected to the output terminal of the control module.

[0074] by Figure 6 For example, the data to be rendered received by the rendering device can be input to rendering submodule 1 through control module 1. Rendering submodule 1 executes the rendering task to render the input data and obtain the rendering result. The rendering result of rendering submodule 1 can be input to rendering submodule 2 and rendering submodule 3 through control module 2. Rendering submodule 2 and rendering submodule 3 continue to execute the rendering task to render the input data, and so on. After obtaining the rendering result, rendering submodule 6 can output the rendering result to the outside of the rendering device.

[0075] Conversely, if the control module disconnects its input and output terminals, the rendering results of one or more rendering submodules connected to its input terminals will not be output to one or more rendering submodules connected to its output terminals. In other words, the control module can control when the rendering submodules at the output terminals execute rendering tasks by controlling the connection and disconnection of its input and output terminals. In this case, the control module can be used to disconnect its input and output terminals after the rendering results of one or more rendering submodules connected to its input terminals have been output. By timely disconnecting the input and output terminals, the rendering submodules connected to the output terminals can be prevented from being affected during rendering tasks. With the control module's input and output terminals disconnected, the rendering submodules connected to the input terminals and the rendering submodules connected to the output terminals can execute different rendering tasks.

[0076] by Figure 6For example, after control module 5 transmits the data corresponding to a rendering task to rendering submodule 6, it can disconnect its own input and output terminals, causing rendering submodules 4, 5, and 6 to disconnect. At this time, rendering submodule 6 begins to execute the rendering task. Subsequently, control module 3 connects its own input and output terminals, enabling rendering submodules 2 and 4 to connect. Rendering submodule 4 can then continue to receive data for another rendering task and execute that task. Similarly, control module 4 connects its own input and output terminals, enabling rendering submodules 3 and 5 to connect. Rendering submodule 5 can then continue to receive data for another rendering task and execute that task. In other words, the rendering submodules (rendering submodules 4 and 5) connected to the input terminals of control module 5 and the rendering submodule (rendering submodule 6) connected to the output terminals of control module 5 execute different rendering tasks.

[0077] If the workload of a rendering task is large enough, the rendering submodules (rendering submodules 4 and 5) connected to the input of control module 5 and the rendering submodule (rendering submodule 6) connected to the output may each execute different parts of the same rendering task. For example, if the workload of a rendering task is... Figure 2 As shown, while rendering submodules 4 and 5 process primitive C, rendering submodule 6 can process primitive B.

[0078] In other words, when both the input and output terminals of the control module are connected to rendering submodules that perform rendering tasks, the rendering submodules connected to the input and output terminals of the control module may perform different rendering tasks or different parts of the same rendering task.

[0079] In one possible implementation, when the input or output of the control module is connected to multiple rendering sub-modules, the multiple rendering sub-modules respectively execute different parts of the same rendering task.

[0080] exist Figure 6 The example has four levels of rendering submodules, so the rendering pipeline can execute a maximum of four rendering tasks simultaneously. Rendering submodules 2 and 3 belong to the same level and synchronously execute different parts of the same rendering task. Similarly, rendering submodules 4 and 5 belong to the same level and synchronously execute different parts of the same rendering task. That is, when a first-level rendering submodule includes two submodules, both submodules synchronously execute different parts of the same rendering task. Which part of the rendering task each submodule specifically executes is determined by its specific function. For example, the submodule responsible for adding textures can execute the part of the rendering task that involves adding textures.

[0081] Those skilled in the art should understand that the maximum number of rendering tasks that a rendering pipeline can execute simultaneously is related to the number of levels of the rendering submodules in the rendering pipeline, and can be predetermined based on existing technology before using the rendering pipeline. The specific method for determining the maximum number of rendering tasks that a rendering pipeline can execute simultaneously will not be elaborated here.

[0082] Figure 7 A schematic diagram illustrating the rendering pipeline performing a rendering task according to an embodiment of the present disclosure is shown.

[0083] Assume that rendering task 1 needs to render data including primitive E, and rendering task 2 needs to render data including primitive F. The structure of the rendering pipeline is as follows: Figure 6 As shown, each rendering submodule can process one primitive per work cycle. If the rendering pipeline executes rendering task 1 or rendering task 2 separately, then... Figure 4 As shown, multiple rendering submodules are idle during each work cycle.

[0084] And such Figure 7 As shown, according to the rendering apparatus of this disclosure embodiment, the working sequence of the rendering pipeline can be as follows: In working cycle 1, rendering submodule 1 processes primitive E; in working cycle 2, rendering submodules 2 and 3 process primitive E, and rendering submodule 1 processes primitive F; in working cycle 3, rendering submodules 4 and 5 process primitive E, and rendering submodules 2 and 3 process primitive F; in working cycle 4, rendering submodule 6 processes primitive E, and rendering submodules 4 and 5 process primitive F; in working cycle 5, rendering submodule 6 processes primitive F.

[0085] Compare Figure 4 and Figure 7 As the examples show, for two rendering tasks with the same workload, the existing rendering pipeline requires 8 work cycles, while the rendering apparatus of this embodiment only requires 5 work cycles, which improves the execution efficiency of the rendering task. In the existing rendering pipeline, each module is idle for 6 work cycles during the 8 work cycles of a rendering task, resulting in a pipeline utilization rate of 25%. In the rendering apparatus of this embodiment, each rendering submodule is idle for only 3 work cycles during the 5 work cycles of a rendering task, resulting in a pipeline utilization rate of 40%. Therefore, the rendering apparatus of this embodiment can reduce the idle time of modules and improve the utilization rate of the rendering pipeline.

[0086] For a rendering task with a large amount of tasks, since the control module of the embodiment of the present disclosure controls the input end and the output end to be disconnected after the rendering result output of the rendering submodule connected to the input end is completed, the execution efficiency of such task is not reduced. In this case, the plurality of rendering submodules in the rendering device of the embodiment of the present disclosure can execute one task with a large amount of tasks simultaneously or execute a plurality of tasks with small amount of tasks simultaneously, thereby improving the capability of the rendering pipeline.

[0087] The embodiment of the present disclosure does not limit the specific structure of the control module, as long as the control module can realize the above functions.

[0088] The rendering device according to the embodiment of the present disclosure comprises a rendering pipeline and a plurality of control modules. The rendering pipeline comprises a plurality of rendering submodules. At least two rendering submodules are distributed on different branch paths of the rendering pipeline. The rendering submodule is configured to execute a rendering task, render input data, and obtain a rendering result. The control module is configured to control the conduction of the input end and the output end thereof, output the rendering result of one or more rendering submodules connected to the input end to one or more rendering submodules connected to the output end, and control the disconnection of the input end and the output end thereof after the rendering result output of the one or more rendering submodules connected to the input end is completed. The control module controls the rendering submodule connected to the input end and the rendering submodule connected to the output end to execute different rendering tasks or different parts of the same rendering task by controlling the conduction or disconnection of the input end and the output end thereof. By controlling the conduction or disconnection of the input end and the output end of the control module, the isolation between the rendering submodules is realized, so that different rendering submodules can execute different rendering tasks simultaneously, the idle time of the modules can be reduced, the utilization rate of the rendering pipeline can be improved, and the execution efficiency of the rendering task can be improved.

[0089] Figure 8 A schematic diagram showing the structure of the rendering device according to the embodiment of the present disclosure.

[0090] As Figure 8 shown in a possible implementation, the device further comprises a configuration module configured to store configuration information of at least one rendering task, the data input into the rendering submodule corresponds to a target task, and the target task is one of the at least one rendering task.

[0091] The rendering submodule is configured to obtain configuration information related to the rendering submodule from the configuration information of the target task, and execute the target task according to the obtained configuration information.

[0092] For example, the data received by the rendering submodule each time can correspond to a certain rendering task to be executed by the rendering device. For example, the data of the primitive E corresponds to the rendering task 1, and the data of the primitive F corresponds to the rendering task 2.

[0093] The configuration information of different rendering tasks is different, and the rendering device can include a configuration module configured to store configuration information of at least one rendering task to be executed by the rendering device. The configuration information can include rendering parameters and the like, and the embodiments of the present disclosure do not limit the specific content included in the configuration information.

[0094] Since the rendering work completed by each rendering submodule is different, different rendering submodules can need to use different configuration information. The configuration information of each rendering task can include configuration information related to each rendering submodule. When each rendering submodule executes a rendering task, the configuration information related to the rendering submodule in the configuration information of the rendering task needs to be used.

[0095] The premise for a rendering submodule to start executing a certain rendering task is that the rendering submodule has received data corresponding to the rendering task and has obtained configuration information related to the rendering submodule in the configuration information corresponding to the rendering task, that is, the rendering submodule is specifically configured to obtain configuration information related to itself in the configuration information of the target task from the configuration module, execute the target task according to the obtained configuration information, and render the input data to obtain a rendering result.

[0096] The following describes an exemplary structure of the configuration module according to the embodiments of the present disclosure and an exemplary manner in which a rendering submodule obtains configuration information related to itself in the configuration information of a target task.

[0097] In a possible implementation, the configuration module includes W first registers, K is a maximum value of the number of rendering tasks simultaneously executed by the rendering pipeline, each first register stores configuration information of a rendering task, K is an integer greater than 1, and W is an integer greater than K.

[0098] The last-stage rendering submodule is further configured to, after executing the target task, notify the configuration module to clear the first register storing the configuration information of the target task.

[0099] The configuration module is configured to, when there is an idle first register, load configuration information of a new rendering task.

[0100] For example, K is a maximum value of the number of rendering tasks simultaneously executed by the rendering pipeline, and the determination manner thereof has been described above and will not be repeated here. Since the rendering pipeline of the embodiments of the present disclosure can execute at most K rendering tasks simultaneously, the configuration module can include at least K first registers to ensure that each rendering task has a corresponding first register for storing the configuration information of the rendering task when the rendering pipeline executes K rendering tasks simultaneously.

[0101] After the last stage rendering sub-module finishes the target task, the configuration information of the target task does not need to be used again, at this time the last stage rendering sub-module can notify the configuration module to clear the first register storing the configuration information of the target task.

[0102] The configuration module is used to load the configuration information of a new rendering task when there is an idle first register, so that the configuration information is stored in the configuration module faster. Further, the configuration module can include W first registers, W being an integer greater than K, at this time at least one register can be allocated as a redundant register, in this case, the configuration module can be written with the configuration information of the rendering task to be executed by the rendering pipeline in advance, reducing the time for waiting for the configuration information to be written when the rendering task is executed.

[0103] Figure 9 A schematic diagram showing the structure of the configuration module according to an embodiment of the present disclosure.

[0104] As shown in Figure 9 , assuming K = 4 and W = 5, registers 1-5 can be used to store the configuration information of 5 rendering tasks, in this case, while the rendering pipeline is executing the 1st-4th rendering tasks, the configuration information of the 5th rendering task can be written into the configuration module; after the rendering pipeline finishes executing any one of the 1st-4th rendering tasks, the 5th rendering task can be executed faster. In this way, the execution efficiency of the rendering task can be further improved.

[0105] Further, the rendering device can further include K selectors, each selector including W inputs connected to the W first registers. As shown in Figure 9 , when K = 4, the rendering device can further include selectors 1-4.

[0106] The configuration information can be written into the configuration module by software. After the configuration module determines that the configuration information related to a certain rendering sub-module in the configuration information of a certain rendering task is written, the configuration module can output a signal (such as Figure 9 signal 1 shown in the figure) to the control module connected to the input of the rendering sub-module. The control module can output a control signal (such as Figure 9 signal 2 shown in the figure) to the selector connected according to the signal from the configuration module, the control signal can indicate in which first register the configuration information of the rendering task to be executed next by the rendering sub-module connected to the output of the control module is stored. The selector can select an input to be connected to the output according to the control signal, so that the path between the rendering sub-module connected and the first register indicated by the control signal is turned on, and the configuration information related to the rendering sub-module connected in the configuration information stored in the first register is input into the rendering sub-module.

[0107] It should be understood that when there are multiple rendering sub-modules at the same level, the configuration information related to any one of the rendering sub-modules can be written into the control module connected to the input end of the rendering sub-module after the writing is completed, that is, the configuration module can output multiple signals 1 to multiple rendering sub-modules asynchronously. Correspondingly, multiple signals 2 from multiple rendering sub-modules at the same level can also be output to the selector asynchronously. The selector can also include multiple output ends, so that the selector can output configuration information to multiple rendering sub-modules simultaneously in response to multiple signals 2.

[0108] Those skilled in the art should understand that the configuration information can also be output to the rendering sub-module in other ways, and the embodiments of the present disclosure do not limit the specific transmission mode of the configuration information.

[0109] In a possible implementation, the control module is further configured to output a first request to the control module at the previous level after the input end and the output end of the control module are disconnected, the first request indicating that the rendering sub-module connected to the input end of the control module is idle, and the first request being used to control the input end and the output end of the control module at the previous level to be turned on; and when the control module at the previous level includes multiple control modules, the first request is output to the multiple control modules simultaneously.

[0110] For example, the control module is disconnected after the rendering result of one or more rendering sub-modules connected to the input end is output, at which time the one or more rendering sub-modules connected to the input end are idle and can perform a new rendering task. Whether the one or more rendering sub-modules connected to the input end of the control module can receive data corresponding to the new rendering task is determined by the control module connected to the input end of the rendering sub-module (that is, the control module at the previous level of the current control module).

[0111] The current control module can also output a first request to the control module at the previous level to inform the control module at the previous level that the rendering sub-module connected to the input end of the current control module (also the rendering sub-module connected to the output end of the control module at the previous level) is idle.

[0112] There can be more than one control module at the previous level of each control module. Figure 6 In the example, the control module 2 can be the control module 1 at the previous level, the control module 3 can be the control module 2 at the previous level, the control module 4 can be the control module 2 at the previous level, and the control module 5 can be the control module 3 and the control module 4 at the previous level.

[0113] When the control module at the previous level includes multiple control modules, the current control module can output a first request to the multiple control modules at the previous level simultaneously. For example, when the control module at the previous level includes two control modules, the current control module outputs a first request to the two control modules at the previous level simultaneously.

[0114] Accordingly, upon receiving the first request from all control modules at the next lower level, the current control module can determine that all rendering submodules connected to its output are idle. For example, if the next lower level control module includes two control modules, upon receiving the first requests from both control modules at the next lower level, the current control module can determine that all rendering submodules connected to its output are idle. In this case, the current control module can then connect its input and output terminals, outputting the rendering results from the rendering submodules connected to its input terminals to the rendering submodules connected to its output terminals.

[0115] That is, for any control module, after its own input and output are disconnected, it outputs a first request to the previous level control module. The first request indicates that the rendering submodule connected to the input of the current control module is idle. The first request is used to control the input and output of the previous level control module to be connected.

[0116] by Figure 6 For example, when control module 2 sends a first request to the previous level control module (control module 1), the first request indicates that rendering submodule 1 is idle. The first request is used to control the input and output terminals of control module 1 to be connected. When control module 1 receives the first request from control module 2, it can control its own input and output terminals to be connected.

[0117] For control module 3, when it sends a first request to the preceding control module (control module 2), the first request indicates that rendering submodule 2 is idle. This first request is used to control the input and output terminals of control module 2 to be connected. Similarly, for control module 4, when it sends a first request to the preceding control module (control module 2), the first request indicates that rendering submodule 3 is idle. This first request is used to control the input and output terminals of control module 2 to be connected. Control module 2 can only control its own input and output terminals to be connected after receiving the first requests from control modules 3 and 4.

[0118] For control module 5, when it sends a first request to the preceding control module (control module 3 and control module 4), the first request indicates that rendering submodule 4 and rendering submodule 5 are idle. The first request is used to control the input and output terminals of control module 3 and control module 4 to be connected. For control module 3 / 4, upon receiving the first request from control module 5, it can control its own input and output terminals to be connected.

[0119] In one possible implementation, the control module is configured to, in response to receiving a first request, control its own input and output terminals to be turned on when the configuration module has stored configuration information related to the rendering sub-module connected to its own output terminal in the configuration information of the target task; wherein, when the next-level control module of the control module includes multiple control modules, the control module controls its own input and output terminals to be turned on in response to receiving a first request from multiple control modules.

[0120] For example, since the rendering submodule needs configuration information to perform rendering tasks, if the configuration information has not yet been stored in the configuration module, even if the data used by the rendering submodule to perform the rendering task has been input, the rendering task cannot be executed until the configuration information is stored. Therefore, the control module can be used to control the input and output of the preceding control module to be turned on in response to a first request when the configuration module has stored the configuration information of the target task related to the rendering submodule connected to its own output. If the next level control module of the current control module includes multiple control modules, the current control module can control its own input and output to be turned on in response to a first request from multiple control modules.

[0121] by Figure 6 For example, control module 1 can activate its input and output terminals in response to a first request from control module 2 when the configuration module has stored configuration information related to rendering submodule 1 for the target task. Control module 2 can activate its input and output terminals in response to a first request from control module 3 and control module 4 when the configuration module has stored configuration information related to rendering submodules 2 and 3 for the target task. Control module 3 can activate its input and output terminals in response to a first request from control module 5 when the configuration module has stored configuration information related to rendering submodule 4 for the target task. Control module 4 can activate its input and output terminals in response to a first request from control module 5 when the configuration module has stored configuration information related to rendering submodule 5 for the target task.

[0122] In this case, when the rendering results of one or more rendering sub-modules connected to the input end of the control module are output to one or more rendering sub-modules connected to the output end of the control module, the rendering sub-modules connected to the output end of the control module can directly start executing the rendering task without waiting for the configuration information to be written.

[0123] In a possible implementation, the apparatus further stores enabling information of at least one rendering task, the enabling information indicating rendering sub-modules participating in rendering when the rendering task is executed, and the input end of the i-level control module is further connected to the output end of the 1st to (i-2)th rendering sub-modules, and the control module is further configured to,

[0124] determine, according to the enabling information of the target task, whether at least one rendering sub-module connected to the output end of the control module participates in rendering, control the input end and the output end of the control module to be conductive when the at least one rendering sub-module participates in rendering, and output the rendering result of the rendering sub-module connected to the input end of the control module to the rendering sub-module participating in rendering connected to the output end of the control module, and

[0125] control the input end and the output end of the control module to be disconnected after the rendering result of the rendering sub-module connected to the input end of the control module is output.

[0126] For example, in some application scenarios, the rendering function implemented by the rendering pipeline can exceed the requirement of the rendering task. When the rendering pipeline executes such a rendering task, some rendering sub-modules can not need to be used. Therefore, the enabling information indicating the rendering sub-modules participating in rendering can be stored in the rendering apparatus, and the rendering sub-modules not participating in rendering can be skipped according to the enabling information during the execution of the rendering task by the rendering pipeline.

[0127] To ensure that the data transmission on the rendering pipeline is not affected when part of the rendering sub-modules do not participate in rendering, the input end of the i-level control module is further connected to the output end of the 1st to (i-2)th rendering sub-modules. Figure 10 FIG. 1 shows a schematic diagram of the structure of a rendering apparatus according to an embodiment of the present disclosure.

[0128] As shown in FIG. 1, the rendering sub-module 1 is a 1st-level rendering sub-module, and the output end of the rendering sub-module 1 is connected to the input end of the 2nd-level control module (control module 2) and the input end of the 3rd-level control module (control module 3 and control module 4) and the input end of the 4th-level control module (control module 5). Figure 10 The control module can determine, according to the enabling information of the target task, whether the rendering sub-module connected to the output end of the control module participates in rendering, control the input end and the output end of the control module to be conductive when at least one rendering sub-module connected to the output end of the control module participates in rendering, output the rendering result of the rendering sub-module connected to the input end of the control module to the rendering sub-module participating in rendering connected to the output end of the control module, and control the input end and the output end of the control module to be disconnected after the rendering result of the rendering sub-module connected to the input end of the control module is output.

[0129]

[0130] ​That is, after a rendering submodule receives data corresponding to a target task, executes the target task to obtain a rendering result, if all rendering submodules at the next level of the rendering submodule do not participate in rendering (i.e., do not participate in execution of the target task), then under control of the control module, the rendering result will skip the rendering submodules at the next level and be directly output to the rendering submodule at the next level that first executes the target task.

[0131] For example, as shown in FIG. 3, if the enablement information indicates that rendering submodule 2 and rendering submodule 3 do not participate in rendering when the target task is executed, and rendering submodule 1 and rendering submodules 4-6 participate in rendering, then the rendering result obtained by rendering submodule 1 executing the target task will skip rendering submodule 2 and rendering submodule 3 and be transmitted to rendering submodule 4 and rendering submodule 5 via control module 3 and control module 4, respectively. Figure 10

[0132] In a possible implementation, the rendering submodule is further configured to determine, according to the enablement information of the target task, each rendering submodule at the next level that first executes the target task, and output a second request to a control module connected to an input end of the determined rendering submodule after obtaining the rendering result, the second request indicating that data used by the determined rendering submodule to execute the target task has been generated.

[0133] The control module is further configured to determine, according to the enablement information of the target task, each rendering submodule at the previous level that last executes the target task, and output a first request to a control module connected to an input end of the determined rendering submodule after disconnecting the input end and the output end of the control module.

[0134] The first request and the second request are used to control the input end and the output end of the control module to be conductive.

[0135] For example, because the input end of the control module can be connected to multiple levels of rendering submodules, the rendering submodule can be added with the capability of notifying the control module. For example, the rendering submodule is further configured to determine, according to the enablement information of the target task, each rendering submodule at the next level that first executes the target task, and output a second request to a control module connected to an input end of the determined rendering submodule after obtaining the rendering result, the second request indicating that data used by the determined rendering submodule to execute the target task has been generated.

[0136] The control module is further configured to determine, according to the enablement information of the target task, each rendering submodule at the previous level that last executes the target task, and output a first request to a control module connected to an input end of the determined rendering submodule after disconnecting the input end and the output end of the control module.

[0137] ​In this case, when the control module receives the second request of each rendering submodule which is the last one to execute the target task in the front rendering submodules, it can be considered that the data required by each rendering submodule which is the first one to execute the target task in the rear rendering submodules is ready. When the control module receives the first request from the control module connected to the input end of the rendering submodule which is the first one to execute the target task in the rear rendering submodules, it can be considered that the rendering submodule which is the first one to execute the target task in the rear rendering submodules is idle. In this case, the control module can control the input end and the output end of itself to be conductive. That is, the first request and the second request are used to control the input end and the output end of the control module receiving the first request and the second request to be conductive.

[0138] In a possible implementation, the control module is configured to, when the configuration module has stored the configuration information of the target task related to the rendering submodule participating in rendering connected to the output end of itself, control the input end and the output end of itself to be conductive in response to receiving the first request and the second request; further, the control module controls the input end and the output end of itself to be conductive in response to receiving the first request issued by each control module connected to the output end and also connected to the input end of the rendering submodule which is the first one to execute the target task, and receiving the second request of each rendering submodule which is the last one to execute the target task connected to the input end.

[0139] For example, it has been mentioned above that the configuration information needs to be used when the rendering submodule executes the rendering task, if the configuration information has not been stored in the configuration module, even if the data used by the rendering submodule to execute the rendering task has been input, the rendering submodule needs to wait until the storage of the configuration information is completed before executing the rendering task. Therefore, the control module can be configured to, when the configuration module has stored the configuration information of the target task related to the rendering submodule participating in rendering connected to the output end of itself, control the input end and the output end of itself to be conductive in response to receiving the first request and the second request, so as to improve the execution efficiency of the rendering task.

[0140] Since there can be multiple rendering submodules participating in rendering connected to the output end of the control module, and there can be multiple rendering submodules participating in rendering connected to the input end of the control module, the control module can control the input end and the output end of itself to be conductive in response to receiving the first request of each rendering submodule which is the first one to execute the target task connected to the output end, and receiving the second request of each rendering submodule which is the last one to execute the target task connected to the input end.

[0141] It should be understood that a selection module can also be added at the output end of the rendering submodule to arbitrate which input end of the control module is connected to the output end of the rendering submodule. In this case, the selection module can be responsible for determining the rendering submodule that performs the target task first in the next stage according to the enablement information, and for turning on the control module that connects the current rendering submodule and the determined rendering submodule, at which time the rendering submodule does not have to output the second request. The embodiments of the present disclosure do not limit whether the rendering submodule has to output the second request.

[0142] Figure 11 A schematic diagram showing the rendering pipeline performing a rendering task according to an embodiment of the present disclosure is shown.

[0143] As shown in Figure 11 , it is assumed that the data to be rendered by the first rendering task includes a primitive E, the data to be rendered by the second rendering task includes a primitive F, and the rendering pipeline includes six rendering submodules (see Figure 10 ). Each rendering submodule can process one primitive in one work cycle. Neither the first rendering task nor the second rendering task needs to use rendering submodule 2 and rendering submodule 3.

[0144] In this case, the working timing of the rendering pipeline can be as follows: in work cycle 1, rendering submodule 1 processes primitive E; in work cycle 2, rendering submodule 4 and rendering submodule 5 process primitive E (rendering submodule 2 and rendering submodule 3 are skipped), and rendering submodule 1 processes primitive F; in work cycle 3, rendering submodule 6 processes primitive E, and rendering submodule 4 and rendering submodule 5 process primitive F (rendering submodule 2 and rendering submodule 3 are skipped); and in work cycle 4, rendering submodule 6 processes primitive F. Figure 7 Compared with the example of , the work cycle of the rendering pipeline is further shortened from five cycles to four cycles, further improving the execution efficiency of the rendering task.

[0145] Those skilled in the art should understand that the rendering device can store enablement information corresponding to each rendering task, and each control module obtains the enablement information corresponding to the rendering task according to the execution order of the rendering task, and controls the execution process of the rendering task according to the obtained enablement information. In this way, the control module controls the execution process of the rendering task in a more flexible manner.

[0146] In some application scenarios, part of the control modules and rendering submodules in the rendering pipeline can also be enabled in advance according to the enablement information. In this case, only the control modules and rendering submodules participating in rendering work normally.

[0147] Figure 12 A schematic diagram showing the enabled control modules and rendering submodules in the rendering pipeline according to an embodiment of the present disclosure is shown.

[0148] like Figure 12 As shown, when rendering submodules 2 and 3 are not needed, control modules 1, 3, 4, and 5, and rendering submodules 1, 4, 5, and 6 can be enabled. In this case, control module 1, rendering submodule 1, control module 5, and rendering submodule 6 remain on the main path, branch path 1 is changed to include control module 3 and rendering submodule 4, and branch path 2 is changed to include control module 4 and rendering submodule 5. The operation of each control module and rendering submodule is similar to the operation of the rendering device when no enable information is stored, and can be regarded as the rendering pipeline only including... Figure 12 The path shown by the solid line is sufficient.

[0149] This disclosure also proposes a rendering method. Figure 13 A schematic diagram illustrating the flow of a rendering method according to an embodiment of the present disclosure is shown.

[0150] like Figure 13 As shown, in one possible implementation, the method is applied to a rendering apparatus, the apparatus including a rendering pipeline and multiple control modules, the rendering pipeline including multiple rendering sub-modules, at least two rendering sub-modules being distributed on different branch paths of the rendering pipeline; the method includes:

[0151] Step S131: The rendering submodule executes the rendering task, renders the input data, and obtains the rendering result;

[0152] Step S132: The control module controls its own input and output terminals to be connected, and outputs the rendering results of one or more rendering sub-modules connected to the input terminal to one or more rendering sub-modules connected to the output terminal.

[0153] Step S133: After the rendering results of one or more rendering sub-modules connected to the input end are output, the control module controls its own input end and output end to disconnect.

[0154] The control module controls the rendering sub-modules connected to its input and output terminals to perform different rendering tasks or different parts of the same rendering task by controlling the on / off state of its input and output terminals.

[0155] In one possible implementation, when the input or output of the control module is connected to multiple rendering sub-modules, the multiple rendering sub-modules respectively execute different parts of the same rendering task.

[0156] In a possible implementation, an input end of the first control module is an input end of the device, and an output end of the first control module is connected to an input end of the first rendering submodule; an input end of the i-th control module is connected to an output end of the (i-1)-th rendering submodule, and an output end of the i-th control module is connected to an input end of the i-th rendering submodule, where i is an integer greater than 1; and an output end of the last rendering submodule is an output end of the device; each rendering submodule includes one or more rendering submodules, and each control module includes one or more control modules.

[0157] In a possible implementation, the method further includes: after the input end and the output end of the control module are disconnected, the control module outputs a first request to a previous control module, the first request indicating that a rendering submodule connected to the input end of the current control module is idle, and the first request being used to control the input end and the output end of the previous control module to be turned on; when the previous control module includes a plurality of control modules, the first request is simultaneously output to the plurality of control modules.

[0158] In a possible implementation, the device further includes a configuration module, and the method further includes: the configuration module storing configuration information of at least one rendering task, the data input to the rendering submodule corresponding to a target task, the target task being one of the at least one rendering task; the rendering submodule obtaining, from the configuration module, configuration information related to the rendering submodule in the configuration information of the target task, and performing the target task according to the obtained configuration information.

[0159] In a possible implementation, the control module controls the input end and the output end of the control module to be turned on, including: when the configuration module has stored configuration information related to a rendering submodule connected to the output end of the control module in the configuration information of the target task, the control module controls the input end and the output end of the control module to be turned on in response to receiving the first request; when the next control module of the control module includes a plurality of control modules, the control module controls the input end and the output end of the control module to be turned on in response to receiving the first request from the plurality of control modules.

[0160] In a possible implementation, the configuration module includes W first registers, K is a maximum value of a number of rendering tasks simultaneously executed by a rendering pipeline, each first register stores configuration information of a rendering task, K is an integer greater than 1, and W is an integer greater than K; the method further includes: after the last rendering submodule finishes executing the target task, the configuration module is notified to clear the first register storing the configuration information of the target task; and when there is a free first register, the configuration module loads configuration information of a new rendering task.

[0161] In a possible implementation, the device further stores enabling information of at least one rendering task, the enabling information indicating rendering sub-modules participating in rendering when the rendering task is executed, and input ends of the i-level control modules are further connected to output ends of the 1st-level rendering sub-module to the i-2-level rendering sub-module, and the method further includes: when the control module determines, according to the enabling information of the target task, that at least one rendering sub-module connected to the output end of the control module participates in rendering, the control module controls the input end and the output end of the control module to be turned on, and outputs a rendering result of the rendering sub-module connected to the input end to the rendering sub-module participating in rendering connected to the output end; and after the rendering result of the rendering sub-module connected to the input end is output, the control module controls the input end and the output end of the control module to be turned off.

[0162] In a possible implementation, the method further includes: the rendering sub-module determines, according to the enabling information of the target task, each rendering sub-module in a later-stage rendering sub-module that executes the target task first, and after obtaining a rendering result, the rendering sub-module outputs a second request to the control module connected to an input end of the determined rendering sub-module, the second request indicating that data used by the determined rendering sub-module to execute the target task has been generated; the control module determines, according to the enabling information of the target task, each rendering sub-module in an earlier-stage rendering sub-module that executes the target task last, and after the input end and the output end of the control module are turned off, the control module outputs a first request to the control module connected to an input end of the determined rendering sub-module; and the first request and the second request are used to control the input end and the output end of the control module to be turned on.

[0163] The present disclosure further provides a graphics processor, including the rendering device described above. A schematic diagram of a structure of the graphics processor can be seen from FIG. 2. Figure 5 .

[0164] The present disclosure further provides an electronic device, including the graphics processor described above. The electronic device can be a terminal device or a server, and the present disclosure does not limit the specific type of the electronic device.

[0165] The computer program product of the second aspect can include a computer readable storage medium. The computer readable storage medium can include instructions. The instructions can include one or both of: instructions for causing a computer to enable a user equipment device to receive a configuration message from a base station, the configuration message comprising an indication of a set of one or more parameters for a first type of hybrid automatic repeat request process, the first type of hybrid automatic repeat request process being associated with a first type of data; and instructions for causing a computer to enable a user equipment device to receive a configuration message from a base station, the configuration message comprising an indication of a set of one or more parameters for a first type of hybrid automatic repeat request process, the first type of hybrid automatic repeat request process being associated with a first type of data.

[0166] Embodiments of the present disclosure have been described above, with the understanding that these embodiments are exemplary only, and are not restrictive, and are not limited to the disclosed embodiments. Many modifications and changes to this disclosure would be apparent to those of ordinary skill in the art. The scope of the technology disclosed is not to be limited by the specific illustrative embodiments presented above, but only by the claims that follow. The terminology used in this disclosure is for the purpose of describing particular embodiments only and is not intended to be limiting.

Claims

1. A rendering apparatus, characterized in that, It includes a rendering pipeline and multiple control modules. The rendering pipeline includes multiple rendering sub-modules, with at least two rendering sub-modules distributed on different branch paths of the rendering pipeline. The rendering submodule is used to execute rendering tasks, render the input data, and obtain rendering results; The control module is used to control the connection between its input and output terminals, and to output the rendering results of one or more rendering sub-modules connected to the input terminal to one or more rendering sub-modules connected to the output terminal. After the rendering results of one or more rendering submodules connected to the input end have been output, the input and output ends of the module are disconnected. The control module controls the rendering sub-modules connected to its input and output terminals to perform different rendering tasks or different parts of the same rendering task by controlling the on / off state of its input and output terminals.

2. The apparatus according to claim 1, characterized in that, When the input or output of the control module is connected to multiple rendering sub-modules, the multiple rendering sub-modules execute different parts of the same rendering task respectively.

3. The apparatus according to claim 1, characterized in that, The input terminal of the first-level control module serves as the input terminal of the device, and the output terminal is connected to the input terminal of the first-level rendering submodule. The input of the i-th level control module is connected to the output of the (i-1)-th level rendering submodule, and the output of the i-th level control module is connected to the input of the i-th level rendering submodule, where i is an integer greater than 1. The output of the final rendering submodule serves as the output of the device. Each level of rendering submodule includes one or more rendering submodules, and each level of control module includes one or more control modules.

4. The apparatus according to claim 3, characterized in that, The control module is also used to output a first request to the previous level control module after its own input and output terminals are disconnected. The first request indicates that the rendering submodule connected to the input terminal of the current control module is idle. The first request is used to control the input and output terminals of the previous level control module to be connected. When the preceding control module includes multiple control modules, it simultaneously outputs the first request to multiple control modules.

5. The apparatus according to claim 4, characterized in that, The device further includes a configuration module, which is used to store configuration information for at least one rendering task, and input data into the rendering submodule corresponding to a target task, wherein the target task is one of the at least one rendering task; The rendering submodule is used to obtain configuration information related to the rendering submodule from the configuration information of the target task from the configuration module, and execute the target task according to the obtained configuration information.

6. The apparatus according to claim 5, characterized in that, The control module is configured to, in response to receiving the first request, control its own input and output terminals to be turned on when the configuration module has stored configuration information related to the rendering sub-module connected to its own output terminal in the configuration information of the target task; When the next level control module of the control module includes multiple control modules, it controls its own input and output terminals to be turned on in response to receiving a first request from multiple control modules.

7. The apparatus according to claim 5, characterized in that, The configuration module includes W first registers, where K is the maximum number of rendering tasks that the rendering pipeline can execute simultaneously. Each first register stores the configuration information of a rendering task, where K is an integer greater than 1 and W is an integer greater than K. The final rendering submodule is also used to notify the configuration module to clear the first register storing the configuration information of the target task after the target task is completed. The configuration module is used to load the configuration information of a new rendering task when there is a free first register.

8. The apparatus according to claim 5, characterized in that, The device also stores enabling information for at least one rendering task, the enabling information indicating the rendering sub-modules involved in rendering when the rendering task is executed. The input terminals of the i-th level control module are also connected to the output terminals of the i-th to i-2-th level rendering sub-modules, respectively. The control module is also used for... When the target task's enable information determines that at least one rendering submodule connected to its output terminal is involved in rendering, it controls its input terminal and output terminal to be connected, and outputs the rendering result of the rendering submodule connected to the input terminal to the rendering submodule connected to the output terminal. After the rendering result of the rendering submodule connected to the input end is output, it controls itself to disconnect from the input and output ends.

9. The apparatus according to claim 8, characterized in that, The rendering submodule is further configured to determine each rendering submodule that executes the target task first among the subsequent rendering submodules based on the enable information of the target task, and after obtaining the rendering result, output a second request to the control module connected to the input terminal of the determined rendering submodule, wherein the second request indicates that the data used by the determined rendering submodule to execute the target task has been generated. The control module is also configured to determine each rendering submodule that last executes the target task in the preceding rendering submodule according to the enable information of the target task, and output a first request to the control module connected to the input terminal of the determined rendering submodule after the input and output terminals of the control module are disconnected. The first request and the second request are used to control the input and output terminals of the control module to be connected.

10. A graphics processor, characterized in that, The rendering apparatus includes any one of claims 1-9.

11. An electronic device, characterized in that, Includes the graphics processor of claim 10.

12. A rendering method, characterized in that, The method is applied to a rendering apparatus, the apparatus including a rendering pipeline and multiple control modules, the rendering pipeline including multiple rendering sub-modules, at least two rendering sub-modules being distributed on different branch paths of the rendering pipeline; the method includes: The rendering submodule performs the rendering task, renders the input data, and obtains the rendering result; The control module controls the connection between its input and output terminals, and outputs the rendering results of one or more rendering sub-modules connected to the input terminal to one or more rendering sub-modules connected to the output terminal. After the rendering results of one or more rendering sub-modules connected to the input end have been output, the control module controls its own input end and output end to disconnect. The control module controls the rendering sub-modules connected to its input and output terminals to perform different rendering tasks or different parts of the same rendering task by controlling the on / off state of its input and output terminals.

Citation Information

Patent Citations

  • Rendering pipeline configuration method and device, equipment and storage medium

    CN116071217A