Data recording method, layer tool construction method, apparatus, device, storage medium, and program product

By loading an auxiliary layer tool in a Vulkan application, removing the target function configuration information, and providing a data recording environment, the compatibility issue between the capture layer tool and specific Vulkan applications was resolved, enabling successful recording of long-frame rendering data.

CN122364019APending Publication Date: 2026-07-10MOORE THREADS TECH CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
MOORE THREADS TECH CO LTD
Filing Date
2026-04-02
Publication Date
2026-07-10

AI Technical Summary

Technical Problem

Existing capture layer tools have compatibility conflicts with certain Vulkan applications and cannot record long frame rendering data.

Method used

By loading auxiliary layer tools, the configuration information of the target function is removed, a data recording environment is provided, and the tracing layer tools are run to record multi-frame rendering data.

Benefits of technology

It enables the effective recording of long-frame rendering data for specific Vulkan applications, avoids compatibility conflicts, and ensures that the tracing layer tools load and initialize normally.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122364019A_ABST
    Figure CN122364019A_ABST
Patent Text Reader

Abstract

The application relates to a data recording method, a layer tool construction method, a device, a storage medium and a program product. The method comprises the following steps: in response to a starting instruction of a target application, loading an auxiliary layer tool and a tracking layer tool; the auxiliary layer tool has removed configuration information of a target function which needs to be intercepted; running the auxiliary layer tool, and the auxiliary layer tool is used for providing a data recording environment; based on the data recording environment, running the tracking layer tool to record multi-frame rendering data in a running process of the target application. By using the method, long-frame rendering data of a specific Vulkan application which cannot be compatible with an existing capture layer tool can be recorded.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer technology, and in particular to a data recording method, a layer tool construction method, an apparatus, a device, a storage medium, and a program product. Background Technology

[0002] The Vulkan layer is a standard debugging and extension mechanism provided by the Vulkan API. It is used to intercept, monitor, verify, or extend rendering data during function calls triggered by Vulkan applications. Related technologies provide capture layer tools for recording Vulkan application rendering data. This recorded data can be accurately replayed across platforms to assist in automated testing or troubleshooting processes.

[0003] However, the capture layer tools provided in related technologies that can record long-frame rendering data have compatibility conflicts with some specific Vulkan applications, making it impossible to record data from these applications. Therefore, the problem of how to record long-frame rendering data for these specific Vulkan applications urgently needs to be solved. Summary of the Invention

[0004] Therefore, it is necessary to provide a data recording method, layer tool construction method, apparatus, device, storage medium, and program product that can record long frame rendering data of specific Vulkan applications that are incompatible with existing capture layer tools, in order to address the above-mentioned technical problems.

[0005] Firstly, this application provides a data recording method. The method includes:

[0006] In response to the target application's startup command, auxiliary layer tools and tracing layer tools are loaded; the auxiliary layer tools have removed the configuration information of the target functions that need to be intercepted;

[0007] Run the auxiliary layer tool, which provides a data recording environment;

[0008] Based on the data recording environment, the tracking layer tool is run to record multi-frame rendering data during the operation of the target application.

[0009] In one embodiment, the method further includes: obtaining the original layer description file corresponding to the original auxiliary layer tool; removing the configuration information of the target function included in the original layer description file to obtain the target layer description file; and constructing the auxiliary layer tool based on the target layer description file.

[0010] In one embodiment, removing the configuration information of the target function included in the original layer description file includes: obtaining the function name of the target function; searching for the configuration information of the target function from the function management list of the original layer description file based on the function name of the target function, and removing the configuration information of the target function; wherein, the function management list includes the configuration information of all functions corresponding to the auxiliary layer tools.

[0011] In one embodiment, constructing an auxiliary layer tool based on the target layer description file includes: obtaining the original dynamic link library corresponding to the original auxiliary layer tool; and constructing the auxiliary layer tool based on the original dynamic link library and the target layer description file.

[0012] In one embodiment, the method further includes: configuring a proxy tool according to the target function; the proxy tool is configured to block function requests corresponding to the target function during runtime; and constructing an auxiliary layer tool based on the configured proxy tool and the original dynamic link library corresponding to the auxiliary layer tool.

[0013] In one embodiment, loading the auxiliary layer tool and the tracking layer tool includes: reading the configuration values ​​of a first environment variable and a second environment variable; loading the auxiliary layer tool if the first environment variable indicates that the auxiliary layer tool can be loaded; and loading the tracking layer tool if the second environment variable indicates that the tracking layer tool can be loaded.

[0014] In one embodiment, the method further includes: determining, when a first environment variable is configured as an enabled value, that a first environment variable indicates that an auxiliary layer tool can be loaded; and determining, when a second environment variable is configured as an identifier for a tracking layer tool, that a second environment variable indicates that a tracking layer tool can be loaded.

[0015] In one embodiment, the loading of the auxiliary layer tool and the tracking layer tool includes: an implicit loading of the auxiliary layer tool; and an explicit loading of the tracking layer tool.

[0016] In one embodiment, implicitly loading an auxiliary layer tool includes: using a loader to scan layer description files in a target layer search directory; the target layer search directory includes layer description files of the layer tool to be loaded; if the loading conditions for the auxiliary layer tool are met, and if a layer description file corresponding to the auxiliary layer tool is scanned, the auxiliary layer tool is automatically loaded if the loading configuration field in the layer description file corresponding to the auxiliary layer tool is marked as implicit loading type.

[0017] Secondly, this application also provides a method for constructing layer tools. The method includes:

[0018] Obtain the original layer description file;

[0019] Remove the configuration information of the target function from the original layer description file to obtain the target layer description file;

[0020] Based on the target layer description file, an auxiliary layer tool is constructed; the auxiliary layer tool is used to provide a data recording environment for the tracking layer tool to record multi-frame rendering data during the execution of the target application.

[0021] Thirdly, this application also provides a data recording device. The device includes:

[0022] The loading module is used to load the auxiliary layer tools and the tracing layer tools in response to the target application's startup command; the auxiliary layer tools have removed the configuration information of the target functions that need to be intercepted;

[0023] The environment module is used to run auxiliary layer tools, which provide a data recording environment.

[0024] The recording module is used to record multi-frame rendering data during the execution of the target application by running the tracking layer tools based on the data recording environment.

[0025] In one embodiment, the apparatus further includes a first construction module, configured to: obtain an original layer description file corresponding to the original auxiliary layer tool; remove the configuration information of the target function included in the original layer description file to obtain a target layer description file; and construct the auxiliary layer tool based on the target layer description file.

