Automatic multi-scene multi-resource rendering performance evaluation and image quality comparison method and system
Through automated multi-scene multi-resource rendering performance evaluation and image quality comparison methods, the rendering process is split, rendering resources are bound and performance overhead is measured, which solves the inaccuracy and complexity of manual testing in the existing technology, and achieves high efficiency , accurate rendering performance and image quality evaluation, improving rendering debugging and optimization efficiency.
Patent Information
- Application Number
- CN202411349184.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-26
- Publication Date
- 2024-12-13
- Estimated Expiration
- 2044-09-26
AI Technical Summary
The existing graphic rendering performance evaluation and image quality comparison methods mainly rely on manual testing, which leads to inadequate objective and accurate results, making it difficult to conduct comprehensive analysis in complex environments with multi-scene and multi-resource configurations, especially in modern graphics APIs and complex rendering architectures. , it is difficult to effectively display the rendering process and performance changes of multiple frames and multiple scenes.
Using automated multi-scene multi-resource rendering performance evaluation and picture quality comparison methods, through data input and preprocessing, performance analysis and picture quality analysis, the rendering process is split into independent rendering instructions, bind rendering resources, measure performance overhead and calculate Image differences, display performance and image quality differences results, ensuring that each rendering resource performs performance and image quality analysis in the same environment.
It realizes efficient and automated multi-scene and multi-resource rendering performance evaluation and picture quality comparison, significantly improving the efficiency and accuracy of rendering debugging and optimization, and can comprehensively evaluate the differences in rendering performance and picture quality, and provide optimization suggestions and guidance.
Smart Images

