EP2899687B1 - Method and device for processing graphics data - Google Patents

Method and device for processing graphics data Download PDF

Info

Publication number
EP2899687B1
EP2899687B1 EP14802583.6A EP14802583A EP2899687B1 EP 2899687 B1 EP2899687 B1 EP 2899687B1 EP 14802583 A EP14802583 A EP 14802583A EP 2899687 B1 EP2899687 B1 EP 2899687B1
Authority
EP
European Patent Office
Prior art keywords
virtual
shared memory
data
client process
rendering server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
EP14802583.6A
Other languages
German (de)
French (fr)
Other versions
EP2899687A4 (en
EP2899687A1 (en
Inventor
Zhicheng SUN
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of EP2899687A1 publication Critical patent/EP2899687A1/en
Publication of EP2899687A4 publication Critical patent/EP2899687A4/en
Application granted granted Critical
Publication of EP2899687B1 publication Critical patent/EP2899687B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Definitions

  • the present invention relates to the field of computer technologies, and in particular, to a graphics data processing method, apparatus, and system.
  • a GPU Graphic processing Unit, graphics processing unit
  • a GPU is a microprocessor that can perform graphics arithmetic in a personal computer, a workstation, a game console, or a mobile device (for example, a smartphone or a tablet computer).
  • a GPU mainly performs floating-point arithmetic and parallel computing.
  • a GPU virtualization technology is a technology that enables virtual machine instances running on a data center server to share one or more GPU processors to perform graphics arithmetic.
  • a thin terminal is responsible for input of a mouse and a keyboard and output of a display.
  • the thin terminal may remotely access a virtual desktop, and the virtual desktop may obtain a graphics processing instruction, so that the virtual desktop establishes a network connection to a GPU virtual rendering server.
  • the virtual desktop creates a memory area that is used for packetizing instruction data
  • the GPU virtual rendering server also creates a memory area that is used for depacketizing instruction data.
  • the virtual desktop performs packetization on the graphics processing instruction to obtain an instruction data packet.
  • the instruction data packet is transmitted to the GPU virtual rendering server by using a network.
  • the GPU virtual rendering server performs depacketization and processing on the instruction data packet, and after the processing is complete, sends to-be-returned data to the virtual desktop by using the network.
  • a large number of graphics processing instructions such as a vertex data instruction and a draw vertex instruction are generated.
  • Transmission of the graphics processing instructions between the virtual desktop and the GPU virtual rendering server requires operations such as establishment of a network connection, creation of a memory area, layer-by-layer encapsulation of a message header, instruction data packetization, layer-by-layer decapsulation of a message header, and instruction data depacketization.
  • data that is obtained by the GPU virtual rendering server by performing rendering on the graphics processing instructions also needs to be transmitted to the virtual desktop by using the network.
  • All graphics processing instructions and the data that is obtained after the rendering processing both need to be transmitted through a network transmission channel established between the virtual desktop and the GPU virtual rendering server, which generates a long transmission delay.
  • a real-time response speed of graphics rendering is low, graphics processing performance is deteriorated, and bandwidth of the transmission channel is increased.
  • US2012/084517A1 relates to a mechanism for the creation of a shared memory aperture between modes in a parent and child partition is described.
  • the VSC driver converts the MDL to a guest physical address descriptor list (GPADL) that describes the actual real system physical pages that the memory buffer has been allocated by the Hypervisor
  • the VSP driver converts the GPADL it receives from VSC driver into a host OS MDL and locks the pages in system memory.
  • the VSP uses the virtual address of the memory buffer that the shared memory transport channel library has reserved using a VirtualAlloc function and maps these reserved pages to the already allocated and locked system pages from the guest partition, thus sharing the memory.
  • Embodiments of the present invention provide a graphics data processing method, apparatus, and system to resolve a technical problem in the prior art that a long transmission delay is generated, a real-time response speed of graphics rendering is low, graphics processing performance is low, and bandwidth of a transmission channel is increased because all graphics processing instructions and data that is obtained after rendering processing need to be transmitted through the network transmission channel established between a virtual desktop and a GPU virtual rendering server.
  • a first aspect of the embodiments of the present invention provides a graphics data processing method, including:
  • the sending the target display data to the virtual client process includes:
  • a second aspect of the embodiments of the present invention provides a graphics data processing method, including:
  • the method includes:
  • the obtaining, by the virtual client process, target display data that is obtained by the rendering server by performing rendering processing on the graphics instruction data includes:
  • a third aspect of the embodiments of the present invention provides a graphics data processing apparatus, the apparatus includes a virtual rendering server, where the virtual rendering server includes an instruction address receiving module, an instruction data obtaining module, a data processing module, a system address obtaining unit and a mapping unit; a system address obtaining unit, configured to obtain a system address of a shared memory, wherein the system address is a physical address, the shared memory is a memory of a physical machine and is created by a virtual client process and the virtual rendering server through negotiation, the virtual rendering server and the virtual client process are virtual machines that run on the physical machine; a mapping unit, configured to map the system address that is of the shared memory and is obtained by the system address obtaining unit to process address space of the virtual rendering server, to obtain the mapping address of the shared memory the instruction address receiving module is configured to receive storage address information that is of graphics instruction data and is sent by the virtual client process, wherein the graphics instruction data is stored in the shared memory by the virtual client process; the instruction data obtaining module is configured to access the shared memory according to the mapping
  • the data processing module includes:
  • a fourth aspect of the embodiments of the present invention provides a graphics data processing apparatus, where the apparatus includes a virtual client process, where the virtual client process includes a shared memory address obtaining module, an instruction data storing module, a target data obtaining module, a system address obtaining unit and a mapping unit; a system address obtaining unit, configured to obtain a system address of the shared memory, wherein the system address is a physical address, the shared memory is a memory of a physical machine and is created by the virtual client process and a virtual rendering server through negotiation, the virtual client process and the virtual rendering server are virtual machines that run on the physical machine; a mapping unit, configured to map the system address that is of the shared memory and is obtained by the system address obtaining unit to process address space of the virtual client process, to obtain the mapping address of the shared memory; the shared memory address obtaining module is configured to obtain a mapping address of the shared memory; the instruction data storing module is configured to: when graphics instruction data is obtained, store the obtained graphics instruction data into the shared memory according to the mapping address that is of the
  • the virtual client process further includes:
  • the target data obtaining module includes:
  • graphics data includes but is not limited to graphics instruction data and target display data.
  • a virtual client process and a virtual rendering server may create a shared memory through negotiation.
  • the virtual client process may send storage address information of graphics instruction data to the virtual rendering server, so that the virtual rendering server may obtain the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data.
  • the virtual rendering server may perform rendering processing on the obtained graphics instruction data to obtain target display data.
  • a virtual rendering server may further send storage address information of target display data to a virtual client process, so that the virtual client process may obtain the target display data from a shared memory according to the storage address information of the target display data.
  • a graphics data processing system provided by an embodiment of the present invention may include a virtual rendering server, a virtual client process, and a shared memory that is created by the virtual rendering server and the virtual client process through negotiation.
  • the virtual rendering server and the virtual client process are virtual machines that run on a same physical machine.
  • the physical machine may be a physical host that includes a GPU.
  • Multiple virtual rendering servers may be bound to one physical host.
  • one virtual rendering server may correspond to multiple virtual client processes.
  • a virtual rendering server includes but is not limited to a GPU virtual rendering server
  • a virtual client process includes but is not limited to a virtual graphics desktop.
  • a graphics data processing system provided by an embodiment of the present invention may further include a thin terminal.
  • the thin terminal is responsible for input of a mouse and a keyboard and output of a display.
  • the thin terminal may remotely access a virtual client process.
  • the thin terminal is used to receive graphics instruction data entered by a user, and display graphics display data that is obtained by the virtual client process after processing is performed on target display data.
  • graphics instruction data may include but is not limited to graphics processing instructions such as vertex data and draw vertex instructions that are generated by a 3D application program, for example, during a graphics drafting or modeling operating process.
  • graphics processing instructions include, for example, instructions such as a glGet* return type instruction and glSwapBuffer that need to be instantly sent, a vertex array type instruction that carries a pointer parameter, and an aggregatable packetization type instruction.
  • a graphics data processing solution in the embodiments of the present invention may be applied to graphics drafting, modeling, or the like that is performed by using a 3D application program.
  • graphics instruction data or target display data or both do not need to be directly transmitted through a network transmission channel between a virtual client process and a virtual rendering server. This shortens a transmission delay, decreases bandwidth of the transmission channel, and improves graphics processing performance.
  • the following uses specific embodiments for description.
  • FIG. 1 is a flowchart of a graphics data processing method provided by a first embodiment of the present invention.
  • a virtual rendering server is used as an execution body for description.
  • a procedure in this embodiment includes steps S101-S103.
  • this embodiment of the present invention may further include the following step:
  • the virtual rendering server creates the shared memory on a physical machine through negotiation with the virtual client process, and generates a mapping address of the shared memory, where the virtual rendering server and the virtual client process are virtual machines that run on a same physical machine.
  • the virtual rendering server creates the shared memory on a physical machine through negotiation with the virtual client process. Specifically, a memory is applied for in the physical machine and is used as the shared memory. The virtual rendering server obtains a system address of the shared memory. Then the virtual rendering server maps the obtained system address of the shared memory to process address space of the virtual rendering server, to obtain the mapping address of the shared memory, and further generates the mapping address of the shared memory.
  • the system address of the shared memory is an absolute physical address of an operating system, that is, the virtual rendering server cannot directly access the system address of the shared memory.
  • the virtual rendering server may map the system address of the shared memory to the process address space of the virtual rendering server, for example, a register of the virtual rendering server. The virtual rendering server may directly access the mapping address of the shared memory, so that the virtual rendering server may access the shared memory according to the mapping address of the shared memory, thereby reading data from or writing data into the shared memory.
  • the virtual rendering server receives the storage address information that is of the graphics instruction data and is sent by the virtual client process. Specifically, when the virtual client process receives an instruction that is input from a thin terminal, the instruction that is input at the user end triggers an application program in the virtual client process to generate the graphics instruction data. Then the virtual client process obtains the graphics instruction data, stores the graphics instruction data into the shared memory, and generates the storage address information of the graphics instruction data. The virtual client process sends the storage address information of the graphics instruction data to the virtual rendering server, and the virtual rendering server receives the storage address information that is of the graphics instruction data and is sent by the virtual client process.
  • the rendering server receives the storage address information that is of the graphics instruction data and is sent by the virtual client process may specifically include:
  • step S102 the virtual rendering server obtains the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data. Specifically, the virtual rendering server accesses the shared memory according to the mapping address of the shared memory and obtains the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data.
  • the virtual rendering server performs rendering processing on the obtained graphics instruction data to obtain the target display data, and sends the target display data to the virtual client process.
  • the virtual rendering server performs rendering processing on the obtained graphics instruction data to obtain rendering data, where the rendering data is stored in a video card.
  • the virtual rendering server performs screen capture processing on the rendering data and performs compression processing to obtain the target display data.
  • the virtual rendering server sends the target display data to the virtual client process, so that the virtual client process decompresses the target display data to obtain graphics display data, and sends the graphics display data to the thin terminal, so that the thin terminal displays the graphics display data.
  • that the virtual rendering server sends the target display data to the virtual client process may specifically include:
  • that the virtual rendering server sends the storage address information of the target display data to the virtual client process may include:
  • that the virtual rendering server sends the target display data to the virtual client process may further be specifically: the virtual rendering server directly sends the target display data to the virtual client process through a network transmission channel.
  • a virtual rendering server creates a shared memory through negotiation with a virtual client process.
  • the virtual rendering server may receive storage address information that is of graphics instruction data and is sent by the virtual client process, so that the virtual rendering server may obtain the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data, and the virtual rendering server may perform rendering processing on the obtained graphics instruction data to obtain target display data and send the target display data to the virtual client process.
  • the virtual rendering server may further send storage address information of the target display data to the virtual client process, so that the virtual client process may obtain the target display data from the shared memory according to the storage address information of the target display data, or the virtual rendering server may send the target display data to the virtual client process through a network transmission channel.
  • the graphics instruction data or the storage address information of the target display data needs to be transmitted between the virtual client process and the virtual rendering server.
  • the graphics instruction data or the target display data may be obtained from the shared memory; the graphics instruction data does not need to be directly transmitted through the network transmission channel between the virtual client process and the virtual rendering server, or the target display data does not need to be directly transmitted through the network transmission channel between the virtual client process and the virtual rendering server. This shortens a transmission delay, decreases bandwidth of the transmission channel, and improves graphics processing performance.
  • FIG. 2 is a flowchart of a graphics data processing method according to a second embodiment of the present invention.
  • a virtual rendering server is used as an execution body for description.
  • a procedure in this embodiment includes steps S201-S203.
  • this embodiment of the present invention may further include the following step:
  • the virtual rendering server creates the shared memory on a physical machine through negotiation with the virtual client process, and generates a mapping address of the shared memory, where the virtual rendering server and the virtual client process are virtual machines that run on the same physical machine.
  • the virtual rendering server creates the shared memory on a physical machine through negotiation with the virtual client process. Specifically, a memory is applied for in the physical machine and is used as the shared memory. The virtual rendering server obtains a system address of the shared memory. Then the virtual rendering server maps the obtained system address of the shared memory to process address space of the virtual rendering server, to obtain the mapping address of the shared memory, and further generates the mapping address of the shared memory.
  • the system address of the shared memory is an absolute physical address of an operating system, that is, the virtual rendering server cannot directly access the system address of the shared memory.
  • the virtual rendering server may map the system address of the shared memory to the process address space of the virtual rendering server, for example, a register of the virtual rendering server. The virtual rendering server may directly access the mapping address of the shared memory, so that the virtual rendering server may access the shared memory according to the mapping address of the shared memory, thereby reading data from or writing data into the shared memory.
  • the virtual rendering server obtains the graphics instruction data sent by the virtual client process, and performs rendering processing on the graphics instruction data to obtain the target display data. Specifically, the virtual rendering server performs rendering processing on the obtained graphics instruction data to obtain rendering data, where the rendering data is stored in a video card. The virtual rendering server performs screen capture processing on the rendering data and performs compression processing to obtain the target display data.
  • the virtual rendering server obtains graphics instruction data sent by a virtual client process may specifically include: the virtual rendering server receives storage address information that is of the graphics instruction data and is sent by the virtual client process; and the virtual rendering server obtains the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data.
  • the virtual rendering server accesses the shared memory according to the mapping address of the shared memory and obtains the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data.
  • the virtual rendering server receives storage address information that is of the graphics instruction data and is sent by the virtual client process may specifically include:
  • that the virtual rendering server obtains graphics instruction data sent by a virtual client process may further be specifically: the virtual client process directly sends the graphics instruction data to the virtual rendering server through a network transmission channel.
  • step S202 the virtual rendering server stores the target display data into the shared memory, and generates the storage address information of the target display data. Specifically, the virtual rendering server stores the target display data obtained in step S201 into the shared memory, and generates the storage address information of the target display data.
  • step S203 the virtual rendering server sends the storage address information of the target display data to the virtual client process, so that the virtual client process obtains the target display data from the shared memory according to the storage address information of the target display data.
  • the virtual client process decompresses the target display data to obtain graphics display data and sends the graphics display data to a thin terminal, so that the thin terminal displays the graphics display data.
  • that the virtual rendering server sends the storage address information of the target display data to the virtual client process may include:
  • a virtual rendering server creates a shared memory through negotiation with a virtual client process.
  • the virtual rendering server obtains graphics instruction data sent by the virtual client process, performs rendering processing on the graphics instruction data to obtain target display data, stores the target display data into the shared memory, and generates storage address information of the target displays data.
  • the virtual rendering server sends the storage address information of the target display data to the virtual client process, so that the virtual client process obtains the target display data from the shared memory according to the storage address information of the target display data.
  • the virtual rendering server may receive storage address information that is of the graphics instruction data and is sent by the virtual client process, so that the virtual rendering server obtains graphics instruction data from the shared memory according to the storage address information of the graphics instruction data, or the virtual rendering server receives the graphics instruction data that is directly transmitted by the virtual client process through a network transmission channel.
  • the virtual rendering server may receive storage address information that is of the graphics instruction data and is sent by the virtual client process, so that the virtual rendering server obtains graphics instruction data from the shared memory according to the storage address information of the graphics instruction data, or the virtual rendering server receives the graphics instruction data that is directly transmitted by the virtual client process through a network transmission channel.
  • the target display data or the graphics instruction data may be obtained from the shared memory; the graphics instruction data does not need to be directly transmitted through the network transmission channel between the virtual client process and the virtual rendering server, or display image data does not need to be directly transmitted through the network transmission channel between the virtual client process and the virtual rendering server.
  • FIG. 3 is a flowchart of a graphics data processing method according to a third embodiment of the present invention.
  • a virtual client process is used as an execution body for description.
  • a procedure in this embodiment includes steps S301-S303.
  • the virtual client process obtains the mapping address of the shared memory, where the shared memory is a memory that is created by the virtual client process through negotiation with the virtual rendering server, and the virtual client process and the virtual rendering server are virtual machines that run on a same physical machine.
  • that the virtual client process obtains a mapping address of a shared memory may include: the virtual client process creates the shared memory on the physical machine through negotiation with the virtual rendering server, and generates the mapping address of the shared memory.
  • a memory is applied for in the physical machine and is used as the shared memory.
  • the virtual rendering server obtains a system address of the shared memory.
  • the virtual rendering server maps the obtained system address of the shared memory to process address space of the virtual rendering server, to obtain the mapping address of the shared memory, and further generates the mapping address of the shared memory.
  • the system address of the shared memory is an absolute physical address of an operating system, that is, the virtual rendering server cannot directly access the system address of the shared memory.
  • the virtual rendering server may map the system address of the shared memory to the process address space of the virtual rendering server, for example, a register of the virtual rendering server.
  • the virtual rendering server may directly access the mapping address of the shared memory, so that the virtual rendering server may access the shared memory according to the mapping address of the shared memory, thereby reading data from or writing data into the shared memory.
  • step S302 when an instruction that is input from a thin terminal is received, the instruction that is input at the user end triggers an application program in the virtual client process to generate the graphics instruction data. Then the virtual client process obtains the graphics instruction data, for example, the virtual client process may intercept a 3D instruction by using an Opengl ICD driver. The virtual client process stores the received graphics instruction data into the shared memory according to the mapping address of the shared memory, so that the virtual rendering server obtains the graphics instruction data from the shared memory to perform rendering processing.
  • the method may include:
  • that the virtual client process sends the storage address information of the graphics instruction data to the virtual rendering server may specifically include:
  • step S303 the virtual client process obtains the target display data that is obtained by the rendering server by performing rendering processing on the graphics instruction data.
  • the virtual client process decompresses the target display data to obtain graphics display data and sends the graphics display data to the thin terminal, so that the thin terminal displays the graphics display data.
  • that the virtual client process obtains the target display data that is obtained by the rendering server by performing rendering processing on the graphics instruction data may include:
  • the virtual client process receives storage address information that is of the target display data and is sent by the virtual rendering server may include:
  • that the virtual client process obtains the target display data that is obtained by the rendering server by performing rendering processing on the graphics instruction data may be: the virtual client process receives the target display data that is directly sent by the virtual rendering server through a network transmission channel.
  • a virtual client process creates a shared memory through negotiation with a virtual rendering server.
  • the virtual client process obtains a mapping address of the shared memory.
  • the virtual client process stores the obtained graphics instruction data into the shared memory according to the obtained mapping address of the shared memory, so that the virtual rendering server may obtain the graphics instruction data from the shared memory and perform rendering processing to obtain target display data, and the virtual client process receives the target display data sent by the virtual rendering server.
  • the virtual rendering server may send storage address information of the target display data to the virtual client process, so that the virtual client process may obtain the target display data from the shared memory according to the storage address information of the target display data, or the virtual rendering server may send the target display data to the virtual client process through a network transmission channel.
  • the virtual client process may obtain the target display data from the shared memory according to the storage address information of the target display data
  • the virtual rendering server may send the target display data to the virtual client process through a network transmission channel.
  • FIG. 4 is a flowchart of a graphics data processing method according to a fourth embodiment of the present invention.
  • a virtual client process is used as an execution body for description.
  • a procedure in this embodiment includes steps S401-S403.
  • this embodiment of the present invention may further include the following step:
  • the virtual client process creates the shared memory on a physical machine through negotiation with the virtual rendering server, and generates a mapping address of the shared memory, where the virtual rendering server and the virtual client process are virtual machines that run on the same physical machine.
  • the virtual client process creates the shared memory on a physical machine through negotiation with the virtual rendering server. Specifically, a memory is applied for in the physical machine and is used as the shared memory.
  • the virtual rendering server obtains a system address of the shared memory. Then the virtual rendering server maps the obtained system address of the shared memory to process address space of the virtual rendering server, to obtain the mapping address of the shared memory, and further generates the mapping address of the shared memory.
  • the system address of the shared memory is an absolute physical address of an operating system, that is, the virtual rendering server cannot directly access the system address of the shared memory.
  • the virtual rendering server may map the system address of the shared memory to the process address space of the virtual rendering server, for example, a register of the virtual rendering server.
  • the virtual rendering server may directly access the mapping address of the shared memory, so that the virtual rendering server may access the shared memory according to the mapping address of the shared memory, thereby reading data from or writing data into the shared memory.
  • step S401 that the virtual client process sends graphics instruction data to a virtual rendering server may include:
  • the method may include:
  • that the virtual client process sends the storage address information of the graphics instruction data to the virtual rendering server may include:
  • that the virtual client process sends graphics instruction data to a virtual rendering server may be specifically: the virtual client process directly sends the graphics instruction data to the virtual rendering server through a network transmission channel.
  • step S402 the virtual client process receives the storage address information that is of the target display data and is sent by the virtual rendering server. Further, optionally, that the virtual client process receives the storage address information that is of the target display data and is sent by the virtual rendering server may specifically include:
  • step S403 the virtual client process obtains the target display data from the shared memory according to the storage address information of the target display data, where the target display data is obtained by the virtual rendering server by performing rendering processing on the graphics instruction data.
  • the virtual client process decompresses the target display data to obtain graphics display data and sends the graphics display data to a thin terminal, so that the thin terminal displays the graphics display data.
  • a virtual client process creates a shared memory through negotiation with a virtual rendering server.
  • the virtual client process sends graphics instruction data to the virtual rendering server, so that the virtual rendering server performs rendering on the graphics instruction data to obtain target display data, and the virtual client process receives storage address information that is of the target display data and is sent by the virtual rendering server, and obtains the target display data from the shared memory according to the storage address information of the target display data.
  • the virtual client process may send storage address information of the graphics instruction data to the virtual rendering server, so that the virtual rendering server may obtain graphics data from the shared memory according to the storage address information of the graphics instruction data, or the virtual client process directly transmits the graphics instruction data to the virtual rendering server through a network transmission channel.
  • the target display data or the graphics instruction data may be obtained from the shared memory; the graphics instruction data does not need to be directly transmitted through the network transmission channel between the virtual client process and the virtual rendering server, or display image data does not need to be directly transmitted through the network transmission channel between the virtual client process and the virtual rendering server. This shortens a transmission delay, decreases bandwidth of the transmission channel, and improves graphics processing performance.
  • FIG. 5A and FIG. 5B is a flowchart of a graphics data processing method according to a fifth embodiment of the present invention. As shown in the figure, a procedure in this embodiment includes steps S501-S513.
  • a virtual client process may create a shared memory through negotiation with a virtual rendering server.
  • the virtual client process may send storage address information of graphics instruction data to the virtual rendering server, so that the virtual rendering server may obtain the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data.
  • the virtual rendering server may further send storage address information of target display data to the virtual client process, so that the virtual client process may obtain the target display data from the shared memory according to the storage address information of the target display data.
  • the target display data and the graphics instruction data may be obtained from the shared memory; the graphics instruction data and display image data do not need to be directly transmitted through a network transmission channel between the virtual client process and the virtual rendering server. This shortens a transmission delay, decreases bandwidth of the transmission channel, and improves graphics processing performance.
  • FIG. 6A and FIG. 6B is a flowchart of a graphics data processing method according to a sixth embodiment of the present invention. As shown in the figure, a procedure in this embodiment includes steps S601-S612.
  • a virtual client process may create a shared memory through negotiation with a virtual rendering server.
  • the virtual rendering server may request the virtual client process to send storage address information of graphics instruction data, so that the virtual rendering server may obtain the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data and perform rendering processing on the graphics instruction data to obtain target display data, and the virtual rendering server sends the target display data to the virtual client process through a network transmission channel.
  • the virtual rendering server sends the target display data to the virtual client process through a network transmission channel.
  • the graphics instruction data may be obtained from the shared memory, and the graphics instruction data does not need to be directly transmitted through the network transmission channel between the virtual client process and the virtual rendering server. This shortens a transmission delay, decreases bandwidth of the transmission channel, and improves graphics processing performance.
  • FIG. 7A and FIG. 7B is a flowchart of a graphics data processing method according to a seventh embodiment of the present invention. As shown in the figure, a procedure in this embodiment includes steps S701-S711.
  • a virtual client process may create a shared memory through negotiation with a virtual rendering server.
  • the virtual client process sends graphics instruction data to the virtual rendering server through a network transmission channel, so that the virtual rendering server performs rendering on the graphics instruction data to obtain target display data, and the virtual client process requests the virtual rendering server to send storage address information of the target display data and obtains the target display data from the shared memory according to the storage address information of the target display data.
  • the virtual client process requests the virtual rendering server to send storage address information of the target display data and obtains the target display data from the shared memory according to the storage address information of the target display data.
  • the target display data may be obtained from the shared memory, and the target display data does not need to be directly transmitted through the network transmission channel between the virtual client process and the virtual rendering server. This shortens a transmission delay, decreases bandwidth of the transmission channel, and improves graphics processing performance.
  • FIG. 8 The following describes in detail a graphics data processing apparatus provided by an embodiment of the present invention with reference to FIG. 8 , FIG. 10 , FIG. 12 , and FIG. 14 separately.
  • a graphics data processing apparatus shown in FIG. 8 is used to execute the method in the embodiment of the present invention shown in FIG. 1 , and is an execution body based on the graphics data processing method of FIG. 1 .
  • FIG. 8 For ease of description, only parts related to the embodiments of the present invention are illustrated. For technical details that are not disclosed, refer to the embodiment of the present invention shown in FIG. 1 .
  • FIG. 8 is a schematic structural diagram of a graphics data processing apparatus according to a first embodiment of the present invention.
  • the graphics data processing apparatus provided by this embodiment of the present invention may include a virtual rendering server, where the virtual rendering server may specifically include an instruction address receiving module 801, an instruction data obtaining module 802, and a data processing module 803.
  • the instruction address receiving module 801 is configured to receive storage address information that is of graphics instruction data and is sent by a virtual client process.
  • the instruction address receiving module 801 receives the storage address information that is of the graphics instruction data and is sent by the virtual client process. Specifically, when the virtual client process receives an instruction that is input from a thin terminal, the instruction that is input at the user end triggers an application program in the virtual client process to generate the graphics instruction data. Then the virtual client process obtains the graphics instruction data, stores the graphics instruction data into a shared memory, and generates the storage address information of the graphics instruction data. The virtual client process sends the storage address information of the graphics instruction data to the virtual rendering server, and the instruction address receiving module 801 receives the storage address information that is of the graphics instruction data and is sent by the virtual client process.
  • the instruction address receiving module 801 receives the storage address information that is of the graphics instruction data and is sent by the virtual client process may specifically include:
  • the instruction data obtaining module 802 is configured to obtain the graphics instruction data from the shared memory according to the storage address information that is of the graphics instruction data and is received by the instruction address receiving module 801, where the shared memory is a memory that is created by the virtual client process and the virtual rendering server through negotiation.
  • the instruction data obtaining module 802 obtains the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data. Specifically, the instruction data obtaining module 802 accesses the shared memory according to a mapping address of the shared memory, and obtains the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data.
  • the data processing module 803 is configured to perform rendering processing on the graphics instruction data obtained by the instruction data obtaining module 802 to obtain target display data, and send the target display data to the virtual client process.
  • the data processing module 803 performs rendering processing on the obtained graphics instruction data to obtain the target display data, and sends the target display data to the virtual client process. Specifically, the data processing module 803 performs rendering processing on the obtained graphics instruction data to obtain rendering data, where the rendering data is stored in a video card.
  • the virtual rendering server performs screen capture processing on the rendering data and performs compression processing to obtain the target display data.
  • the virtual rendering server sends the target display data to the virtual client process, so that the virtual client process decompresses the target display data to obtain graphics display data, and sends the graphics display data to a thin terminal, so that the thin terminal displays the graphics display data.
  • the data processing module 803 may include a target data storing unit and a target data address sending unit.
  • the target data storing unit is configured to store the target display data into the shared memory, and generate storage address information of the target display data.
  • the target data address sending unit is configured to send the storage address information of the target display data to the virtual client process, so that the virtual client process obtains the target display data from the shared memory according to the storage address information of the target display data.
  • target data address sending unit sends the storage address information of the target display data to the virtual client process may include:
  • that the virtual rendering server sends the target display data to the virtual client may further be specifically: the virtual rendering server directly sends the target display data to the virtual client through a network transmission channel.
  • the virtual rendering server provided by this embodiment of the present invention may further include a creating module 804.
  • the creating module 804 is configured to create the shared memory on a physical machine through negotiation with the virtual client process, and generate the mapping address of the shared memory.
  • the creating module 804 creates the shared memory on a physical machine through negotiation with the virtual client process. Specifically, a memory is applied for in the physical machine and is used as the shared memory. The virtual rendering server obtains a system address of the shared memory. Then the virtual rendering server maps the obtained system address of the shared memory to process address space of the virtual rendering server, to obtain the mapping address of the shared memory, and further generates the mapping address of the shared memory.
  • the creating module 804 may include a system address obtaining unit and a mapping unit.
  • the system address obtaining unit is configured to obtain the system address of the shared memory.
  • the mapping unit is configured to map the system address that is of the shared memory and is obtained by the system address obtaining unit to the process address space of the virtual rendering server, to obtain the mapping address of the shared memory.
  • the system address of the shared memory is an absolute physical address of an operating system, that is, the virtual rendering server cannot directly access the system address of the shared memory.
  • the virtual rendering server may map the system address of the shared memory to the process address space of the virtual rendering server, for example, a register of the virtual rendering server.
  • the virtual rendering server may directly access the mapping address of the shared memory, so that the virtual rendering server may access the shared memory according to the mapping address of the shared memory, thereby reading data from or writing data into the shared memory.
  • the graphics data processing apparatus includes a virtual rendering server, where the virtual rendering server may specifically include an instruction address receiving module, an instruction data obtaining module, and a data processing module.
  • the virtual rendering server may create a shared memory through negotiation with a virtual client process.
  • the instruction address receiving module may receive storage address information that is of graphics instruction data and is sent by the virtual client process, so that the instruction data obtaining module may obtain the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data, and the data processing module may perform rendering processing on the obtained graphics instruction data to obtain target display data and send the target display data to the virtual client process.
  • the virtual rendering server may further send storage address information of the target display data to the virtual client process, so that the virtual client process may obtain the target display data from the shared memory according to the storage address information of the target display data, or the virtual rendering server may send the target display data to the virtual client process through a network transmission channel.
  • the virtual client process may obtain the target display data from the shared memory according to the storage address information of the target display data
  • the virtual rendering server may send the target display data to the virtual client process through a network transmission channel.
  • FIG. 9 is a schematic structural diagram of a virtual rendering server according to an embodiment of the present invention.
  • the virtual rendering server provided by this embodiment of the present invention corresponds to the graphics data processing method shown in FIG. 1 , and is an execution body based on the graphics data processing method shown in Fig. 1 .
  • FIG. 9 shows a specific implementation form, where the virtual rendering server includes a virtual processor 901, a virtual memory 902, a virtual transmitter 903, and a virtual receiver 904.
  • the virtual memory 902 is configured to store program code.
  • the virtual processor 901 is configured to execute the program code stored in the virtual memory 902.
  • the virtual memory 902 stores program code and the virtual processor 901 is configured to execute the program code:
  • the virtual rendering server and the virtual client process are virtual machines that run on a same physical machine.
  • the virtual processor 901 is further configured to create the shared memory on the physical machine through negotiation with the virtual client process, and generate a mapping address of the shared memory.
  • the obtaining, by the virtual processor 901, the graphics instruction data from a shared memory according to the storage address information of the graphics instruction data specifically includes: accessing the shared memory according to the mapping address of the shared memory.
  • that the virtual processor 901 creates the shared memory on the physical machine through negotiation with the virtual client process, and generates a mapping address of the shared memory specifically includes:
  • the sending, by the virtual processor 901 by using the virtual transmitter 903, the target display data to the virtual client process specifically includes:
  • the rendering server provided by this embodiment of the present invention includes a virtual processor, a virtual memory, a virtual transmitter, and a virtual receiver.
  • the virtual rendering server may create a shared memory through negotiation with a virtual client process and receive, by using the virtual receiver, storage address information that is of graphics instruction data and is sent by the virtual client process, so that the virtual processor may obtain the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data, perform rendering processing on the obtained graphics instruction data to obtain target display data, and send the target display data to the virtual client process.
  • the virtual processor may obtain the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data, perform rendering processing on the obtained graphics instruction data to obtain target display data, and send the target display data to the virtual client process.
  • the graphics instruction data or the target display data may be obtained from the shared memory; the graphics instruction data does not need to be directly transmitted through a network transmission channel between the virtual client process and the virtual rendering server, or display image data does not need to be directly transmitted through a network transmission channel between the virtual client process and the virtual rendering server. This shortens a transmission delay, decreases bandwidth of the transmission channel, and improves graphics processing performance.
  • a graphics data processing apparatus shown in FIG. 10 is used to execute the method in the embodiment of the present invention shown in FIG. 2 , and is an execution body based on the graphics data processing method of FIG. 2 .
  • FIG. 10 For ease of description, only parts related to the embodiments of the present invention are illustrated. For technical details that are not disclosed, refer to the embodiment of the present invention shown in FIG. 2 .
  • FIG. 10 is a schematic structural diagram of a graphics data processing apparatus according to a second embodiment of the present invention.
  • the graphics data processing apparatus provided by this embodiment of the present invention may include a virtual rendering server, where the virtual rendering server may specifically include an instruction data processing module 1001, a target data processing module 1002, and a target data address sending module 1003.
  • the instruction data processing module 1001 is configured to obtain graphics instruction data sent by a virtual client process, and perform rendering processing on the graphics instruction data to obtain target display data.
  • the instruction data processing module 1001 obtains the graphics instruction data sent by the virtual client process, and performs rendering processing on the graphics instruction data to obtain the target display data.
  • the virtual rendering server performs rendering processing on the obtained graphics instruction data to obtain rendering data, where the rendering data is stored in a video card.
  • the virtual rendering server performs screen capture processing on the rendering data and performs compression processing to obtain the target display data.
  • the instruction data processing module 1001 may include an instruction address receiving unit and an instruction data obtaining unit.
  • the instruction address receiving unit is configured to receive storage address information that is of the graphics instruction data and is sent by the virtual client process.
  • the instruction data obtaining unit is configured to obtain the graphics instruction data from a shared memory according to the storage address information of the graphics instruction data.
  • the virtual rendering server accesses the shared memory according to a mapping address of the shared memory and obtains the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data.
  • the instruction address receiving unit receives storage address information that is of the graphics instruction data and is sent by the virtual client process may specifically include:
  • that the instruction data processing module 1001 obtains the graphics instruction data sent by the virtual client process may further be specifically: the virtual client process directly sends the graphics instruction data to the virtual rendering server through a network transmission channel.
  • the target data processing module 1002 is configured to store the target display data that is obtained through processing by the instruction data processing module 1001 into the shared memory, and generate storage address information of the target display data, where the shared memory is a memory that is created by the virtual client process and the virtual rendering server through negotiation.
  • the target data processing module 1002 stores the target display data into the shared memory, and generates the storage address information of the target display data. Specifically, the target data processing module 1002 stores the target display data that is obtained through processing by the instruction data processing module 1001 into the shared memory, and generates the storage address information of the target display data.
  • the target data address sending module 1003 is configured to send, to the virtual client process, the storage address information that is of the target display data and is generated by the target data processing module 1002, so that the virtual client process obtains the target display data from the shared memory according to the storage address information of the target display data.
  • the target data address sending module 1003 sends the storage address information of the target display data to the virtual client process, so that the virtual client process obtains the target display data from the shared memory according to the storage address information of the target display data.
  • the virtual client process decompresses the target display data to obtain graphics display data and sends the graphics display data to a thin terminal, so that the thin terminal displays the graphics display data.
  • target data address sending module 1003 sends the storage address information of the target display data to the virtual client process may include:
  • the virtual rendering server provided by this embodiment of the present invention may further include a creating module 1004.
  • the creating module 1004 is configured to create the shared memory on a physical machine through negotiation with the virtual client process, and generate the mapping address of the shared memory.
  • the creating module 1004 creates the shared memory on a physical machine through negotiation with the virtual client process. Specifically, a memory is applied for in the physical machine and is used as the shared memory.
  • the virtual rendering server obtains a system address of the shared memory. Then the virtual rendering server maps the obtained system address of the shared memory to process address space of the virtual rendering server, to obtain the mapping address of the shared memory, and further generates the mapping address of the shared memory.
  • the creating module 1004 may include a system address obtaining unit and a mapping unit, where:
  • the system address of the shared memory is an absolute physical address of an operating system, that is, the virtual rendering server cannot directly access the system address of the shared memory.
  • the virtual rendering server may map the system address of the shared memory to the process address space of the virtual rendering server, for example, a register of the virtual rendering server.
  • the virtual rendering server may directly access the mapping address of the shared memory, so that the virtual rendering server may access the shared memory according to the mapping address of the shared memory, thereby reading data from or writing data into the shared memory.
  • the graphics data processing apparatus includes a virtual rendering server, where the virtual rendering server may specifically include an instruction data processing module, a target data processing module, and a target data address sending module.
  • the virtual rendering server may create a shared memory through negotiation with a virtual client process.
  • the instruction data processing module obtains graphics instruction data sent by the virtual client process and performs rendering processing on the graphics instruction data to obtain target display data.
  • the target data processing module stores the target display data into the shared memory and generates storage address information of the target display data.
  • the target data address sending module sends the storage address information of the target display data to the virtual client process, so that the virtual client process obtains the target display data from the shared memory according to the storage address information of the target display data.
  • the virtual rendering server may receive storage address information that is of the graphics instruction data and is sent by the virtual client process, so that the virtual rendering server may obtain graphics data from the shared memory according to the storage address information of the graphics instruction data, or the virtual rendering server receives the graphics instruction data that is directly transmitted by the virtual client process through a network transmission channel.
  • the virtual rendering server may obtain graphics data from the shared memory according to the storage address information of the graphics instruction data, or the virtual rendering server receives the graphics instruction data that is directly transmitted by the virtual client process through a network transmission channel.
  • the target display data or the graphics instruction data may be obtained from the shared memory; the graphics instruction data does not need to be directly transmitted through the network transmission channel between the virtual client process and the virtual rendering server, or display image data does not need to be directly transmitted through the network transmission channel between the virtual client process and the virtual rendering server.
  • FIG. 11 is a schematic structural diagram of another virtual rendering server according to an embodiment of the present invention.
  • the virtual rendering server provided by this embodiment of the present invention corresponds to the graphics data processing method shown in FIG. 2 , and is an execution body based on the graphics data processing method shown in FIG. 2 .
  • FIG. 11 shows a specific implementation form, where the virtual rendering server includes a virtual processor 1101, a virtual memory 1102, a virtual transmitter 1103, and a virtual receiver 1104.
  • the virtual memory 1102 is configured to store program code.
  • the virtual processor 1101 is configured to execute the program code stored in the virtual memory 1102. In this embodiment of the present invention, the virtual memory 1102 stores program code and the virtual processor 1101 is configured to execute the program code:
  • the obtaining, by the virtual processor 1101, graphics instruction data sent by a virtual client process specifically includes:
  • the virtual rendering server and the virtual client process are virtual machines that run on a same physical machine.
  • the virtual processor 1101 is further configured to create the shared memory on the physical machine through negotiation with the virtual client process, and generate a mapping address of the shared memory.
  • the obtaining, by the virtual processor 1101, the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data specifically includes: accessing the shared memory according to the mapping address of the shared memory.
  • that the virtual processor 1101 creates the shared memory on the physical machine through negotiation with the virtual client process, and generates a mapping address of the shared memory specifically includes:
  • the virtual rendering server in this embodiment of the present invention includes a virtual processor, a virtual memory, a virtual transmitter, and a virtual receiver.
  • the virtual rendering server may create a shared memory through negotiation with a virtual client process.
  • the virtual processor may obtain graphics instruction data sent by the virtual client process, perform rendering processing on the graphics instruction data to obtain target display data, store the target display data into the shared memory, and generate storage address information of the target display data.
  • the virtual transmitter sends the storage address information of the target display data to the virtual client process, so that the virtual client process obtains the target display data from the shared memory according to the storage address information of the target display data.
  • the target display data or the graphics instruction data may be obtained from the shared memory; the graphics instruction data does not need to be directly transmitted through a network transmission channel between the virtual client process and the virtual rendering server, or display image data does not need to be directly transmitted through a network transmission channel between the virtual client process and the virtual rendering server. This shortens a transmission delay, decreases bandwidth of the transmission channel, and improves graphics processing performance.
  • a graphics data processing apparatus shown in FIG. 12 is used to execute the method in the embodiment of the present invention shown in FIG. 3 , and is an execution body based on the graphics data processing method of FIG. 3 .
  • FIG. 12 For ease of description, only parts related to the embodiments of the present invention are illustrated. For technical details that are not disclosed, refer to the embodiment of the present invention shown in FIG. 3 .
  • FIG. 12 is a schematic structural diagram of a graphics data processing apparatus according to a third embodiment of the present invention.
  • the graphics data processing apparatus provided by this embodiment of the present invention may include a virtual client process, where the virtual client process may include a shared memory address obtaining module 1201, an instruction data storing module 1202, and a target data obtaining module 1203.
  • the shared memory address obtaining module 1201 is configured to obtain a mapping address of a shared memory, where the shared memory is a memory that is created by the virtual client process and a virtual rendering server through negotiation.
  • the shared memory address obtaining module 1201 obtains the mapping address of the shared memory, where the shared memory is a memory that is created by the virtual client process and the virtual rendering server through negotiation, and the virtual client process and the virtual rendering server are virtual machines that run on a same physical machine.
  • the mapping address of the shared memory may be as follows: The virtual client process creates the shared memory on the physical machine through negotiation with the virtual rendering server, and generates the mapping address of the shared memory.
  • the instruction data storing module 1202 is configured to: when graphics instruction data is obtained, store the obtained graphics instruction data into the shared memory according to the mapping address that is of the shared memory and is obtained by the shared memory address obtaining module 1201, so that the virtual rendering server obtains the graphics instruction data from the shared memory to perform rendering processing.
  • the instruction data storing module 1202 stores the received graphics instruction data into the shared memory according to the mapping address of the shared memory, so that the virtual rendering server obtains the graphics instruction data from the shared memory to perform rendering processing.
  • the virtual client process receives an instruction that is input from a thin terminal, the instruction that is input at the user end triggers an application program in the virtual client process to generate the graphics instruction data. Then the virtual client process obtains the graphics instruction data, for example, the virtual client process may intercept a 3D instruction by using an Opengl ICD driver.
  • the target data obtaining module 1203 is configured to obtain target display data that is obtained by the rendering server by performing rendering processing on the graphics instruction data.
  • the target data obtaining module 1203 obtains the target display data that is obtained by the rendering server by performing rendering processing on the graphics instruction data, decompresses the target display data to obtain graphics display data, and sends the graphics display data to the thin terminal, so that the thin terminal displays the graphics display data.
  • the target data obtaining module 1203 may include a data address receiving unit and a target data obtaining unit.
  • the data address receiving unit is configured to receive storage address information that is of the target display data and is sent by the virtual rendering server, where the storage address information of the target display data is storage address information of target display data that is generated by storing, by the virtual rendering server, the target display data into the shared memory.
  • the target data obtaining unit is configured to obtain the target display data from the shared memory according to the storage address information that is of the target display data and is received by the data address receiving unit.
  • the data address receiving unit receives storage address information that is of the target display data and is sent by the virtual rendering server may include:
  • that the virtual client process obtains the target display data that is obtained by the rendering server by performing rendering processing on the graphics instruction data may be: the virtual client process receives the target display data that is directly sent by the virtual rendering server through a network transmission channel.
  • the virtual client process provided by this embodiment of the present invention may further include a creating module 1204.
  • the creating module 1204 is configured to create the shared memory on a physical machine through negotiation with the virtual rendering server, and generate the mapping address of the shared memory.
  • the creating module 1204 creates the shared memory on the physical machine through negotiation with the virtual rendering server. Specifically, a memory is applied for in the physical machine and is used as the shared memory. The virtual rendering server obtains a system address of the shared memory. Then the virtual rendering server maps the obtained system address of the shared memory to process address space of the virtual rendering server, to obtain the mapping address of the shared memory, and further generates the mapping address of the shared memory.
  • the creating module 1204 may include a system address obtaining unit and a mapping unit, where:
  • the system address of the shared memory is an absolute physical address of an operating system, that is, the virtual rendering server cannot directly access the system address of the shared memory.
  • the virtual rendering server may map the system address of the shared memory to the process address space of the virtual rendering server, for example, a register of the virtual rendering server.
  • the virtual rendering server may directly access the mapping address of the shared memory, so that the virtual rendering server may access the shared memory according to the mapping address of the shared memory, thereby reading data from or writing data into the shared memory.
  • the virtual client process provided by this embodiment of the present invention may further include an instruction address generating module 1205 and an instruction address sending module 1206, where:
  • instruction address sending module 1206 sends the storage address information of the graphics instruction data to the virtual rendering server may specifically include:
  • the graphics data processing apparatus includes a virtual client process, where the virtual client process may include a shared memory address obtaining module, an instruction data storing module, and a target data obtaining module.
  • the virtual client process may create a shared memory through negotiation with a virtual rendering server.
  • the shared memory address obtaining module obtains a mapping address of the shared memory.
  • the virtual client process stores the obtained graphics instruction data into the shared memory according to the obtained mapping address of the shared memory, so that the virtual rendering server may obtain the graphics instruction data from the shared memory and perform rendering processing to obtain target display data.
  • the target data obtaining module receives the target display data sent by the virtual rendering server.
  • the virtual rendering server may send storage address information of the target display data to the virtual client process, so that the virtual client process may obtain the target display data from the shared memory according to the storage address information of the target display data, or the virtual rendering server may send the target display data to the virtual client process through a network transmission channel.
  • the virtual client process may obtain the target display data from the shared memory according to the storage address information of the target display data
  • the virtual rendering server may send the target display data to the virtual client process through a network transmission channel.
  • FIG. 13 is a schematic structural diagram of a virtual client process according to an embodiment of the present invention.
  • the virtual client process provided by this embodiment corresponds to the graphics data processing method shown in FIG. 3 , and is an execution body based on the graphics data processing method shown in FIG. 3 .
  • FIG. 13 shows a specific implementation form, where the virtual client process includes a virtual processor 1301, a virtual memory 1302, a virtual transmitter 1303, and a virtual receiver 1304.
  • the virtual memory 1302 is configured to store program code.
  • the virtual processor 1301 is configured to execute the program code stored in the virtual memory 1302. In this embodiment of the present invention, the virtual memory 1302 stores program code and the virtual processor 1301 is configured to execute the program code:
  • the virtual client process and the virtual rendering server are virtual machines that run on a same physical machine.
  • the obtaining, by the virtual processor 1301, a mapping address of a shared memory specifically includes: creating the shared memory through negotiation with the virtual rendering server, and generating the mapping address of the shared memory.
  • the creating, by the virtual processor 1301, the shared memory through negotiation with the virtual rendering server, and generating the mapping address of the shared memory specifically includes:
  • the virtual processor 1301 is further configured to:
  • the obtaining, by the virtual processor 1301, target display data that is obtained by the rendering server by performing rendering processing on the graphics instruction data includes:
  • the virtual client process in this embodiment of the present invention includes a virtual processor, a virtual memory, a virtual transmitter, and a virtual receiver.
  • the virtual client process may create a shared memory through negotiation with a virtual rendering server.
  • the virtual processor may obtain a mapping address of the shared memory and, when graphics instruction data is obtained, store the obtained graphics instruction data into the shared memory according to the mapping address of the shared memory, so that the virtual rendering server may obtain the graphics instruction data from the shared memory and perform rendering processing to obtain target display data.
  • the virtual client process may obtain the target display data that is obtained by the rendering server by performing rendering processing on the graphics instruction data.
  • the graphics instruction data or the target display data may be obtained from the shared memory; the graphics instruction data does not need to be directly transmitted through a network transmission channel between the virtual client process and the virtual rendering server, or the target display data does not need to be directly transmitted through a network transmission channel between the virtual client process and the virtual rendering server. This shortens a transmission delay, decreases bandwidth of the transmission channel, and improves graphics processing performance.
  • a graphics data processing apparatus shown in FIG. 14 is used to execute the method in the embodiment of the present invention shown in FIG. 4 , and is an execution body based on the graphics data processing method of FIG. 4 .
  • FIG. 14 For ease of description, only parts related to the embodiments of the present invention are illustrated. For technical details that are not disclosed, refer to the embodiment of the present invention shown in FIG. 4 .
  • FIG. 14 is a schematic structural diagram of a graphics data processing apparatus according to a fourth embodiment of the present invention.
  • the graphics data processing apparatus provided by this embodiment of the present invention may include a virtual client process, where the virtual client process may include an instruction data sending module 1401, a target data address receiving module 1402, and a target data obtaining module 1403.
  • the instruction data sending module 1401 is configured to send graphics instruction data to a virtual rendering server, so that the virtual rendering server performs rendering on the graphics instruction data to obtain target display data.
  • the instruction data sending module 1401 may send a storage address of the graphics instruction data to the virtual rendering server, so that the virtual rendering server obtains, according to the storage address of the graphics instruction data, the graphics instruction data from a shared memory to perform rendering processing. Further, optionally, that the instruction data sending module 1401 sends graphics instruction data to a virtual rendering server may be: the virtual client process directly sends the graphics instruction data to the virtual rendering server through a network transmission channel.
  • the target data address receiving module 1402 is configured to receive storage address information that is of the target display data and is sent by the virtual rendering server.
  • the target data address receiving module 1402 receives the storage address information that is of the target display data and is sent by the virtual rendering server. Further, optionally, that the target data address receiving module 1402 receives storage address information that is of the target display data and is sent by the virtual rendering server may specifically include:
  • the target data obtaining module 1403 is configured to obtain the target display data from the shared memory according to the storage address information that is of the target display data and is received by the target data address receiving module 1402, where the target display data is obtained by the virtual rendering server by performing rendering processing on the graphics instruction data, and the shared memory is a memory that is created by the virtual client process and the virtual rendering server through negotiation.
  • the target data obtaining module 1403 obtains the target display data from the shared memory according to the storage address information of the target display data, where the target display data is obtained by the virtual rendering server by performing rendering processing on the graphics instruction data.
  • the virtual client process decompresses the target display data to obtain graphics display data and sends the graphics display data to a thin terminal, so that the thin terminal displays the graphics display data.
  • the virtual client process provided by this embodiment of the present invention may further include a shared memory address obtaining module 1404 and an instruction data storing module 1405.
  • the shared memory address obtaining module 1404 is configured to obtain a mapping address of the shared memory.
  • the shared memory address obtaining module 1404 is specifically configured to create the shared memory on a physical machine through negotiation with the virtual rendering server, and generate the mapping address of the shared memory. Further, optionally, the shared memory address obtaining module 1404 may include a system address obtaining unit and a mapping unit.
  • the system address obtaining unit is configured to obtain a system address of the shared memory.
  • the mapping unit is configured to map the system address that is of the shared memory and is obtained by the system address obtaining unit to process address space of the virtual client process, to obtain the mapping address of the shared memory.
  • the virtual client process creates the shared memory on a physical machine through negotiation with the virtual rendering server. Specifically, a memory is applied for in the physical machine and is used as the shared memory.
  • the virtual rendering server obtains the system address of the shared memory. Then the virtual rendering server maps the obtained system address of the shared memory to process address space of the virtual rendering server, to obtain the mapping address of the shared memory, and further generates the mapping address of the shared memory.
  • the system address of the shared memory is an absolute physical address of an operating system, that is, the virtual rendering server cannot directly access the system address of the shared memory.
  • the virtual rendering server may map the system address of the shared memory to the process address space of the virtual rendering server, for example, a register of the virtual rendering server.
  • the virtual rendering server may directly access the mapping address of the shared memory, so that the virtual rendering server may access the shared memory according to the mapping address of the shared memory, thereby reading data from or writing data into the shared memory.
  • the instruction data storing module 1405 is configured to: when the graphics instruction data is obtained, store the obtained graphics instruction data into the shared memory according to the mapping address that is of the shared memory and is obtained by the shared memory address obtaining module 1404, so that the virtual rendering server obtains the graphics instruction data from the shared memory to perform rendering processing.
  • the virtual client process when the virtual client process receives an instruction that is input from the thin terminal, the instruction that is input at the user end triggers an application program in the virtual client process to generate the graphics instruction data. Then the virtual client process obtains the graphics instruction data, for example, the virtual client process may intercept a 3D instruction by using an Opengl ICD driver.
  • the instruction data storing module 1405 stores the received graphics instruction data into the shared memory according to the mapping address that is of the shared memory and is obtained by the shared memory address obtaining module 1404, so that the virtual rendering server obtains the graphics instruction data from the shared memory to perform rendering processing.
  • the virtual client process provided by this embodiment of the present invention may further include an instruction address generating module 1406 and an instruction address sending module 1407.
  • the instruction address generating module 1406 is configured to generate storage address information of the graphics instruction data.
  • the instruction address sending module 1407 is configured to send, to the virtual rendering server, the storage address information that is of the graphics instruction data and is generated by the instruction address generating module 1406, so that the virtual rendering server obtains, according to the storage address information of the graphics instruction data, the graphics instruction data from the shared memory to perform rendering processing.
  • instruction address sending module 1407 sends the storage address information of the graphics instruction data to the virtual rendering server may include:
  • the graphics data processing apparatus includes a virtual client process, where the virtual client process may include an instruction data sending module, a target data address receiving module, and a target data obtaining module.
  • the virtual client process creates a shared memory through negotiation with a virtual rendering server.
  • the instruction data sending module sends graphics instruction data to the virtual rendering server, so that the virtual rendering server performs rendering on the graphics instruction data to obtain target display data.
  • the target data address receiving module receives storage address information that is of the target display data and is sent by the virtual rendering server.
  • the target data obtaining module obtains the target display data from the shared memory according to the storage address information of the target display data.
  • the virtual client process may send storage address information of the graphics instruction data to the virtual rendering server, so that the virtual rendering server may obtain graphics data from the shared memory according to the storage address information of the graphics instruction data, or the virtual client process directly transmits the graphics instruction data to the virtual rendering server through a network transmission channel.
  • the target display data or the graphics instruction data may be obtained from the shared memory; the graphics instruction data does not need to be directly transmitted through the network transmission channel between the virtual client process and the virtual rendering server, or display image data does not need to be directly transmitted through the network transmission channel between the virtual client process and the virtual rendering server. This shortens a transmission delay, decreases bandwidth of the transmission channel, and improves graphics processing performance.
  • FIG. 15 is a schematic structural diagram of another virtual client process according to an embodiment of the present invention.
  • the virtual client process provided by this embodiment corresponds to the graphics data processing method shown in FIG. 4 , and is an execution body based on the graphics data processing method shown in FIG. 4 .
  • FIG. 15 shows a specific implementation form, where the virtual client process includes a virtual processor 1501, a virtual memory 1502, a virtual transmitter 1503, and a virtual receiver 1504.
  • the virtual memory 1502 is configured to store program code.
  • the virtual processor 1501 is configured to execute the program code stored in the virtual memory 1502. In this embodiment of the present invention, the virtual memory 1502 stores program code and the virtual processor 1501 is configured to execute the program code:
  • the sending, by the virtual processor 1501 by using the virtual transmitter 1503, graphics instruction data to a virtual rendering server specifically includes:
  • the virtual client process and the virtual rendering server are virtual machines that run on a same physical machine.
  • the virtual processor 1501 is further configured to create the shared memory on the physical machine through negotiation with the virtual rendering server, and generate the mapping address of the shared memory.
  • that the virtual processor 1501 creates the shared memory on the physical machine through negotiation with the virtual rendering server, and generates the mapping address of the shared memory specifically includes:
  • the virtual processor 1501 is further configured to: generate storage address information of the graphics instruction data; and send the storage address information of the graphics instruction data to the virtual rendering server, so that the virtual rendering server obtains, according to the storage address information of the graphics instruction data, the graphics instruction data from the shared memory to perform rendering processing.
  • the virtual client process in this embodiment of the present invention includes a virtual processor, a virtual memory, a virtual transmitter, and a virtual receiver.
  • the virtual client process may create a shared memory through negotiation with a virtual rendering server.
  • the virtual transmitter sends graphics instruction data to the virtual rendering server, so that the virtual rendering server performs rendering on the graphics instruction data to obtain target display data.
  • the virtual receiver receives storage address information that is of the target display data and is sent by the virtual rendering server.
  • the virtual processor obtains the target display data from the shared memory according to the storage address information of the target display data.
  • the target display data or the graphics instruction data may be obtained from the shared memory; the graphics instruction data does not need to be directly transmitted through a network transmission channel between the virtual client process and the virtual rendering server, or display image data does not need to be directly transmitted through a network transmission channel between the virtual client process and the virtual rendering server.
  • FIG. 16 is a schematic structural diagram of a graphics data processing system according to an embodiment of the present invention.
  • the graphics data processing system provided by this embodiment of the present invention may include a virtual rendering server 1601, a virtual client process 1602, and a shared memory 1603 that is created by the virtual rendering server 1601 and the virtual client process 1602 through negotiation.
  • the graphics data processing system provided by this embodiment of the present invention may further include a thin terminal 1604 and a physical machine 1605, where the virtual rendering server 1601 and the virtual client process 1602 are virtual machines that run on the same physical machine 1605.
  • the virtual rendering server 1601 and the virtual client process 1602 create the shared memory 1603 on the physical machine 1605 through negotiation.
  • the virtual rendering server 1601 may be the apparatus shown in FIG. 8
  • the virtual client process 1602 may be the apparatus shown in FIG. 12 .
  • the system in this embodiment may be applied to the foregoing methods.
  • the virtual rendering server 1601 may be the apparatus shown in FIG. 10
  • the virtual client process 1602 may be the apparatus shown in FIG. 14 .
  • the system in this embodiment may be applied to the foregoing method.
  • a virtual client process and a virtual rendering server may create a shared memory through negotiation.
  • the virtual client process may send storage address information of graphics instruction data to the virtual rendering server, so that the virtual rendering server may obtain the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data.
  • the virtual rendering server may further send storage address information of target display data to the virtual client process, so that the virtual client process may obtain the target display data from the shared memory according to the storage address information of the target display data.
  • the graphics instruction data or the target display data or both do not need to be directly transmitted through a network transmission channel between the virtual client process and the virtual rendering server. This shortens a transmission delay, decreases bandwidth of the transmission channel, and improves graphics processing performance.
  • the disclosed apparatus and method may be implemented in other manners.
  • the described apparatus embodiment is merely exemplary.
  • the module or unit division is merely logical function division and may be other division in actual implementation.
  • a plurality of units or components may be combined or integrated into another system, or some features may be ignored or not performed.
  • the displayed or discussed mutual couplings or direct couplings or communication connections may be implemented through some interfaces.
  • the indirect couplings or communication connections between the apparatuses, modules, or units may be implemented in electronic, mechanical, or other forms.
  • modules or units described as separate parts may or may not be physically separate, and parts displayed as modules or units may or may not be physical modules or units, may be located in one position, or may be distributed on a plurality of network modules or units. A part or all of the modules or units may be selected according to actual needs to achieve the objectives of the solutions of the embodiments.
  • modules or units in the embodiments of the present invention may be integrated into one processing module or unit, or each of the modules or units may exist alone physically, or two or more modules or units are integrated into one module or unit.
  • the integrated modules or units may be implemented in a form of hardware, or may be implemented in a form of a software functional unit.
  • the integrated module or unit When the integrated module or unit is implemented in the form of a software functional module or unit and sold or used as an independent product, the integrated module or unit may be stored in a computer-readable storage medium.
  • the technical solutions of the present invention essentially, or the part contributing to the prior art, or all or a part of the technical solutions may be implemented in the form of a software product.
  • the software product is stored in a storage medium and includes several instructions for instructing a computer device (which may be a personal computer, a server, or a network device) to perform all or a part of the steps of the methods described in the embodiments of the present invention.
  • the foregoing storage medium includes: any medium that can store program code, such as a USB flash drive, a removable hard disk, a read-only memory (ROM, Read-Only Memory), a random access memory (RAM, Random Access Memory), a magnetic disk, or an optical disc.
  • program code such as a USB flash drive, a removable hard disk, a read-only memory (ROM, Read-Only Memory), a random access memory (RAM, Random Access Memory), a magnetic disk, or an optical disc.

Description

    TECHNICAL FIELD
  • The present invention relates to the field of computer technologies, and in particular, to a graphics data processing method, apparatus, and system.
  • BACKGROUND
  • A GPU (Graphic processing Unit, graphics processing unit) is a microprocessor that can perform graphics arithmetic in a personal computer, a workstation, a game console, or a mobile device (for example, a smartphone or a tablet computer). A GPU mainly performs floating-point arithmetic and parallel computing. A GPU virtualization technology is a technology that enables virtual machine instances running on a data center server to share one or more GPU processors to perform graphics arithmetic.
  • In GPU virtualization, a thin terminal is responsible for input of a mouse and a keyboard and output of a display. The thin terminal may remotely access a virtual desktop, and the virtual desktop may obtain a graphics processing instruction, so that the virtual desktop establishes a network connection to a GPU virtual rendering server. The virtual desktop creates a memory area that is used for packetizing instruction data, and the GPU virtual rendering server also creates a memory area that is used for depacketizing instruction data. The virtual desktop performs packetization on the graphics processing instruction to obtain an instruction data packet. The instruction data packet is transmitted to the GPU virtual rendering server by using a network. Then the GPU virtual rendering server performs depacketization and processing on the instruction data packet, and after the processing is complete, sends to-be-returned data to the virtual desktop by using the network.
  • For a 3D (Three Dimensions, three-dimensional) application program, for example, during a graphics drafting or modeling operating process, a large number of graphics processing instructions such as a vertex data instruction and a draw vertex instruction are generated. Transmission of the graphics processing instructions between the virtual desktop and the GPU virtual rendering server requires operations such as establishment of a network connection, creation of a memory area, layer-by-layer encapsulation of a message header, instruction data packetization, layer-by-layer decapsulation of a message header, and instruction data depacketization. Moreover, data that is obtained by the GPU virtual rendering server by performing rendering on the graphics processing instructions also needs to be transmitted to the virtual desktop by using the network. All graphics processing instructions and the data that is obtained after the rendering processing both need to be transmitted through a network transmission channel established between the virtual desktop and the GPU virtual rendering server, which generates a long transmission delay. As a result, a real-time response speed of graphics rendering is low, graphics processing performance is deteriorated, and bandwidth of the transmission channel is increased.
  • US2012/084517A1 relates to a mechanism for the creation of a shared memory aperture between modes in a parent and child partition is described. In particularly, it discloses that the VSC driver converts the MDL to a guest physical address descriptor list (GPADL) that describes the actual real system physical pages that the memory buffer has been allocated by the Hypervisor, and the VSP driver converts the GPADL it receives from VSC driver into a host OS MDL and locks the pages in system memory. The VSP uses the virtual address of the memory buffer that the shared memory transport channel library has reserved using a VirtualAlloc function and maps these reserved pages to the already allocated and locked system pages from the guest partition, thus sharing the memory.
  • SUMMARY
  • Embodiments of the present invention provide a graphics data processing method, apparatus, and system to resolve a technical problem in the prior art that a long transmission delay is generated, a real-time response speed of graphics rendering is low, graphics processing performance is low, and bandwidth of a transmission channel is increased because all graphics processing instructions and data that is obtained after rendering processing need to be transmitted through the network transmission channel established between a virtual desktop and a GPU virtual rendering server.
  • A first aspect of the embodiments of the present invention provides a graphics data processing method, including:
    • obtaining, by a virtual rendering server, a system address of a shared memory, wherein the system address is a physical address, the shared memory is a memory of a physical machine and is created by the virtual client process and the virtual rendering server through negotiation, the virtual rendering server and the virtual client process are virtual machines that run on the physical machine;
    • mapping, by the virtual rendering server, the obtained system address of the shared memory to process address space of the virtual rendering server, to obtain a mapping address of the shared memory;
    • receiving, by the virtual rendering server, storage address information that is of graphics instruction data and is sent by the virtual client process, wherein the graphics instruction data is stored in the shared memory by the virtual client process;
    • accessing, by the virtual rendering server, the shared memory according to the mapping address of the shared memory, and obtaining the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data; and
    • performing, by the virtual rendering server, rendering processing on the obtained graphics instruction data to obtain target display data, and sending the target display data to the virtual client process, wherein the target display data is graphics data.
  • In a possible implementation manner of the first aspect, the sending the target display data to the virtual client process includes:
    • storing, by the virtual rendering server, the target display data into the shared memory, and generating storage address information of the target display data; and
    • sending, by the virtual rendering server, the storage address information of the target display data to the virtual client process, so that the virtual client process obtains the target display data from the shared memory according to the storage address information of the target display data.
  • A second aspect of the embodiments of the present invention provides a graphics data processing method, including:
    • obtaining, by a virtual client process, a system address of a shared memory, wherein the system address is a physical address, the shared memory is a memory of a physical machine and is created by the virtual client process and a virtual rendering server through negotiation, the virtual client process and the virtual rendering server are virtual machines that run on the physical machine;
    • mapping, by the virtual client process, the obtained system address of the shared memory to process address space of the virtual client process, to obtain a mapping address of the shared memory, ;
    • when graphics instruction data is obtained, storing, by the virtual client process, the obtained graphics instruction data into the shared memory according to the obtained mapping address of the shared memory, so that the virtual rendering server obtains the graphics instruction data from the shared memory to perform rendering processing; and
    • obtaining, by the virtual client process, target display data that is obtained by the virtual rendering server by performing rendering processing on the graphics instruction data , wherein the target display data is graphics data.
  • In a first possible implementation manner of the second aspect, after the storing, by the virtual client process, the obtained graphics instruction data into the shared memory according to the obtained mapping address of the shared memory, the method includes:
    • generating, by the virtual client process, storage address information of the graphics instruction data; and
    • sending, by the virtual client process, the storage address information of the graphics instruction data to the virtual rendering server, so that the virtual rendering server obtains, according to the storage address information of the graphics instruction data, the graphics instruction data from the shared memory to perform rendering processing.
  • In a second possible implementation manner of the second aspect, the obtaining, by the virtual client process, target display data that is obtained by the rendering server by performing rendering processing on the graphics instruction data includes:
    • receiving, by the virtual client process, storage address information that is of the target display data and is sent by the virtual rendering server, where the storage address information of the target display data is storage address information of target display data that is generated by storing, by the virtual rendering server, the target display data into the shared memory; and
    • obtaining, by the virtual client process, the target display data from the shared memory according to the storage address information of the target display data.
  • A third aspect of the embodiments of the present invention provides a graphics data processing apparatus,
    the apparatus includes a virtual rendering server, where the virtual rendering server includes an instruction address receiving module, an instruction data obtaining module, a data processing module, a system address obtaining unit and a mapping unit;
    a system address obtaining unit, configured to obtain a system address of a shared memory, wherein the system address is a physical address, the shared memory is a memory of a physical machine and is created by a virtual client process and the virtual rendering server through negotiation, the virtual rendering server and the virtual client process are virtual machines that run on the physical machine;
    a mapping unit, configured to map the system address that is of the shared memory and is obtained by the system address obtaining unit to process address space of the virtual rendering server, to obtain the mapping address of the shared memory
    the instruction address receiving module is configured to receive storage address information that is of graphics instruction data and is sent by the virtual client process, wherein the graphics instruction data is stored in the shared memory by the virtual client process;
    the instruction data obtaining module is configured to access the shared memory according to the mapping address of the shared memory and obtain the graphics instruction data from the shared memory according to the storage address information that is of the graphics instruction data and is received by the instruction address receiving module; and
    the data processing module is configured to perform rendering processing on the graphics instruction data obtained by the instruction data obtaining module to obtain target display data, and send the target display data to the virtual client process , wherein the target display data is graphics data.
  • In a possible implementation manner of the third aspect, the data
    processing module includes:
    • a target data storing unit, configured to store the target display data into the shared memory, and generate storage address information of the target display data; and
    • a target data address sending unit, configured to send the storage address information of the target display data to the virtual client process, so that the virtual client process obtains the target display data from the shared memory according to the storage address information of the target display data.
  • A fourth aspect of the embodiments of the present invention provides a graphics data processing apparatus, where the apparatus includes a virtual client process, where the virtual client process includes a shared memory address obtaining module, an instruction data storing module, a target data obtaining module, a system address obtaining unit and a mapping unit;
    a system address obtaining unit, configured to obtain a system address of the shared memory, wherein the system address is a physical address, the shared memory is a memory of a physical machine and is created by the virtual client process and a virtual rendering server through negotiation, the virtual client process and the virtual rendering server are virtual machines that run on the physical machine;
    a mapping unit, configured to map the system address that is of the shared memory and is obtained by the system address obtaining unit to process address space of the virtual client process, to obtain the mapping address of the shared memory;
    the shared memory address obtaining module is configured to obtain a mapping address of the shared memory;
    the instruction data storing module is configured to: when graphics instruction data is obtained, store the obtained graphics instruction data into the shared memory according to the mapping address that is of the shared memory and is obtained by the shared memory address obtaining module, so that the virtual rendering server obtains the graphics instruction data from the shared memory to perform rendering processing; and
    the target data obtaining module is configured to obtain target display data that is obtained by the rendering server by performing rendering processing on the graphics instruction data, wherein the target display data is graphics data.
  • In a first possible implementation manner of the fourth aspect, the
    virtual client process further includes:
    • an instruction address generating module, configured to generate storage address information of the graphics instruction data; and
    • an instruction address sending module, configured to send, to the virtual rendering server, the storage address information that is of the graphics instruction data and is generated by the instruction address generating module, so that the virtual rendering server obtains, according to the storage address information of the graphics instruction data, the graphics instruction data from the shared memory to perform rendering processing.
  • In a second possible implementation manner of the fourth aspect, the target data obtaining module includes:
    • a data address receiving unit, configured to receive storage address information that is of the target display data and is sent by the virtual rendering server, where the storage address information of the target display data is storage address information of target display data that is generated by storing, by the virtual rendering server, the target display data into the shared memory; and
    • a target data obtaining unit, configured to obtain the target display data from the shared memory according to the storage address information that is of the target display data and is received by the data address receiving unit.
    BRIEF DESCRIPTION OF DRAWINGS
  • To describe the technical solutions in the embodiments of the present invention or in the prior art more clearly, the following briefly introduces the accompanying drawings required for describing the embodiments or the prior art. Apparently, the accompanying drawings in the following description show merely some embodiments of the present invention, and a person of ordinary skill in the art may still derive other drawings from these accompanying drawings without creative efforts.
    • FIG. 1 is a flowchart of a graphics data processing method according to a first embodiment of the present invention;
    • FIG. 2 is a flowchart of a graphics data processing method according to a second embodiment of the present invention;
    • FIG. 3 is a flowchart of a graphics data processing method according to a third embodiment of the present invention;
    • FIG. 4 is a flowchart of a graphics data processing method according to a fourth embodiment of the present invention;
    • FIG. 5A and FIG. 5B is a flowchart of a graphics data processing method according to a fifth embodiment of the present invention;
    • FIG. 6A and FIG. 6B is a flowchart of a graphics data processing method according to a sixth embodiment of the present invention;
    • FIG. 7A and FIG. 7B is a flowchart of a graphics data processing method according to a seventh embodiment of the present invention;
    • FIG. 8 is a schematic structural diagram of a graphics data processing apparatus according to a first embodiment of the present invention;
    • FIG. 9 is a schematic structural diagram of a virtual rendering server according to an embodiment of the present invention;
    • FIG. 10 is a schematic structural diagram of a graphics data processing apparatus according to a second embodiment of the present invention;
    • FIG. 11 is a schematic structural diagram of another virtual rendering server according to an embodiment of the present invention;
    • FIG. 12 is a schematic structural diagram of a graphics data processing apparatus according to a third embodiment of the present invention;
    • FIG. 13 is a schematic structural diagram of a virtual client process according to an embodiment of the present invention;
    • FIG. 14 is a schematic structural diagram of a graphics data processing apparatus according to a fourth embodiment of the present invention;
    • FIG. 15 is a schematic structural diagram of another virtual client process according to an embodiment of the present invention; and
    • FIG. 16 is a schematic structural diagram of a graphics data processing system according to an embodiment of the present invention.
    DESCRIPTION OF EMBODIMENTS
  • The following clearly and completely describes the technical solutions in the embodiments of the present invention with reference to the accompanying drawings in the embodiments of the present invention. Apparently, the described embodiments are merely a part rather than all of the embodiments of the present invention. All other embodiments obtained by a person of ordinary skill in the art based on the embodiments of the present invention without creative efforts shall fall within the protection scope of the present invention.
  • The embodiments of the present invention provide a graphics data processing method, apparatus, and system. In the embodiments of the present invention, graphics data includes but is not limited to graphics instruction data and target display data. In an optional implementation manner, a virtual client process and a virtual rendering server may create a shared memory through negotiation. The virtual client process may send storage address information of graphics instruction data to the virtual rendering server, so that the virtual rendering server may obtain the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data. The virtual rendering server may perform rendering processing on the obtained graphics instruction data to obtain target display data. In an optional implementation manner, a virtual rendering server may further send storage address information of target display data to a virtual client process, so that the virtual client process may obtain the target display data from a shared memory according to the storage address information of the target display data.
  • A graphics data processing system provided by an embodiment of the present invention may include a virtual rendering server, a virtual client process, and a shared memory that is created by the virtual rendering server and the virtual client process through negotiation. The virtual rendering server and the virtual client process are virtual machines that run on a same physical machine. Specifically, the physical machine may be a physical host that includes a GPU. Multiple virtual rendering servers may be bound to one physical host. In an optional implementation manner, one virtual rendering server may correspond to multiple virtual client processes. In the embodiments of the present invention, a virtual rendering server includes but is not limited to a GPU virtual rendering server, and a virtual client process includes but is not limited to a virtual graphics desktop. Further, optionally, a graphics data processing system provided by an embodiment of the present invention may further include a thin terminal. The thin terminal is responsible for input of a mouse and a keyboard and output of a display. The thin terminal may remotely access a virtual client process. In the embodiments of the present invention, the thin terminal is used to receive graphics instruction data entered by a user, and display graphics display data that is obtained by the virtual client process after processing is performed on target display data.
  • In an optional implementation manner, in the embodiments of the present invention, graphics instruction data may include but is not limited to graphics processing instructions such as vertex data and draw vertex instructions that are generated by a 3D application program, for example, during a graphics drafting or modeling operating process. These graphics processing instructions include, for example, instructions such as a glGet* return type instruction and glSwapBuffer that need to be instantly sent, a vertex array type instruction that carries a pointer parameter, and an aggregatable packetization type instruction. A graphics data processing solution in the embodiments of the present invention may be applied to graphics drafting, modeling, or the like that is performed by using a 3D application program.
  • By using the embodiments of the present invention, it can be implemented that, graphics instruction data or target display data or both do not need to be directly transmitted through a network transmission channel between a virtual client process and a virtual rendering server. This shortens a transmission delay, decreases bandwidth of the transmission channel, and improves graphics processing performance. The following uses specific embodiments for description.
  • FIG. 1 is a flowchart of a graphics data processing method provided by a first embodiment of the present invention. In the graphics data processing method shown in FIG. 1, a virtual rendering server is used as an execution body for description. As shown in the figure, a procedure in this embodiment includes steps S101-S103.
    • S101: The virtual rendering server receives storage address information that is of graphics instruction data and is sent by a virtual client process.
    • S102: The virtual rendering server obtains the graphics instruction data from a shared memory according to the storage address information of the graphics instruction data, where the shared memory is a memory that is created by the virtual client process and the virtual rendering server through negotiation.
    • S103: The virtual rendering server performs rendering processing on the obtained graphics instruction data to obtain target display data, and sends the target display data to the virtual client process.
  • Further, optionally, before step S101, this embodiment of the present invention may further include the following step:
  • The virtual rendering server creates the shared memory on a physical machine through negotiation with the virtual client process, and generates a mapping address of the shared memory, where the virtual rendering server and the virtual client process are virtual machines that run on a same physical machine.
  • In an optional implementation manner, the virtual rendering server creates the shared memory on a physical machine through negotiation with the virtual client process. Specifically, a memory is applied for in the physical machine and is used as the shared memory. The virtual rendering server obtains a system address of the shared memory. Then the virtual rendering server maps the obtained system address of the shared memory to process address space of the virtual rendering server, to obtain the mapping address of the shared memory, and further generates the mapping address of the shared memory. The system address of the shared memory is an absolute physical address of an operating system, that is, the virtual rendering server cannot directly access the system address of the shared memory. The virtual rendering server may map the system address of the shared memory to the process address space of the virtual rendering server, for example, a register of the virtual rendering server. The virtual rendering server may directly access the mapping address of the shared memory, so that the virtual rendering server may access the shared memory according to the mapping address of the shared memory, thereby reading data from or writing data into the shared memory.
  • In an optional implementation manner, in step S101, the virtual rendering server receives the storage address information that is of the graphics instruction data and is sent by the virtual client process. Specifically, when the virtual client process receives an instruction that is input from a thin terminal, the instruction that is input at the user end triggers an application program in the virtual client process to generate the graphics instruction data. Then the virtual client process obtains the graphics instruction data, stores the graphics instruction data into the shared memory, and generates the storage address information of the graphics instruction data. The virtual client process sends the storage address information of the graphics instruction data to the virtual rendering server, and the virtual rendering server receives the storage address information that is of the graphics instruction data and is sent by the virtual client process.
  • Further, optionally, that the rendering server receives the storage address information that is of the graphics instruction data and is sent by the virtual client process may specifically include:
    • the virtual rendering server receives an instruction notification message sent by the virtual client process, where the instruction notification message carries the storage address information of the graphics instruction data; or
    • the virtual rendering server sends an address obtaining request to the virtual client process, and receives an address response message that is returned by the virtual client process according to the address obtaining request, where the address response message carries the storage address information of the graphics instruction data.
  • In an optional implementation manner, in step S102, the virtual rendering server obtains the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data. Specifically, the virtual rendering server accesses the shared memory according to the mapping address of the shared memory and obtains the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data.
  • In an optional implementation manner, in step S103, the virtual rendering server performs rendering processing on the obtained graphics instruction data to obtain the target display data, and sends the target display data to the virtual client process. Specifically, the virtual rendering server performs rendering processing on the obtained graphics instruction data to obtain rendering data, where the rendering data is stored in a video card. The virtual rendering server performs screen capture processing on the rendering data and performs compression processing to obtain the target display data. The virtual rendering server sends the target display data to the virtual client process, so that the virtual client process decompresses the target display data to obtain graphics display data, and sends the graphics display data to the thin terminal, so that the thin terminal displays the graphics display data.
  • In an optional implementation manner, that the virtual rendering server sends the target display data to the virtual client process may specifically include:
    • the virtual rendering server stores the target display data into the shared memory, and generates storage address information of the target display data; and
    • the virtual rendering server sends the storage address information of the target display data to the virtual client process, so that the virtual client process obtains the target display data from the shared memory according to the storage address information of the target display data.
  • Further, optionally, that the virtual rendering server sends the storage address information of the target display data to the virtual client process may include:
    • the virtual rendering server sends a data notification message to the virtual client process, where the data notification message carries the storage address information of the target display data; or
    • when receiving a data obtaining request sent by the virtual client process, the virtual rendering server returns an address response message according to an address obtaining request, where the address response message carries the storage address information of the target display data.
  • In an optional implementation manner, that the virtual rendering server sends the target display data to the virtual client process may further be specifically: the virtual rendering server directly sends the target display data to the virtual client process through a network transmission channel.
  • In the graphics data processing method provided by this embodiment of the present invention, a virtual rendering server creates a shared memory through negotiation with a virtual client process. The virtual rendering server may receive storage address information that is of graphics instruction data and is sent by the virtual client process, so that the virtual rendering server may obtain the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data, and the virtual rendering server may perform rendering processing on the obtained graphics instruction data to obtain target display data and send the target display data to the virtual client process. The virtual rendering server may further send storage address information of the target display data to the virtual client process, so that the virtual client process may obtain the target display data from the shared memory according to the storage address information of the target display data, or the virtual rendering server may send the target display data to the virtual client process through a network transmission channel. By using this embodiment of the present invention, only the storage address information of the graphics instruction data or the storage address information of the target display data needs to be transmitted between the virtual client process and the virtual rendering server. In this way, the graphics instruction data or the target display data may be obtained from the shared memory; the graphics instruction data does not need to be directly transmitted through the network transmission channel between the virtual client process and the virtual rendering server, or the target display data does not need to be directly transmitted through the network transmission channel between the virtual client process and the virtual rendering server. This shortens a transmission delay, decreases bandwidth of the transmission channel, and improves graphics processing performance.
  • FIG. 2 is a flowchart of a graphics data processing method according to a second embodiment of the present invention. In the graphics data processing method shown in FIG. 2, a virtual rendering server is used as an execution body for description. As shown in the figure, a procedure in this embodiment includes steps S201-S203.
    • S201: The virtual rendering server obtains graphics instruction data sent by a virtual client process, and performs rendering processing on the graphics instruction data to obtain target display data.
    • S202: The virtual rendering server stores the target display data into a shared memory, and generates storage address information of the target display data, where the shared memory is a memory that is created by the virtual client process and the virtual rendering server through negotiation.
    • S203: The virtual rendering server sends the storage address information of the target display data to the virtual client process, so that the virtual client process obtains the target display data from the shared memory according to the storage address information of the target dispaly data.
  • Further, optionally, before step S201, this embodiment of the present invention may further include the following step:
  • The virtual rendering server creates the shared memory on a physical machine through negotiation with the virtual client process, and generates a mapping address of the shared memory, where the virtual rendering server and the virtual client process are virtual machines that run on the same physical machine.
  • In an optional implementation manner, the virtual rendering server creates the shared memory on a physical machine through negotiation with the virtual client process. Specifically, a memory is applied for in the physical machine and is used as the shared memory. The virtual rendering server obtains a system address of the shared memory. Then the virtual rendering server maps the obtained system address of the shared memory to process address space of the virtual rendering server, to obtain the mapping address of the shared memory, and further generates the mapping address of the shared memory. The system address of the shared memory is an absolute physical address of an operating system, that is, the virtual rendering server cannot directly access the system address of the shared memory. The virtual rendering server may map the system address of the shared memory to the process address space of the virtual rendering server, for example, a register of the virtual rendering server. The virtual rendering server may directly access the mapping address of the shared memory, so that the virtual rendering server may access the shared memory according to the mapping address of the shared memory, thereby reading data from or writing data into the shared memory.
  • In an optional implementation manner, in step S201, the virtual rendering server obtains the graphics instruction data sent by the virtual client process, and performs rendering processing on the graphics instruction data to obtain the target display data. Specifically, the virtual rendering server performs rendering processing on the obtained graphics instruction data to obtain rendering data, where the rendering data is stored in a video card. The virtual rendering server performs screen capture processing on the rendering data and performs compression processing to obtain the target display data.
  • In an optional implementation manner, that the virtual rendering server obtains graphics instruction data sent by a virtual client process may specifically include: the virtual rendering server receives storage address information that is of the graphics instruction data and is sent by the virtual client process; and the virtual rendering server obtains the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data. The virtual rendering server accesses the shared memory according to the mapping address of the shared memory and obtains the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data.
  • Further, optionally, that the virtual rendering server receives storage address information that is of the graphics instruction data and is sent by the virtual client process may specifically include:
    • the virtual rendering server receives an instruction notification message sent by the virtual client process, where the instruction notification message carries the storage address information of the graphics instruction data; or
    • the virtual rendering server sends an address obtaining request to the virtual client process, and receives an address response message that is returned by the virtual client process according to the address obtaining request, where the address response message carries the storage address information of the graphics instruction data.
  • In an optional implementation manner, that the virtual rendering server obtains graphics instruction data sent by a virtual client process may further be specifically: the virtual client process directly sends the graphics instruction data to the virtual rendering server through a network transmission channel.
  • In an optional implementation manner, in step S202, the virtual rendering server stores the target display data into the shared memory, and generates the storage address information of the target display data. Specifically, the virtual rendering server stores the target display data obtained in step S201 into the shared memory, and generates the storage address information of the target display data.
  • In an optional implementation manner, in step S203, the virtual rendering server sends the storage address information of the target display data to the virtual client process, so that the virtual client process obtains the target display data from the shared memory according to the storage address information of the target display data. In this way, the virtual client process decompresses the target display data to obtain graphics display data and sends the graphics display data to a thin terminal, so that the thin terminal displays the graphics display data.
  • Further, optionally, that the virtual rendering server sends the storage address information of the target display data to the virtual client process may include:
    • the virtual rendering server sends a data notification message to the virtual client process, where the data notification message carries the storage address information of the target display data; or
    • when receiving a data obtaining request sent by the virtual client process, the virtual rendering server returns an address response message according to an address obtaining request, where the address response message carries the storage address information of the target display data.
  • In the graphics data processing method provided by this embodiment of the present invention, a virtual rendering server creates a shared memory through negotiation with a virtual client process. The virtual rendering server obtains graphics instruction data sent by the virtual client process, performs rendering processing on the graphics instruction data to obtain target display data, stores the target display data into the shared memory, and generates storage address information of the target displays data. The virtual rendering server sends the storage address information of the target display data to the virtual client process, so that the virtual client process obtains the target display data from the shared memory according to the storage address information of the target display data. The virtual rendering server may receive storage address information that is of the graphics instruction data and is sent by the virtual client process, so that the virtual rendering server obtains graphics instruction data from the shared memory according to the storage address information of the graphics instruction data, or the virtual rendering server receives the graphics instruction data that is directly transmitted by the virtual client process through a network transmission channel. By using this embodiment of the present invention, only the storage address information of the target display data or the storage address information of the graphics instruction data needs to be transmitted between the virtual client process and the virtual rendering server. In this way, the target display data or the graphics instruction data may be obtained from the shared memory; the graphics instruction data does not need to be directly transmitted through the network transmission channel between the virtual client process and the virtual rendering server, or display image data does not need to be directly transmitted through the network transmission channel between the virtual client process and the virtual rendering server. This shortens a transmission delay, decreases bandwidth of the transmission channel, and improves graphics processing performance.
  • FIG. 3 is a flowchart of a graphics data processing method according to a third embodiment of the present invention. In the graphics data processing method shown in FIG. 3, a virtual client process is used as an execution body for description. As shown in the figure, a procedure in this embodiment includes steps S301-S303.
    • S301: The virtual client process obtains a mapping address of a shared memory, where the shared memory is a memory that is created by the virtual client process and a virtual rendering server through negotiation.
    • S302: When graphics instruction data is obtained, the virtual client process stores the obtained graphics instruction data into the shared memory according to the obtained mapping address of the shared memory, so that the virtual rendering server obtains the graphics instruction data from the shared memory to perform rendering processing.
    • S303: The virtual client process obtains target display data that is obtained by the rendering server by performing rendering processing on the graphics instruction data.
  • In an optional implementation manner, in step S301, the virtual client process obtains the mapping address of the shared memory, where the shared memory is a memory that is created by the virtual client process through negotiation with the virtual rendering server, and the virtual client process and the virtual rendering server are virtual machines that run on a same physical machine. Specifically, that the virtual client process obtains a mapping address of a shared memory may include: the virtual client process creates the shared memory on the physical machine through negotiation with the virtual rendering server, and generates the mapping address of the shared memory. Further, optionally, a memory is applied for in the physical machine and is used as the shared memory. The virtual rendering server obtains a system address of the shared memory. Then the virtual rendering server maps the obtained system address of the shared memory to process address space of the virtual rendering server, to obtain the mapping address of the shared memory, and further generates the mapping address of the shared memory. The system address of the shared memory is an absolute physical address of an operating system, that is, the virtual rendering server cannot directly access the system address of the shared memory. The virtual rendering server may map the system address of the shared memory to the process address space of the virtual rendering server, for example, a register of the virtual rendering server. The virtual rendering server may directly access the mapping address of the shared memory, so that the virtual rendering server may access the shared memory according to the mapping address of the shared memory, thereby reading data from or writing data into the shared memory.
  • In an optional implementation manner, in step S302, when an instruction that is input from a thin terminal is received, the instruction that is input at the user end triggers an application program in the virtual client process to generate the graphics instruction data. Then the virtual client process obtains the graphics instruction data, for example, the virtual client process may intercept a 3D instruction by using an Opengl ICD driver. The virtual client process stores the received graphics instruction data into the shared memory according to the mapping address of the shared memory, so that the virtual rendering server obtains the graphics instruction data from the shared memory to perform rendering processing.
  • Further, optionally, after the virtual client process stores the obtained graphics instruction data into the shared memory according to the obtained mapping address of the shared memory, the method may include:
    • the virtual client process generates storage address information of the graphics instruction data; and
    • the virtual client process sends the storage address information of the graphics instruction data to the virtual rendering server, so that the virtual rendering server obtains, according to the storage address information of the graphics instruction data, the graphics instruction data from the shared memory to perform rendering processing.
  • Further, optionally, that the virtual client process sends the storage address information of the graphics instruction data to the virtual rendering server may specifically include:
    • the virtual client process sends an instruction notification message to the virtual rendering server, where the instruction notification message carries the storage address information of the graphics instruction data; or
    • when receiving an address obtaining request sent by the virtual rendering server, the virtual client process sends an address response message to the virtual rendering server according to the address obtaining request, where the address response message carries the storage address information of the graphics instruction data.
  • In an optional implementation manner, in step S303, the virtual client process obtains the target display data that is obtained by the rendering server by performing rendering processing on the graphics instruction data. The virtual client process decompresses the target display data to obtain graphics display data and sends the graphics display data to the thin terminal, so that the thin terminal displays the graphics display data.
  • In an optional implementation manner, that the virtual client process obtains the target display data that is obtained by the rendering server by performing rendering processing on the graphics instruction data may include:
    • the virtual client process receives storage address information that is of the target display data and is sent by the virtual rendering server, where the storage address information of the target display data is storage address information of target display data that is generated by storing, by the virtual rendering server, the target display data into the shared memory; and
    • the virtual client process obtains the target display data from the shared memory according to the storage address information of the target display data.
  • Further, optionally, that the virtual client process receives storage address information that is of the target display data and is sent by the virtual rendering server may include:
    • the virtual client process receives a data notification message sent by the virtual rendering server, where the data notification message carries the storage address information of the target display data; or
    • when sending a data obtaining request to the virtual rendering server, the virtual client process receives an address response message that is returned by the virtual rendering server according to an address obtaining request, where the address response message carries the storage address information of the target display data.
  • In an optional implementation manner, that the virtual client process obtains the target display data that is obtained by the rendering server by performing rendering processing on the graphics instruction data may be: the virtual client process receives the target display data that is directly sent by the virtual rendering server through a network transmission channel.
  • In the graphics data processing method provided by this embodiment of the present invention, a virtual client process creates a shared memory through negotiation with a virtual rendering server. The virtual client process obtains a mapping address of the shared memory. When graphics instruction data is obtained, the virtual client process stores the obtained graphics instruction data into the shared memory according to the obtained mapping address of the shared memory, so that the virtual rendering server may obtain the graphics instruction data from the shared memory and perform rendering processing to obtain target display data, and the virtual client process receives the target display data sent by the virtual rendering server. The virtual rendering server may send storage address information of the target display data to the virtual client process, so that the virtual client process may obtain the target display data from the shared memory according to the storage address information of the target display data, or the virtual rendering server may send the target display data to the virtual client process through a network transmission channel. By using this embodiment of the present invention, only storage address information of the graphics instruction data or the storage address information of the target display data needs to be transmitted between the virtual client process and the virtual rendering server. In this way, the graphics instruction data or the target display data may be obtained from the shared memory; the graphics instruction data does not need to be directly transmitted through the network transmission channel between the virtual client process and the virtual rendering server, or the target display data does not need to be directly transmitted through the network transmission channel between the virtual client process and the virtual rendering server. This shortens a transmission delay, decreases bandwidth of the transmission channel, and improves graphics processing performance.
  • FIG. 4 is a flowchart of a graphics data processing method according to a fourth embodiment of the present invention. In the graphics data processing method shown in FIG. 4, a virtual client process is used as an execution body for description. As shown in the figure, a procedure in this embodiment includes steps S401-S403.
    • S401: The virtual client process sends graphics instruction data to a virtual rendering server, so that the virtual rendering server performs rendering on the graphics instruction data to obtain target display data.
    • S402: The virtual client process receives storage address information that is of the target display data and is sent by the virtual rendering server.
    • S403: The virtual client process obtains the target display data from a shared memory according to the storage address information of the target display data, where the shared memory is a memory that is created by the virtual client process and the virtual rendering server through negotiation.
  • Further, optionally, before step S401, this embodiment of the present invention may further include the following step:
  • The virtual client process creates the shared memory on a physical machine through negotiation with the virtual rendering server, and generates a mapping address of the shared memory, where the virtual rendering server and the virtual client process are virtual machines that run on the same physical machine.
  • In an optional implementation manner, the virtual client process creates the shared memory on a physical machine through negotiation with the virtual rendering server. Specifically, a memory is applied for in the physical machine and is used as the shared memory. The virtual rendering server obtains a system address of the shared memory. Then the virtual rendering server maps the obtained system address of the shared memory to process address space of the virtual rendering server, to obtain the mapping address of the shared memory, and further generates the mapping address of the shared memory. The system address of the shared memory is an absolute physical address of an operating system, that is, the virtual rendering server cannot directly access the system address of the shared memory. The virtual rendering server may map the system address of the shared memory to the process address space of the virtual rendering server, for example, a register of the virtual rendering server. The virtual rendering server may directly access the mapping address of the shared memory, so that the virtual rendering server may access the shared memory according to the mapping address of the shared memory, thereby reading data from or writing data into the shared memory.
  • In an optional implementation manner, in step S401, that the virtual client process sends graphics instruction data to a virtual rendering server may include:
    • the virtual client process obtains the mapping address of the shared memory; and
    • when the graphics instruction data is obtained, the virtual client process stores the obtained graphics instruction data into the shared memory according to the obtained mapping address of the shared memory, so that the virtual rendering server obtains the graphics instruction data from the shared memory to perform rendering processing.
  • Further, optionally, after the virtual client process stores the obtained graphics instruction data into the shared memory according to the obtained mapping address of the shared memory, the method may include:
    • the virtual client process generates storage address information of the graphics instruction data; and
    • the virtual client process sends the storage address information of the graphics instruction data to the virtual rendering server, so that the virtual rendering server obtains, according to the storage address information of the graphics instruction data, the graphics instruction data from the shared memory to perform rendering processing.
  • Further, optionally, that the virtual client process sends the storage address information of the graphics instruction data to the virtual rendering server may include:
    • the virtual client process sends an instruction notification message to the virtual rendering server, where the instruction notification message carries the storage address information of the graphics instruction data; or
    • when receiving an address obtaining request sent by the virtual rendering server, the virtual client process sends an address response message to the virtual rendering server according to the address obtaining request, where the address response message carries the storage address information of the graphics instruction data.
  • In an optional implementation manner, that the virtual client process sends graphics instruction data to a virtual rendering server may be specifically: the virtual client process directly sends the graphics instruction data to the virtual rendering server through a network transmission channel.
  • In an optional implementation manner, in step S402, the virtual client process receives the storage address information that is of the target display data and is sent by the virtual rendering server. Further, optionally, that the virtual client process receives the storage address information that is of the target display data and is sent by the virtual rendering server may specifically include:
    • the virtual client process receives a data notification message sent by the virtual rendering server, where the data notification message carries the storage address information of the target display data; or
    • when sending a data obtaining request to the virtual rendering server, the virtual client process receives an address response message that is returned by the virtual rendering server according to an address obtaining request, where the address response message carries the storage address information of the target display data.
  • In an optional implementation manner, in step S403, the virtual client process obtains the target display data from the shared memory according to the storage address information of the target display data, where the target display data is obtained by the virtual rendering server by performing rendering processing on the graphics instruction data. The virtual client process decompresses the target display data to obtain graphics display data and sends the graphics display data to a thin terminal, so that the thin terminal displays the graphics display data.
  • In the graphics data processing method provided by this embodiment of the present invention, a virtual client process creates a shared memory through negotiation with a virtual rendering server. The virtual client process sends graphics instruction data to the virtual rendering server, so that the virtual rendering server performs rendering on the graphics instruction data to obtain target display data, and the virtual client process receives storage address information that is of the target display data and is sent by the virtual rendering server, and obtains the target display data from the shared memory according to the storage address information of the target display data. The virtual client process may send storage address information of the graphics instruction data to the virtual rendering server, so that the virtual rendering server may obtain graphics data from the shared memory according to the storage address information of the graphics instruction data, or the virtual client process directly transmits the graphics instruction data to the virtual rendering server through a network transmission channel. By using this embodiment of the present invention, only the storage address information of the target display data or the storage address information of the graphics instruction data needs to be transmitted between the virtual client process and the virtual rendering server. In this way, the target display data or the graphics instruction data may be obtained from the shared memory; the graphics instruction data does not need to be directly transmitted through the network transmission channel between the virtual client process and the virtual rendering server, or display image data does not need to be directly transmitted through the network transmission channel between the virtual client process and the virtual rendering server. This shortens a transmission delay, decreases bandwidth of the transmission channel, and improves graphics processing performance.
  • FIG. 5A and FIG. 5B is a flowchart of a graphics data processing method according to a fifth embodiment of the present invention. As shown in the figure, a procedure in this embodiment includes steps S501-S513.
    • S501: A virtual rendering server creates a shared memory through negotiation with a virtual client process, and generates a mapping address of the shared memory.
      In an optional implementation manner, the virtual rendering server may create the shared memory on a physical machine through negotiation with the virtual client process. Specifically, a memory is applied for in the physical machine and is used as the shared memory. The virtual rendering server obtains a system address of the shared memory. Then the virtual rendering server maps the obtained system address of the shared memory to process address space of the virtual rendering server, to obtain the mapping address of the shared memory, and further generates the mapping address of the shared memory. The system address of the shared memory is an absolute physical address of an operating system, that is, the virtual rendering server cannot directly access the system address of the shared memory. The virtual rendering server may map the system address of the shared memory to the process address space of the virtual rendering server, for example, a register of the virtual rendering server. The virtual rendering server may directly access the mapping address of the shared memory, so that the virtual rendering server may access the shared memory according to the mapping address of the shared memory, thereby reading data from or writing data into the shared memory.
    • S502: The virtual client process obtains graphics instruction data.
      In an optional implementation manner, when the virtual client process receives an instruction that is input from a thin terminal, the instruction that is input at the user end triggers an application program in the virtual client process to generate the graphics instruction data. Then the virtual client process obtains the graphics instruction data, for example, the virtual client process may intercept a 3D instruction by using an Opengl ICD driver.
    • S503: The virtual client process stores the graphics instruction data into the shared memory according to the mapping address of the shared memory.
    • S504: The virtual client process generates storage address information of the graphics instruction data.
    • S505: The virtual client process sends an instruction notification message to the virtual rendering server, where the instruction notification message carries the storage address information of the graphics instruction data.
    • S506: The virtual rendering server obtains the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data.
    • S507: The virtual rendering server performs rendering processing on the obtained graphics instruction data, performs screen capture processing on obtained rendering data, and performs compression processing to obtain target display data.
    • S508: The virtual rendering server stores the target display data into the shared memory, and generates storage address information of the target display data.
    • S509: The virtual rendering server sends a data notification message to the virtual client process, where the data notification message carries the storage address information of the target display data.
    • S510: The virtual client process obtains the target display data from the shared memory according to the storage address information of the target display data.
    • S511: The virtual client process decompresses the target display data to obtain graphics display data.
    • S512: The virtual client process sends the graphics display data to a thin terminal.
    • S513: The thin terminal displays the graphics display data.
  • In the graphics data processing method provided by this embodiment of the present invention, a virtual client process may create a shared memory through negotiation with a virtual rendering server. The virtual client process may send storage address information of graphics instruction data to the virtual rendering server, so that the virtual rendering server may obtain the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data. The virtual rendering server may further send storage address information of target display data to the virtual client process, so that the virtual client process may obtain the target display data from the shared memory according to the storage address information of the target display data. By using this embodiment of the present invention, only the storage address information of the target display data and the storage address information of the graphics instruction data need to be transmitted between the virtual client process and the virtual rendering server. In this way, the target display data and the graphics instruction data may be obtained from the shared memory; the graphics instruction data and display image data do not need to be directly transmitted through a network transmission channel between the virtual client process and the virtual rendering server. This shortens a transmission delay, decreases bandwidth of the transmission channel, and improves graphics processing performance.
  • FIG. 6A and FIG. 6B is a flowchart of a graphics data processing method according to a sixth embodiment of the present invention. As shown in the figure, a procedure in this embodiment includes steps S601-S612.
    • S601: A virtual rendering server creates a shared memory through negotiation with a virtual client process, and generates a mapping address of the shared memory.
    • S602: The virtual client process obtains graphics instruction data.
      In an optional implementation manner, when the virtual client process receives an instruction that is input from a thin terminal, the instruction that is input at the user end triggers an application program in the virtual client process to generate the graphics instruction data. Then the virtual client process obtains the graphics instruction data, for example, the virtual client process may intercept a 3D instruction by using an Opengl ICD driver.
    • S603: The virtual client process stores the graphics instruction data into the shared memory according to the mapping address of the shared memory.
    • S604: The virtual client process generates storage address information of the graphics instruction data.
    • S605: The virtual rendering server sends an address obtaining request to the virtual client process within a preset period of time.
      In an optional implementation manner, the virtual rendering server sends an address obtaining request to the virtual client process within a preset period of time, where the preset period of time may be an editable time value that is set in advance, for example, 30s or 60s.
    • S606: The virtual client process sends an address response message to the virtual rendering server according to the address obtaining request, where the address response message carries the storage address information of the graphics instruction data.
    • S607: The virtual rendering server obtains the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data.
    • S608: The virtual rendering server performs rendering processing on the obtained graphics instruction data, performs screen capture processing on rendering data, and performs compression processing to obtain target display data.
    • S609: The virtual rendering server sends the target display data to the virtual client process through a network transmission channel.
    • S610: The virtual client process decompresses the target display data to obtain graphics display data.
    • S611: The virtual client process sends the graphics display data to a thin terminal.
    • S612: The thin terminal displays the graphics display data.
  • In the graphics data processing method provided by this embodiment of the present invention, a virtual client process may create a shared memory through negotiation with a virtual rendering server. The virtual rendering server may request the virtual client process to send storage address information of graphics instruction data, so that the virtual rendering server may obtain the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data and perform rendering processing on the graphics instruction data to obtain target display data, and the virtual rendering server sends the target display data to the virtual client process through a network transmission channel. By using this embodiment of the present invention, only the storage address information of the graphics instruction data needs to be transmitted between the virtual client process and the virtual rendering server. In this way, the graphics instruction data may be obtained from the shared memory, and the graphics instruction data does not need to be directly transmitted through the network transmission channel between the virtual client process and the virtual rendering server. This shortens a transmission delay, decreases bandwidth of the transmission channel, and improves graphics processing performance.
  • FIG. 7A and FIG. 7B is a flowchart of a graphics data processing method according to a seventh embodiment of the present invention. As shown in the figure, a procedure in this embodiment includes steps S701-S711.
    • S701: A virtual rendering server creates a shared memory through negotiation with a virtual client process, and generates a mapping address of the shared memory.
    • S702: The virtual client process obtains graphics instruction data.
      In an optional implementation manner, when the virtual client process receives an instruction that is input from a thin terminal, the instruction that is input at the user end triggers an application program in the virtual client process to generate the graphics instruction data. Then the virtual client process obtains the graphics instruction data, for example, the virtual client process may intercept a 3D instruction by using an Opengl ICD driver.
    • S703: The virtual client process sends the graphics instruction data to the virtual rendering server through a network transmission channel.
    • S704: The virtual rendering server performs rendering processing on the graphics instruction data, performs screen capture processing on rendering data, and performs compression processing to obtain target display data.
    • S705: The virtual rendering server stores the target display data into the shared memory, and generates storage address information of the target display data.
    • S706: The virtual client process sends a data obtaining request to the virtual rendering server within a preset period of time.
      In an optional implementation manner, the virtual client process sends a data obtaining request to the virtual rendering server within a preset period of time, where the preset period of time may be an editable time value that is set in advance, for example, 30s or 60s.
    • S707: The virtual rendering server sends an address response message to the virtual client process according to an address obtaining request, where the address response message carries the storage address information of the target display data.
    • S708: The virtual client process obtains the target display data from the shared memory according to the storage address information of the target display data.
    • S709: The virtual client process decompresses the target display data to obtain graphics display data.
    • S710: The virtual client process sends the graphics display data to a thin terminal.
    • S711: The thin terminal displays the graphics display data.
  • In the graphics data processing method provided by this embodiment of the present invention, a virtual client process may create a shared memory through negotiation with a virtual rendering server. The virtual client process sends graphics instruction data to the virtual rendering server through a network transmission channel, so that the virtual rendering server performs rendering on the graphics instruction data to obtain target display data, and the virtual client process requests the virtual rendering server to send storage address information of the target display data and obtains the target display data from the shared memory according to the storage address information of the target display data. By using this embodiment of the present invention, only the storage address information of the target display data needs to be transmitted between the virtual client process and the virtual rendering server. In this way, the target display data may be obtained from the shared memory, and the target display data does not need to be directly transmitted through the network transmission channel between the virtual client process and the virtual rendering server. This shortens a transmission delay, decreases bandwidth of the transmission channel, and improves graphics processing performance.
  • The following describes in detail a graphics data processing apparatus provided by an embodiment of the present invention with reference to FIG. 8, FIG. 10, FIG. 12, and FIG. 14 separately.
  • It should be noted that, a graphics data processing apparatus shown in FIG. 8 is used to execute the method in the embodiment of the present invention shown in FIG. 1, and is an execution body based on the graphics data processing method of FIG. 1. For ease of description, only parts related to the embodiments of the present invention are illustrated. For technical details that are not disclosed, refer to the embodiment of the present invention shown in FIG. 1.
  • FIG. 8 is a schematic structural diagram of a graphics data processing apparatus according to a first embodiment of the present invention. The graphics data processing apparatus provided by this embodiment of the present invention may include a virtual rendering server, where the virtual rendering server may specifically include an instruction address receiving module 801, an instruction data obtaining module 802, and a data processing module 803.
  • The instruction address receiving module 801 is configured to receive storage address information that is of graphics instruction data and is sent by a virtual client process.
  • In an optional implementation manner, the instruction address receiving module 801 receives the storage address information that is of the graphics instruction data and is sent by the virtual client process. Specifically, when the virtual client process receives an instruction that is input from a thin terminal, the instruction that is input at the user end triggers an application program in the virtual client process to generate the graphics instruction data. Then the virtual client process obtains the graphics instruction data, stores the graphics instruction data into a shared memory, and generates the storage address information of the graphics instruction data. The virtual client process sends the storage address information of the graphics instruction data to the virtual rendering server, and the instruction address receiving module 801 receives the storage address information that is of the graphics instruction data and is sent by the virtual client process.
  • Further, optionally, that the instruction address receiving module 801 receives the storage address information that is of the graphics instruction data and is sent by the virtual client process may specifically include:
    • receiving an instruction notification message sent by the virtual client process, where the instruction notification message carries the storage address information of the graphics instruction data; or
    • sending an address obtaining request to the virtual client process, and receiving an address response message that is returned by the virtual client process according to the address obtaining request, where the address response message carries the storage address information of the graphics instruction data.
  • The instruction data obtaining module 802 is configured to obtain the graphics instruction data from the shared memory according to the storage address information that is of the graphics instruction data and is received by the instruction address receiving module 801, where the shared memory is a memory that is created by the virtual client process and the virtual rendering server through negotiation.
  • In an optional implementation manner, the instruction data obtaining module 802 obtains the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data. Specifically, the instruction data obtaining module 802 accesses the shared memory according to a mapping address of the shared memory, and obtains the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data.
  • The data processing module 803 is configured to perform rendering processing on the graphics instruction data obtained by the instruction data obtaining module 802 to obtain target display data, and send the target display data to the virtual client process.
  • In an optional implementation manner, the data processing module 803 performs rendering processing on the obtained graphics instruction data to obtain the target display data, and sends the target display data to the virtual client process. Specifically, the data processing module 803 performs rendering processing on the obtained graphics instruction data to obtain rendering data, where the rendering data is stored in a video card. The virtual rendering server performs screen capture processing on the rendering data and performs compression processing to obtain the target display data. The virtual rendering server sends the target display data to the virtual client process, so that the virtual client process decompresses the target display data to obtain graphics display data, and sends the graphics display data to a thin terminal, so that the thin terminal displays the graphics display data.
  • In an optional implementation manner, the data processing module 803 may include a target data storing unit and a target data address sending unit.
  • The target data storing unit is configured to store the target display data into the shared memory, and generate storage address information of the target display data.
  • The target data address sending unit is configured to send the storage address information of the target display data to the virtual client process, so that the virtual client process obtains the target display data from the shared memory according to the storage address information of the target display data.
  • Further, optionally, that the target data address sending unit sends the storage address information of the target display data to the virtual client process may include:
    • sending a data notification message to the virtual client process, where the data notification message carries the storage address information of the target display data; or
    • when a data obtaining request sent by the virtual client process is received, returning an address response message according to an address obtaining request, where the address response message carries the storage address information of the target display data.
  • In an optional implementation manner, that the virtual rendering server sends the target display data to the virtual client may further be specifically: the virtual rendering server directly sends the target display data to the virtual client through a network transmission channel.
  • Further, optionally, the virtual rendering server provided by this embodiment of the present invention may further include a creating module 804.
  • The creating module 804 is configured to create the shared memory on a physical machine through negotiation with the virtual client process, and generate the mapping address of the shared memory.
  • In an optional implementation manner, the creating module 804 creates the shared memory on a physical machine through negotiation with the virtual client process. Specifically, a memory is applied for in the physical machine and is used as the shared memory. The virtual rendering server obtains a system address of the shared memory. Then the virtual rendering server maps the obtained system address of the shared memory to process address space of the virtual rendering server, to obtain the mapping address of the shared memory, and further generates the mapping address of the shared memory.
  • Further, optionally, the creating module 804 may include a system address obtaining unit and a mapping unit.
  • The system address obtaining unit is configured to obtain the system address of the shared memory.
  • The mapping unit is configured to map the system address that is of the shared memory and is obtained by the system address obtaining unit to the process address space of the virtual rendering server, to obtain the mapping address of the shared memory.
  • The system address of the shared memory is an absolute physical address of an operating system, that is, the virtual rendering server cannot directly access the system address of the shared memory. The virtual rendering server may map the system address of the shared memory to the process address space of the virtual rendering server, for example, a register of the virtual rendering server. The virtual rendering server may directly access the mapping address of the shared memory, so that the virtual rendering server may access the shared memory according to the mapping address of the shared memory, thereby reading data from or writing data into the shared memory.
  • The graphics data processing apparatus provided by this embodiment of the present invention includes a virtual rendering server, where the virtual rendering server may specifically include an instruction address receiving module, an instruction data obtaining module, and a data processing module. The virtual rendering server may create a shared memory through negotiation with a virtual client process. The instruction address receiving module may receive storage address information that is of graphics instruction data and is sent by the virtual client process, so that the instruction data obtaining module may obtain the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data, and the data processing module may perform rendering processing on the obtained graphics instruction data to obtain target display data and send the target display data to the virtual client process. The virtual rendering server may further send storage address information of the target display data to the virtual client process, so that the virtual client process may obtain the target display data from the shared memory according to the storage address information of the target display data, or the virtual rendering server may send the target display data to the virtual client process through a network transmission channel. By using this embodiment of the present invention, only the storage address information of the graphics instruction data or the storage address information of the target display data needs to be transmitted between the virtual client process and the virtual rendering server. In this way, the graphics instruction data or the target display data may be obtained from the shared memory; the graphics instruction data does not need to be directly transmitted through the network transmission channel between the virtual client process and the virtual rendering server, or display image data does not need to be directly transmitted through the network transmission channel between the virtual client process and the virtual rendering server. This shortens a transmission delay, decreases bandwidth of the transmission channel, and improves graphics processing performance.
  • FIG. 9 is a schematic structural diagram of a virtual rendering server according to an embodiment of the present invention. The virtual rendering server provided by this embodiment of the present invention corresponds to the graphics data processing method shown in FIG. 1, and is an execution body based on the graphics data processing method shown in Fig. 1. FIG. 9 shows a specific implementation form, where the virtual rendering server includes a virtual processor 901, a virtual memory 902, a virtual transmitter 903, and a virtual receiver 904. The virtual memory 902 is configured to store program code. The virtual processor 901 is configured to execute the program code stored in the virtual memory 902. In this embodiment of the present invention, the virtual memory 902 stores program code and the virtual processor 901 is configured to execute the program code:
    • receiving, by using the virtual receiver 904, storage address information that is of graphics instruction data and is sent by a virtual client process;
    • obtaining the graphics instruction data from a shared memory according to the storage address information of the graphics instruction data, where the shared memory is a memory that is created by the virtual client process and the virtual rendering server through negotiation; and
    • performing rendering processing on the obtained graphics instruction data to obtain target display data, and sending, by using the virtual transmitter 903, the target display data to the virtual client process.
  • In an optional implementation manner, the virtual rendering server and the virtual client process are virtual machines that run on a same physical machine.
  • The virtual processor 901 is further configured to create the shared memory on the physical machine through negotiation with the virtual client process, and generate a mapping address of the shared memory.
  • The obtaining, by the virtual processor 901, the graphics instruction data from a shared memory according to the storage address information of the graphics instruction data specifically includes: accessing the shared memory according to the mapping address of the shared memory.
  • In an optional implementation manner, that the virtual processor 901 creates the shared memory on the physical machine through negotiation with the virtual client process, and generates a mapping address of the shared memory specifically includes:
    • obtaining a system address of the shared memory; and
    • mapping the obtained system address of the shared memory to process address space of the virtual rendering server, to obtain the mapping address of the shared memory.
  • In an optional implementation manner, the sending, by the virtual processor 901 by using the virtual transmitter 903, the target display data to the virtual client process specifically includes:
    • storing the target display data into the shared memory, and generating storage address information of the target display data; and
    • sending the storage address information of the target display data to the virtual client process, so that the virtual client process obtains the target display data from the shared memory according to the storage address information of the target display data.
  • The rendering server provided by this embodiment of the present invention includes a virtual processor, a virtual memory, a virtual transmitter, and a virtual receiver. The virtual rendering server may create a shared memory through negotiation with a virtual client process and receive, by using the virtual receiver, storage address information that is of graphics instruction data and is sent by the virtual client process, so that the virtual processor may obtain the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data, perform rendering processing on the obtained graphics instruction data to obtain target display data, and send the target display data to the virtual client process. By using this embodiment of the present invention, only the storage address information of the graphics instruction data or storage address information of the target display data needs to be transmitted between the virtual client process and the virtual rendering server. In this way, the graphics instruction data or the target display data may be obtained from the shared memory; the graphics instruction data does not need to be directly transmitted through a network transmission channel between the virtual client process and the virtual rendering server, or display image data does not need to be directly transmitted through a network transmission channel between the virtual client process and the virtual rendering server. This shortens a transmission delay, decreases bandwidth of the transmission channel, and improves graphics processing performance.
  • It should be noted that, a graphics data processing apparatus shown in FIG. 10 is used to execute the method in the embodiment of the present invention shown in FIG. 2, and is an execution body based on the graphics data processing method of FIG. 2. For ease of description, only parts related to the embodiments of the present invention are illustrated. For technical details that are not disclosed, refer to the embodiment of the present invention shown in FIG. 2.
  • FIG. 10 is a schematic structural diagram of a graphics data processing apparatus according to a second embodiment of the present invention. The graphics data processing apparatus provided by this embodiment of the present invention may include a virtual rendering server, where the virtual rendering server may specifically include an instruction data processing module 1001, a target data processing module 1002, and a target data address sending module 1003.
  • The instruction data processing module 1001 is configured to obtain graphics instruction data sent by a virtual client process, and perform rendering processing on the graphics instruction data to obtain target display data.
  • In an optional implementation manner, the instruction data processing module 1001 obtains the graphics instruction data sent by the virtual client process, and performs rendering processing on the graphics instruction data to obtain the target display data. Specifically, the virtual rendering server performs rendering processing on the obtained graphics instruction data to obtain rendering data, where the rendering data is stored in a video card. The virtual rendering server performs screen capture processing on the rendering data and performs compression processing to obtain the target display data.
  • In an optional implementation manner, the instruction data processing module 1001 may include an instruction address receiving unit and an instruction data obtaining unit. The instruction address receiving unit is configured to receive storage address information that is of the graphics instruction data and is sent by the virtual client process. The instruction data obtaining unit is configured to obtain the graphics instruction data from a shared memory according to the storage address information of the graphics instruction data. The virtual rendering server accesses the shared memory according to a mapping address of the shared memory and obtains the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data.
  • Further, optionally, that the instruction address receiving unit receives storage address information that is of the graphics instruction data and is sent by the virtual client process may specifically include:
    • receiving an instruction notification message sent by the virtual client process, where the instruction notification message carries the storage address information of the graphics instruction data; or
    • sending an address obtaining request to the virtual client process, and receiving an address response message that is returned by the virtual client process according to the address obtaining request, where the address response message carries the storage address information of the graphics instruction data.
  • In an optional implementation manner, that the instruction data processing module 1001 obtains the graphics instruction data sent by the virtual client process may further be specifically: the virtual client process directly sends the graphics instruction data to the virtual rendering server through a network transmission channel.
  • The target data processing module 1002 is configured to store the target display data that is obtained through processing by the instruction data processing module 1001 into the shared memory, and generate storage address information of the target display data, where the shared memory is a memory that is created by the virtual client process and the virtual rendering server through negotiation.
  • In an optional implementation manner, the target data processing module 1002 stores the target display data into the shared memory, and generates the storage address information of the target display data. Specifically, the target data processing module 1002 stores the target display data that is obtained through processing by the instruction data processing module 1001 into the shared memory, and generates the storage address information of the target display data.
  • The target data address sending module 1003 is configured to send, to the virtual client process, the storage address information that is of the target display data and is generated by the target data processing module 1002, so that the virtual client process obtains the target display data from the shared memory according to the storage address information of the target display data.
  • In an optional implementation manner, the target data address sending module 1003 sends the storage address information of the target display data to the virtual client process, so that the virtual client process obtains the target display data from the shared memory according to the storage address information of the target display data. In this way, the virtual client process decompresses the target display data to obtain graphics display data and sends the graphics display data to a thin terminal, so that the thin terminal displays the graphics display data.
  • Further, optionally, that the target data address sending module 1003 sends the storage address information of the target display data to the virtual client process may include:
    • sending a data notification message to the virtual client process, where the data notification message carries the storage address information of the target display data; or
    • when a data obtaining request sent by the virtual client process is received, returning an address response message according to an address obtaining request, where the address response message carries the storage address information of the target display data.
  • Further, optionally, the virtual rendering server provided by this embodiment of the present invention may further include a creating module 1004.
  • The creating module 1004 is configured to create the shared memory on a physical machine through negotiation with the virtual client process, and generate the mapping address of the shared memory. In an optional implementation manner, the creating module 1004 creates the shared memory on a physical machine through negotiation with the virtual client process. Specifically, a memory is applied for in the physical machine and is used as the shared memory. The virtual rendering server obtains a system address of the shared memory. Then the virtual rendering server maps the obtained system address of the shared memory to process address space of the virtual rendering server, to obtain the mapping address of the shared memory, and further generates the mapping address of the shared memory.
  • Further, optionally, the creating module 1004 may include a system address obtaining unit and a mapping unit, where:
    • the system address obtaining unit is configured to obtain the system address of the shared memory; and
    • the mapping unit is configured to map the system address that is of the shared memory and is obtained by the system address obtaining unit to the process address space of the virtual rendering server, to obtain the mapping address of the shared memory.
  • The system address of the shared memory is an absolute physical address of an operating system, that is, the virtual rendering server cannot directly access the system address of the shared memory. The virtual rendering server may map the system address of the shared memory to the process address space of the virtual rendering server, for example, a register of the virtual rendering server. The virtual rendering server may directly access the mapping address of the shared memory, so that the virtual rendering server may access the shared memory according to the mapping address of the shared memory, thereby reading data from or writing data into the shared memory.
  • The graphics data processing apparatus provided by this embodiment of the present invention includes a virtual rendering server, where the virtual rendering server may specifically include an instruction data processing module, a target data processing module, and a target data address sending module. The virtual rendering server may create a shared memory through negotiation with a virtual client process. The instruction data processing module obtains graphics instruction data sent by the virtual client process and performs rendering processing on the graphics instruction data to obtain target display data. The target data processing module stores the target display data into the shared memory and generates storage address information of the target display data. The target data address sending module sends the storage address information of the target display data to the virtual client process, so that the virtual client process obtains the target display data from the shared memory according to the storage address information of the target display data. The virtual rendering server may receive storage address information that is of the graphics instruction data and is sent by the virtual client process, so that the virtual rendering server may obtain graphics data from the shared memory according to the storage address information of the graphics instruction data, or the virtual rendering server receives the graphics instruction data that is directly transmitted by the virtual client process through a network transmission channel. By using this embodiment of the present invention, only the storage address information of the target display data or the storage address information of the graphics instruction data needs to be transmitted between the virtual client process and the virtual rendering server. In this way, the target display data or the graphics instruction data may be obtained from the shared memory; the graphics instruction data does not need to be directly transmitted through the network transmission channel between the virtual client process and the virtual rendering server, or display image data does not need to be directly transmitted through the network transmission channel between the virtual client process and the virtual rendering server. This shortens a transmission delay, decreases bandwidth of the transmission channel, and improves graphics processing performance.
  • FIG. 11 is a schematic structural diagram of another virtual rendering server according to an embodiment of the present invention. The virtual rendering server provided by this embodiment of the present invention corresponds to the graphics data processing method shown in FIG. 2, and is an execution body based on the graphics data processing method shown in FIG. 2. FIG. 11 shows a specific implementation form, where the virtual rendering server includes a virtual processor 1101, a virtual memory 1102, a virtual transmitter 1103, and a virtual receiver 1104. The virtual memory 1102 is configured to store program code. The virtual processor 1101 is configured to execute the program code stored in the virtual memory 1102. In this embodiment of the present invention, the virtual memory 1102 stores program code and the virtual processor 1101 is configured to execute the program code:
    • obtaining graphics instruction data sent by a virtual client process, and performing rendering processing on the graphics instruction data to obtain target display data;
    • storing the target display data into a shared memory, and generating storage address information of the target display data, where the shared memory is a memory that is created by the virtual client process and the virtual rendering server through negotiation; and
    • sending, by using the virtual transmitter 1103, the storage address information of the target display data to the virtual client process, so that the virtual client process obtains the target display data from the shared memory according to the storage address information of the target display data.
  • In an optional implementation manner, the obtaining, by the virtual processor 1101, graphics instruction data sent by a virtual client process specifically includes:
    • receiving, by using the virtual receiver 1104, storage address information that is of the graphics instruction data and is sent by the virtual client process; and
    • obtaining the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data.
  • In an optional implementation manner, the virtual rendering server and the virtual client process are virtual machines that run on a same physical machine.
  • The virtual processor 1101 is further configured to create the shared memory on the physical machine through negotiation with the virtual client process, and generate a mapping address of the shared memory.
  • The obtaining, by the virtual processor 1101, the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data specifically includes: accessing the shared memory according to the mapping address of the shared memory.
  • In an optional implementation manner, that the virtual processor 1101 creates the shared memory on the physical machine through negotiation with the virtual client process, and generates a mapping address of the shared memory specifically includes:
    • obtaining a system address of the shared memory; and
    • mapping the obtained system address of the shared memory to process address space of the virtual rendering server, to obtain the mapping address of the shared memory.
  • The virtual rendering server in this embodiment of the present invention includes a virtual processor, a virtual memory, a virtual transmitter, and a virtual receiver. The virtual rendering server may create a shared memory through negotiation with a virtual client process. The virtual processor may obtain graphics instruction data sent by the virtual client process, perform rendering processing on the graphics instruction data to obtain target display data, store the target display data into the shared memory, and generate storage address information of the target display data. The virtual transmitter sends the storage address information of the target display data to the virtual client process, so that the virtual client process obtains the target display data from the shared memory according to the storage address information of the target display data. By using this embodiment of the present invention, only the storage address information of the target display data or storage address information of the graphics instruction data needs to be transmitted between the virtual client process and the virtual rendering server. In this way, the target display data or the graphics instruction data may be obtained from the shared memory; the graphics instruction data does not need to be directly transmitted through a network transmission channel between the virtual client process and the virtual rendering server, or display image data does not need to be directly transmitted through a network transmission channel between the virtual client process and the virtual rendering server. This shortens a transmission delay, decreases bandwidth of the transmission channel, and improves graphics processing performance.
  • It should be noted that, a graphics data processing apparatus shown in FIG. 12 is used to execute the method in the embodiment of the present invention shown in FIG. 3, and is an execution body based on the graphics data processing method of FIG. 3. For ease of description, only parts related to the embodiments of the present invention are illustrated. For technical details that are not disclosed, refer to the embodiment of the present invention shown in FIG. 3.
  • FIG. 12 is a schematic structural diagram of a graphics data processing apparatus according to a third embodiment of the present invention. The graphics data processing apparatus provided by this embodiment of the present invention may include a virtual client process, where the virtual client process may include a shared memory address obtaining module 1201, an instruction data storing module 1202, and a target data obtaining module 1203.
  • The shared memory address obtaining module 1201 is configured to obtain a mapping address of a shared memory, where the shared memory is a memory that is created by the virtual client process and a virtual rendering server through negotiation.
  • In an optional implementation manner, the shared memory address obtaining module 1201 obtains the mapping address of the shared memory, where the shared memory is a memory that is created by the virtual client process and the virtual rendering server through negotiation, and the virtual client process and the virtual rendering server are virtual machines that run on a same physical machine. Specifically, the mapping address of the shared memory may be as follows: The virtual client process creates the shared memory on the physical machine through negotiation with the virtual rendering server, and generates the mapping address of the shared memory.
  • The instruction data storing module 1202 is configured to: when graphics instruction data is obtained, store the obtained graphics instruction data into the shared memory according to the mapping address that is of the shared memory and is obtained by the shared memory address obtaining module 1201, so that the virtual rendering server obtains the graphics instruction data from the shared memory to perform rendering processing.
  • In an optional implementation manner, when the graphics instruction data is obtained, the instruction data storing module 1202 stores the received graphics instruction data into the shared memory according to the mapping address of the shared memory, so that the virtual rendering server obtains the graphics instruction data from the shared memory to perform rendering processing. Specifically, when the virtual client process receives an instruction that is input from a thin terminal, the instruction that is input at the user end triggers an application program in the virtual client process to generate the graphics instruction data. Then the virtual client process obtains the graphics instruction data, for example, the virtual client process may intercept a 3D instruction by using an Opengl ICD driver.
  • The target data obtaining module 1203 is configured to obtain target display data that is obtained by the rendering server by performing rendering processing on the graphics instruction data.
  • In an optional implementation manner, the target data obtaining module 1203 obtains the target display data that is obtained by the rendering server by performing rendering processing on the graphics instruction data, decompresses the target display data to obtain graphics display data, and sends the graphics display data to the thin terminal, so that the thin terminal displays the graphics display data.
  • In an optional implementation manner, the target data obtaining module 1203 may include a data address receiving unit and a target data obtaining unit.
  • The data address receiving unit is configured to receive storage address information that is of the target display data and is sent by the virtual rendering server, where the storage address information of the target display data is storage address information of target display data that is generated by storing, by the virtual rendering server, the target display data into the shared memory.
  • The target data obtaining unit is configured to obtain the target display data from the shared memory according to the storage address information that is of the target display data and is received by the data address receiving unit.
  • Further, optionally, that the data address receiving unit receives storage address information that is of the target display data and is sent by the virtual rendering server may include:
    • receiving a data notification message sent by the virtual rendering server, where the data notification message carries the storage address information of the target display data; or
    • when sending a data obtaining request to the virtual rendering server, receiving an address response message that is returned by the virtual rendering server according to an address obtaining request, where the address response message carries the storage address information of the target display data.
  • In an optional implementation manner, that the virtual client process obtains the target display data that is obtained by the rendering server by performing rendering processing on the graphics instruction data may be: the virtual client process receives the target display data that is directly sent by the virtual rendering server through a network transmission channel.
  • Further, optionally, the virtual client process provided by this embodiment of the present invention may further include a creating module 1204.
  • The creating module 1204 is configured to create the shared memory on a physical machine through negotiation with the virtual rendering server, and generate the mapping address of the shared memory.
  • In an optional implementation manner, the creating module 1204 creates the shared memory on the physical machine through negotiation with the virtual rendering server. Specifically, a memory is applied for in the physical machine and is used as the shared memory. The virtual rendering server obtains a system address of the shared memory. Then the virtual rendering server maps the obtained system address of the shared memory to process address space of the virtual rendering server, to obtain the mapping address of the shared memory, and further generates the mapping address of the shared memory.
  • In an optional implementation manner, the creating module 1204 may include a system address obtaining unit and a mapping unit, where:
    • the system address obtaining unit is configured to obtain the system address of the shared memory; and
    • the mapping unit is configured to map the system address that is of the shared memory and is obtained by the system address obtaining unit to process address space of the virtual client process, to obtain the mapping address of the shared memory.
  • The system address of the shared memory is an absolute physical address of an operating system, that is, the virtual rendering server cannot directly access the system address of the shared memory. The virtual rendering server may map the system address of the shared memory to the process address space of the virtual rendering server, for example, a register of the virtual rendering server. The virtual rendering server may directly access the mapping address of the shared memory, so that the virtual rendering server may access the shared memory according to the mapping address of the shared memory, thereby reading data from or writing data into the shared memory.
  • Further, optionally, the virtual client process provided by this embodiment of the present invention may further include an instruction address generating module 1205 and an instruction address sending module 1206, where:
    • the instruction address generating module 1205 is configured to generate storage address information of the graphics instruction data; and
    • the instruction address sending module 1206 is configured to send, to the virtual rendering server, the storage address information that is of the graphics instruction data and is generated by the instruction address generating module 1205, so that the virtual rendering server obtains, according to the storage address information of the graphics instruction data, the graphics instruction data from the shared memory to perform rendering processing.
  • Further, optionally, that the instruction address sending module 1206 sends the storage address information of the graphics instruction data to the virtual rendering server may specifically include:
    • sending an instruction notification message to the virtual rendering server, where the instruction notification message carries the storage address information of the graphics instruction data; or
    • when an address obtaining request sent by the virtual rendering server is received, sending an address response message to the virtual rendering server according to the address obtaining request, where the address response message carries the storage address information of the graphics instruction data.
  • The graphics data processing apparatus provided by this embodiment of the present invention includes a virtual client process, where the virtual client process may include a shared memory address obtaining module, an instruction data storing module, and a target data obtaining module. The virtual client process may create a shared memory through negotiation with a virtual rendering server. The shared memory address obtaining module obtains a mapping address of the shared memory. When graphics instruction data is obtained, the virtual client process stores the obtained graphics instruction data into the shared memory according to the obtained mapping address of the shared memory, so that the virtual rendering server may obtain the graphics instruction data from the shared memory and perform rendering processing to obtain target display data. The target data obtaining module receives the target display data sent by the virtual rendering server. The virtual rendering server may send storage address information of the target display data to the virtual client process, so that the virtual client process may obtain the target display data from the shared memory according to the storage address information of the target display data, or the virtual rendering server may send the target display data to the virtual client process through a network transmission channel. By using this embodiment of the present invention, only storage address information of the graphics instruction data or the storage address information of the target display data needs to be transmitted between the virtual client process and the virtual rendering server. In this way, the graphics instruction data or the target display data may be obtained from the shared memory; the graphics instruction data does not need to be transmitted through the network transmission channel between the virtual client process and the virtual rendering server, or the target display data does not need to be transmitted through the network transmission channel between the virtual client process and the virtual rendering server. This shortens a transmission delay, decreases bandwidth of the transmission channel, and improves graphics processing performance.
  • FIG. 13 is a schematic structural diagram of a virtual client process according to an embodiment of the present invention. The virtual client process provided by this embodiment corresponds to the graphics data processing method shown in FIG. 3, and is an execution body based on the graphics data processing method shown in FIG. 3. FIG. 13 shows a specific implementation form, where the virtual client process includes a virtual processor 1301, a virtual memory 1302, a virtual transmitter 1303, and a virtual receiver 1304. The virtual memory 1302 is configured to store program code. The virtual processor 1301 is configured to execute the program code stored in the virtual memory 1302. In this embodiment of the present invention, the virtual memory 1302 stores program code and the virtual processor 1301 is configured to execute the program code:
    • obtaining a mapping address of a shared memory, where the shared memory is a memory that is created by the virtual client process and a virtual rendering server through negotiation;
    • when graphics instruction data is obtained, storing the obtained graphics instruction data into the shared memory according to the obtained mapping address of the shared memory, so that the virtual rendering server obtains the graphics instruction data from the shared memory to perform rendering processing; and
    • obtaining target display data that is obtained by the rendering server by performing rendering processing on the graphics instruction data.
  • In an optional implementation manner, the virtual client process and the virtual rendering server are virtual machines that run on a same physical machine.
  • The obtaining, by the virtual processor 1301, a mapping address of a shared memory specifically includes: creating the shared memory through negotiation with the virtual rendering server, and generating the mapping address of the shared memory.
  • In an optional implementation manner, the creating, by the virtual processor 1301, the shared memory through negotiation with the virtual rendering server, and generating the mapping address of the shared memory specifically includes:
    • obtaining a system address of the shared memory; and
    • mapping the obtained system address of the shared memory to process address space of the virtual client process, to obtain the mapping address of the shared memory.
  • In an optional implementation manner, after the storing, by the virtual processor 1301, the obtained graphics instruction data into the shared memory according to the obtained mapping address of the shared memory, the virtual processor 1301 is further configured to:
    • generate storage address information of the graphics instruction data; and
    • send, by using the virtual transmitter 1303, the storage address information of the graphics instruction data to the virtual rendering server, so that the virtual rendering server obtains, according to the storage address information of the graphics instruction data, the graphics instruction data from the shared memory to perform rendering processing.
  • In an optional implementation manner, the obtaining, by the virtual processor 1301, target display data that is obtained by the rendering server by performing rendering processing on the graphics instruction data includes:
    • receiving, by using the virtual receiver 1304, storage address information that is of the target display data and is sent by the virtual rendering server, where the storage address information of the target display data is storage address information of target display data that is generated by storing, by the virtual rendering server, the target display data into the shared memory; and
    • obtaining the target display data from the shared memory according to the storage address information of the target display data.
  • The virtual client process in this embodiment of the present invention includes a virtual processor, a virtual memory, a virtual transmitter, and a virtual receiver. The virtual client process may create a shared memory through negotiation with a virtual rendering server. The virtual processor may obtain a mapping address of the shared memory and, when graphics instruction data is obtained, store the obtained graphics instruction data into the shared memory according to the mapping address of the shared memory, so that the virtual rendering server may obtain the graphics instruction data from the shared memory and perform rendering processing to obtain target display data. In this way, the virtual client process may obtain the target display data that is obtained by the rendering server by performing rendering processing on the graphics instruction data. By using this embodiment of the present invention, only storage address information of the graphics instruction data or storage address information of the target display data needs to be transmitted between the virtual client process and the virtual rendering server. In this way, the graphics instruction data or the target display data may be obtained from the shared memory; the graphics instruction data does not need to be directly transmitted through a network transmission channel between the virtual client process and the virtual rendering server, or the target display data does not need to be directly transmitted through a network transmission channel between the virtual client process and the virtual rendering server. This shortens a transmission delay, decreases bandwidth of the transmission channel, and improves graphics processing performance.
  • It should be noted that, a graphics data processing apparatus shown in FIG. 14 is used to execute the method in the embodiment of the present invention shown in FIG. 4, and is an execution body based on the graphics data processing method of FIG. 4. For ease of description, only parts related to the embodiments of the present invention are illustrated. For technical details that are not disclosed, refer to the embodiment of the present invention shown in FIG. 4.
  • FIG. 14 is a schematic structural diagram of a graphics data processing apparatus according to a fourth embodiment of the present invention. The graphics data processing apparatus provided by this embodiment of the present invention may include a virtual client process, where the virtual client process may include an instruction data sending module 1401, a target data address receiving module 1402, and a target data obtaining module 1403.
  • The instruction data sending module 1401 is configured to send graphics instruction data to a virtual rendering server, so that the virtual rendering server performs rendering on the graphics instruction data to obtain target display data.
  • In an optional implementation manner, the instruction data sending module 1401 may send a storage address of the graphics instruction data to the virtual rendering server, so that the virtual rendering server obtains, according to the storage address of the graphics instruction data, the graphics instruction data from a shared memory to perform rendering processing. Further, optionally, that the instruction data sending module 1401 sends graphics instruction data to a virtual rendering server may be: the virtual client process directly sends the graphics instruction data to the virtual rendering server through a network transmission channel.
  • The target data address receiving module 1402 is configured to receive storage address information that is of the target display data and is sent by the virtual rendering server.
  • In an optional implementation manner, the target data address receiving module 1402 receives the storage address information that is of the target display data and is sent by the virtual rendering server. Further, optionally, that the target data address receiving module 1402 receives storage address information that is of the target display data and is sent by the virtual rendering server may specifically include:
    • receiving a data notification message sent by the virtual rendering server, where the data notification message carries the storage address information of the target display data; or
    • when sending a data obtaining request to the virtual rendering server, receiving an address response message that is returned by the virtual rendering server according to an address obtaining request, where the address response message carries the storage address information of the target display data.
  • The target data obtaining module 1403 is configured to obtain the target display data from the shared memory according to the storage address information that is of the target display data and is received by the target data address receiving module 1402, where the target display data is obtained by the virtual rendering server by performing rendering processing on the graphics instruction data, and the shared memory is a memory that is created by the virtual client process and the virtual rendering server through negotiation.
  • In an optional implementation manner, the target data obtaining module 1403 obtains the target display data from the shared memory according to the storage address information of the target display data, where the target display data is obtained by the virtual rendering server by performing rendering processing on the graphics instruction data. The virtual client process decompresses the target display data to obtain graphics display data and sends the graphics display data to a thin terminal, so that the thin terminal displays the graphics display data.
  • Further, optionally, the virtual client process provided by this embodiment of the present invention may further include a shared memory address obtaining module 1404 and an instruction data storing module 1405.
  • The shared memory address obtaining module 1404 is configured to obtain a mapping address of the shared memory.
  • In an optional implementation manner, the shared memory address obtaining module 1404 is specifically configured to create the shared memory on a physical machine through negotiation with the virtual rendering server, and generate the mapping address of the shared memory. Further, optionally, the shared memory address obtaining module 1404 may include a system address obtaining unit and a mapping unit.
  • The system address obtaining unit is configured to obtain a system address of the shared memory.
  • The mapping unit is configured to map the system address that is of the shared memory and is obtained by the system address obtaining unit to process address space of the virtual client process, to obtain the mapping address of the shared memory.
  • In an optional implementation manner, the virtual client process creates the shared memory on a physical machine through negotiation with the virtual rendering server. Specifically, a memory is applied for in the physical machine and is used as the shared memory. The virtual rendering server obtains the system address of the shared memory. Then the virtual rendering server maps the obtained system address of the shared memory to process address space of the virtual rendering server, to obtain the mapping address of the shared memory, and further generates the mapping address of the shared memory. The system address of the shared memory is an absolute physical address of an operating system, that is, the virtual rendering server cannot directly access the system address of the shared memory. The virtual rendering server may map the system address of the shared memory to the process address space of the virtual rendering server, for example, a register of the virtual rendering server. The virtual rendering server may directly access the mapping address of the shared memory, so that the virtual rendering server may access the shared memory according to the mapping address of the shared memory, thereby reading data from or writing data into the shared memory.
  • The instruction data storing module 1405 is configured to: when the graphics instruction data is obtained, store the obtained graphics instruction data into the shared memory according to the mapping address that is of the shared memory and is obtained by the shared memory address obtaining module 1404, so that the virtual rendering server obtains the graphics instruction data from the shared memory to perform rendering processing.
  • In an optional implementation manner, when the virtual client process receives an instruction that is input from the thin terminal, the instruction that is input at the user end triggers an application program in the virtual client process to generate the graphics instruction data. Then the virtual client process obtains the graphics instruction data, for example, the virtual client process may intercept a 3D instruction by using an Opengl ICD driver. The instruction data storing module 1405 stores the received graphics instruction data into the shared memory according to the mapping address that is of the shared memory and is obtained by the shared memory address obtaining module 1404, so that the virtual rendering server obtains the graphics instruction data from the shared memory to perform rendering processing.
  • Further, optionally, the virtual client process provided by this embodiment of the present invention may further include an instruction address generating module 1406 and an instruction address sending module 1407.
  • The instruction address generating module 1406 is configured to generate storage address information of the graphics instruction data.
  • The instruction address sending module 1407 is configured to send, to the virtual rendering server, the storage address information that is of the graphics instruction data and is generated by the instruction address generating module 1406, so that the virtual rendering server obtains, according to the storage address information of the graphics instruction data, the graphics instruction data from the shared memory to perform rendering processing.
  • Further, optionally, that the instruction address sending module 1407 sends the storage address information of the graphics instruction data to the virtual rendering server may include:
    • sending an instruction notification message to the virtual rendering server, where the instruction notification message carries the storage address information of the graphics instruction data; or
    • when an address obtaining request sent by the virtual rendering server is received, sending an address response message to the virtual rendering server according to the address obtaining request, where the address response message carries the storage address information of the graphics instruction data.
  • The graphics data processing apparatus provided by this embodiment of the present invention includes a virtual client process, where the virtual client process may include an instruction data sending module, a target data address receiving module, and a target data obtaining module. The virtual client process creates a shared memory through negotiation with a virtual rendering server. The instruction data sending module sends graphics instruction data to the virtual rendering server, so that the virtual rendering server performs rendering on the graphics instruction data to obtain target display data. The target data address receiving module receives storage address information that is of the target display data and is sent by the virtual rendering server. The target data obtaining module obtains the target display data from the shared memory according to the storage address information of the target display data. The virtual client process may send storage address information of the graphics instruction data to the virtual rendering server, so that the virtual rendering server may obtain graphics data from the shared memory according to the storage address information of the graphics instruction data, or the virtual client process directly transmits the graphics instruction data to the virtual rendering server through a network transmission channel. By using this embodiment of the present invention, only the storage address information of the target display data or the storage address information of the graphics instruction data needs to be transmitted between the virtual client process and the virtual rendering server. In this way, the target display data or the graphics instruction data may be obtained from the shared memory; the graphics instruction data does not need to be directly transmitted through the network transmission channel between the virtual client process and the virtual rendering server, or display image data does not need to be directly transmitted through the network transmission channel between the virtual client process and the virtual rendering server. This shortens a transmission delay, decreases bandwidth of the transmission channel, and improves graphics processing performance.
  • FIG. 15 is a schematic structural diagram of another virtual client process according to an embodiment of the present invention. The virtual client process provided by this embodiment corresponds to the graphics data processing method shown in FIG. 4, and is an execution body based on the graphics data processing method shown in FIG. 4. FIG. 15 shows a specific implementation form, where the virtual client process includes a virtual processor 1501, a virtual memory 1502, a virtual transmitter 1503, and a virtual receiver 1504. The virtual memory 1502 is configured to store program code. The virtual processor 1501 is configured to execute the program code stored in the virtual memory 1502. In this embodiment of the present invention, the virtual memory 1502 stores program code and the virtual processor 1501 is configured to execute the program code:
    • sending, by using the virtual transmitter 1503, graphics instruction data to a virtual rendering server, so that the virtual rendering server performs rendering on the graphics instruction data to obtain target display data;
    • receiving, by using the virtual receiver 1504, storage address information that is of the target display data and is sent by the virtual rendering server; and
    • obtaining the target display data from a shared memory according to the storage address information of the target display data, where the shared memory is a memory that is created by the virtual client process and the virtual rendering server through negotiation.
  • In an optional implementation manner, the sending, by the virtual processor 1501 by using the virtual transmitter 1503, graphics instruction data to a virtual rendering server specifically includes:
    • obtaining a mapping address of the shared memory; and
    • when the graphics instruction data is obtained, storing the obtained graphics instruction data into the shared memory according to the obtained mapping address of the shared memory, so that the virtual rendering server obtains the graphics instruction data from the shared memory to perform rendering processing.
  • In an optional implementation manner, the virtual client process and the virtual rendering server are virtual machines that run on a same physical machine.
  • The virtual processor 1501 is further configured to create the shared memory on the physical machine through negotiation with the virtual rendering server, and generate the mapping address of the shared memory.
  • In an optional implementation manner, that the virtual processor 1501 creates the shared memory on the physical machine through negotiation with the virtual rendering server, and generates the mapping address of the shared memory specifically includes:
    • obtaining a system address of the shared memory; and
    • mapping the obtained system address of the shared memory to process address space of the virtual client process, to obtain the mapping address of the shared memory.
  • In an optional implementation manner, after the storing, by the virtual processor 1501, the received graphics instruction data into the shared memory according to the obtained mapping address of the shared memory, the virtual processor 1501 is further configured to: generate storage address information of the graphics instruction data; and send the storage address information of the graphics instruction data to the virtual rendering server, so that the virtual rendering server obtains, according to the storage address information of the graphics instruction data, the graphics instruction data from the shared memory to perform rendering processing.
  • The virtual client process in this embodiment of the present invention includes a virtual processor, a virtual memory, a virtual transmitter, and a virtual receiver. The virtual client process may create a shared memory through negotiation with a virtual rendering server. The virtual transmitter sends graphics instruction data to the virtual rendering server, so that the virtual rendering server performs rendering on the graphics instruction data to obtain target display data. The virtual receiver receives storage address information that is of the target display data and is sent by the virtual rendering server. The virtual processor obtains the target display data from the shared memory according to the storage address information of the target display data. By using this embodiment of the present invention, only the storage address information of the target display data or storage address information of the graphics instruction data needs to be transmitted between the virtual client process and the virtual rendering server. In this way, the target display data or the graphics instruction data may be obtained from the shared memory; the graphics instruction data does not need to be directly transmitted through a network transmission channel between the virtual client process and the virtual rendering server, or display image data does not need to be directly transmitted through a network transmission channel between the virtual client process and the virtual rendering server. This shortens a transmission delay, decreases bandwidth of the transmission channel, and improves graphics processing performance.
  • FIG. 16 is a schematic structural diagram of a graphics data processing system according to an embodiment of the present invention. As shown in the figure, the graphics data processing system provided by this embodiment of the present invention may include a virtual rendering server 1601, a virtual client process 1602, and a shared memory 1603 that is created by the virtual rendering server 1601 and the virtual client process 1602 through negotiation.
  • Further, optionally, the graphics data processing system provided by this embodiment of the present invention may further include a thin terminal 1604 and a physical machine 1605, where the virtual rendering server 1601 and the virtual client process 1602 are virtual machines that run on the same physical machine 1605. The virtual rendering server 1601 and the virtual client process 1602 create the shared memory 1603 on the physical machine 1605 through negotiation.
  • In an optional implementation manner, the virtual rendering server 1601 may be the apparatus shown in FIG. 8, and the virtual client process 1602 may be the apparatus shown in FIG. 12. For a structure and a function of the apparatuses, refer to related descriptions in the embodiments shown in FIG. 8 and FIG. 12, which are not described herein again. It should be noted that, the system in this embodiment may be applied to the foregoing methods.
  • In an optional implementation manner, the virtual rendering server 1601 may be the apparatus shown in FIG. 10, and the virtual client process 1602 may be the apparatus shown in FIG. 14. For a structure and a function of the apparatuses, refer to related descriptions in the embodiments shown in FIG. 10 and FIG. 14, which are not described herein again. It should be noted that, the system in this embodiment may be applied to the foregoing method.
  • In conclusion, the embodiments of the present invention provide a graphics data processing method, apparatus, and system. A virtual client process and a virtual rendering server may create a shared memory through negotiation. The virtual client process may send storage address information of graphics instruction data to the virtual rendering server, so that the virtual rendering server may obtain the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data. The virtual rendering server may further send storage address information of target display data to the virtual client process, so that the virtual client process may obtain the target display data from the shared memory according to the storage address information of the target display data. In this way, the graphics instruction data or the target display data or both do not need to be directly transmitted through a network transmission channel between the virtual client process and the virtual rendering server. This shortens a transmission delay, decreases bandwidth of the transmission channel, and improves graphics processing performance.
  • In the several embodiments provided in the present application, it should be understood that the disclosed apparatus and method may be implemented in other manners. For example, the described apparatus embodiment is merely exemplary. For example, the module or unit division is merely logical function division and may be other division in actual implementation. For example, a plurality of units or components may be combined or integrated into another system, or some features may be ignored or not performed. In addition, the displayed or discussed mutual couplings or direct couplings or communication connections may be implemented through some interfaces. The indirect couplings or communication connections between the apparatuses, modules, or units may be implemented in electronic, mechanical, or other forms.
  • The modules or units described as separate parts may or may not be physically separate, and parts displayed as modules or units may or may not be physical modules or units, may be located in one position, or may be distributed on a plurality of network modules or units. A part or all of the modules or units may be selected according to actual needs to achieve the objectives of the solutions of the embodiments.
  • In addition, functional modules or units in the embodiments of the present invention may be integrated into one processing module or unit, or each of the modules or units may exist alone physically, or two or more modules or units are integrated into one module or unit. The integrated modules or units may be implemented in a form of hardware, or may be implemented in a form of a software functional unit.
  • When the integrated module or unit is implemented in the form of a software functional module or unit and sold or used as an independent product, the integrated module or unit may be stored in a computer-readable storage medium. Based on such an understanding, the technical solutions of the present invention essentially, or the part contributing to the prior art, or all or a part of the technical solutions may be implemented in the form of a software product. The software product is stored in a storage medium and includes several instructions for instructing a computer device (which may be a personal computer, a server, or a network device) to perform all or a part of the steps of the methods described in the embodiments of the present invention. The foregoing storage medium includes: any medium that can store program code, such as a USB flash drive, a removable hard disk, a read-only memory (ROM, Read-Only Memory), a random access memory (RAM, Random Access Memory), a magnetic disk, or an optical disc.
  • The foregoing descriptions are merely specific embodiments of the present invention, but are not intended to limit the protection scope of the present invention as claimed. Any equivalent modification or replacement readily figured out by a person skilled in the art within the technical scope of the present invention shall fall within the protection scope of the present invention as claimed. Therefore, the protection scope of the present application shall be subject to the protection scope of the claims.

Claims (10)

  1. A graphics data processing method, wherein the method comprises:
    obtaining, by a virtual rendering server, a system address of a shared memory, wherein the system address is a physical address, the shared memory is a memory of a physical machine and is created by the virtual client process and the virtual rendering server through negotiation, the virtual rendering server and the virtual client process are virtual machines that run on the physical machine;
    mapping, by the virtual rendering server, the obtained system address of the shared memory to process address space of the virtual rendering server, to obtain a mapping address of the shared memory; receiving (S101), by the virtual rendering server, storage address information that is of graphics instruction data and is sent by the virtual client process, wherein the graphics instruction data is stored in the shared memory by the virtual client process;
    accessing, by the virtual rendering server, the shared memory according to the mapping address of the shared memory, and obtaining (S102), the graphics instruction data from the shared memory according to the storage address information of the graphics instruction data; and performing (S103), by the virtual rendering server, rendering processing on the obtained graphics instruction data to obtain target display data, and sending the target display data to the virtual client process, wherein the target display data is graphics data
  2. The method according to claim 1, wherein the sending the target display data to the virtual client process comprises:
    storing, by the virtual rendering server, the target display data into the shared memory, and generating storage address information of the target display data; and
    sending, by the virtual rendering server, the storage address information of the target display data to the virtual client process, so that the virtual client process obtains the target display data from the shared memory according to the storage address information of the target display data.
  3. A graphics data processing method, wherein the method comprises:
    obtaining, by a virtual client process, a system address of a shared memory, wherein the system address is a physical address, the shared memory is a memory of a physical machine and is created by the virtual client process and a virtual rendering server through negotiation, the virtual client process and the virtual rendering server are virtual machines that run on the physical machine;
    mapping, by the virtual client process, the obtained system address of the shared memory to process address space of the virtual client process, to obtain (S301) a mapping address of the shared memory, ;
    when graphics instruction data is obtained (S302), storing, by the virtual client process, the obtained graphics instruction data into the shared memory according to the obtained mapping address of the shared memory, so that the virtual rendering server obtains the graphics instruction data from the shared memory to perform rendering processing; and obtaining (S303), by the virtual client process, target display data that is obtained by the virtual rendering server by performing rendering processing on the graphics instruction data, wherein the target display data is graphics data.
  4. The method according to claim 3, wherein after the storing, by the virtual client process, the obtained graphics instruction data into the shared memory according to the obtained mapping address of the shared memory, the method comprises:
    generating, by the virtual client process, storage address information of the graphics instruction data; and
    sending, by the virtual client process, the storage address information of the graphics instruction data to the virtual rendering server, so that the virtual rendering server obtains, according to the storage address information of the graphics instruction data, the graphics instruction data from the shared memory to perform rendering processing.
  5. The method according to claim 3, wherein the obtaining, by the virtual client process, target display data that is obtained by the rendering server by performing rendering processing on the graphics instruction data comprises:
    receiving, by the virtual client process, storage address information that is of the target display data and is sent by the virtual rendering server, wherein the storage address information of the target display data is storage address information of target display data that is generated by storing, by the virtual rendering server, the target display data into the shared memory; and
    obtaining, by the virtual client process, the target display data from the shared memory according to the storage address information of the target display data.
  6. A graphics data processing apparatus, characterized in that the apparatus comprises a virtual rendering server, wherein the virtual rendering server comprises an instruction address receiving module (801), an instruction data obtaining module (802), a data processing module (803), a system address obtaining unit and a mapping unit;
    a system address obtaining unit, configured to obtain a system address of a shared memory, wherein the system address is a physical address, the shared memory is a memory of a physical machine and is created by a virtual client process and the virtual rendering server through negotiation, the virtual rendering server and the virtual client process are virtual machines that run on the physical machine;
    a mapping unit, configured to map the system address that is of the shared memory and is obtained by the system address obtaining unit to process address space of the virtual rendering server, to obtain the mapping address of the shared memory;
    the instruction address receiving module (801) is configured to receive storage address information that is of graphics instruction data and is sent by the virtual client process, wherein the graphics instruction data is stored in the shared memory by the virtual client process;
    the instruction data obtaining module (802) is configured to access the shared memory according to the mapping address of the shared memory and obtain the graphics instruction data from the shared memory according to the storage address information that is of the graphics instruction data and is received by the instruction address receiving module (801); and
    the data processing module (803) is configured to perform rendering processing on the graphics instruction data obtained by the instruction data obtaining module (802) to obtain target display data, and send the target display data to the virtual client process, wherein the target display data is graphics data.
  7. The apparatus according to claim 6, wherein the data processing module (803) comprises:
    a target data storing unit, configured to store the target display data into the shared memory, and generate storage address information of the target display data; and
    a target data address sending unit, configured to send the storage address information of the target display data to the virtual client process, so that the virtual client process obtains the target display data from the shared memory according to the storage address information of the target display data.
  8. A graphics data processing apparatus, characterized in that the apparatus comprises a virtual client process, wherein the virtual client process comprises a shared memory address obtaining module (1201), an instruction data storing module (1202), a target data obtaining module (1203), a system address obtaining unit and a mapping unit;
    a system address obtaining unit, configured to obtain a system address of the shared memory, wherein the system address is a physical address, the shared memory is a memory of a physical machine and is created by the virtual client process and a virtual rendering server through negotiation, the virtual client process and the virtual rendering server are virtual machines that run on the physical machine;
    a mapping unit, configured to map the system address that is of the shared memory and is obtained by the system address obtaining unit to process address space of the virtual client process, to obtain the mapping address of the shared memory;
    the shared memory address obtaining module (1201) is configured to obtain the mapping address of the shared memory;
    the instruction data storing module (1202) is configured to: when graphics instruction data is obtained, store the obtained graphics instruction data into the shared memory according to the mapping address that is of the shared memory and is obtained by the shared memory address obtaining module (1201), so that the virtual rendering server obtains the graphics instruction data from the shared memory to perform rendering processing; and
    the target data obtaining module (1203) is configured to obtain target display data that is obtained by the virtual rendering server by performing rendering processing on the graphics instruction data, wherein the target display data is graphics data.
  9. The apparatus according to claim 8, wherein the virtual client process further comprises:
    an instruction address generating module (1205), configured to generate storage address information of the graphics instruction data; and
    an instruction address sending module (1206), configured to send, to the virtual rendering server, the storage address information that is of the graphics instruction data and is generated by the instruction address generating module (1205), so that the virtual rendering server obtains, according to the storage address information of the graphics instruction data, the graphics instruction data from the shared memory to perform rendering processing.
  10. The apparatus according to claim 8, wherein the target data obtaining module comprises:
    a data address receiving unit, configured to receive storage address information that is of the target display data and is sent by the virtual rendering server, wherein the storage address information of the target display data is storage address information of target display data that is generated by storing, by the virtual rendering server, the target display data into the shared memory; and
    a target data obtaining unit, configured to obtain the target display data from the shared memory according to the storage address information that is of the target display data and is received by the data address receiving unit.
EP14802583.6A 2013-11-28 2014-05-27 Method and device for processing graphics data Active EP2899687B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201310625375.2A CN104679486B (en) 2013-11-28 2013-11-28 A kind of processing method of graph data, apparatus and system
PCT/CN2014/078515 WO2015078156A1 (en) 2013-11-28 2014-05-27 Method, device and system for processing graphics data

Publications (3)

Publication Number Publication Date
EP2899687A1 EP2899687A1 (en) 2015-07-29
EP2899687A4 EP2899687A4 (en) 2015-08-19
EP2899687B1 true EP2899687B1 (en) 2017-04-26

Family

ID=52784868

Family Applications (1)

Application Number Title Priority Date Filing Date
EP14802583.6A Active EP2899687B1 (en) 2013-11-28 2014-05-27 Method and device for processing graphics data

Country Status (3)

Country Link
EP (1) EP2899687B1 (en)
CN (1) CN104679486B (en)
WO (1) WO2015078156A1 (en)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105260547B (en) * 2015-10-20 2018-11-09 南京航空航天大学 Digitlization workshop three-dimensional modeling method towards real-time virtual monitoring
CN105302580B (en) * 2015-11-28 2019-04-23 武汉斗鱼网络科技有限公司 It is a kind of to pass through the shared method and system for realizing quick obtaining game image of GPU texture
CN108733602B (en) * 2017-04-13 2024-04-19 Arm有限公司 Data processing
CN106998365B (en) * 2017-04-20 2021-02-12 阔地教育科技有限公司 Audio and video processor, intelligent teaching device, intelligent teaching system and method
CN107436797A (en) * 2017-08-14 2017-12-05 深信服科技股份有限公司 A kind of director data processing method and processing device based on virtualized environment
CN109240602B (en) * 2018-08-06 2021-01-15 联想(北京)有限公司 Data access method
CN109445760B (en) * 2018-10-08 2022-08-23 武汉联影医疗科技有限公司 Image rendering method and system
CN109597595B (en) * 2018-10-29 2022-03-22 广州市中海达测绘仪器有限公司 Control method and device of liquid crystal display screen, computer equipment and storage medium
CN109660455B (en) * 2018-12-25 2021-06-22 中国南方电网有限责任公司 Machine patrol data storage method, device, system, gateway equipment and storage medium
CN110413280B (en) * 2019-07-25 2022-02-22 四川长虹电器股份有限公司 Android system graph display method
CN110968395B (en) * 2019-10-23 2024-02-09 华为技术有限公司 Method for processing rendering instruction in simulator and mobile terminal
CN112346890B (en) * 2020-11-13 2024-03-29 武汉蓝星科技股份有限公司 Off-screen rendering method and system for complex graphics
CN112991505B (en) * 2021-04-16 2022-02-18 辽宁向日葵教育科技有限公司 Online 3D rendering method
CN113034629B (en) * 2021-05-17 2021-08-20 腾讯科技(深圳)有限公司 Image processing method, image processing device, computer equipment and storage medium
CN113674133B (en) * 2021-07-27 2023-09-05 阿里巴巴新加坡控股有限公司 GPU cluster shared video memory system, method, device and equipment
CN114820272A (en) * 2022-03-18 2022-07-29 维塔科技(北京)有限公司 Data interaction method and device, storage medium and electronic equipment
CN116233520B (en) * 2023-05-06 2023-07-25 海马云(天津)信息技术有限公司 Method and device for transmitting and acquiring video data, server device and storage medium

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7274368B1 (en) * 2000-07-31 2007-09-25 Silicon Graphics, Inc. System method and computer program product for remote graphics processing
CN100438406C (en) * 2006-01-23 2008-11-26 北京航空航天大学 Remote rendering based three-dimensional model network distribution method
US8065687B2 (en) * 2007-01-05 2011-11-22 Moka5, Inc. Bypass virtualization
CN101178739A (en) * 2007-11-30 2008-05-14 四川长虹电器股份有限公司 Embedded browsing system and web page browsing method
WO2009085063A1 (en) * 2007-12-21 2009-07-09 Studio Gpu, Inc. Method and system for fast rendering of a three dimensional scene
US20090268754A1 (en) * 2008-04-28 2009-10-29 Sony Ericsson Mobile Communication Ab Methods, devices, and computer program products for remotely controlling operations of digital media devices using a mobile terminal
US8463980B2 (en) * 2010-09-30 2013-06-11 Microsoft Corporation Shared memory between child and parent partitions
JP5436526B2 (en) * 2011-12-06 2014-03-05 株式会社ソニー・コンピュータエンタテインメント Graphics command generation device, graphics command generation method, server device, and client device
CN102663804A (en) * 2012-03-02 2012-09-12 赞奇科技发展有限公司 Quick interactive graphic rendering method
CN103294439B (en) * 2013-06-28 2016-03-02 华为技术有限公司 A kind of image updating method, system and device

Also Published As

Publication number Publication date
CN104679486A (en) 2015-06-03
WO2015078156A1 (en) 2015-06-04
EP2899687A4 (en) 2015-08-19
CN104679486B (en) 2019-05-28
EP2899687A1 (en) 2015-07-29

Similar Documents

Publication Publication Date Title
EP2899687B1 (en) Method and device for processing graphics data
JP6997253B2 (en) Web page rendering methods, equipment, electronics, storage media and programs
CN107783818B (en) Deep learning task processing method, device, equipment and storage medium
KR101495862B1 (en) Virtual server and virtual machine management method for supporting zero client
US10635468B2 (en) Displaying graphics for local virtual machine by allocating and mapping textual buffer
US10354430B2 (en) Image update method, system, and apparatus
CN107223270B (en) Display data processing method and device
JP5027899B2 (en) Method and system for copying a frame buffer for transmission to a remote display
US20170192734A1 (en) Multi-interface unified displaying system and method based on virtual reality
CN105493067A (en) Application context migration framework and protocol
CN103942087A (en) Virtual machine thermal migration method, related device and cluster computing system
US9479570B2 (en) System and method for processing load balancing of graphic streams
EP2849080A1 (en) Image display method and device
EP3198843B1 (en) Method and system for serving virtual desktop to client
CN104765636B (en) A kind of synthetic method and device of remote desktop image
US20150145876A1 (en) Graphics Data Processing Method, Apparatus, and System
CN113485791B (en) Configuration method, access method, device, virtualization system and storage medium
EP3113015B1 (en) Method and apparatus for data communication in virtualized environment
US20170109113A1 (en) Remote Image Projection Method, Sever And Client Device
CN112804366A (en) Method and device for resolving domain name
KR101430729B1 (en) Server and method for supporting software
KR101635273B1 (en) Apparatus for processing data based on virtual desktop and method for the same
US20160026567A1 (en) Direct memory access method, system and host module for virtual machine
US20230343093A1 (en) Relative anchors based on density of feature points
EP3061072A1 (en) Method and system for displaying graphics for a local virtual machine

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20141202

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

AX Request for extension of the european patent

Extension state: BA ME

RA4 Supplementary search report drawn up and despatched (corrected)

Effective date: 20150722

RIC1 Information provided on ipc code assigned before grant

Ipc: G06T 1/00 20060101AFI20150716BHEP

Ipc: G06F 9/455 20060101ALI20150716BHEP

Ipc: G06F 9/50 20060101ALI20150716BHEP

Ipc: G06F 9/44 20060101ALI20150716BHEP

17Q First examination report despatched

Effective date: 20160421

RIC1 Information provided on ipc code assigned before grant

Ipc: G06T 1/00 20060101AFI20160927BHEP

Ipc: G06F 9/455 20060101ALI20160927BHEP

Ipc: G06T 15/00 20110101ALI20160927BHEP

Ipc: G06F 9/44 20060101ALI20160927BHEP

Ipc: G06F 9/54 20060101ALI20160927BHEP

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

DAX Request for extension of the european patent (deleted)
INTG Intention to grant announced

Effective date: 20161118

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

REG Reference to a national code

Ref country code: GB

Ref legal event code: FG4D

REG Reference to a national code

Ref country code: FR

Ref legal event code: PLFP

Year of fee payment: 4

REG Reference to a national code

Ref country code: CH

Ref legal event code: EP

REG Reference to a national code

Ref country code: AT

Ref legal event code: REF

Ref document number: 888468

Country of ref document: AT

Kind code of ref document: T

Effective date: 20170515

REG Reference to a national code

Ref country code: IE

Ref legal event code: FG4D

REG Reference to a national code

Ref country code: DE

Ref legal event code: R096

Ref document number: 602014009138

Country of ref document: DE

REG Reference to a national code

Ref country code: NL

Ref legal event code: MP

Effective date: 20170426

REG Reference to a national code

Ref country code: LT

Ref legal event code: MG4D

REG Reference to a national code

Ref country code: AT

Ref legal event code: MK05

Ref document number: 888468

Country of ref document: AT

Kind code of ref document: T

Effective date: 20170426

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: NL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20170426

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: HR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20170426

Ref country code: LT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20170426

Ref country code: FI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20170426

Ref country code: NO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20170726

Ref country code: ES

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20170426

Ref country code: GR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20170727

Ref country code: AT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20170426

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: RS

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20170426

Ref country code: IS

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20170826

Ref country code: SE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20170426

Ref country code: LV

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20170426

Ref country code: BG

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20170726

Ref country code: PL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20170426

REG Reference to a national code

Ref country code: CH

Ref legal event code: PL

REG Reference to a national code

Ref country code: DE

Ref legal event code: R097

Ref document number: 602014009138

Country of ref document: DE

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: CZ

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20170426

Ref country code: SK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20170426

Ref country code: MC

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20170426

Ref country code: DK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20170426

Ref country code: RO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20170426

Ref country code: EE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20170426

REG Reference to a national code

Ref country code: IE

Ref legal event code: MM4A

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SM

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20170426

Ref country code: IT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20170426

Ref country code: CH

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20170531

Ref country code: LI

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20170531

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: LU

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20170527

26N No opposition filed

Effective date: 20180129

REG Reference to a national code

Ref country code: FR

Ref legal event code: PLFP

Year of fee payment: 5

REG Reference to a national code

Ref country code: BE

Ref legal event code: MM

Effective date: 20170531

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20170527

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20170426

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: BE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20170531

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: MT

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20170527

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: HU

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT; INVALID AB INITIO

Effective date: 20140527

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: CY

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20170426

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: MK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20170426

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: TR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20170426

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: PT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20170426

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: AL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20170426

REG Reference to a national code

Ref country code: DE

Ref legal event code: R081

Ref document number: 602014009138

Country of ref document: DE

Owner name: HUAWEI CLOUD COMPUTING TECHNOLOGIES CO., LTD.,, CN

Free format text: FORMER OWNER: HUAWEI TECHNOLOGIES CO., LTD., SHENZHEN, GUANGDONG, CN

REG Reference to a national code

Ref country code: GB

Ref legal event code: 732E

Free format text: REGISTERED BETWEEN 20220428 AND 20220504

REG Reference to a national code

Ref country code: FR

Ref legal event code: PLFP

Year of fee payment: 10

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: FR

Payment date: 20230411

Year of fee payment: 10

Ref country code: DE

Payment date: 20230404

Year of fee payment: 10

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: GB

Payment date: 20230406

Year of fee payment: 10