[0026] In one embodiment, the first construction module is specifically used to: obtain the function name of the target function; search for the configuration information of the target function from the function management list of the original layer description file according to the function name of the target function, and remove the configuration information of the target function; wherein, the function management list includes the configuration information of all functions corresponding to the auxiliary layer tools.

[0027] In one embodiment, the first construction module is specifically used to: obtain the original dynamic link library corresponding to the original auxiliary layer tool; and construct the auxiliary layer tool based on the original dynamic link library and the target layer description file.

[0028] In one embodiment, the apparatus further includes a second building module for: configuring a proxy tool according to a target function; configuring the proxy tool to block function requests corresponding to the target function during runtime; and building an auxiliary layer tool based on the configured proxy tool and the original dynamic link library corresponding to the auxiliary layer tool.

[0029] In one embodiment, the loading module is specifically configured to: read the configuration values ​​of a first environment variable and a second environment variable; load the auxiliary layer tool if the first environment variable indicates that the auxiliary layer tool can be loaded; and load the tracking layer tool if the second environment variable indicates that the tracking layer tool can be loaded.

[0030] In one embodiment, the loading module is specifically configured to: determine, when a first environment variable is configured to be enabled, that a first environment variable indicates that an auxiliary layer tool can be loaded; and determine, when a second environment variable is configured to be an identifier of a tracking layer tool, that a second environment variable indicates that a tracking layer tool can be loaded.

[0031] In one embodiment, the loading module is specifically used for: implicitly loading auxiliary layer tools; and explicitly loading tracking layer tools.

[0032] Fourthly, this application also provides a layer tool construction apparatus. The apparatus includes:

[0033] The acquisition module is used to obtain the original layer description file;

[0034] The removal module is used to remove the configuration information of the target function included in the original layer description file to obtain the target layer description file;

[0035] The building module is used to build an auxiliary layer tool based on the target layer description file; the auxiliary layer tool is used to provide a data recording environment for the tracking layer tool to record multi-frame rendering data during the execution of the target application.

[0036] Fifthly, this application also provides a computer device, including a memory and a processor, the memory storing a computer program, the processor executing the computer program to implement the steps of the method described in any of the first aspects above.

[0037] In a sixth aspect, this application also provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the steps of the method described in any one of the first aspects above.

[0038] In a seventh aspect, this application also provides a computer program product comprising a computer program that, when executed by a processor, implements the steps of the method described in any one of the first aspects above.

[0039] The aforementioned data recording method, layer tool construction method, apparatus, device, storage medium, and program product, in response to a startup command from a target application, load an auxiliary layer tool and a tracing layer tool. The auxiliary layer tool has removed the configuration information of the target functions that need to be intercepted. The auxiliary layer tool is run to provide a data recording environment. Based on the data recording environment, the tracing layer tool is run to record multi-frame rendering data during the execution of the target application. Because the auxiliary layer tool has removed the configuration information of the target functions that need to be intercepted, there is no conflict between the tracing layer tool and the target application, so the tracing layer tool can load and run normally. By running the auxiliary layer tool to provide a data recording environment for the tracing layer tool to record multi-frame rendering data of the target application, multi-frame rendering data recording for a specific target application is achieved. Attached Figure Description

[0040] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0041] Figure 1 This is a flowchart illustrating a data recording method in one embodiment;

[0042] Figure 2 This is a flowchart illustrating the process of building an auxiliary layer tool in one embodiment;

[0043] Figure 3 This is a flowchart illustrating the process of removing configuration information for a target function in one embodiment;

[0044] Figure 4 This is a flowchart illustrating another tool for building an auxiliary layer in one embodiment;

[0045] Figure 5 This is a flowchart illustrating the loading of auxiliary layer tools and tracking layer tools in one embodiment;

[0046] Figure 6 This is a flowchart illustrating another data recording method in one embodiment;

[0047] Figure 7 This is a flowchart illustrating a method for constructing a mid-level tool in one embodiment;

[0048] Figure 8 This is a structural block diagram of a data recording device in one embodiment;

[0049] Figure 9 This is a structural block diagram of a layered tool construction device in one embodiment;

[0050] Figure 10 This is an internal structural diagram of a computer device in one embodiment. Detailed Implementation

[0051] To make the above-mentioned objectives, features, and advantages of this application more apparent and understandable, the specific embodiments of this application will be described in detail below with reference to the accompanying drawings. It should be understood that many specific details are set forth in the following description in order to provide a full understanding of this application, but this application can be implemented in many other ways different from those described herein, and those skilled in the art can make similar modifications without departing from the spirit of this application. Therefore, this application is not limited to the specific embodiments disclosed below.

[0052] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the application.

[0053] When used herein, the singular forms of “a,” “an,” and “the” may also include the plural forms unless the context clearly indicates otherwise. It should also be understood that the terms “comprising / including” or “having,” etc., specify the presence of the stated features, wholes, steps, operations, components, parts, or combinations thereof, but do not preclude the possibility of the presence or addition of one or more other features, wholes, steps, operations, components, parts, or combinations thereof. Meanwhile, the term “and / or” as used in this specification includes any and all combinations of the associated listed items.

[0054] Vulkan layers are a standard debugging and extension mechanism provided by the Vulkan API. Specifically, a Vulkan layer is a series of hooks inserted between the application and the driver to intercept, monitor, verify, or extend application function calls. Multiple layers are loaded at runtime, forming a call chain. When a Vulkan function is called by the application, the request passes through each enabled layer in the call chain before finally reaching the driver. This mechanism allows third-party development tools (such as debuggers, performance analyzers, and API tracers) to deeply observe and control the graphical behavior of the application without modifying the application's source code. Layers are typically enabled via environment variables or explicitly specified by the application when creating a Vulkan instance.

[0055] In the field of Vulkan graphics application debugging, there are various types of layers, and the capture layer is one of them. The capture layer is a general term for a class of generic layer tools. Its core function is to intercept Vulkan function calls of the application, capture the call path, associated resources, runtime parameters, and other rendering data, and generate trace files. In short, the capture layer is used to record the rendering data of Vulkan applications. The recorded rendering data can be accurately replayed across platforms to assist in automated testing or troubleshooting of applications.

[0056] Related technologies provide capture layer tools for recording rendering data in both short and long frames. However, in practice, a certain type of Vulkan application (such as some game applications using a specific engine or with a special graphics pipeline) is incompatible with current capture layer tools capable of recording long frames, causing long frame rendering data recording to fail. Specific manifestations of this failure may include: the application failing to start, the application crashing immediately after startup, or the capture layer tool running but generating an invalid or empty trace file originally intended for recording rendering data.

