Patents by Inventor Jeffrey T. Kiel

Jeffrey T. Kiel 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).

  • Patent number: 9292414
    Abstract: A system, method, and computer program product are provided for debugging graphics programs via a system with a single graphics processing unit. The method includes the steps of storing an initial state of an application programming interface context in a memory, intercepting a stream of API commands associated with the frame, transmitting the stream of API commands to a software layer that implements the API to render the frame, and in response to a breakpoint, storing a graphics processing unit context in the memory. The initial state of the API context corresponds to the start of a frame, and the stream of API commands are generated by a graphics application.
    Type: Grant
    Filed: November 8, 2013
    Date of Patent: March 22, 2016
    Assignee: NVIDIA Corporation
    Inventors: Jeffrey T. Kiel, Thomas H. Klein
  • Patent number: 8966272
    Abstract: Embodiments of the present invention are directed to a computer-implemented method for author verification and authorization of object code. In one embodiment, program object code is linked with a plurality of data blocks to create linked object code and a MAP file. Thereafter, author verification is performed by executing a plurality of comparisons between the linked object code and the MAP file. In another embodiment, a digital signing procedure is performed on linked object code by creating a signature data block. The signature data block is then encrypted and written to the linked object code to create digitally-signed object code. In another embodiment, an application program embodied in linked object code generates a data packet. The data packet is then compared to a previously-generated signature data packet from the linked object code to determine if the linked object code is authorized.
    Type: Grant
    Filed: December 31, 2009
    Date of Patent: February 24, 2015
    Assignee: NVIDIA Corporation
    Inventors: Jeffrey T. Kiel, Andrei Leonid Osnovich
  • Patent number: 8963932
    Abstract: A method of calculating performance parameters for a type of data being executed by a unified processing subunit. In one embodiment, a task (e.g., a draw call) is executed by a processing pipeline (e.g., a GPU). An ALU within a unified processing subunit (e.g., a unified shader processing unit) is queried to determine a type of data (e.g., vertex processing, pixel shading) being processed by the ALU. Performance parameters (e.g., bottleneck and utilization) for the type of data being processed by the ALU is calculated and displayed (e.g., stacked graph). Accordingly, software developers can visualize component workloads of a unified processing subunit architecture. As a result, utilization of the unified processing subunit processing a particular data may be maximized while bottleneck is reduced. Therefore, the efficiency of the unified processing subunit and the processing pipeline is improved.
    Type: Grant
    Filed: December 18, 2006
    Date of Patent: February 24, 2015
    Assignee: Nvidia Corporation
    Inventors: Jeffrey T. Kiel, Derek M. Cornish
  • Publication number: 20140146062
    Abstract: A system, method, and computer program product are provided for debugging graphics programs via a system with a single graphics processing unit. The method includes the steps of storing an initial state of an application programming interface context in a memory, intercepting a stream of API commands associated with the frame, transmitting the stream of API commands to a software layer that implements the API to render the frame, and in response to a breakpoint, storing a graphics processing unit context in the memory. The initial state of the API context corresponds to the start of a frame, and the stream of API commands are generated by a graphics application.
    Type: Application
    Filed: November 8, 2013
    Publication date: May 29, 2014
    Applicant: NVIDIA Corporation
    Inventors: Jeffrey T. Kiel, Thomas H. Klein
  • Patent number: 8452981
    Abstract: Embodiments of the present invention are directed to a computer-implemented method for author verification and authorization of object code. In one embodiment, program object code is linked with a plurality of data blocks to create linked object code and a MAP file. Thereafter, author verification is performed by executing a plurality of comparisons between the linked object code and the MAP file. In another embodiment, a digital signing procedure is performed on linked object code by creating a signature data block. The signature data block is then encrypted and written to the linked object code to create digitally-signed object code. In another embodiment, an application program embodied in linked object code generates a data packet. The data packet is then compared to a previously-generated signature data packet from the linked object code to determine if the linked object code is authorized.
    Type: Grant
    Filed: March 1, 2006
    Date of Patent: May 28, 2013
    Assignee: Nvidia Corporation
    Inventors: Jeffrey T. Kiel, Andrei Leonid Osnovich
  • Patent number: 8436864
    Abstract: A computer-implemented method and user interface for organizing graphical operations and displaying performance data of a graphics processing pipeline. More specifically, embodiments provide a convenient and effective mechanism for enhancing graphics processing by automatically determining and grouping graphical operations with similar state attributes relating to one or more units of the graphics pipeline. As such, pipeline adjustments for reducing execution time of one graphical operation may benefit other graphical operations with similar state attributes, thereby reducing the number of pipeline adjustments and allowing more careful selection of graphical operations to increase performance and reduce image degradation. Also, the display of the grouped graphical operations also provides information for determining the troublesome operations. In one embodiment, the groups are ranked by their respective execution time.
    Type: Grant
    Filed: August 1, 2006
    Date of Patent: May 7, 2013
    Assignee: Nvidia Corporation
    Inventors: Raul Aguaviva, Jeffrey T. Kiel, Sebastien Julien Domine, William Orville Ramey, II
  • Patent number: 8436870
    Abstract: A computer-implemented user interface and method for graphical processing analysis. More specifically, embodiments provide a convenient and effective mechanism for presenting GPU performance information such that one or more bottlenecking and/or underutilized graphics pipeline units may be identified. The presentation of the information enables quick comparison of all graphical operations within a frame for analysis with increased granularity. Additionally, the performance of graphical operations with common state attributes may be compared to more effectively and efficiently enhance GPU performance.
    Type: Grant
    Filed: August 1, 2006
    Date of Patent: May 7, 2013
    Assignee: Nvidia Corporation
    Inventors: Raul Aguaviva, Jeffrey T. Kiel, Sebastien Julien Domine, William Orville Ramey, II
  • Patent number: 8296738
    Abstract: One embodiment of the present invention sets forth a system that allows a software developer to perform shader debugging and performance tuning. The system includes an interception layer between the software application and the application programming interface (API). The interception layer is configured to intercept and store source code versions of the original shaders included in the application. For each object in the frame, the interception layer makes shader source code available to the developer, so that the developer can modify the source code as needed, re-compile only the modified shader source code, and run the application. Consequently, shader debugging and performance tuning may be carried out in a manner that is more efficient and effective relative to prior art approaches.
    Type: Grant
    Filed: August 13, 2007
    Date of Patent: October 23, 2012
    Assignee: NVIDIA Corporation
    Inventors: Jeffrey T. Kiel, Derek M. Cornish
  • Patent number: 8276129
    Abstract: One embodiment of the present invention sets forth a system that allows a software developer to perform shader debugging and performance tuning. The system includes an interception layer between the software application and the application programming interface (API). The interception layer is configured to intercept and store source code versions of the original shaders included in the application. For each object in the frame, the interception layer makes shader source code available to the developer, so that the developer can modify the source code as needed, re-compile only the modified shader source code, and run the application. Consequently, shader debugging and performance tuning may be carried out in a manner that is more efficient and effective relative to prior art approaches.
    Type: Grant
    Filed: August 13, 2007
    Date of Patent: September 25, 2012
    Assignee: NVIDIA Corporation
    Inventors: Jeffrey T. Kiel, Derek M. Cornish
  • Patent number: 8031969
    Abstract: Methods and apparatuses for selecting appropriate anisotropic filtering levels for images. An image is obtained, that image is Fourier transformed into its frequency components, and then those frequency components are normalized. The Fourier transformed into its frequency components are assigned to Fourier buckets (or bins) having dimensions selected in accord with the number of available anisotropic filtering levels. A predetermined threshold value is used to select one of the Fourier buckets by comparing the predetermined threshold value with the contents of the Fourier buckets. The selected Fourier bucket is used to determine an appropriate anisotropic filtering level for the image. Some embodiments of the present invention can provide for an automatic selection and setting of the appropriate anisotropic filtering level.
    Type: Grant
    Filed: September 7, 2004
    Date of Patent: October 4, 2011
    Assignee: NVIDIA Corporation
    Inventor: Jeffrey T. Kiel
  • Patent number: 8006232
    Abstract: Embodiments of the invention provide a debugging tool configured to serialize function calls made to a graphics API on a remote device such as a hand-held videogame system. Embodiments of the invention may be used to emulate the performance of the same graphics API calls made on the remote device to generate a given display frame. An instrumented driver may capture and serialize each graphics API call invoked by a graphics application running on the remote device. Thus, the host component of the graphical application debugger may generate and display the same image as displayed on the target device without the latency of waiting for a set of framebuffer data to be transmitted over the communication link for each frame rendered on the target device.
    Type: Grant
    Filed: July 30, 2007
    Date of Patent: August 23, 2011
    Assignee: NVIDIA Corporation
    Inventors: Philip A. Rideout, Jason R. Allen, Jeffrey T. Kiel, Sébastien Julien Dominé
  • Patent number: 8001531
    Abstract: Embodiments of the invention provide a debugging tool configured to translate a pre-compiled binary shader as part of debugging a graphics application running on a remote device. An instrumented driver may capture and serialize each graphics API call invoked by a graphics application running on the remote device along with any pre-compiled binary shader programs supplied by the graphics application. The graphical application debugger may translate the shader program into a form appropriate for graphics hardware present on the host system. By replaying the same sequence of API calls invoked on the target device using the same shader programs, the graphical application debugger may generate and display the same image displayed on the target device without the latency of waiting for a full set of framebuffer data to be transmitted over the communication link for each frame rendered on the target device.
    Type: Grant
    Filed: July 30, 2007
    Date of Patent: August 16, 2011
    Assignee: NVIDIA Corporation
    Inventors: Philip A. Rideout, Jason R. Allen, Jeffrey T. Kiel, Sébastien Julien Dominé
  • Patent number: 7992137
    Abstract: Embodiments of the invention provide a data communications protocol and client server architecture used for the performance analysis and debugging of a graphics application running on a remote device. The remote device may be a hand-held video game console, a mobile phone, or convergence device, but may also be a personal computer system. A graphical application debugger may include a host component and a target component. The host component executes on a host system and presents a debugging interface to a developer. The target component may record data related to the performance of a graphics pipeline on the target device and transmit this data back to the host system over a communication link. The target component may be included as part of an instrumented version of a graphics device driver.
    Type: Grant
    Filed: July 30, 2007
    Date of Patent: August 2, 2011
    Assignee: NVIDIA Corporation
    Inventors: Philip A. Rideout, Jason R. Allen, Jeffrey T. Kiel, Sébastien Julien Dominé
  • Patent number: 7891012
    Abstract: Embodiments of the present invention are directed to a method and computer-usable medium for determining the authorization status of object code. In one embodiment, an application program embodied in an executable file is executed to periodically send a first data packet to a driver. A counter is decremented for each periodic interval in which the data packet is not received, and is reset in response to the data packet being received. The authorized status of the executable file is revoked if the counter reaches a predetermined value. In another embodiment, an application program generates a second data packet by creating a signature of the executable file and then encrypting that signature. The second data packet is sent to a driver for comparison with a previously-obtained packet. Thereafter, the authorized status of the executable file is revoked if a portion of the second data packet does not match the previously-obtained packet.
    Type: Grant
    Filed: March 1, 2006
    Date of Patent: February 15, 2011
    Assignee: NVIDIA Corporation
    Inventors: Jeffrey T. Kiel, Andrei Leonid Osnovich
  • Patent number: 7778800
    Abstract: A method of calculating utilization and bottleneck performance parameters of a processing unit within a graphical processing unit (GPU). The utilization is a measure of a percentage that the processing unit is utilized over a draw call execution time. The bottleneck is the sum of the time period that the processing unit is active, the time period that the processing unit is full and does not accept data from an upstream processing unit, minus the time period that the processing unit is paused because the downstream processing unit is busy and cannot accept data, all over the execution time of the draw call. Performance parameters may be determined by sampling the processing unit and incrementing a counter when a condition is true. The method is repeated for the same draw call, for each processing unit of the GPU, and for a plurality of draw calls comprising a frame.
    Type: Grant
    Filed: August 1, 2006
    Date of Patent: August 17, 2010
    Assignee: Nvidia Corporation
    Inventors: Raul Aguaviva, Jeffrey T. Kiel, Sebastien Julien Domine, William Orville Ramey, II
  • Publication number: 20100169654
    Abstract: Embodiments of the present invention are directed to a computer-implemented method for author verification and authorization of object code. In one embodiment, program object code is linked with a plurality of data blocks to create linked object code and a MAP file. Thereafter, author verification is performed by executing a plurality of comparisons between the linked object code and the MAP file. In another embodiment, a digital signing procedure is performed on linked object code by creating a signature data block. The signature data block is then encrypted and written to the linked object code to create digitally-signed object code. In another embodiment, an application program embodied in linked object code generates a data packet. The data packet is then compared to a previously-generated signature data packet from the linked object code to determine if the linked object code is authorized.
    Type: Application
    Filed: December 31, 2009
    Publication date: July 1, 2010
    Applicant: NVIDIA CORPORATION
    Inventors: Jeffrey T. Kiel, Andrei Leonid Osnovich
  • Patent number: 7545984
    Abstract: Methods, apparatuses, and systems are presented for measuring difference between graphics images relating to performing an arithmetic operation involving a first graphics image comprising a plurality of first pixels and a second graphics image comprising a plurality of second pixels to produce a difference image comprising a plurality of difference pixels, generating measures of proximity from a plurality of ranges of observation within the difference image, wherein the measures of proximity represent spatial proximity of difference pixels to other difference pixels within the difference image, and applying non-uniform weighting to the difference pixels to produce a weighted difference image, wherein the non-uniform weighting depends on the measures of proximity generated from the plurality of ranges of observation.
    Type: Grant
    Filed: December 16, 2004
    Date of Patent: June 9, 2009
    Assignee: Nvidia Corporation
    Inventors: Jeffrey T. Kiel, Eldon S. Larsen
  • Publication number: 20090037774
    Abstract: Embodiments of the invention provide a data communications protocol and client server architecture used for the performance analysis and debugging of a graphics application running on a remote device. The remote device may be a hand-held video game console, a mobile phone, or convergence device, but may also be a personal computer system. A graphical application debugger may include a host component and a target component. The host component executes on a host system and presents a debugging interface to a developer. The target component may record data related to the performance of a graphics pipeline on the target device and transmit this data back to the host system over a communication link. The target component may be included as part of an instrumented version of a graphics device driver.
    Type: Application
    Filed: July 30, 2007
    Publication date: February 5, 2009
    Inventors: Philip A. Rideout, Jason R. Allen, Jeffrey T. Kiel, Sebastien Julien Domine
  • Publication number: 20080030511
    Abstract: A computer-implemented method and user interface for organizing graphical operations and displaying performance data of a graphics processing pipeline. More specifically, embodiments provide a convenient and effective mechanism for enhancing graphics processing by automatically determining and grouping graphical operations with similar state attributes relating to one or more units of the graphics pipeline. As such, pipeline adjustments for reducing execution time of one graphical operation may benefit other graphical operations with similar state attributes, thereby reducing the number of pipeline adjustments and allowing more careful selection of graphical operations to increase performance and reduce image degradation. Also, the display of the grouped graphical operations also provides information for determining the troublesome operations. In one embodiment, the groups are ranked by their respective execution time.
    Type: Application
    Filed: August 1, 2006
    Publication date: February 7, 2008
    Inventors: Raul Aguaviva, Jeffrey T. Kiel, Sebastien Julien Domine, William Orville Ramey
  • Publication number: 20080033696
    Abstract: A method of calculating utilization and bottleneck performance parameters of a processing unit within a graphical processing unit (GPU). The utilization is a measure of a percentage that the processing unit is utilized over a draw call execution time. The bottleneck is the sum of the time period that the processing unit is active, the time period that the processing unit is full and does not accept data from an upstream processing unit, minus the time period that the processing unit is paused because the downstream processing unit is busy and cannot accept data, all over the execution time of the draw call. Performance parameters may be determined by sampling the processing unit and incrementing a counter when a condition is true. The method is repeated for the same draw call, for each processing unit of the GPU, and for a plurality of draw calls comprising a frame.
    Type: Application
    Filed: August 1, 2006
    Publication date: February 7, 2008
    Inventors: Raul Aguaviva, Jeffrey T. Kiel, Sebastien Julien Domine, William Orville Ramey