Figure CN119127649A_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the technical field of computer graphics rendering performance analysis, and specifically relates to an automatic multi-scene and multi-resource rendering performance evaluation and image quality comparison method and system. Background Art
[0002] In the field of modern graphics rendering technology, with the development of computer graphics, rendering technology has become more and more complex and diverse. In order to optimize and improve the graphics rendering effect, many visualization tools have emerged to help developers debug and analyze performance. These tools can display data at each stage of the rendering process in real time, helping developers identify and solve performance bottlenecks. However, with the continuous advancement of graphics rendering technology and the diversification of application scenarios, existing visualization tools often seem to be unable to cope with complex rendering scenarios and multiple resource configurations.
[0003] Currently, GPU (Graphics Processing Unit) is becoming more and more important in graphics rendering, especially on mobile devices, where GPU performance directly affects the quality of graphics rendering and user experience. The development of mobile GPUs has greatly promoted the advancement of graphics rendering technology, but it has also brought new challenges. The hardware resources of mobile devices are limited, so how to optimize performance while ensuring high-quality rendering effects has become an important research topic.
[0004] Traditional performance evaluation and image quality comparison methods usually rely on manual testing, which is not only time-consuming and laborious, but also easily affected by human factors, resulting in less objective and accurate results. In addition, manual testing methods are difficult to conduct comprehensive and systematic analysis in complex environments with multiple scenarios and multiple resource configurations. In order to solve these problems, a method for automated, multi-scenario, multi-resource rendering performance evaluation and image quality comparison is urgently needed.
[0005] Existing tools such as RenderDoc and Nsight, although they perform well in single-frame analysis, are insufficient in comparing and visualizing the entire rendering process. They can usually only perform detailed performance analysis on a single frame and cannot effectively display the rendering process and performance changes of multiple frames and multiple scenes. This limitation makes it difficult for developers to fully understand the performance bottlenecks and optimization space of the entire rendering process.
[0006] In addition, the emergence of modern graphics APIs (such as Vulkan and DirectX 12) has made the rendering scheduling architecture more low-level and complex. In these APIs, developers need to directly manage low-level resources such as video memory and command queues, which increases the difficulty of performance analysis and optimization. Especially in deferred rendering pipelines (Deferred Rendering) or tile-based rendering (Tiled-Based Rendering, TBR), the impact of parallelism is more significant, making it more difficult to test the performance of materials or geometric resources during the rendering process. Summary of the invention
[0007] In view of the above, the purpose of the present invention is to provide an automatic multi-scene and multi-resource rendering performance evaluation and image quality comparison method, so as to realize comprehensive performance evaluation and image quality comparison of different rendering scenes and resource configurations, thereby helping developers to optimize the rendering effect more efficiently and improve the overall performance of the system.
[0008] To achieve the above-mentioned purpose of the invention, an embodiment provides an automatic multi-scene multi-resource rendering performance evaluation and image quality comparison method, comprising the following steps: Data input and preprocessing: Input the rendering resources to be tested and the test configuration, and select a multi-target test process or a single-target test process according to the number of rendering targets. When a multi-target test process is selected, the rendering resources of each rendering target are injected into the created rendering process in advance. When a single-target test process is selected, the same rendering resources are configured for the same rendering target, and it is determined that the rendering resources to be tested are detected and loaded in the rendering process and the original target rendering resources are replaced; Performance analysis: Split the rendering process into multiple independent rendering instructions, divide the test scope according to the rendering instructions, each rendering instruction represents a rendering channel, bind rendering resources to each rendering instruction to form resource dependencies and maintain them, execute rendering instructions according to the test scope and resource dependencies and measure performance overhead, save performance measurement results and rendering frames corresponding to different rendering resources; Image quality analysis: calculate the image quality differences between rendering frames corresponding to different rendering resources and save the image difference results; Result presentation: Displays the performance difference results and image difference results determined based on the performance measurement results.
[0009] Preferably, for a single resource test process, the recorded rendering instruction stream file is directly replayed, and the target resource is identified and replaced during the running process; For a multi-resource test process, the rendering resources of each rendering target are injected into the created rendering process in advance, including: injecting the tested rendering resources of each rendering target into the created rendering process in advance in a manner of replacing the original target rendering resources; For both single-resource and multi-resource testing processes, the usage and performance of each rendering resource will be recorded to ensure that each rendering resource can be used for subsequent performance analysis and image quality analysis in the same rendering environment.
[0010] Preferably, configuring the same rendering resource for the same rendering target includes: The same data used when loading data is considered to be the same rendering resource, and the rendering target that uses the same rendering resource multiple times is the same rendering target, based on which the same rendering resource is configured for the same rendering target.
[0011] Preferably, the test range is divided according to the rendering instructions, including: After entering the rendering process, the command buffers with parent-child relationships are processed, and the secondary command buffer is set in the command buffer to realize the management of multiple secondary command buffers by a single primary command buffer. Specifically, the commands in the secondary command buffer are saved, and the secondary command calls are reasonably expanded in the primary command buffer in sequence. When the command buffer bound to the current command needs to be modified, the execution order is divided according to the rendering channel.
[0012] Preferably, each rendering instruction represents a rendering channel separately, forcing the entire rendering process to have a certain serial relationship and ensuring that each rendering instruction is independent of each other. For each rendering channel, a timestamp is used to mark the beginning and end respectively, and the rendering time of the entire rendering process is the difference between the timestamps.
[0013] Preferably, binding rendering resources for each rendering instruction to form and maintain resource dependency relationships includes: When splitting the rendering process to form multiple rendering channels, the state of each rendering channel is recorded, wherein the rendering channel state includes the rendering resource configuration and parameter changes of the rendering channel, and a rendering process attachment is allocated to each rendering channel according to the rendering channel state, and the rendering process attachment maintains the resource dependency relationship of the rendering instructions in the rendering process; When multiple rendering instructions are in the same rendering channel, the following should be clarified when splitting the rendering process into multiple rendering channels: Whether to load the previous color attachment: When adding a new rendering pass, you must specify whether you need to load the color attachment used in the previous rendering pass; Save the results of the current rendering pass: You must determine whether the rendering results of the current rendering pass need to be saved to the attachment so that subsequent rendering passes can load and use these intermediate results.
[0014] Preferably, calculating the image difference between rendering frames corresponding to different rendering resources includes: The image difference values between the rendered frames corresponding to different rendering resources are calculated frame by frame through SSIM, and the image difference results and the corresponding rendered frames are saved.
[0015] Preferably, the performance measurement results and image difference results are displayed, including: Regarding the presentation of performance measurement results, for a single-target test process, the performance difference results of a single rendering resource in the rendering process compared to the target rendering resource are displayed; for a multi-target test process, the comprehensive performance difference results of multiple rendering resources in the rendering process of the entire scene compared to the target rendering resource are displayed, as well as the individual performance difference results of each rendering resource in the rendering process of the entire scene compared to the target rendering resource.
[0016] Preferably, the performance measurement results and image difference results are displayed, including: Regarding the display of image difference results, for a single-target test process, at least two rendering frames with the largest image difference results between a single rendering resource and a target rendering resource are displayed; for a multi-target test process, a list of image difference results for each rendering frame in the entire rendering scene is displayed between multiple rendering resources and the target rendering resource.
[0017] To achieve the above-mentioned purpose of the invention, an embodiment of the present invention provides an automatic multi-scene multi-resource rendering performance evaluation and image quality comparison device, comprising: A data input and preprocessing module, which is used to input the tested rendering resources and test configuration, select a multi-target test process or a single-target test process according to the number of rendering targets, and when the multi-target test process is selected, the rendering resources of each rendering target are injected into the created rendering process in advance; when the single-target test process is selected, the same rendering resources are configured for the same rendering target, and it is determined to detect and load the tested rendering resources in the rendering process and replace the original target rendering resources; A performance analysis module is used to split the rendering process into multiple independent rendering instructions, divide the test scope according to the rendering instructions, open a rendering channel for each rendering instruction, bind rendering resources to each rendering instruction to form resource dependencies and maintain them, execute the rendering instructions according to the test scope and resource dependencies, measure the performance overhead, and save the performance measurement results; An image quality analysis module, which is used to calculate the image quality differences between rendering frames corresponding to different rendering resources and save the image quality difference results; The result display module is used to display the performance measurement results and image quality difference results.
[0018] Compared with the prior art, the present invention has the following beneficial effects: The present invention provides an efficient and automated method and device for multi-scene and multi-resource rendering performance evaluation and image quality comparison, which significantly improves the efficiency and accuracy of rendering debugging and optimization. The present invention can comprehensively and accurately evaluate the rendering performance and image quality differences of multiple scenes and multiple resources, help users optimize resource configuration, and improve rendering efficiency and image quality. The present invention can not only provide detailed performance evaluation in different rendering scenarios, but also identify possible problems in the rendering process through image quality comparison, thereby providing developers with comprehensive optimization suggestions and guidance. BRIEF DESCRIPTION OF THE DRAWINGS
[0019] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.
[0020] Figure 1 is a flow chart of an automatic multi-scene multi-resource rendering performance evaluation and image quality comparison method provided by an embodiment; Figure 2 It is a structural diagram of an automatic multi-scene multi-resource rendering performance evaluation and image quality comparison system provided in an embodiment. DETAILED DESCRIPTION
[0021] To make the purpose, technical solution and advantages of the present invention more clearly understood, the present invention is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific implementation methods described herein are only used to explain the present invention and do not limit the scope of protection of the present invention.
[0022] The inventive concept of the present invention is to provide an automatic multi-scene multi-resource rendering performance evaluation and image quality comparison method, which can realize automatic multi-scene continuous multi-frame long process testing under different resource testing performance conditions, thereby reducing the cost of manual testing. At the same time, the present invention provides a more intelligent automation method and a more efficient visualization comparison solution, and improves the performance analysis method of modern graphical interfaces. In order to ensure the independence of renderings, a new performance analysis solution is proposed to improve the accuracy of performance analysis.
[0023] Based on the above invention concept, an embodiment provides an automatic multi-scene multi-resource rendering performance evaluation and image quality comparison method, such as Figure 1 As shown, the following steps are included: S1, data input and preprocessing: input the rendering resources and test configuration to be tested, select the multi-target test process or the single-target test process according to the number of rendering targets, and perform preprocessing of different test processes.
[0024] The user input contains the configuration file of the tested rendering resources and test configuration, where rendering resources refer to any resources used in the rendering process, including but not limited to geometric models, material parameters, lighting positions, shaders, etc. Test configuration refers to some configuration information in the test rendering process, including but not limited to device information, start and end frame numbers, target resource information, test step size, rendering resolution, specific execution process branches, etc.
[0025] According to the rendering resources and test configurations entered by the user, the corresponding task parameters are automatically configured and issued, which contain the data and information required for the rendering process. It is worth noting that in order to better provide users with a test process based on rendering resources, a screenshot of the specific content rendered by the current target rendering resource in the actual process is provided on the front end. When users send specific test requirements, they can clearly understand the specific rendering range and rendering target of their current test target.
[0026] After inputting the rendering resources to be tested and the test configuration, determine whether the current test process is a single-target test process or a multi-target test process based on the number of rendering targets, and enter the corresponding test process after selection. Each test process supports performance analysis and image quality analysis of any rendering resource.
[0027] In the embodiment, when a single-target test process is selected, the same rendering resources are configured for the same rendering target through pre-processing, and it is determined that the rendering resources to be tested are detected and loaded in the rendering process and the original target rendering resources are replaced. For single-target testing, multiple groups of single rendering resources for comparison are provided. The test plan for a single rendering resource is as follows: separately take out the part of the rendering process that actually uses the target rendering resource, and when initiating the corresponding rendering process, all test configurations need to be accurately given. At the same time, it is necessary to sort out the dependencies of the rendering resources in the single-target test process to ensure that the comparison relationship between the rendering resources that need to be tested is reasonably maintained, so as to compare the processing results of the current rendering resources in performance analysis and screen analysis in subsequent processes.
[0028] Specifically, after receiving the configuration file input by the user, the rendering resource to be tested is imported into the single-target test process. The imported resource should be a single rendering resource of the same target. As long as the same geometric patches, material parameters, texture parameters, shader source code and other data are used when loading the corresponding data, they are considered to be the same rendering resources. In the same rendering process, there may be multiple rendering targets using the same rendering resource. These rendering targets are all considered to be the same rendering target, and the same rendering resources are configured for the same rendering target based on this. The different rendering resources selected will affect the specific difference diagram displayed to the user, but will not affect the presentation of the overall process results.
[0029] Specifically, for a single rendering resource input, it is necessary to prepare all resources that need to be replaced when the rendering process starts to create the imported target resource, including the loading of the original target rendering resource and the import loading of the tested rendering resource. Then, in the rendering process, the tested rendering resource is detected and loaded and replaced with the original target rendering resource, including: actively detecting instructions such as creating shader source code, and when the creation instruction is about to be executed, only the original target rendering resource needs to be modified to the tested rendering resource without changing any other rendering parameters, to ensure that the test control variables can be effectively implemented.
[0030] Let's take the shader source code as an example. When creating resources, in order to complete the binding with the rendering resources of the subsequent rendering instructions, there are many nested parent-child relationships in the entire rendering process. For actual rendering, rendering instructions, specific rendering targets, shader source code, and pipeline layout all need to be specified when creating the pipeline. However, in the process of creating shaders, the participation of the rendering pipeline is not required. Instead, a shader object for subsequent rendering is created for the shader according to the module information, stage information, entry point name, and other information specified in the rendering process. At the same time, the actual call of the rendering instruction is bound to the command buffer. The command buffer often needs to specify the rendering channel, bind all rendering resources, bind various status information, etc. The rendering instruction will call the information related to the rendering pipeline bound to the current command buffer, and the rendering channel and other information are also bound to the command buffer. Therefore, in order to find the specific shader information called by the actual rendering instruction, it is necessary to start counting the information of the shader bound to the current rendering pipeline when creating the rendering pipeline. After the bound shader information is obtained, the information of the rendering pipeline bound to the current command buffer is maintained. If the current command buffer has been bound to the target rendering resource and the actual rendering instruction has been called, then it is considered necessary to test the performance of the current rendering instruction.
[0031] Follow the above process to maintain and save the binding information of rendering resources, and ensure that there is an influence relationship that can be traced and queried between the command buffer, graphics pipeline, and shaders. In the subsequent actual testing process, this information plays an important role in the preservation and visualization of performance analysis and image quality analysis results.
[0032] In an embodiment, when a multi-target test process is selected, the rendering resources of each rendering target are injected into the created rendering process in advance through pre-processing. For the comparison of rendering resources of multiple targets, the original target rendering resources are replaced with the tested rendering resources in the original rendering process to form a new rendering process, and multiple new rendering processes are compared at the same time. Specifically, when performing a comparison of rendering resources of multiple targets, the target rendering resources in the original rendering process are analyzed and extracted to generate a new rendering process. In this new rendering process, the original target rendering resources are replaced with preset rendering resources to ensure that each rendering resource can be used for performance analysis and image quality comparison in the same rendering environment. The input and output of multiple rendering processes are also processed synchronously to ensure the accuracy and comparability of the test results.
[0033] In the actual implementation process, the preprocessing in the multi-target test process is to ensure that the shading process bound to the rendering resources can proceed smoothly. For situations involving multiple rendering resources, users usually want to test the weight of each rendering resource in the overall process. For the optimization of rendering resources, it is often concerned whether the overall performance is improved after optimizing certain content. In the entire rendering process, the optimized rendering resources will be replaced so that the current rendering process can be tested with the optimized resource version. Therefore, a file needs to be generated to inject the tested rendering resources into the rendering process.
[0034] The performance of each rendering resource can also be analyzed at the same time, and finally a performance analysis result of the entire rendering process is generated. For different rendering processes, only the rendering resources actually used in them are preprocessed, so that subsequent users can find resources with better effects through performance comparison.
[0035] Specifically, preprocessing involves a detailed analysis of each rendering resource, giving the specific instruction stream files that need to be played back and the resources that need to be replaced and composed of task instructions. Next, the optimized rendering resources replace the original target rendering resources and generate a new rendering process file. This file will contain all optimized rendering resources and ensure that these resources can run smoothly in the rendering process. This replacement process ensures that after optimizing the rendering resources, the performance improvement of the entire rendering process is significant and quantifiable. This not only helps to verify the effect of the optimization work, but also provides important data support and reference for subsequent resource optimization.
[0036] S2, performance analysis: split the rendering process into multiple independent rendering instructions, divide the test scope according to the rendering instructions, each rendering instruction represents a rendering channel separately, bind rendering resources to each rendering instruction to form resource dependencies and maintain them, execute rendering instructions according to the test scope and resource dependencies and measure the performance overhead, save the performance measurement results and the rendering frames corresponding to different rendering resources.
[0037] In an embodiment, the entire rendering process is split into multiple independent rendering instructions, each of which represents an independent rendering channel. The purpose of splitting the rendering process is to ensure that each time the time is measured, the current rendering is executed independently, so as to better reflect the performance overhead of the current rendering instruction and its bound rendering resources.
[0038] After a series of drawing instructions are split out, new rendering channels need to be divided out in a certain order. This is because graphics rendering instructions are highly parallel when executed, especially on mobile devices, where there is a tile-based deferred rendering architecture that adjusts the execution order of rendering instructions submitted at the same time, such as processing the geometry first and then shading. At this time, if you want to analyze the performance pressure of the entire drawing process, due to this architecture, the final result will not be accurate. If the rendering channels are split reasonably, the entire rendering and drawing process can be forced to have a certain serial relationship, ensuring that each drawing instruction is independent of each other. Because on some GPU drivers, only this method allows the interface to reasonably perform performance analysis tests on a single rendering resource.
[0039] In the embodiment, a similar method is also used for multiple resources. For example, if you want to know the weights of multiple resources, you need to split each individual drawing process through a similar splitting method. Currently, it is at the drawing instruction level. After splitting the rendering channel, for each rendering channel, use a timestamp to mark the beginning and end respectively. The rendering time of the entire rendering process is the difference in timestamps.
[0040] In an embodiment, the test range is divided according to the rendering instruction, and after the single-target or multi-target test process is input, the command buffers with parent-child relationship are processed according to the preset rules. According to the design pattern of modern graphics interfaces, the command buffer can be set up with a secondary command buffer to achieve the management of multiple secondary command buffers with one primary command buffer, thereby increasing the overall logic and parallelism of the command buffer. Specifically, by saving the commands in all secondary command buffers, and reasonably expanding the secondary command calls in the primary command buffer in a certain order, if the command buffer to which the current command is bound needs to be modified, the execution order is divided according to the rendering channel that has been defined.
[0041] In the embodiment, according to the input rendering resources, each rendering instruction and the corresponding rendering resource are bound in advance to form a resource dependency relationship, so that in actual testing, the resource usage of each rendering instruction can be accurately tracked. This resource dependency relationship is very important for subsequent visual comparison processing to ensure that the test results can be displayed intuitively.
[0042] In the embodiment, when splitting the rendering process, it is necessary to pay attention to the binding relationship between the previous and next resources. For example, if the current rendering process originally loaded the previous rendering resources, then the new rendering process also needs to reload these rendering resources. If the current rendering process originally saved the current result, then the subsequent process also needs to save the result and read the previously saved result at the beginning. This resource dependency maintenance processing method can ensure the consistency and accuracy of the test.
[0043] In the embodiment, in the split independent rendering process, the performance overhead of each rendering instruction will be measured in detail, including time consumption, resource usage, etc. This fine-grained measurement can help users identify performance bottlenecks and provide data support for optimization. At the same time, various data will be saved during the performance measurement process to facilitate subsequent visual comparison processing. These data include the execution time of each rendering instruction, resource usage, etc.
[0044] Specifically, when splitting the rendering process to form multiple rendering channels, each rendering channel state is recorded, wherein the rendering channel state includes the rendering resource configuration and parameter changes of the rendering channel. In modern graphics interfaces, the rendering channel is responsible for maintaining multiple important buffers, such as a color buffer, a depth buffer, or a template buffer. Therefore, a rendering process attachment is allocated to each rendering channel according to the rendering channel state. The rendering process attachment maintains the resource dependency relationship of the rendering instructions in the rendering process. When multiple rendering instructions are in the same rendering channel, the following should be clarified when splitting the rendering process into multiple rendering channels: Whether to load the previous color attachment: When adding a new rendering pass, you must make it clear whether you need to load the color attachment used in the previous rendering pass. This is crucial to maintaining rendering consistency and correctness; Save the results of the current rendering pass: It is necessary to determine whether the rendering results of the current rendering pass need to be saved to the attachment so that subsequent rendering passes can load and use these intermediate results. This is very important to ensure the consistency of the rendering process and the correct delivery of the results.
[0045] By maintaining the above resource dependencies, it is possible to ensure that the rendering channel maintains consistency in resource configuration and correctness of rendering results during splitting and reconfiguration, thereby ensuring the effectiveness and stability of the entire rendering process. In order to better achieve this process, when splitting rendering channels, the system can use a resource management mechanism to automatically record and track resource configuration and parameter changes for each rendering channel. This not only improves the automation of the system, but also reduces the possibility of manual intervention, thereby improving the efficiency and reliability of the entire rendering process.
[0046] S3, image quality analysis: calculate the image quality difference between the rendering frames corresponding to different rendering resources and save the image difference results.
[0047] The final rendering result of the current frame will be saved in the frame buffer. The frame buffer results between different rendering resources are compared. The rendering frame results are saved during execution. Then, the image difference values between the rendering frames corresponding to different rendering resources are calculated frame by frame through SSIM, and the image difference results and the corresponding rendering frames are saved. They are then transmitted to the front end for display. The calculation method is as follows: Among them: and are two images to be compared, and are the means of images and respectively, and are the variances of images and respectively, is the covariance of images and, and are constants used for stability, generally taken as and, where is the dynamic range of pixel values, usually 255; and are smaller constants, usually 1 and.
[0048] The various parts of the formula are explained as follows: and are used to measure the similarity of brightness, and are used to measure the similarity of contrast and structure. The above formula combines the similarities of brightness, contrast, and structure to evaluate the overall similarity of the image quality of two images. The value of SSIM ranges from -1 to 1. The closer the value is to 1, the more similar the two images are.
[0049] S4, result display: display the performance difference results and image difference results determined based on the performance measurement results.
[0050] In the embodiment, the results are displayed on the front end, specifically the performance difference results and the image difference results. For each type of result, different display methods are used for the single-target test process and the multi-target test process.
[0051] Regarding the performance measurement result display, for a single-target test process, the performance difference results of a single rendering resource in the rendering process compared to the target rendering resource are displayed. Specifically, assuming that the total time consumed by the current rendering resource in the final test is 100 seconds, and the comprehensive time consumed by the target rendering resource is 110 seconds, the final display result is (110-100) / 110 * 100% = 9.09%. This is the optimization ratio of the current rendering resource in the current drawing process compared to the target rendering resource. And this optimization is mainly reflected in the GPU. If the rendering resource provided by the user reduces the bandwidth pressure or reduces the reading frequency, it can also be shown by the performance analysis of the present invention.
[0052] For the multi-target test process, the comprehensive performance difference results of multiple rendering resources in the rendering process of the overall scene compared with the target rendering resource are displayed, and the individual performance difference results of each rendering resource in the rendering process of the overall scene compared with the target rendering resource are displayed. Specifically, what is actually analyzed is the total rendering time, that is, what is provided to the user is a kind of assistance in analyzing the comprehensive benefits of selecting the current rendering resources when the user selects a series of rendering resources. The current performance of each rendering resource will also be counted. A feasible solution is to generate a heat map on the front end to display all bottleneck resource calculations and performance differences in the user's current rendering process, helping users to quickly locate performance bottlenecks or abnormal situations. Specifically, users can choose to replace these rendering resources with simpler and less complex solutions. After replacement, the test process of the present invention can quickly calculate the current overall benefit based on the rendering resources replaced by the user, helping users to quickly locate and solve problems.
[0053] In addition to the time analysis specifically mentioned in the embodiment, performance information of dimensions such as memory, video memory, battery power, battery power consumption, CPU core temperature, GPU core temperature, etc. can also be accessed to analyze changes in the current overall performance.
[0054] For the display of image difference results, for a single-target test process, display at least two rendering frames with the largest image difference between the single rendering resource and the target rendering resource. Optionally, select the three rendering frames with the largest image difference in the entire rendering process for comparison with the target rendering resource to help users identify the most significant image quality difference.
[0055] For the multi-target test process, a list of image difference results for each rendering frame in the entire rendering scene is displayed for multiple rendering resources compared to the target rendering resource. Specifically, the image quality analysis results of multiple resources will return a complete list, including the comparison results of each rendering frame and the target rendering frame in the entire test process for users to view. At the same time, the specific rendering resources used in the current rendering frame will be listed. In the visual display, the calculated image difference is converted into a bar chart and listed on the front end. The higher the current difference value, the greater the user can intuitively see the frames with large differences in the entire process, which is convenient for screening and in-depth analysis. Specifically, users can quickly iterate and analyze the locations where there are problems in the current rendering process, the locations that still need to be optimized and adjusted, or solve specific screen problems. Or through comparison and heat map, it can be judged whether the replacement of the rendering resources entering meets expectations in the current picture, or whether the impact on the optimization of the rendering resources is acceptable.
[0056] like Figure 2As shown, the embodiment also provides an automatic multi-scene multi-resource rendering performance evaluation and image quality comparison device, including: a data input module, a pre-processing module, a performance analysis module, an image quality analysis module, and a result display module, wherein the data input module is used to input the rendering resources to be tested and the test configuration; the pre-processing module is used to select a multi-target test process or a single-target test process according to the number of rendering targets, when the multi-target test process is selected, the rendering resources of each rendering target are injected into the created rendering process in advance, when the single-target test process is selected, the same rendering resources are configured for the same rendering target, and it is determined to detect and load the tested rendering resources in the rendering process and replace the original target rendering resources; the performance analysis module is used to split the rendering process into multiple independent rendering instructions, divide the test range according to the rendering instructions, open a rendering channel for each rendering instruction separately, bind the rendering resources to each rendering instruction to form a resource dependency relationship and maintain it, execute the rendering instructions according to the test range and resource dependency relationship, measure the performance overhead and save the performance measurement results; the image quality analysis module is used to calculate the image quality difference between the rendering frames corresponding to different rendering resources and save the image quality difference results; the result display module is used to display the performance measurement results and the image quality difference results.
[0057] It should be noted that the automatic multi-scene multi-resource rendering performance evaluation and image quality comparison system provided in the above embodiment should be illustrated with the division of the above-mentioned functional modules when performing rendering performance evaluation and image quality comparison. The above-mentioned functions can be assigned to different functional modules as needed, that is, the internal structure of the terminal or server is divided into different functional modules to complete all or part of the functions described above. In addition, the automatic multi-scene multi-resource rendering performance evaluation and image quality comparison system provided in the above embodiment belongs to the same concept as the automatic multi-scene multi-resource rendering performance evaluation and image quality comparison construction method embodiment. The specific implementation process is detailed in the automatic multi-scene multi-resource rendering performance evaluation and image quality comparison method embodiment, which will not be repeated here.
[0058] The embodiment provides an automatic multi-scenario multi-resource rendering performance evaluation and image quality comparison method and system. According to the single or multiple rendering resources input by the user, a series of performance analysis and image quality comparison results are generated for each rendering resource according to the rendering process prepared in advance according to the test configuration specified by the user; different demand process tests are performed according to the target number of input rendering resources, and the test results of a single different resource or multiple different resources obtained in different ways are compared in a single resource or multiple resource manner, providing reasonable performance analysis assistance to the user in a manner that conforms to the user's subjective intuition. The final visual presentation helps users to reasonably analyze performance problems and possible picture quality problems.
[0059] The specific implementation methods described above provide a detailed description of the technical solutions and beneficial effects of the present invention. It should be understood that the above is only the most preferred embodiment of the present invention and is not intended to limit the present invention. Any modifications, supplements and equivalent substitutions made within the scope of the principles of the present invention should be included in the protection scope of the present invention.
Claims
1. An automatic multi-scene multi-resource rendering performance evaluation and image quality comparison method, characterized in that: The following steps are involved: Data input and preprocessing: input the rendering resources and test configuration to be tested; Select a multi-target test process or a single-target test process according to the number of rendering targets. When a multi-target test process is selected, the rendering resources of each rendering target are injected into the created rendering process in advance. When a single-target test process is selected, the same rendering resources are configured for the same rendering target, and it is determined that the tested rendering resources are detected and loaded in the rendering process and the original target rendering resources are replaced; Performance analysis: Split the rendering process into multiple independent rendering instructions, divide the test scope according to the rendering instructions, each rendering instruction represents a rendering channel, bind rendering resources to each rendering instruction to form resource dependencies and maintain them, execute rendering instructions according to the test scope and resource dependencies and measure performance overhead, save performance measurement results and rendering frames corresponding to different rendering resources; Image quality analysis: calculate the image quality differences between rendering frames corresponding to different rendering resources and save the image difference results; Result presentation: Displays the performance difference results and image difference results determined based on the performance measurement results.
2. The automatic multi-scene multi-resource rendering performance evaluation and image quality comparison method according to claim 1, characterized in that: For the single-resource test process, directly replay the recorded rendering instruction stream file, identify and replace the target resource during the run process; For a multi-resource test process, the rendering resources of each rendering target are injected into the created rendering process in advance, including: injecting the tested rendering resources of each rendering target into the created rendering process in advance in a manner of replacing the original target rendering resources; For both single-resource and multi-resource testing processes, the usage and performance of each rendering resource will be recorded to ensure that each rendering resource can be used for subsequent performance analysis and image quality analysis in the same rendering environment.
3. The automatic multi-scene multi-resource rendering performance evaluation and image quality comparison method according to claim 1, characterized in that: Configure the same rendering resources for the same rendering target, including: The same data used when loading data is considered to be the same rendering resource, and the rendering target that uses the same rendering resource multiple times is the same rendering target, based on which the same rendering resource is configured for the same rendering target.
4. The automatic multi-scene multi-resource rendering performance evaluation and image quality comparison method according to claim 1, characterized in that: The test scope is divided according to the rendering instructions, including: After entering the rendering process, the command buffers with parent-child relationships are processed, and the secondary command buffer is set in the command buffer to realize the management of multiple secondary command buffers by a single primary command buffer. Specifically, the commands in the secondary command buffer are saved, and the secondary command calls are reasonably expanded in the primary command buffer in sequence. When the command buffer bound to the current command needs to be modified, the execution order is divided according to the rendering channel.
5. The automatic multi-scene multi-resource rendering performance evaluation and image quality comparison method according to claim 1, characterized in that: Each rendering instruction represents a rendering channel separately, forcing the entire rendering process to have a certain serial relationship and ensuring that each rendering instruction is independent of each other. For each rendering channel, a timestamp is used at the beginning and end respectively. The rendering time of the entire rendering process is the difference of the timestamps.
6. The automatic multi-scene multi-resource rendering performance evaluation and image quality comparison method according to claim 1, characterized in that: Bind rendering resources to each rendering instruction to form and maintain resource dependencies, including: When splitting the rendering process to form multiple rendering channels, the state of each rendering channel is recorded, wherein the rendering channel state includes the rendering resource configuration and parameter changes of the rendering channel, and a rendering process attachment is allocated to each rendering channel according to the rendering channel state, and the rendering process attachment maintains the resource dependency relationship of the rendering instructions in the rendering process; When multiple rendering instructions are in the same rendering channel, the following should be clarified when splitting the rendering process into multiple rendering channels: Whether to load the previous color attachment: When adding a new rendering pass, you must specify whether you need to load the color attachment used in the previous rendering pass; Save the results of the current rendering pass: You must determine whether the rendering results of the current rendering pass need to be saved to the attachment so that subsequent rendering passes can load and use these intermediate results.
7. The automatic multi-scene multi-resource rendering performance evaluation and image quality comparison method according to claim 1, characterized in that: Calculate the image differences between rendered frames corresponding to different rendering resources, including: The image difference values between the rendered frames corresponding to different rendering resources are calculated frame by frame through SSIM, and the image difference results and the corresponding rendered frames are saved.
8. The automatic multi-scene multi-resource rendering performance evaluation and image quality comparison method according to claim 1, characterized in that: Presents performance measurements and image diff results, including: Regarding the presentation of performance measurement results, for a single-target test process, the performance difference results of a single rendering resource in the rendering process compared to the target rendering resource are displayed; for a multi-target test process, the comprehensive performance difference results of multiple rendering resources in the rendering process of the entire scene compared to the target rendering resource are displayed, as well as the individual performance difference results of each rendering resource in the rendering process of the entire scene compared to the target rendering resource.
9. The automatic multi-scene multi-resource rendering performance evaluation and image quality comparison method according to claim 1, characterized in that: Presents performance measurements and image diff results, including: Regarding the display of image difference results, for a single-target test process, at least two rendering frames with the largest image difference results between a single rendering resource and a target rendering resource are displayed; for a multi-target test process, a list of image difference results for each rendering frame in the entire rendering scene is displayed between multiple rendering resources and the target rendering resource.
10. An automatic multi-scene multi-resource rendering performance evaluation and image quality comparison device, characterized in that: include: A data input and preprocessing module, which is used to input the tested rendering resources and test configuration, select a multi-target test process or a single-target test process according to the number of rendering targets, and when the multi-target test process is selected, the rendering resources of each rendering target are injected into the created rendering process in advance; when the single-target test process is selected, the same rendering resources are configured for the same rendering target, and it is determined to detect and load the tested rendering resources in the rendering process and replace the original target rendering resources; A performance analysis module is used to split the rendering process into multiple independent rendering instructions, divide the test scope according to the rendering instructions, open a rendering channel for each rendering instruction, bind rendering resources to each rendering instruction to form resource dependencies and maintain them, execute the rendering instructions according to the test scope and resource dependencies, measure the performance overhead, and save the performance measurement results; An image quality analysis module, which is used to calculate the image quality differences between rendering frames corresponding to different rendering resources and save the image quality difference results; The result display module is used to display the performance measurement results and image quality difference results.
Citation Information
Patent Citations
Image rendering method and device, computer equipment and readable storage medium
CN114612579A
Performance test method and device, computer equipment and storage medium
CN117271371A
Virtual scene rendering method and device, equipment, storage medium and program product
CN118615703A
Tools for performance testing autonomous vehicle planners
US20240256415A1