[0057] Faced with this problem, those skilled in the art believe that capture layer tools for recording long-frame rendering data for such specific applications have compatibility conflicts, and therefore abandon the use of these tools to track rendering data for such applications. Consequently, related technologies lack effective solutions to overcome this compatibility barrier, making the recording of rendering data for such applications a technological blind spot. Therefore, the problem of how to record long-frame rendering data for such specific Vulkan applications urgently needs to be solved.

[0058] In view of this, embodiments of this application provide a data recording method that can be used to record long frame rendering data for such specific applications, effectively solving the above-mentioned problems.

[0059] It should be noted that the data recording method provided in this application can be executed by a data recording device, which can be implemented as part or all of a computer device through software, hardware, or a combination of software and hardware. The computer device can be, but is not limited to, various personal computers, laptops, smartphones, tablets, IoT devices, portable wearable devices, and servers, etc. IoT devices can include, for example, smart TVs, smart in-vehicle devices, and projection devices. Portable wearable devices can be smartwatches, head-mounted devices, etc. The server can be a standalone physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server providing cloud computing services. The following description uses the application of this method to a computer device as an example.

[0060] In one embodiment, such as Figure 1As shown, a data recording method is provided, including the following steps:

[0061] Step 101: In response to the target application's startup command, load the auxiliary layer tools and the tracing layer tools.

[0062] The target application refers to specific Vulkan applications mentioned above that have compatibility conflicts with capture layer tools capable of recording long frames of rendering data, such as some Vulkan game applications, etc., without being specifically limited here. It can be understood that the target application is a Vulkan application, and therefore could be, for example, applications used for high-performance graphics rendering, game development, visualization, etc.

[0063] A target application is deployed on a computer device. When a developer needs to use the target application based on the computer device, they need to launch the target application. In one optional implementation, the computer device receives a launch command for the target application triggered by the developer based on the computer device; for example, if the computer device is a smartphone, the smartphone receives a launch command for the target application triggered by the developer based on the smartphone's touchscreen. In another optional implementation, the computer device is connected to an external input device, and the developer triggers the launch command for the target application by operating the input device; for example, if the computer device is a personal computer and the input device is a mouse; or, if the computer device is a personal computer displaying a command-line window, the developer submits the launch command based on the command-line window. Alternatively, the computer device can also automatically trigger the launch command for the target application when it needs to use the target application to process some drawing tasks.

[0064] In response to the target application's startup command, launch the target application, and load the auxiliary layer tools and the tracing layer tools.

[0065] Among them, the auxiliary layer tools and the tracing layer tools belong to the Vulkan layer mentioned above.

[0066] In this embodiment, the tracing layer tool is a capture layer tool that can be used to record multi-frame rendering data. Exemplarily, the tracing layer tool is a high-fidelity lossless tracing layer tool. After being loaded, this tool is primarily used for lossless recording. Specifically, it acts like a black box, accurately and completely recording all rendering data of the application and generating a tracing file. This tracing file can subsequently be used for accurate replay on any other compatible platform for application fault reproduction, automated testing, or performance regression analysis. For example, the high-fidelity lossless tracing layer tool is VkLayer_gfxreconstruct, a core high-fidelity lossless capture layer in the Vulkan ecosystem and a core layer component of the GFXReconstruct toolset, which can be used to record long-frame rendering data of the application.

[0067] Auxiliary layer tools provide a data recording environment for tracing layer tools to record rendering data. For example, auxiliary layer tools can be located between the target application and the tracing layer tools, providing a data recording environment to establish a data transmission channel between the target application and the tracing layer tools.

[0068] The auxiliary layer tools have removed the configuration information for target functions that need to be intercepted. Target functions that need to be intercepted refer to functions that can cause compatibility conflicts between the tracing layer tools and the target application. For example, if there are initialization conflicts or resource conflicts between the tracing layer tools and the target application, and the core of the initialization conflict lies in certain initialization functions, then the target function is this type of initialization function. It is understood that the functions causing compatibility conflicts between different applications and the tracing layer tools may differ, and no specific limitations are made here.

[0069] The configuration information for the target function includes, for example, the function name and configuration parameters of the target function. There are no specific limitations here, as long as the information is related to the target function.

[0070] It is understandable that the target function is an interface function.

[0071] It is understandable that the removed target function is one that does not affect the normal loading and initialization of the auxiliary layer tools.

[0072] Since the auxiliary layer tool is located between the target application and the tracing layer tool, and the auxiliary layer tool has removed the configuration information for the target functions that need to be intercepted (meaning it doesn't contain the target function's configuration information), during the process of starting the target application, loading the auxiliary layer tool, and loading the tracing layer tool, the instructions related to the target functions triggered by the target application will not pass through the auxiliary layer tool before reaching the tracing layer tool. Therefore, the initialization of the tracing layer tool is unaffected, allowing it to load and initialize successfully. Similarly, the target application can start successfully, and the auxiliary layer tool, unaffected by the target functions, can also load and initialize successfully.

[0073] In an optional embodiment of this application, the auxiliary layer tool can be built based on the original auxiliary layer tool. The original auxiliary layer tool is a layer tool that can be used to capture rendering data during the execution of the target application. In this way, only the configuration information of the target function to be intercepted needs to be removed from the original auxiliary layer tool, thereby improving the efficiency and convenience of building the auxiliary layer tool.

[0074] In this embodiment of the application, the loader in the computer device executes the process of loading the auxiliary layer tool and the tracking layer tool.

[0075] It is understandable that, in addition to loading auxiliary layer tools and tracing layer tools, other Vulkan layers may also be loaded depending on the running needs of the target application, and no specific restrictions are made here.

[0076] In an optional embodiment of this application, the auxiliary layer tool is only required when recording multi-frame rendering data of the target application, while it is not required for recording rendering data of other applications. Alternatively, in an optional embodiment of this application, the auxiliary layer tool is implicitly loaded and is loaded when all graphics rendering applications start. This tracking layer tool generates independent data records for each application, but this process does not interfere with or intrude on the application itself. Since this application only needs to process the data records of the target application, the data records of other applications, although generated, are not used.

[0077] Step 102: Run the auxiliary layer tool.

[0078] The auxiliary layer tools provide a data recording environment. That is, during the execution of the auxiliary layer tools, a data recording environment is provided that masks the relevant instructions of the target function.

[0079] Furthermore, optionally, in related technologies, the specific Vulkan application mentioned above also blocks the tracing layer tool, causing the tracing layer tool to be unable to capture rendering data. In an optional embodiment of this application, during the operation of the auxiliary layer tool, the provided data recording environment can also prevent the target application from blocking the tracing layer tool. For example, the auxiliary layer tool loads an Nv.dll file as the target environment tool, thereby preventing the target application from blocking the second-layer tool.

