Patents by Inventor Mark J. Kilgard

Mark J. Kilgard has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Publication number: 20140267375
    Abstract: One embodiment of the present invention includes techniques for rasterizing primitives that include edges shared between paths. For each edge, a rasterizer unit selects and applies a sample rule from multiple sample rules. If the edge is shared, then the selected sample rule causes each group of coverage samples associated with a single color sample to be considered as either fully inside or fully outside the edge. Consequently, conflation artifacts caused when the number of coverage samples per pixel exceeds the number of color samples per pixel may be reduced. In prior-art techniques, reducing such conflation artifacts typically involves increasing the number of color samples per pixel to equal the number of coverage samples per pixel. Advantageously, the disclosed techniques enable rendering using algorithms that reduce the ratio of color to coverage samples, thereby decreasing memory consumption and memory bandwidth use, without causing conflation artifacts associated with shared edges.
    Type: Application
    Filed: September 16, 2013
    Publication date: September 18, 2014
    Applicant: NVIDIA CORPORATION
    Inventors: Mark J. KILGARD, Jeffrey A. BOLZ
  • Publication number: 20140267386
    Abstract: One embodiment of the present invention includes techniques for rasterizing geometries. First, a processing unit defines a bounding primitive that covers the geometry and does not include any internal edges. If the bounding primitive intersects any enabled clip plane, then the processing unit generates fragments to fill a current viewport. Alternatively, the processing unit generates fragments to fill the bounding primitive. Because the rasterized region includes no internal edges, conflation artifacts caused when the number of coverage samples per pixel exceeds the number of color samples per pixel may be reduced. In prior-art techniques, reducing such conflation artifacts typically involves increasing the number of color samples per pixel to equal the number of coverage samples per pixel.
    Type: Application
    Filed: August 20, 2013
    Publication date: September 18, 2014
    Applicant: NVIDIA CORPORATION
    Inventors: Jeffrey A. BOLZ, Mark J. KILGARD
  • Patent number: 8803879
    Abstract: An invention is provided for rendering using an omnidirectional light. A shadow cube texture map having six cube faces centered by a light source is generated. Each cube face comprises a shadow texture having depth data from a perspective of the light source. In addition, each cube face is associated with an axis of a three-dimensional coordinate system. For each object fragment rendered from the camera's perspective a light-to-surface vector is defined from the light source to the object fragment, and particular texels within particular cube faces are selected based on the light-to-surface vector. The texel values are tested against a depth value computed from the light to surface vector. The object fragment is textured as in light or shadow according to the outcome of the test.
    Type: Grant
    Filed: March 4, 2005
    Date of Patent: August 12, 2014
    Assignee: Nvidia Corporation
    Inventors: William P. Newhall, Jr., Mark J. Kilgard
  • Patent number: 8786606
    Abstract: One embodiment of the present invention sets forth a technique for stroking rendered paths. Path rendering may be accelerated when a graphics processing unit or other processor is configured to identify pixels that are within half of the stroke width of any point along a path to be stroked. The path is represented by quadratic Bèzier segments and a cubic equation is evaluated to determine whether or not each point in a conservative hull that bounds the quadratic Bèzier segment is within the stroke width.
    Type: Grant
    Filed: April 29, 2011
    Date of Patent: July 22, 2014
    Assignee: NVIDIA Corporation
    Inventor: Mark J. Kilgard
  • Patent number: 8782611
    Abstract: One embodiment of the invention sets forth a mechanism for debugging PPU code executing on a PPU where many thread groups simultaneously execute the same instruction on different slices of input data. A debugger engine receives breakpoint information associated with a breakpoint set on a specific instruction within PPU code. The debugger engine then injects a debugging routine into compiled PPU code. A driver notifies the debugger engine when the specific instruction within the PPU code is executed. The debugger engine then retrieves thread state information associated with each thread group in a set of thread groups being inspected from the PPU via the PPU driver. Among other things, thread state information includes the execution state of each thread in each thread group and values of variables included in the PPU code. The thread state information is then transmitted to the debugger user interface for display to a software developer.
    Type: Grant
    Filed: August 24, 2009
    Date of Patent: July 15, 2014
    Assignee: NVIDIA Corporation
    Inventors: Brian Kretzler, Mark J. Kilgard
  • Patent number: 8773439
    Abstract: One embodiment of the present invention sets forth a technique for subdividing stroked higher-order curved segments into quadratic Bèzier curve segments. Path stroking may be accelerated when a GPU or other processor is configured to perform the subdivision operations. Cubic Bèzier path segments are subdivided into quadratic Bèzier curve segments and other lower-order segments at key features. The quadratic Bèzier curve segments approximate the cubic Bèzier path segments. A variance metric is computed for each quadratic Bèzier curve segment, and when the variance metric indicates that the quadratic Bèzier curve segment deviates by more than a threshold from the corresponding portion of the cubic Bèzier path segment, the quadratic Bèzier curve segment is further subdivided. The path composed of the quadratic Bèzier curve segments is then stroked by rendering hull geometry that encloses the path.
    Type: Grant
    Filed: April 29, 2011
    Date of Patent: July 8, 2014
    Assignee: NVIDIA Corporation
    Inventors: Mark J. Kilgard, Henry Packard Moreton
  • Publication number: 20140176568
    Abstract: A technique for efficiently rendering content reduces each complex blend mode to a series of basic blend operations. The series of basic blend operations are executed within a recirculating pipeline until a final blended value is computed. The recirculating pipeline is positioned within a color raster operations unit of a graphics processing unit for efficient access to image buffer data.
    Type: Application
    Filed: December 20, 2012
    Publication date: June 26, 2014
    Applicant: NVIDIA CORPORATION
    Inventors: Rui BASTOS, Mark J. Kilgard, William Craig McKnight, Jerome F. Duluk, Pierre Souillot, Dale L. Kirkland, Christian Amsinck, Joseph Detmer, Christian Rouet, Don Bittel
  • Publication number: 20140168222
    Abstract: A technique for efficiently rendering path images tessellates path contours into triangle tans comprising a set of representative triangles. Topology of the set of representative triangles is then optimized for greater rasterization efficiency by applying a flip operator to selected triangle pairs within the set of representative triangles. The optimized triangle pairs are then rendered using a path rendering technique, such as stencil and cover.
    Type: Application
    Filed: December 17, 2012
    Publication date: June 19, 2014
    Applicant: NVIDIA CORPORATION
    Inventors: Jeffrey A. Bolz, Mark J. Kilgard
  • Patent number: 8730253
    Abstract: One embodiment of the present invention sets forth a technique for decomposing and filling cubic Bèzier segments of paths without tessellating the paths. Path rendering may be accelerated when a GPU or other processor is configured to perform the decomposition operations. Cubic Bèzier paths are classified and decomposed into simple cubic Bèzier path segments based on the classification. A stencil buffer is then generated that indicates pixels that are inside of the decomposed cubic Bèzier segments. The paths are then filled according to the stencil buffer to produce a filled path.
    Type: Grant
    Filed: April 29, 2011
    Date of Patent: May 20, 2014
    Assignee: NVIDIA Corporation
    Inventor: Mark J. Kilgard
  • Patent number: 8704830
    Abstract: One embodiment of the present invention sets forth a technique for improving path rendering on computer systems by efficiently representing and computing sub-pixel coverage for path objects. A stencil buffer is configured to store multiple stencil samples per pixel stored in an image buffer. The stencil samples undergo stencil testing to produce a set of Boolean values per pixel, which collectively define a geometric coverage percentage for the pixel. The coverage percentage is used to modulate a color value for the pixel. The modulated color value is then blended into the image buffer as an anti-aliased pixel. This technique advantageously enables efficient anti-aliasing for path rendering.
    Type: Grant
    Filed: May 19, 2011
    Date of Patent: April 22, 2014
    Assignee: Nvidia Corporation
    Inventors: Mark J. Kilgard, Patrick R. Brown
  • Patent number: 8698808
    Abstract: One embodiment of the present invention sets forth a technique for converting dashed strokes into quadratic Bèzier segment sequences. Path rendering with stroking and dashing may be accelerated when a graphics processing unit or other processor is configured to subdivide quadratic Bèzier segments based on the remaining distance for a current dash pattern element and the arc length of the current quadratic Bèzier path segment to generate “on” dash pattern segments. Each “on” dash pattern segment is then bounded by a conservative geometric hull. A point containment technique is then used to identify pixels within each conservative geometric hull that are within half of the stroke width of any point along a path to be stroked.
    Type: Grant
    Filed: April 29, 2011
    Date of Patent: April 15, 2014
    Assignee: Nvidia Corporation
    Inventor: Mark J. Kilgard
  • Patent number: 8698837
    Abstract: One embodiment of the present invention sets forth a technique for rendering clipped paths by first generating clip stencil buffer state indicating pixels that are inside of the clip path. The clip stencil buffer state may also store an opacity value for each covered pixel to generate a mask that modulates the opacity of a draw path that is clipped. Clipped draw stencil buffer state is then generated indicating pixels of the draw path that should be covered based on the clip stencil buffer state and coverage of the draw path. The clipped draw path is then filled or stroked to produce the clipped draw path. The clip and draw paths may be filled or stroked without tessellating the paths. Path rendering may be accelerated when a GPU or other processor that is configured to perform operations to generate the clip stencil buffer state and the clipped draw stencil buffer state, and to fill or stroke the clipped draw path.
    Type: Grant
    Filed: May 18, 2011
    Date of Patent: April 15, 2014
    Assignee: Nvidia Corporation
    Inventor: Mark J. Kilgard
  • Patent number: 8648856
    Abstract: An invention is provided for rendering using an omnidirectional light. A shadow cube texture map having six cube faces centered by a light source is generated. Each cube face comprises a shadow texture having depth data from a perspective of the light source. In addition, each cube face is associated with an axis of a three-dimensional coordinate system. For each object fragment rendered from the camera's perspective a light-to-surface vector is defined from the light source to the object fragment, and particular texels within particular cube faces are selected based on the light-to-surface vector. The texel values are tested against a depth value computed from the light to surface vector. The object fragment is textured as in light or shadow according to the outcome of the test.
    Type: Grant
    Filed: December 20, 2007
    Date of Patent: February 11, 2014
    Assignee: Nvidia Corporation
    Inventors: William P. Newhall, Jr., Mark J. Kilgard
  • Patent number: 8432410
    Abstract: A three dimensional (3D) graphics application programming interface (API) extension provides support for specifying images in a shared exponent format. The shared exponent format is used to represent high dynamic range textures in a compact encoding to reduce the memory footprint needed to store the image data compared with other high dynamic range formats. Image data is encoded to and decoded from the shared exponent format using a pixel processing pipeline. Image data encoded into the shared exponent format can be decoded and used as texture data during rendering.
    Type: Grant
    Filed: November 14, 2006
    Date of Patent: April 30, 2013
    Assignee: Nvidia Corporation
    Inventor: Mark J. Kilgard
  • Patent number: 8171461
    Abstract: Systems and methods for compiling high-level primitive programs are used to generate primitive program micro-code for execution by a primitive processor. A compiler is configured to produce micro-code for a specific target primitive processor based on the target primitive processor's capabilities. The compiler supports features of the high-level primitive program by providing conversions for different applications programming interface conventions, determining output primitive types, initializing attribute arrays based on primitive input profile modifiers, and determining vertex set lengths from specified primitive input types.
    Type: Grant
    Filed: February 24, 2006
    Date of Patent: May 1, 2012
    Assignee: NVIDIA Coporation
    Inventors: Mark J. Kilgard, Cass W. Everitt, Christopher T. Dodd, Robert Steven Glanville
  • Patent number: 8149243
    Abstract: A three dimensional (3D) graphics applications programming interface (API) extension provides support for specifying images in a packed float format. In the packed float format, floating point values of three color components are represented as N bits, where N is less than the total number of bits required for a standard half-precision or full precision format. For example, the blue, green, and red components may each be encoded to have a 5-bit exponent and a 5- or 6-bit mantissa with an implied leading 1. The packed float format is used to represent high dynamic range textures in a compact encoding to reduce the memory footprint needed to store the image data compared with other high dynamic range formats.
    Type: Grant
    Filed: December 1, 2006
    Date of Patent: April 3, 2012
    Assignee: NVIDIA Corporation
    Inventor: Mark J. Kilgard
  • Publication number: 20110285742
    Abstract: One embodiment of the present invention sets forth a technique for improving path rendering on computer systems by efficiently representing and computing sub-pixel coverage for path objects. A stencil buffer is configured to store multiple stencil samples per pixel stored in an image buffer. The stencil samples undergo stencil testing to produce a set of Boolean values per pixel, which collectively define a geometric coverage percentage for the pixel. The coverage percentage is used to modulate a color value for the pixel. The modulated color value is then blended into the image buffer as an anti-aliased pixel. This technique advantageously enables efficient anti-aliasing for path rendering.
    Type: Application
    Filed: May 19, 2011
    Publication date: November 24, 2011
    Inventors: Mark J. KILGARD, Patrick R. BROWN
  • Publication number: 20110285724
    Abstract: One embodiment of the present invention sets forth a technique for converting dashed strokes into quadratic Bèzier segment sequences. Path rendering with stroking and dashing may be accelerated when a graphics processing unit or other processor is configured to subdivide quadratic Bèzier segments based on the remaining distance for a current dash pattern element and the arc length of the current quadratic Bèzier path segment to generate “on” dash pattern segments. Each “on” dash pattern segment is then bounded by a conservative geometric hull. A point containment technique is then used to identify pixels within each conservative geometric hull that are within half of the stroke width of any point along a path to be stroked.
    Type: Application
    Filed: April 6, 2011
    Publication date: November 24, 2011
    Inventor: Mark J. KILGARD
  • Publication number: 20110285747
    Abstract: One embodiment of the present invention sets forth a technique for rendering anti-aliased paths by first generating an alpha buffer representing coverage data. To generate the alpha buffer, jittered versions of the rendered path are rendered and corresponding stencil buffers indicating sub-pixel samples of the path that should be covered are generated. After each stencil buffer is generated, the jittered path is rasterized to convert the sub-pixel coverage into coverage weights that are stored in the alpha component of a frame buffer. As each jittered path is rasterized, the coverage weights are accumulated. Finally, geometry representing the union of the jittered versions of the path is rendered to shade pixels based on the accumulated coverage weights. The anti-aliased rendered paths may be filled or stroked without tessellating the paths.
    Type: Application
    Filed: May 17, 2011
    Publication date: November 24, 2011
    Inventor: Mark J. KILGARD
  • Publication number: 20110285721
    Abstract: One embodiment of the present invention sets forth a technique for stroking rendered paths. Path rendering may be accelerated when a graphics processing unit or other processor is configured to identify pixels that are within half of the stroke width of any point along a path to be stroked. The path is represented by quadratic Bèzier segments and a cubic equation is evaluated to determine whether or not each point in a conservative hull that bounds the quadratic Bèzier segment is within the stroke width.
    Type: Application
    Filed: April 29, 2011
    Publication date: November 24, 2011
    Inventor: Mark J. KILGARD