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: 11487644Abstract: 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: GrantFiled: January 22, 2021Date of Patent: November 1, 2022Assignee: Apple Inc.Inventors: Andrew M. Sowerby, Jean-Francois Roy, Filip Iliescu
-
Publication number: 20210224181Abstract: 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: ApplicationFiled: January 22, 2021Publication date: July 22, 2021Inventors: Andrew M. SOWERBY, Jean-Francois ROY, Filip ILIESCU
-
Patent number: 10901873Abstract: 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: GrantFiled: December 21, 2017Date of Patent: January 26, 2021Assignee: Apple Inc.Inventors: Andrew M. Sowerby, Jean-Francois Roy, Filip Iliescu
-
Patent number: 10628909Abstract: 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: GrantFiled: June 1, 2018Date of Patent: April 21, 2020Assignee: 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: 20190369849Abstract: 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: ApplicationFiled: June 1, 2018Publication date: December 5, 2019Inventors: Xavier Verguin Gonzalez, Andrew M. Sowerby, Alp Yucebilgin, Maximilian Christ, Ubaka C. Onyechi
-
Publication number: 20190370927Abstract: 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: ApplicationFiled: June 1, 2018Publication date: December 5, 2019Inventors: Ohad Frenkel, Eric O. Sunalp, Dustin J. Greene, Alp Yucebilgin, Domenico Troiano, Maximilian Christ, Andrew M. Sowerby, Lionel Lemarie, Sebastian Schaefer
-
Patent number: 10402931Abstract: 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: GrantFiled: June 7, 2015Date of Patent: September 3, 2019Assignee: Apple Inc.Inventors: Andrew M. Sowerby, Ahmet S. Tekin, Joseph E. Grzywacz
-
Patent number: 10310830Abstract: 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: GrantFiled: June 8, 2017Date of Patent: June 4, 2019Assignee: Apple Inc.Inventors: Syed Irfan Zaidi, Sun Tjen Fam, Puyan Lotfi, Venkat R. Indukuru, Jun Pan, Andrew M. Sowerby, Jean-Luc Duprat
-
Publication number: 20180349119Abstract: 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: ApplicationFiled: June 8, 2017Publication date: December 6, 2018Inventors: Syed Irfan Zaidi, Sun Tjen Fam, Puyan Lotfi, Venkat R. Indukuru, Jun Pan, Andrew M. Sowerby, Jean-Luc Duprat
-
Publication number: 20180217919Abstract: 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: ApplicationFiled: December 21, 2017Publication date: August 2, 2018Inventors: Andrew M. SOWERBY, Jean-Francois ROY, Filip ILIESCU
-
Patent number: 9892018Abstract: 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: GrantFiled: March 28, 2016Date of Patent: February 13, 2018Assignee: APPLE INC.Inventors: Andrew M. Sowerby, Jean-Francois Roy, Filip Iliescu
-
Publication number: 20170031802Abstract: 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: ApplicationFiled: March 28, 2016Publication date: February 2, 2017Applicant: Apple Inc.Inventors: Andrew M. Sowerby, Jean-Francois Roy, Filip Iliescu
-
Publication number: 20160358302Abstract: 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: ApplicationFiled: June 7, 2015Publication date: December 8, 2016Inventors: Andrew M. Sowerby, Ahmet S. Tekin, Joseph E. Grzywacz
-
Patent number: 9298586Abstract: 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: GrantFiled: November 29, 2011Date of Patent: March 29, 2016Assignee: Apple Inc.Inventors: Andrew M. Sowerby, Jean-Francois Roy, Filip Iliescu
-
Patent number: 8933948Abstract: 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: GrantFiled: October 1, 2010Date of Patent: January 13, 2015Assignee: 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: 8935671Abstract: 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: GrantFiled: November 29, 2011Date of Patent: January 13, 2015Assignee: Apple Inc.Inventors: Andrew M. Sowerby, Benjamin N. Lipchak, Maxwell O. Drukman, Donald Matthew Firlik, Christopher Friesen
-
Patent number: 8887137Abstract: 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: GrantFiled: November 29, 2011Date of Patent: November 11, 2014Assignee: Apple Inc.Inventors: Andrew M. Sowerby, Benjamin N. Lipchak, Maxwell O. Drukman, Donald Matthew Firlik, Christopher Friesen
-
Patent number: 8527239Abstract: 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: GrantFiled: October 1, 2010Date of Patent: September 3, 2013Assignee: Apple Inc.Inventors: Andrew M. Sowerby, Filip Iliescu
-
Patent number: 8462166Abstract: 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: GrantFiled: October 1, 2010Date of Patent: June 11, 2013Assignee: Apple Inc.Inventors: Andrew M. Sowerby, Deron D. Johnson, Benjamin N. Lipchak, Jeremy T. Sandmel, Filip Iliescu, Michael T. Mayers
-
Publication number: 20130091493Abstract: 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: ApplicationFiled: November 29, 2011Publication date: April 11, 2013Inventors: Andrew M. Sowerby, Benjamin N. Lipchak, Maxwell O. Drukman, Donald Matthew Firlik, Christopher Friesen