[0080] Step 103: Based on the data recording environment, run the tracking layer tool to record multi-frame rendering data during the target application's operation.

[0081] The computer device uses a tracing layer tool to record multi-frame rendering data during the execution of the target application.

[0082] In an optional embodiment of this application, the tracing layer tool records and generates tracing files from multi-frame rendering data and outputs them. Optionally, taking VkLayer_gfxreconstruct as an example, the tracing file can be a .gfxr format file.

[0083] For example, during operation, the tracing layer tool intercepts the Vulkan API calls of the target application and records related data. Specifically, after the target application actively triggers a Vulkan function call, before the call is passed to the driver, the tracing layer tool records all function call sequences, parameters, and associated memory data of the driver rendering in the original time sequence, and generates a tracing file without modifying or interfering with the original process.

[0084] The function call sequence includes, for example, initialization call sequences, command buffer construction call sequences, queue submission call sequences, frame rendering call sequences, resource release call sequences, etc.; parameters refer to the input parameters of the functions, such as basic values, structures, object handles, API versions, application information, etc.; associated memory data can include the raw binary data of all memory resources associated with each function call, such as geometric resources, texture resources, parameter resources, etc., where geometric resources include, for example, vertex coordinates, normals, and texture coordinates in the vertex buffer, and index values ​​in the index buffer; texture resources include, for example, the raw pixel data of the image; parameter resources include, for example, dynamic data such as material parameters and lighting parameters. It is understood that not all rendering data is fully illustrated here.

[0085] The aforementioned data recording method, in response to the target application's startup command, loads the auxiliary layer tool and the tracing layer tool. The auxiliary layer tool has removed the configuration information of the target functions that need to be intercepted. The auxiliary layer tool is run to provide a data recording environment. Based on this environment, the tracing layer tool is run to record multi-frame rendering data during the target application's execution. Because the auxiliary layer tool has removed the configuration information of the target functions that need to be intercepted, compatibility conflicts between the tracing layer tool and the target application are eliminated, allowing the tracing layer tool to load and run normally. By running the auxiliary layer tool to provide the tracing layer tool with a data recording environment capable of recording multi-frame rendering data of the target application, multi-frame rendering data recording for a specific target application is achieved.

[0086] As mentioned above, the main purpose of this application is to provide an auxiliary layer tool that enables the tracking layer tool to record multi-frame rendering data of the target application. The construction process of the auxiliary layer tool is described below.

[0087] In the first implementation method, such as Figure 2 A flowchart illustrating a process for constructing an auxiliary layer tool is shown. The method also includes:

[0088] Step 201: Obtain the original layer description file corresponding to the original auxiliary layer tool.

[0089] As mentioned above, auxiliary layer tools can be built upon the original auxiliary layer tools. The original layer description file is the layer description file for the original auxiliary layer tools. The Vulkan layer description file is a dedicated configuration file for Vulkan layer tools. It can be a plain text file in JSON format and is the sole basis for the Vulkan loader to discover, recognize, verify, and load the layer tool. Together with the dynamic link library, it constitutes the complete runtime file of the layer tool. Specifically, the core function of the layer description file is to declare to the loader the globally unique name of the layer, the system path of the corresponding dynamic link library, the supported Vulkan API version, the operating platform, and other key static configuration information. It also performs compatibility checks between the layer and the current system's Vulkan environment, enabling the layer tool to be mounted in the API call chain.

[0090] In one alternative implementation, the computer device obtains the original layer description file submitted by the developer.

[0091] In another alternative implementation, the computer device obtains the original layer description file of the original auxiliary layer tool from the installation directory of the original auxiliary layer tool or from official channels.

[0092] As mentioned above, the primary auxiliary layer tool is a layer tool that can be used to capture rendering data during the execution of the target application. Since a capture layer tool that can record short frames of rendering data meets this condition, it can be used as the primary auxiliary layer tool. For example, capture layer tools such as highly invasive or low-invasive Vulkan interactive debugging tools can be used as primary auxiliary layer tools. Alternatively, highly invasive Vulkan interactive debugging tools could be, for example, specific layers of RenderDoc, Nsight Graphics, etc. Of course, other layer tools are also possible, and not all examples are provided here.

[0093] Step 202: Remove the configuration information of the objective function included in the original layer description file to obtain the target layer description file.

[0094] The computer device can predetermine which target functions need to be removed, and then, after obtaining the original layer description file, query the configuration information of the target functions from the original layer description file, delete the configuration information of the target functions from the original layer description file, and obtain the target layer description file.

[0095] It is understandable that removing the configuration information of the target function included in the original layer description file will not affect the normal loading of the obtained target layer description file.

[0096] Preferably, in optional embodiments of this application, such as Figure 3A flowchart illustrating the process of removing configuration information for target functions is shown. Removing the configuration information for target functions included in the original layer description file includes:

[0097] Step 301: Obtain the function name of the target function.

[0098] In an optional embodiment of this application, the function names of all target functions submitted by the developer are obtained. The function names can be function names or other unique identifiers of the target functions.

[0099] Step 302: Based on the function name of the target function, search for the configuration information of the target function in the function management list of the original layer description file, and remove the configuration information of the target function.

[0100] The computer device can read the original layer description file and obtain the function management list from it. This function management list includes the configuration information for all functions corresponding to the auxiliary layer tools. In other words, it can also be understood that the function management list includes the configuration information for all functions corresponding to the original auxiliary layer tools.

[0101] In one optional implementation, the function management list includes the mapping between the configuration information of each function and its name. Thus, the computer device can query the function management list based on the name of the target function, retrieve the configuration information corresponding to all target functions, and then remove the retrieved configuration information to obtain the target layer description file.

[0102] Taking RenderDoc as an example of the original auxiliary layer tool, the function management list can be the functions array in the layer description file of RenderDoc.

[0103] In addition, in optional embodiments of this application, besides the method of removing the configuration information of the target function based on the function name of the target function described above, other methods can also be used to remove the configuration information of the target function. For example, different functions have different function types. The function type of the target function is obtained, and based on the function type, the configuration information of all target functions of that function type is found in the function management list of the original layer description file, and the configuration information of the target functions is removed. Alternatively, the unique fields included in each target function are obtained, and based on the unique fields of the target functions, the configuration information containing those unique fields is found in the function management list of the original layer description file, and this configuration information is removed, thereby removing the configuration information of the target functions.

