Patents by Inventor Andrew M. Sowerby

Andrew M. Sowerby 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: 11487644
    Abstract: Debugging a graphics application executing on a target device. The graphics application may execute CPU instructions to generate graphics commands to graphics hardware for generation of graphics on a display. A breakpoint for the graphics application may be detected at a first time. In response to detecting the breakpoint, one or more graphics commands which were executed by the graphics hardware proximate to the first time may be displayed. Additionally, source code corresponding to CPU instructions which generated the one or more graphics commands may be displayed.
    Type: Grant
    Filed: January 22, 2021
    Date of Patent: November 1, 2022
    Assignee: Apple Inc.
    Inventors: Andrew M. Sowerby, Jean-Francois Roy, Filip Iliescu
  • Publication number: 20210224181
    Abstract: Debugging a graphics application executing on a target device. The graphics application may execute CPU instructions to generate graphics commands to graphics hardware for generation of graphics on a display. A breakpoint for the graphics application may be detected at a first time. In response to detecting the breakpoint, one or more graphics commands which were executed by the graphics hardware proximate to the first time may be displayed. Additionally, source code corresponding to CPU instructions which generated the one or more graphics commands may be displayed.
    Type: Application
    Filed: January 22, 2021
    Publication date: July 22, 2021
    Inventors: Andrew M. SOWERBY, Jean-Francois ROY, Filip ILIESCU
  • Patent number: 10901873
    Abstract: Debugging a graphics application executing on a target device. The graphics application may execute central processing unit (CPU) instructions to generate graphics commands to graphics hardware for generation of graphics on a display. A breakpoint for the graphics application may be detected at a first time. In response to detecting the breakpoint, one or more graphics commands which were executed by the graphics hardware proximate to the first time may be displayed. Additionally, source code corresponding to CPU instructions which generated the one or more graphics commands may be displayed.
    Type: Grant
    Filed: December 21, 2017
    Date of Patent: January 26, 2021
    Assignee: Apple Inc.
    Inventors: Andrew M. Sowerby, Jean-Francois Roy, Filip Iliescu
  • Patent number: 10628909
    Abstract: A Resource Dependency Viewer for graphics processing unit (GPU) execution information is disclosed. The Resource Dependency Viewer provides profiling/debugging information concurrently with information about execution flow, resource utilization, execution statistics, and orphaned resources, among other things. A user-interactive graph (“dependency graph”) may be provided via a graphical user interface to allow interactive analysis of code executed on a GPU (e.g., graphics or compute code). Resource utilization and execution flow of encoders may be identified by analyzing contents of a GPU workload representative of a GPU execution trace to generate the dependency graph. Information about dependencies and execution statistics may be further analyzed using heuristics to identify potential problem areas. The dependency graph may include visual indicators of these problem areas.
    Type: Grant
    Filed: June 1, 2018
    Date of Patent: April 21, 2020
    Assignee: Apple Inc.
    Inventors: Ohad Frenkel, Eric O. Sunalp, Dustin J. Greene, Alp Yucebilgin, Domenico Troiano, Maximilian Christ, Andrew M. Sowerby, Lionel Lemarie, Sebastian Schaefer
  • Publication number: 20190369849
    Abstract: Systems, methods, and computer readable media to visualize execution history with a shader debugger are described. Various implementations present a first graphical user interface (GUI) for navigating through an executed graphics frame and receive with the first GUI at least one user input that defines a region of interest. In response to receiving the user input, the shader debugger presents a second GUI that includes execution history of a first graphics processor thread associated with the region of interest. After receiving a second user input with the second GUI to switch to a second graphics processor thread associated with the region of interest, the shader debugger updates the second GUI with the execution history of the second graphics processor thread.
    Type: Application
    Filed: June 1, 2018
    Publication date: December 5, 2019
    Inventors: Xavier Verguin Gonzalez, Andrew M. Sowerby, Alp Yucebilgin, Maximilian Christ, Ubaka C. Onyechi
  • Publication number: 20190370927
    Abstract: A Resource Dependency Viewer for graphics processing unit (GPU) execution information is disclosed. The Resource Dependency Viewer provides profiling/debugging information concurrently with information about execution flow, resource utilization, execution statistics, and orphaned resources, among other things. A user-interactive graph (“dependency graph”) may be provided via a graphical user interface to allow interactive analysis of code executed on a GPU (e.g., graphics or compute code). Resource utilization and execution flow of encoders may be identified by analyzing contents of a GPU workload representative of a GPU execution trace to generate the dependency graph. Information about dependencies and execution statistics may be further analyzed using heuristics to identify potential problem areas. The dependency graph may include visual indicators of these problem areas.
    Type: Application
    Filed: June 1, 2018
    Publication date: December 5, 2019
    Inventors: Ohad Frenkel, Eric O. Sunalp, Dustin J. Greene, Alp Yucebilgin, Domenico Troiano, Maximilian Christ, Andrew M. Sowerby, Lionel Lemarie, Sebastian Schaefer
  • Patent number: 10402931
    Abstract: Tracking GPU tasks includes receiving a GPU command buffer, executing the command buffer, and generating events in response to execution of the command buffer, each event generated at a different portion of a GPU pipeline. Generating events includes tagging each event with a unique event-type identifier, tagging each event so as to identify the command buffer, and storing each tagged event is in a memory. Displaying GPU tasks, including obtaining, from a kernel portion of an operating system, event records of a first type, partitioning the events into two or more collections of event records, and displaying two or more of the event records of the first collection in a first temporally ordered sequence.
    Type: Grant
    Filed: June 7, 2015
    Date of Patent: September 3, 2019
    Assignee: Apple Inc.
    Inventors: Andrew M. Sowerby, Ahmet S. Tekin, Joseph E. Grzywacz
  • Patent number: 10310830
    Abstract: Systems, methods, and computer readable media to improve the development of image processing intensive programs are described. In general, techniques are disclosed to non-intrusively monitor the run-time performance of shader programs on a graphics processing unit (GPU)—that is, to profile shader program execution. More particularly, the shader profiling comprises of sampling data during the execution of a compiled code on GPU. The execution duration of the sequences of instructions within the code is determined. Subsequently, based relative latency of the instructions within the sequence, the duration time for each binary instruction is determined. The binary instructions are then mapped to source code in order to obtain the amount of time each source code instruction in a shader take to execute per draw call.
    Type: Grant
    Filed: June 8, 2017
    Date of Patent: June 4, 2019
    Assignee: Apple Inc.
    Inventors: Syed Irfan Zaidi, Sun Tjen Fam, Puyan Lotfi, Venkat R. Indukuru, Jun Pan, Andrew M. Sowerby, Jean-Luc Duprat
  • Publication number: 20180349119
    Abstract: Systems, methods, and computer readable media to improve the development of image processing intensive programs are described. In general, techniques are disclosed to non-intrusively monitor the run-time performance of shader programs on a graphics processing unit (GPU)—that is, to profile shader program execution. More particularly, the shader profiling comprises of sampling data during the execution of a compiled code on GPU. The execution duration of the sequences of instructions within the code is determined. Subsequently, based relative latency of the instructions within the sequence, the duration time for each binary instruction is determined. The binary instructions are then mapped to source code in order to obtain the amount of time each source code instruction in a shader take to execute per draw call.
    Type: Application
    Filed: June 8, 2017
    Publication date: December 6, 2018
    Inventors: Syed Irfan Zaidi, Sun Tjen Fam, Puyan Lotfi, Venkat R. Indukuru, Jun Pan, Andrew M. Sowerby, Jean-Luc Duprat
  • Publication number: 20180217919
    Abstract: Debugging a graphics application executing on a target device. The graphics application may execute CPU instructions to generate graphics commands to graphics hardware for generation of graphics on a display. A breakpoint for the graphics application may be detected at a first time. In response to detecting the breakpoint, one or more graphics commands which were executed by the graphics hardware proximate to the first time may be displayed. Additionally, source code corresponding to CPU instructions which generated the one or more graphics commands may be displayed.
    Type: Application
    Filed: December 21, 2017
    Publication date: August 2, 2018
    Inventors: Andrew M. SOWERBY, Jean-Francois ROY, Filip ILIESCU
  • Patent number: 9892018
    Abstract: Debugging a graphics application executing on a target device. The graphics application may execute CPU instructions to generate graphics commands to graphics hardware for generation of graphics on a display. A breakpoint for the graphics application may be detected at a first time. In response to detecting the breakpoint, one or more graphics commands which were executed by the graphics hardware proximate to the first time may be displayed. Additionally, source code corresponding to CPU instructions which generated the one or more graphics commands may be displayed.
    Type: Grant
    Filed: March 28, 2016
    Date of Patent: February 13, 2018
    Assignee: APPLE INC.
    Inventors: Andrew M. Sowerby, Jean-Francois Roy, Filip Iliescu
  • Publication number: 20170031802
    Abstract: Debugging a graphics application executing on a target device. The graphics application may execute CPU instructions to generate graphics commands to graphics hardware for generation of graphics on a display. A breakpoint for the graphics application may be detected at a first time. In response to detecting the breakpoint, one or more graphics commands which were executed by the graphics hardware proximate to the first time may be displayed. Additionally, source code corresponding to CPU instructions which generated the one or more graphics commands may be displayed.
    Type: Application
    Filed: March 28, 2016
    Publication date: February 2, 2017
    Applicant: Apple Inc.
    Inventors: Andrew M. Sowerby, Jean-Francois Roy, Filip Iliescu
  • Publication number: 20160358302
    Abstract: Tracking GPU tasks includes receiving a GPU command buffer, executing the command buffer, and generating events in response to execution of the command buffer, each event generated at a different portion of a GPU pipeline. Generating events includes tagging each event with a unique event-type identifier, tagging each event so as to identify the command buffer, and storing each tagged event is in a memory. Displaying GPU tasks, including obtaining, from a kernel portion of an operating system, event records of a first type, partitioning the events into two or more collections of event records, and displaying two or more of the event records of the first collection in a first temporally ordered sequence.
    Type: Application
    Filed: June 7, 2015
    Publication date: December 8, 2016
    Inventors: Andrew M. Sowerby, Ahmet S. Tekin, Joseph E. Grzywacz
  • Patent number: 9298586
    Abstract: Debugging a graphics application executing on a target device. The graphics application may execute CPU instructions to generate graphics commands to graphics hardware for generation of graphics on a display. A breakpoint for the graphics application may be detected at a first time. In response to detecting the breakpoint, one or more graphics commands which were executed by the graphics hardware proximate to the first time may be displayed. Additionally, source code corresponding to CPU instructions which generated the one or more graphics commands may be displayed.
    Type: Grant
    Filed: November 29, 2011
    Date of Patent: March 29, 2016
    Assignee: Apple Inc.
    Inventors: Andrew M. Sowerby, Jean-Francois Roy, Filip Iliescu
  • Patent number: 8933948
    Abstract: Analyzing an application executing on a target device. An application may be executed on a target device. Low cost measurement may be gathered regarding the application executing on the target device. In response to a trigger, high cost measurement data may be gathered regarding the application executing on the target device. The high cost measurement data may include graphics commands provided by the application. The graphics commands and related information may be stored and provided to a host. The host may modify the graphics commands to perform experiments to determine performance issues of the application executing on the target device. The host may determine whether the performance is limited by the CPU or the GPU and may determine specific operations that are causing performance issues. The host may provide suggestions for overcoming the performance issues.
    Type: Grant
    Filed: October 1, 2010
    Date of Patent: January 13, 2015
    Assignee: Apple Inc.
    Inventors: Andrew M. Sowerby, Deron D. Johnson, Benjamin N. Lipchak, Jeremy T. Sandmel, John R. Isidoro, Filip Iliescu, Michael T. Mayers
  • Patent number: 8935671
    Abstract: Debugging a graphics application executing on a target device. The graphics application may execute CPU instructions to generate graphics commands to graphics hardware for generation of graphics on a display. A breakpoint for the graphics application may be detected at a first time. In response to detecting the breakpoint, one or more graphics commands which were executed by the graphics hardware proximate to the first time may be displayed. Additionally, source code corresponding to CPU instructions which generated the one or more graphics commands may be displayed.
    Type: Grant
    Filed: November 29, 2011
    Date of Patent: January 13, 2015
    Assignee: Apple Inc.
    Inventors: Andrew M. Sowerby, Benjamin N. Lipchak, Maxwell O. Drukman, Donald Matthew Firlik, Christopher Friesen
  • Patent number: 8887137
    Abstract: Debugging a graphics application executing on a target device. The graphics application may execute CPU instructions to generate graphics commands to graphics hardware for generation of graphics on a display. A breakpoint for the graphics application may be detected at a first time. In response to detecting the breakpoint, one or more graphics commands which were executed by the graphics hardware proximate to the first time may be displayed. Additionally, source code corresponding to CPU instructions which generated the one or more graphics commands may be displayed.
    Type: Grant
    Filed: November 29, 2011
    Date of Patent: November 11, 2014
    Assignee: Apple Inc.
    Inventors: Andrew M. Sowerby, Benjamin N. Lipchak, Maxwell O. Drukman, Donald Matthew Firlik, Christopher Friesen
  • Patent number: 8527239
    Abstract: Analyzing an application executing on a target device. An application may be executed on a target device. Low cost measurement may be gathered regarding the application executing on the target device. In response to a trigger, high cost measurement data may be gathered regarding the application executing on the target device. The high cost measurement data may include graphics commands provided by the application. The graphics commands and related information may be stored and provided to a host. The host may modify the graphics commands to perform experiments to determine performance issues of the application executing on the target device. The host may determine whether the performance is limited by the CPU or the GPU and may determine specific operations that are causing performance issues. The host may provide suggestions for overcoming the performance issues.
    Type: Grant
    Filed: October 1, 2010
    Date of Patent: September 3, 2013
    Assignee: Apple Inc.
    Inventors: Andrew M. Sowerby, Filip Iliescu
  • Patent number: 8462166
    Abstract: Analyzing an application executing on a target device. An application may be executed on a target device. Low cost measurement may be gathered regarding the application executing on the target device. In response to a trigger, high cost measurement data may be gathered regarding the application executing on the target device. The high cost measurement data may include graphics commands provided by the application. The graphics commands and related information may be stored and provided to a host. The host may modify the graphics commands to perform experiments to determine performance issues of the application executing on the target device. The host may determine whether the performance is limited by the CPU or the GPU and may determine specific operations that are causing performance issues. The host may provide suggestions for overcoming the performance issues.
    Type: Grant
    Filed: October 1, 2010
    Date of Patent: June 11, 2013
    Assignee: Apple Inc.
    Inventors: Andrew M. Sowerby, Deron D. Johnson, Benjamin N. Lipchak, Jeremy T. Sandmel, Filip Iliescu, Michael T. Mayers
  • Publication number: 20130091493
    Abstract: Debugging a graphics application executing on a target device. The graphics application may execute CPU instructions to generate graphics commands to graphics hardware for generation of graphics on a display. A breakpoint for the graphics application may be detected at a first time. In response to detecting the breakpoint, one or more graphics commands which were executed by the graphics hardware proximate to the first time may be displayed. Additionally, source code corresponding to CPU instructions which generated the one or more graphics commands may be displayed.
    Type: Application
    Filed: November 29, 2011
    Publication date: April 11, 2013
    Inventors: Andrew M. Sowerby, Benjamin N. Lipchak, Maxwell O. Drukman, Donald Matthew Firlik, Christopher Friesen