US2014267327A1PendingUtilityA1

Graphics Processing using Multiple Primitives

51
Assignee: MICROSOFT CORPPriority: Mar 14, 2013Filed: Mar 14, 2013Published: Sep 18, 2014
Est. expiryMar 14, 2033(~6.7 yrs left)· nominal 20-yr term from priority
Inventors:Blake D. Pelton
G06T 11/40G06T 15/00G06T 1/20
51
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Techniques for graphics processing using multiple primitives are described. Generally, graphical elements displayed on a computing device can be constructed from multiple primitives. In at least some embodiments, techniques can combine multiple primitives for processing. For example, overlap of a primitive with another primitive can be detected. The primitives can be processed together for display in a pixel region, e.g., as a single primitive. The primitives can be processed by a graphics processor, such as by blending the primitives, applying visual effects to the primitives, and so on. The processed primitives can be written to memory such that the processed primitives can be accessed and displayed by a display device.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . One or more computer-readable storage media comprising instructions stored thereon that, responsive to execution by a computing device, cause the computing device to perform operations comprising:
 ascertaining that a first primitive at least partially overlaps a second primitive;   determining a difference between a pixel region for the first primitive and a pixel region for the second primitive;   generating a first processing instruction which specifies that a combination of the first primitive and an underlying portion of the second primitive are to be processed based on the pixel region for the first primitive;   generating a second processing instruction which specifies that the second primitive is to be processed based on the difference between the pixel region for the first primitive and the pixel region for the second primitive; and   submitting the first processing instruction and the second processing instruction for execution by a graphics processor.   
     
     
         2 . One or more computer-readable storage media as recited in  claim 1 , wherein said ascertaining employs a spatial data structure to characterize the first primitive and the second primitive to determine at least a portion of the first primitive that overlaps at least a portion of the second primitive. 
     
     
         3 . One or more computer-readable storage media as recited in  claim 1 , wherein said determining the difference between the pixel region for the first primitive and the pixel region for the second primitive comprises:
 determining whether a pixel region for the first primitive that overlaps the second primitive meets or exceeds a threshold complexity;   if the pixel region for the first primitive that overlaps the second primitive does not meet or exceed the threshold complexity, submitting a request to a central processing unit (CPU) of the computing device to calculate the difference; and   if the pixel region for the first primitive that overlaps the second primitive meets or exceeds the threshold complexity, submitting a request to a graphics processing unit (GPU) to calculate the difference.   
     
     
         4 . One or more computer-readable storage media as recited in  claim 1 , wherein the operations comprise modifying the first processing instruction to specify that if one or more opaque pixels of the first primitive overlap one or more pixels of the second primitive, the one or more pixels of the second primitive are not to be processed. 
     
     
         5 . One or more computer-readable storage media as recited in  claim 1 , wherein the operations comprise:
 modifying one or more of the first instruction or the second instruction to specify anti-aliasing information for one or more of the first primitive or the second primitive.   
     
     
         6 . A device comprising:
 at least one processor; and   one or more computer-readable storage media including instructions stored thereon that, responsive to execution by the at least one processor, cause the device to perform operations including:
 determining that at least one primitive at least partially overlaps one or more other primitives at a particular pixel region; 
 generating processing instructions that specify that the at least one primitive and the one or more other primitives are to be processed together such that at least a portion of the at least one primitive and the one or more other primitives are combined into a single primitive for display; and 
 submitting the processing instructions to a graphics processing functionality separate from the at least one processor. 
   
     
     
         7 . A device as recited in  claim 6 , wherein the at least one processor comprises a central processing unit (CPU) of the device, and the graphics processing functionality comprises a graphics processing unit (GPU) of the device. 
     
     
         8 . A device as recited in  claim 6 , wherein said determining employs a spatial data structure to characterize the at least one primitive and the one or more other primitives to determine at least a portion of the at least one primitive that overlaps at least a portion of the one or more other primitives. 
     
     
         9 . A device as recited in  claim 6 , wherein said generating comprises generating the processing instructions to specify that the single primitive is to be written to memory via a single write operation and independent of an intermediate write to memory during processing. 
     
     
         10 . A device as recited in  claim 6 , wherein said generating comprises generating the processing instructions to specify one or more visual effects that are to be applied to the single primitive. 
     
     
         11 . A device as recited in  claim 10 , wherein the one or more visual effects comprise at least one of clipping, opacity, shading, or an anti-aliasing procedure. 
     
     
         12 . A device as recited in  claim 6 , wherein said generating comprises generating the processing instructions to specify that if one or more pixels of the at least one primitive are opaque, one or more pixels of the one or more other primitives overlapped by the one or more pixels of the at least one primitive are not to be processed. 
     
     
         13 . A device as recited in  claim 6 , wherein the operations comprise determining a difference between a pixel region for the at least one primitive that overlaps the one or more other primitives, and a pixel region for the one or more other primitives not overlapped by the at least one primitive, and wherein said generating comprises:
 generating a first processing instruction which specifies that a combination of the at least one primitive and an underlying portion of the one or more other primitives are to be processed based on the pixel region for the at least one primitive; and   generating a second processing instruction which specifies that the one or more other primitives are to be processed based on the difference between the pixel region for the at least one primitive that overlaps the one or more other primitives, and the pixel region for the one or more other primitives not overlapped by the at least one primitive.   
     
     
         14 . A device as recited in  claim 13 , wherein said determining the difference between the pixel region for the at least one primitive that overlaps the one or more other primitives, and the pixel region for the one or more other primitives not overlapped by the at least one primitive comprises:
 determining whether the pixel region for the at least one primitive that overlaps the one or more other primitives meets or exceeds a threshold complexity;   if the pixel region for the at least one primitive that overlaps the one or more other primitives does not meet or exceed the threshold complexity, utilizing the at least one processor to calculate the difference; and   if the pixel region for the at least one primitive that overlaps the one or more other primitives meets or exceeds the threshold complexity, submitting a request to the graphics processing functionality to calculate the difference.   
     
     
         15 . A computer-implemented method, comprising:
 determining that a first primitive at least partially overlaps a second primitive at a particular pixel region;   generating processing instructions that specify that the first primitive and the second primitive are to be read from memory, processed together such that at least a portion of the first primitive and at least a portion of the second primitive are combined into a single primitive for display, and that the single primitive is to be written to memory via a single write operation; and   submitting the processing instructions for execution by a graphics processing functionality.   
     
     
         16 . A method as described in  claim 15 , wherein said determining employs a spatial data structure to characterize the first primitive and the second primitive to determine at least a portion of the first primitive that overlaps at least a portion of the second primitive. 
     
     
         17 . A method as described in  claim 15 , wherein said generating comprises generating the processing instructions to specify one or more visual effects that are to be applied to the single primitive. 
     
     
         18 . A method as described in  claim 15 , wherein said generating comprises generating the processing instructions to specify that if one or more pixels of the first primitive are opaque, one or more pixels of the second primitive overlapped by the one or more pixels of the first primitive are not to be processed. 
     
     
         19 . A method as described in  claim 15 , further comprising:
 determining a difference between a pixel region for the first primitive that overlaps the second primitive, and a pixel region for the second primitive not overlapped by the first primitive, and wherein said generating comprises:   generating a first processing instruction which specifies that a combination of the first primitive and an underlying portion of the second primitive are to be processed based on the pixel region for the first primitive; and   generating a second processing instruction which specifies that the second primitive is to be processed based on the difference between the pixel region for the first primitive that overlaps the second primitive, and the pixel region for the second primitive not overlapped by the first primitive.   
     
     
         20 . A method as described in  claim 19 , wherein said determining the difference between the pixel region for the first primitive that overlaps the second primitive, and the pixel region for the second primitive not overlapped by the first primitive comprises:
 determining whether the pixel region for the first primitive that overlaps the second primitive meets or exceeds a threshold complexity;   if the pixel region for the first primitive that overlaps the second primitive does not meet or exceed the threshold complexity, utilizing a local processor to calculate the difference; and   if the pixel region for the first primitive that overlaps the second primitive meets or exceeds the threshold complexity, submitting a request to the graphics processing functionality to calculate the difference.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.