[0104] Step 203: Construct the auxiliary layer tool based on the target layer description file.

[0105] In addition to layer description files, dynamic link libraries are also required for the layer tools to run.

[0106] In this application example, the auxiliary layer tool is constructed based on the target layer description file, including: obtaining the original dynamic link library corresponding to the original auxiliary layer tool; and constructing the auxiliary layer tool based on the original dynamic link library and the target layer description file.

[0107] The original dynamic link library (DLL) is the DLL for the original auxiliary layer tools. Among them, the Vulkan layer tool's DLL is the core binary executable file of the layer tool, which can be a .dll file. As the functional execution body of the layer tool, the DLL, together with the layer description file, constitutes the complete runtime file of the layer tool. The DLL encapsulates all the core business logic of the layer tool, including actual functions such as Vulkan function call interception, data processing, and instruction forwarding. It is the actual carrier for the layer tool to implement function interception and functional extension. Therefore, it is necessary to obtain the original DLL.

[0108] In one alternative implementation, the computer device obtains the original dynamic link library submitted by the developer.

[0109] In another alternative implementation, the computer device obtains the original dynamic link library of the original auxiliary layer tool from the installation directory of the original auxiliary layer tool or from official channels.

[0110] In the above implementation, the target layer description file is obtained by obtaining and modifying the original layer description file corresponding to the auxiliary layer tool. This target layer description file is then combined with the original dynamic link library corresponding to the auxiliary layer tool to construct the auxiliary layer tool. By performing these processes beforehand, a usable auxiliary layer tool is obtained and deployed on a computer device. Since the auxiliary layer tool is derived by modifying the original auxiliary layer tool, it is more efficient and more operable than developing an auxiliary layer tool directly.

[0111] In the second implementation method, such as Figure 4 This diagram illustrates another workflow for building auxiliary layer tools, which also includes:

[0112] Step 401: Configure the proxy tool according to the target function.

[0113] Step 402: Build the auxiliary layer tool based on the original dynamic link libraries corresponding to the configured proxy tool and auxiliary layer tool.

[0114] The proxy tool is configured to block function requests corresponding to the target function during runtime.

[0115] For example, a lightweight proxy layer is constructed as the initial proxy tool. This lightweight proxy layer can be, for example, an intermediate layer component used to intercept, forward, or process requests. Furthermore, information about the target function to be blocked is configured in the initial proxy tool, such as configuring the function name of the target function, thus forming the proxy tool. The proxy tool is used to replace the layer description file, combined with the original dynamic link library, to construct the auxiliary layer tool. Thus, when the auxiliary layer tool is loaded, the proxy tool is also loaded. During operation, the proxy tool can block the function requests corresponding to the target function, ensuring the normal loading and initialization of the tracing layer tool. Optionally, to ensure successful loading of the auxiliary layer tool, the proxy tool, the original layer description file, and the original dynamic link library are used to construct the auxiliary layer tool. Thus, when the auxiliary layer tool is loaded, the proxy tool can be used to block the function requests corresponding to the target function, and the auxiliary layer tool can also capture rendering data and provide it to the tracing layer for recording.

[0116] Based on this, a proxy tool is used to dynamically filter function requests of the target function at runtime, achieving the same effect as modifying the original layer description file in the first implementation method described above. This improves the flexibility of the auxiliary layer construction tool.

[0117] In this embodiment, a highly invasive debugging tool layer is configured as an auxiliary layer tool after being downgraded, and then loaded into the target application's process in conjunction with the tracing layer tool. This enables the tracing layer tool to track and record multi-frame rendering data for a specific application, solving the fundamental problem of lossless tracing layer initialization failure in specific applications and improving the success rate and reliability of long-frame rendering data capture and recording for specific applications. The rendering data recorded by the tracing layer tool completely preserves the original API call sequence of the application, ensuring the replayability of the tracing file and its accuracy as an analysis benchmark.

[0118] Moreover, since it does not require modification of the source code of the target application, driver, and tracing layer tools, the recording of long frame rendering data for a specific application can be achieved simply by configuring the auxiliary layer tools, which is low-cost and easy to deploy and promote.

[0119] Taking the auxiliary tracing layer tool, which is built by modifying the interactive debugging tool RenderDoc, and the tracing layer tool, which is the high-fidelity lossless tracing tool VkLayer_gfxreconstruct, as examples, the interactive debugging tool mainly works by deeply intercepting key Vulkan functions. Its core lies in actively intervening in and modifying the Vulkan command stream. For example, to capture a single frame, it takes over the rendering process, draws the scene into its internal framebuffer, and injects debug commands or synchronization points. This allows developers to pause the application, check the GPU resource status at any time, and perform real-time performance analysis. However, it also shows that this interactive debugging tool modifies the Vulkan command stream to achieve its debugging function. Therefore, the captured files it generates cannot be used for accurate replay across platforms and drivers, losing their technical value as behavioral benchmarks and fault reproduction bases. In addition, such interactive debugging tools are usually designed to capture rendering data of single frames or short frames, making it difficult to support low-overhead, continuous recording of complete rendering data of long-running applications (long frames). This is a significant technical shortcoming for diagnosing intermittent, non-deterministic faults.

[0120] High-fidelity lossless tracing tools can record long frame rendering records completely. However, due to undefined conflicts with certain Vulkan applications in terms of underlying resource initialization order or interface call specifications, they cannot successfully complete initialization during the startup phase of such applications. This results in interrupted, lost, or corrupted captured rendering data, and the generated tracing file may exhibit graphical anomalies, logical errors, or complete failure during replay.

[0121] In summary, this embodiment combines two tools. By specifically trimming the interactive debugging tool (i.e., removing the target function configuration information of the auxiliary layer), it becomes the auxiliary layer tool, preventing conflicts between the auxiliary layer tool and the tracing layer tool. This creates a compatible data recording environment for the tracing layer tool, thus bypassing the conflict points that cause the tracing layer tool to fail to work independently. After the target application starts, the loader first loads the auxiliary layer tool. After loading and initializing, this layer continues to run in observer mode without actually intercepting data. However, compared to the tracing layer tool, it changes the application's initial memory layout or dependency order, unintentionally eliminating the compatibility conflict that causes the lossless tracing layer tool to fail to load. Subsequently, the tracing layer tool is loaded and successfully initialized, establishing a complete API call interception chain, starting to record multi-frame rendering data, and writing it to the tracing file, successfully obtaining high-fidelity tracing data.

[0122] The process of loading layer tools is explained below.

[0123] In one embodiment, such as Figure 5A flowchart illustrating the loading of the auxiliary layer tool and the tracing layer tool is shown. The loading of the auxiliary layer tool and the tracing layer tool includes:

