Extending DX11 GPU for programmable vector graphics

US9330495B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9330495-B2
Application numberUS-201313841407-A
CountryUS
Kind codeB2
Filing dateMar 15, 2013
Priority dateAug 9, 2012
Publication dateMay 3, 2016
Grant dateMay 3, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

The present disclosure provides for path rendering including receiving, with a graphics processing unit (GPU), data indicative of a path segment of a path to be rendered. The systems and methods render the path segment by performing a fill of the path segment, which includes tessellating the path segment into a first plurality of primitives including a triangle per primitive, storing a first plurality of primitives in a stencil buffer, and drawing a bounding box of the path segment and rendering the bounding box with a stencil test enabled. The systems and methods also stroke the path segment, including tessellating the path into a second plurality of primitives, re-tessellating the second plurality of primitives, cutting the second plurality of primitives according to a dash pattern, creating a cap at a location of a cut, and creating a triangulation of a stroke and rasterizing the stroke based on the triangulation.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of path rendering comprising: receiving, with a graphics processing unit (GPU), data indicative of a path segment of a path to be rendered; and rendering the path segment, with the GPU, wherein rendering the path segment comprises filling the path segment and stroking the path segment, wherein filling the path segment comprises: tessellating, with the GPU, the path segment into a first plurality of primitives including a triangle per primitive, storing the first plurality of primitives in a stencil buffer, and drawing a bounding box of the path segment and rendering the bounding box with a stencil test enabled for the first plurality of primitives stored in the stencil buffer; and wherein stroking the path segment comprises: tessellating, with the GPU, the path into a second plurality of primitives, determining that a difference in angles between at least two normals in the second plurality of primitives is wider than a maximum angular deviation threshold, in response to determining that the difference in angles between the at least two normal in the second plurality of primitives is wider than the maximum angular deviation threshold, re-tessellating, with the GPU, the second plurality of primitives, cutting, with the GPU, the second plurality of primitives according to a dash pattern, creating, with the GPU, a cap at a location of a cut, and creating, with the GPU, a triangulation of a stroke and rasterizing the stroke based on the triangulation. 2. The method of claim 1 , wherein drawing the bounding box comprises drawing the bounding box of the path segment using a fill color. 3. The method of claim 1 , wherein the path segment is rendered without using a central processing unit (CPU). 4. The method of claim 1 , wherein the plurality of primitives comprises a plurality of line segments. 5. The method of claim 1 , wherein the data indicative of the path segment comprises one of a line, an elliptic arc, a quadratic Bezier curve and a cubic Bezier curve. 6. The method of claim 1 , further comprising determining how a graphical shape including the path segment and having more than one closed outline will be filled based on an odd-even rule. 7. The method of claim 6 , wherein the odd-even rule determines if a point should be considered inside by drawing a ray from the point to infinity in any direction and counting the number of path segments from the given shape that the ray crosses, if the number of path segments is odd the point is considered inside the curve, if the number of path segments is even the point is considered outside the curve. 8. The method of claim 1 , further comprising determining how a graphical shape including the path segment and having more than one closed outline will be filled based on a non-zero rule. 9. The method of claim 8 , wherein the non-zero rule determines the direction of stroke for each part of the curve, for a given curve C and a given point P, the non-zero winding rule determines if a point should be considered inside by (1) construct a straight line out from P in any direction towards infinity, (2) find all the intersections of C with this ray, and (3) score up the winding number and wherein scoring the winding number includes: (1) for every clockwise intersection, the curve passing through the ray from left to right, as viewed from P, subtract 1, (2) for every counter-clockwise intersection, curve passing from right to left, as viewed from P, add 1, if the total winding number is zero, P is outside C, otherwise, it is inside. 10. The method of claim 1 , wherein the data indicative of a path segment comprises a line and stroking comprises widening the line by thickening the line in two directions perpendicular to the line. 11. The method of claim 1 , wherein the data indicative of a path segment comprises a curve and stroking further comprises: splitting the curve into line segments; determining a stroke width; and creating a pair of triangle strips positioned to widen at least one of the line segments. 12. The method of claim 1 , wherein the GPU implements a DirectX11 application programming interface for handling graphics tasks. 13. The method of claim 12 , wherein the GPU further implements a draw call function configured to process a number of indices and path segment types. 14. The method of claim 13 , wherein the GPU further implements an information primitive type to allow for the production of triangles for strokes and lines for fill. 15. The method of claim 1 , wherein tessellating the path segment comprises tessellating the path segment using a fixed-function tessellation engine of the GPU and a domain shader program executing on a shader unit of the GPU. 16. An apparatus configured to perform graphics processing comprising: a memory unit configured to store data indicative of a path segment of a path to be rendered; and a graphics processing unit (GPU) configured to: receive the data indicative of the path segment of the path to be rendered; and render the path segment, wherein to render the path segment the GPU is configured to fill the path segment and stroke the path segment, wherein to fill the path segment, the GPU is configured to: tessellate the path segment into a first plurality of primitives including a triangle per primitive, store the first plurality of primitives in a stencil buffer, and draw a bounding box of the path segment and render the bounding box with a stencil test enabled for the first plurality of primitives stored in the stencil buffer; and wherein to stroke the path segment, the GPU is configured to: tessellate the path into a second plurality of primitives, determine that a difference in angles between at least two normals in the second plurality of primitives is wider than a maximum angular deviation threshold, in response to determining that the difference in angles between the at least two normal in the second plurality of primitives is wider than the maximum angular deviation threshold, re-tessellate the second plurality of primitives, cut the second plurality of primitives according to a dash pattern, create a cap at a location of a cut, create a triangulation of a stroke and rasterizing the stroke based on the triangulation. 17. The apparatus of claim 16 , the graphics processing unit further configured to draw a bounding box of the path segment using a fill color. 18. The apparatus of claim 16 , the graphics processing unit further configured to render the path segment without using a central processing unit (CPU). 19. The apparatus of claim 16 , wherein the plurality of primitives comprises a plurality of line segments. 20. The apparatus of claim 16 , wherein the path segment comprises one of a line, an elliptic arc, a quadratic Bezier curve and a cubic Bezier curve. 21. The apparatus of claim 16 , the graphics processing unit further configured to determine how a graphical shape including the path segment and having more than one closed outline will be filled based on an odd-even rule. 22. The apparatus of claim 21 , wherein the odd-even rule determines if a point should be considered inside by drawing a ray from the point to infinity in any direction and counting the number of path segments from the given shape that the ray crosses, if the number of path segments is odd the point is considered inside the curve, if the number of path segments is even the point is considered outside the curve. 23. The app

Assignees

Inventors

Classifications

  • using straight lines or curves · CPC title

  • Image coding (bandwidth or redundancy reduction for static pictures H04N1/41; coding or decoding of static colour picture signals H04N1/64; methods or arrangements for coding, decoding, compressing or decompressing digital video signals H04N19/00) · CPC title

  • involving image processing hardware · CPC title

  • G06T17/20Primary

    Finite element generation, e.g. wire-frame surface description, {tesselation} · CPC title

  • Physics · mapped topic

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9330495B2 cover?
The present disclosure provides for path rendering including receiving, with a graphics processing unit (GPU), data indicative of a path segment of a path to be rendered. The systems and methods render the path segment by performing a fill of the path segment, which includes tessellating the path segment into a first plurality of primitives including a triangle per primitive, storing a first pl…
Who is the assignee on this patent?
Qualcomm Inc
What technology area does this patent fall under?
Primary CPC classification G06T17/20. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 03 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).