[0124] Step 501: Read the configuration values ​​of the first environment variable and the second environment variable.

[0125] The computer device has a first environment variable and a second environment variable deployed. The first environment variable indicates whether the auxiliary layer tool can be loaded. The second environment variable indicates whether the tracing layer tool can be loaded.

[0126] In an optional embodiment of this application, if the first environment variable is configured as an enabled value, the first environment variable is determined to indicate that an auxiliary layer tool can be loaded.

[0127] The first environment variable can be configured to be enabled or disabled. If enabled, it indicates that the auxiliary layer tool can be loaded; if disabled, it indicates that the auxiliary layer tool cannot be loaded. Optionally, the enabled and disabled values ​​can be numbers or letters, without specific limitations, as long as they are different. For example, the enabled value can be 1, and the disabled value can be 0. For instance, if the auxiliary layer tool is modified from the original auxiliary layer tool RenderDoc, and the first environment variable is ENABLE_VULKAN_RENDERDOC_CAPTURE, if the computer reads ENABLE_VULKAN_RENDERDOC_CAPTURE=1, then the auxiliary layer tool will be loaded.

[0128] In one possible implementation, in response to a first configuration operation triggered by the developer, the computer device sets a first environment variable to an enabled value. That is, the developer sets the configuration value of the first environment variable in the computer device.

[0129] In an optional embodiment of this application, if the second environment variable is configured as an identifier for a tracing layer tool, the second environment variable is determined to indicate that the tracing layer tool can be loaded. The second environment variable is used to indicate that the layer tool corresponding to the configured identifier can be loaded. If the computer device reads that its configured value is an identifier for a tracing layer tool, then the tracing layer tool is loaded.

[0130] In an optional embodiment of this application, the computer device may load both the auxiliary layer tool and the tracing layer tool simultaneously. Alternatively, the computer device may load the auxiliary layer tool first, and after providing the data recording environment, continue loading the tracing layer tool to ensure that the tracing layer tool can be successfully loaded and initialized. Taking the tracing layer tool VkLayer_gfxreconstruct as an example, its identifier is VK_LAYER_GFXRECONSTRUCT_capture. The second environment variable can be VK_INSTANCE_LAYERS, which instructs the computer device to perform the following actions: 1. Load the capture function module of GFXReconstruct; 2. Intercept all Vulkan API calls; 3. Record graphics / computation commands and data; 4. Generate a reproducible capture file.

[0131] Step 502: If the first environment variable indicates that the auxiliary layer tool can be loaded, load the auxiliary layer tool.

[0132] Step 503: If the second environment variable indicates that the tracking layer tool can be loaded, load the tracking layer tool.

[0133] In an optional embodiment of this application, loading the tracking layer tool includes: displaying the loading tracking layer tool.

[0134] Explicit layer loading tools allow developers to configure system environment variables (such as VK_INSTANCE_LAYERS) to specify the Vulkan layer identifiers to be enabled (e.g., VK_LAYER_GFXRECONSTRUCT_capture). When an application creates a VkInstance, the Vulkan loader searches for the corresponding layer manifest file in the preset layer search path based on the environment variables, verifies compatibility, loads the layer dynamic library, and initializes it. This loading method has the following characteristics: 1. Controllable scope of effect, meaning it only applies to Vulkan applications started in the current environment session; 2. Temporary nature, meaning the configuration is lost after a computer restart or clearing of environment variables; 3. Application-level isolation, meaning it does not modify the system's global configuration and does not affect the normal operation of other unconfigured Vulkan applications; 4. High flexibility, allowing multiple layers to be combined and their loading order specified as needed.

[0135] In an optional embodiment of this application, the auxiliary layer loading tool includes: an implicit auxiliary layer loading tool.

[0136] Understandably, depending on actual needs, auxiliary layer tools can also be displayed and loaded.

[0137] Implicit loading of auxiliary layer tools is a passive activation method for Vulkan layer tools, implemented through specific configurations in the layer description file. When a layer tool is deployed in a predefined Vulkan layer directory, the Vulkan loader automatically scans these directories when an application creates a VkInstance, identifies implicit layers, and determines whether to actually enable them based on their `enable_condition`. This loading method has the following characteristics: 1. Zero-configuration activation: developers do not need to set any environment variables; 2. Conditional loading: activation can be controlled based on system environment, GPU model, driver version, etc.; 3. System-wide effectiveness: automatically effective for all Vulkan applications using the system that meet the conditions; 4. Application-insensitive: the application source code does not need to be aware of the layer's existence, but runtime may be affected by the layer's functionality; 5. Persistent configuration: once installed, it remains effective until the layer is unloaded or the conditions are no longer met. Therefore, implicit loading of auxiliary layer tools ensures that target applications will not block the loading of auxiliary layer tools, thus guaranteeing stable loading of auxiliary layer tools and providing a stable data recording environment.

[0138] Based on this, for example, implicitly loading an auxiliary layer tool includes: scanning layer description files in the target layer search directory using a loader. If the loading conditions for the auxiliary layer tool are met, and a layer description file corresponding to the auxiliary layer tool is found, the auxiliary layer tool is automatically loaded if the loading configuration field in the layer description file corresponding to the auxiliary layer tool is marked as implicit loading. The target layer search directory includes layer description files of the layer tools to be loaded.

[0139] It can be understood that the target layer search directory is the Vulkan layer directory mentioned above. The loading conditions are the same as the enabling conditions mentioned above.

[0140] In other words, when the Vulkan loader starts, it scans the system directory to find all implicit layer configurations, and then evaluates the enabling conditions (environment variables, platform, etc.) of each layer one by one. Only layers that meet the conditions will be actually loaded into the application, and layers that do not meet the conditions will be silently ignored.

[0141] For ease of understanding, the data recording method provided in this application will be described below with a complete embodiment. (Reference) Figure 6 The complete process diagram is shown.

[0142] First, identify the target application for which you need to capture rendering data.

[0143] During the preparation phase, the original layer description file and original dynamic link library of the original auxiliary layer tool (such as the highly intrusive Vulkan interactive debugging tool) are obtained, the function name of the target function to be removed is determined, the configuration information of the target function is retrieved from the original layer description file according to the function name, and the configuration information of the target function is removed to obtain the auxiliary layer tool.

[0144] During the environment setup phase, the configuration values ​​of the first and second environment variables are configured to determine whether the auxiliary layer tools are loaded implicitly or the tracing layer tools are loaded explicitly.

[0145] During the data capture phase, the target application is launched in response to its startup command. The loader implicitly loads the auxiliary layer tools according to the first environment variable, thus fully initializing the auxiliary layer tools. During the execution of the auxiliary layer tools, it shields the target function requests of the auxiliary layer, providing a data recording environment. The loader also explicitly loads the tracing layer tools according to the second environment variable, thus fully initializing the tracing layer tools and recording rendering data during the target application's execution, generating a tracing file.

[0146] This method does not directly fix the conflict, but instead introduces an auxiliary layer tool. This auxiliary layer tool acts as a compatibility buffer by relinquishing its claim on the core objective function. The prior loading of the auxiliary layer tool alters the initialization environment or resource state of the target application, resolving the unknown compatibility deadlock that caused the tracing layer tool to fail. This paves the way for the smooth initialization and stable operation of the tracing layer tool, thereby ensuring that long-frame rendering data can be recorded for the specific application.

[0147] Based on the same inventive concept, this application also provides a layer tool construction method for constructing the above-mentioned auxiliary layer tools.

[0148] In one embodiment, a layer tool construction method is also provided, such as Figure 7 As shown, the method includes:

[0149] Step 701: Obtain the original layer description file.

[0150] Step 702: Remove the configuration information of the objective function included in the original layer description file to obtain the target layer description file.

[0151] Step 703: Construct the auxiliary layer tool based on the target layer description file.

[0152] The auxiliary layer tool is used to provide a data recording environment for the tracking layer tool to record multi-frame rendering data during the execution of the target application.

[0153] The solution provided by this layer tool construction method is similar to the solution described in the above data recording method. Therefore, the specific limitations of one or more layer tool construction method embodiments provided in this application can be found in the limitations of the data recording method above, and will not be repeated here.

[0154] It should be understood that although the steps in the flowcharts of the embodiments described above are shown sequentially according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless explicitly stated herein, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least some steps in the flowcharts of the embodiments described above may include multiple steps or multiple stages. These steps or stages are not necessarily completed at the same time, but can be executed at different times. The execution order of these steps or stages is not necessarily sequential, but can be performed alternately or in turn with other steps or at least some of the steps or stages of other steps.

[0155] Based on the same inventive concept, this application also provides a data recording apparatus for implementing the data recording method described above. The solution provided by this apparatus is similar to the implementation scheme described in the above method; therefore, the specific limitations in one or more data recording apparatus embodiments provided below can be found in the limitations of the data recording method described above, and will not be repeated here.

[0156] In one embodiment, such as Figure 8 As shown, a data recording device is provided, which includes: a loading module, an environment module, and a recording module, wherein:

[0157] The loading module is used to load the auxiliary layer tools and the tracing layer tools in response to the target application's startup command; the auxiliary layer tools have removed the configuration information of the target functions that need to be intercepted;

[0158] The environment module is used to run auxiliary layer tools, which provide a data recording environment.

[0159] The recording module is used to record multi-frame rendering data during the execution of the target application by running the tracking layer tools based on the data recording environment.

[0160] In one embodiment, the apparatus further includes a first construction module, configured to: obtain an original layer description file corresponding to the auxiliary layer tool; remove the configuration information of the target function included in the original layer description file to obtain a target layer description file; and construct the auxiliary layer tool based on the target layer description file.

[0161] In one embodiment, the first construction module is specifically used to: obtain the function name of the target function; search for the configuration information of the target function from the function management list of the original layer description file according to the function name of the target function, and remove the configuration information of the target function; wherein, the function management list includes the configuration information of all functions corresponding to the auxiliary layer tools.

[0162] In one embodiment, the first construction module is specifically used to: obtain the original dynamic link library corresponding to the auxiliary layer tool; and construct the auxiliary layer tool based on the original dynamic link library and the target layer description file.

[0163] In one embodiment, the apparatus further includes a second building module for: configuring a proxy tool according to a target function; configuring the proxy tool to block function requests corresponding to the target function during runtime; and building an auxiliary layer tool based on the configured proxy tool and the original dynamic link library corresponding to the auxiliary layer tool.

[0164] In one embodiment, the loading module is specifically configured to: read the configuration values ​​of a first environment variable and a second environment variable; load the auxiliary layer tool if the first environment variable indicates that the auxiliary layer tool can be loaded; and load the tracking layer tool if the second environment variable indicates that the tracking layer tool can be loaded.

[0165] In one embodiment, the loading module is specifically configured to: determine, when a first environment variable is configured to be enabled, that a first environment variable indicates that an auxiliary layer tool can be loaded; and determine, when a second environment variable is configured to be an identifier of a tracking layer tool, that a second environment variable indicates that a tracking layer tool can be loaded.

[0166] In one embodiment, the loading module is specifically used for: implicitly loading auxiliary layer tools; and explicitly loading tracking layer tools.

[0167] Based on the same inventive concept, this application also provides a data recording device for implementing the layer tool construction method described above. The solution provided by this device is similar to the implementation scheme described in the layer tool construction method above. Therefore, the specific limitations in one or more layer tool construction device embodiments provided below can be found in the limitations of the layer tool construction method above, and will not be repeated here.

[0168] In one embodiment, such as Figure 9 As shown, a layer tool building apparatus is provided, the apparatus comprising: an acquisition module, a removal module, and a building module, wherein:

[0169] The acquisition module is used to obtain the original layer description file;

[0170] The removal module is used to remove the configuration information of the target function included in the original layer description file to obtain the target layer description file;

[0171] The building module is used to build an auxiliary layer tool based on the target layer description file; the auxiliary layer tool is used to provide a data recording environment for the tracking layer tool to record multi-frame rendering data during the execution of the target application.

[0172] Each module in the aforementioned data recording device and layer tool construction device can be implemented entirely or partially through software, hardware, or a combination thereof. These modules can be embedded in or independent of the processor in a computer device in hardware form, or stored in the memory of a computer device in software form, so that the processor can call and execute the operations corresponding to each module.

[0173] In one exemplary embodiment, a computer device is provided, which may be a terminal, and its internal structure diagram may be as follows: Figure 10 As shown, the computer device includes a processor, memory, input / output interfaces, a communication interface, a display unit, and an input device. The processor, memory, and input / output interfaces are connected via a system bus, and the communication interface, display unit, and input device are also connected to the system bus via the input / output interfaces. The processor provides computing and control capabilities. The memory includes non-volatile storage media and internal memory. The non-volatile storage media stores the operating system and computer programs. The internal memory provides an environment for the operation of the operating system and computer programs stored in the non-volatile storage media. The input / output interfaces are used for exchanging information between the processor and external devices. The communication interface is used for wired or wireless communication with external terminals; wireless communication can be achieved through Wi-Fi, mobile cellular networks, Near Field Communication (NFC), or other technologies. When the computer program is executed by the processor, it implements a data recording method. The display unit is used to form a visually visible image and can be a display screen, a projection device, or a virtual reality imaging device. The display screen can be an LCD screen or an e-ink screen. The input device of the computer device can be a touch layer covering the display screen, or buttons, trackballs, or touchpads set on the casing of the computer device, or external keyboards, touchpads, or mice, etc.

[0174] Those skilled in the art will understand that Figure 10The structure shown is merely a block diagram of a portion of the structure related to the present application and does not constitute a limitation on the computer device to which the present application is applied. Specific computer devices may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements.

[0175] In one embodiment, a computer device is also provided, including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to implement the steps in the above method embodiments.

[0176] In one embodiment, a computer-readable storage medium is provided having a computer program stored thereon that, when executed by a processor, implements the steps in the above method embodiments.

[0177] In one embodiment, a computer program product is provided, including a computer program that, when executed by a processor, implements the steps in the above method embodiments.

[0178] It should be noted that the developer information (including but not limited to developer device information, developer personal information, etc.) and data (including but not limited to data used for analysis, data stored, data displayed, etc.) involved in this application are all information and data authorized by the developer or fully authorized by all parties, and the collection, use and processing of related data must comply with relevant regulations.

[0179] Those skilled in the art will understand that all or part of the processes in the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer-readable storage medium. When executed, the computer program can include the processes of the embodiments described above. Any references to memory, databases, or other media used in the embodiments provided in this application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetic random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can take many forms, such as Static Random Access Memory (SRAM) or Dynamic Random Access Memory (DRAM). The databases involved in the embodiments provided in this application may include at least one type of relational database and non-relational database. Non-relational databases may include, but are not limited to, blockchain-based distributed databases. The processors involved in the embodiments provided in this application may be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, quantum computing-based data processing logic devices, etc., and are not limited to these.

[0180] The technical features of the above embodiments can be combined in any way. For the sake of brevity, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0181] The embodiments described above are merely illustrative of several implementation methods of this application, and while the descriptions are specific and detailed, they should not be construed as limiting the scope of this patent application. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of this application, and these all fall within the protection scope of this application. Therefore, the protection scope of this application should be determined by the appended claims.

Claims

1. A data recording method, characterized in that, The method includes: In response to the target application's startup command, auxiliary layer tools and tracing layer tools are loaded; the auxiliary layer tools have removed the configuration information of the target functions that need to be intercepted; Run the auxiliary layer tool, which provides a data recording environment; Based on the data recording environment, the tracking layer tool is run to record multi-frame rendering data during the operation of the target application.

2. The method according to claim 1, characterized in that, The method further includes: Obtain the original layer description file corresponding to the original auxiliary layer tool; Remove the configuration information of the objective function from the original layer description file to obtain the target layer description file; The auxiliary layer tool is constructed based on the target layer description file.

3. The method according to claim 2, characterized in that, The removal of the configuration information of the objective function included in the original layer description file includes: Obtain the function name of the target function; Based on the function name of the target function, the configuration information of the target function is retrieved from the function management list of the original layer description file, and the configuration information of the target function is removed; wherein, the function management list includes the configuration information of all functions corresponding to the auxiliary layer tool.

4. The method according to claim 2, characterized in that, The step of constructing the auxiliary layer tool based on the target layer description file includes: Obtain the original dynamic link library corresponding to the original auxiliary layer tool; The auxiliary layer tool is constructed based on the original dynamic link library and the target layer description file.

5. The method according to claim 1, characterized in that, The method further includes: Based on the target function, configure a proxy tool; the proxy tool is configured to block function requests corresponding to the target function during runtime; The auxiliary layer tool is constructed based on the configured proxy tool and the original dynamic link library corresponding to the auxiliary layer tool.

6. The method according to any one of claims 1 to 5, characterized in that, The loading auxiliary layer tool and the tracing layer tool include: Read the configuration values ​​of the first and second environment variables; If the first environment variable indicates that the auxiliary layer tool can be loaded, then load the auxiliary layer tool; If the second environment variable indicates that the tracking layer tool can be loaded, then load the tracking layer tool.

7. The method according to claim 6, characterized in that, The method further includes: When the first environment variable is configured as an enabled value, it is determined that the first environment variable indicates that the auxiliary layer tool can be loaded; If the second environment variable is configured as the identifier of the tracking layer tool, it is determined that the second environment variable indicates that the tracking layer tool can be loaded.

8. The method according to any one of claims 1 to 5, characterized in that, The loading auxiliary layer tool and the tracing layer tool include: Implicitly load the auxiliary layer tools; Display the tool for loading the tracking layer.

9. The method according to claim 8, characterized in that, The implicit loading of the auxiliary layer tool includes: The loader scans the layer description files in the target layer search directory; the target layer search directory includes the layer description files of the layer tools to be loaded. If the loading conditions of the auxiliary layer tool are met, and a layer description file corresponding to the auxiliary layer tool is found, the auxiliary layer tool will be automatically loaded if the loading configuration field in the layer description file corresponding to the auxiliary layer tool is marked as implicit loading type.

10. A method for constructing layer tools, characterized in that, The method includes: Obtain the original layer description file; Remove the configuration information of the target function included in the original layer description file to obtain the target layer description file; Based on the target layer description file, an auxiliary layer tool is constructed; the auxiliary layer tool is used to provide a data recording environment for the tracking layer tool to record multi-frame rendering data during the execution of the target application.

11. A data recording device, characterized in that, The device includes: A loading module is used to load auxiliary layer tools and tracing layer tools in response to the startup command of the target application; the auxiliary layer tools have removed the configuration information of the target functions that need to be intercepted; An environment module is used to run the auxiliary layer tools, which provide a data recording environment. The recording module is used to record multi-frame rendering data during the operation of the target application by running the tracking layer tool based on the data recording environment.

12. A layer tool construction apparatus, characterized in that, The device includes: The acquisition module is used to obtain the original layer description file; The removal module is used to remove the configuration information of the target function included in the original layer description file to obtain the target layer description file; The building module is used to build an auxiliary layer tool based on the target layer description file; the auxiliary layer tool is used to provide a data recording environment for the tracking layer tool to record multi-frame rendering data during the execution of the target application.

13. A computer device comprising a memory and a processor, wherein the memory stores a computer program, characterized in that, When the processor executes the computer program, it implements the steps of the method according to any one of claims 1 to 10.

14. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 10.

15. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 10.