Patents by Inventor Cole Brooking

Cole Brooking 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: 20220318945
    Abstract: To optimize the compilation of shaders for execution within an application, a computer system discovers the context in which the shaders are executed. The application is compiled and executed on a target platform. Snapshots of the application during execution are captured. A snapshot includes data and commands passed between the central processing unit and the graphics processing unit of the target platform to generate a single frame of graphics data. The shaders used in these snapshots are identified. These shaders are compiled with a number of different permutations of available compiler options, resulting in sets of differently compiled shaders. The snapshot is re-executed with the sets of differently compiled shaders, and performance is measured. The set of compiler options that results in compiled shaders providing better performance can be used as the set of compilation parameters for the set of shaders for this application.
    Type: Application
    Filed: June 7, 2022
    Publication date: October 6, 2022
    Inventors: Ivan NEVRAEV, Cole BROOKING, J. Andrew GOOSSEN, Eric CHRISTOFFERSEN, Jason STRAYER
  • Patent number: 11379943
    Abstract: To optimize the compilation of shaders for execution within an application, a computer system discovers the context in which the shaders are executed. The application is compiled and executed on a target platform. Snapshots of the application during execution are captured. A snapshot includes data and commands passed between the central processing unit and the graphics processing unit of the target platform to generate a single frame of graphics data. The shaders used in these snapshots are identified. These shaders are compiled with a number of different permutations of available compiler options, resulting in sets of differently compiled shaders. The snapshot is re-executed with the sets of differently compiled shaders, and performance is measured. The set of compiler options that results in compiled shaders providing better performance can be used as the set of compilation parameters for the set of shaders for this application.
    Type: Grant
    Filed: January 31, 2019
    Date of Patent: July 5, 2022
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Ivan Nevraev, Cole Brooking, J. Andrew Goossen, Eric Christoffersen, Jason Strayer
  • Patent number: 10445218
    Abstract: Methods and devices for testing graphics hardware may include reading content of a selected capture file from a plurality of capture files. The methods and devices may include transferring content from the selected capture file to an emulator memory of an emulator separate from the computer device. The methods and devices may include executing at least one pseudo central processing unit (pseudo CPU) operation to coordinate the execution of work on a graphics processing unit (GPU) of the emulator using the content from the selected capture file to test the GPU. The methods and devices may include receiving and store rendered image content from the emulator when the work is completed.
    Type: Grant
    Filed: June 6, 2017
    Date of Patent: October 15, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Aaron Rodriguez Hernandez, Jason Gould, Cole Brooking, Nihar Mohapatra, Parikshit Gopal Narkhede, Veena K. Malwankar
  • Publication number: 20190236750
    Abstract: To optimize the compilation of shaders for execution within an application, a computer system discovers the context in which the shaders are executed. The application is compiled and executed on a target platform. Snapshots of the application during execution are captured. A snapshot includes data and commands passed between the central processing unit and the graphics processing unit of the target platform to generate a single frame of graphics data. The shaders used in these snapshots are identified. These shaders are compiled with a number of different permutations of available compiler options, resulting in sets of differently compiled shaders. The snapshot is re-executed with the sets of differently compiled shaders, and performance is measured. The set of compiler options that results in compiled shaders providing better performance can be used as the set of compilation parameters for the set of shaders for this application.
    Type: Application
    Filed: January 31, 2019
    Publication date: August 1, 2019
    Inventors: Ivan NEVRAEV, Cole BROOKING, J. Andrew GOOSSEN, Eric CHRISTOFFERSEN, Jason STRAYER
  • Patent number: 10210591
    Abstract: To optimize the compilation of shaders for execution within an application, a computer system discovers the context in which the shaders are executed. The application is compiled and executed on a target platform. Snapshots of the application during execution are captured. A snapshot includes data and commands passed between the central processing unit and the graphics processing unit of the target platform to generate a single frame of graphics data. The shaders used in these snapshots are identified. These shaders are compiled with a number of different permutations of available compiler options, resulting in sets of differently compiled shaders. The snapshot is re-executed with the sets of differently compiled shaders, and performance is measured. The set of compiler options that results in compiled shaders providing better performance can be used as the set of compilation parameters for the set of shaders for this application.
    Type: Grant
    Filed: February 2, 2015
    Date of Patent: February 19, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Ivan Nevraev, Cole Brooking, J. Andrew Goossen, Eric Christoffersen, Jason Strayer
  • Patent number: 10198784
    Abstract: The techniques and systems described herein are directed to capturing commands in a multi-engine graphics processing unit (GPU). Captured commands can be played back by a developer to optimize software, hardware, and drivers. To accurately capture commands and memory associated with the commands during execution, dependencies between command buffer segments associated with the various GPU engines may be determined and used to divide a command buffer segment into atomic elements (which may also be referred to as seglets). Command buffer segments are analyzed to identify synchronization commands, which may represent a point in a command buffer segment that relies on an operation to be completed in another command buffer segment. The command buffer segment can be recursively divided into seglets based on the synchronization commands. The resulting seglets represent command segments that, upon execution, operate without synchronization interference from other command buffer segments.
    Type: Grant
    Filed: July 29, 2016
    Date of Patent: February 5, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Brian Bo Rasmussen, Cole Brooking, Ivan Nevraev
  • Publication number: 20180349252
    Abstract: Methods and devices for testing graphics hardware may include reading content of a selected capture file from a plurality of capture files. The methods and devices may include transferring content from the selected capture file to an emulator memory of an emulator separate from the computer device. The methods and devices may include executing at least one pseudo central processing unit (pseudo CPU) operation to coordinate the execution of work on a graphics processing unit (GPU) of the emulator using the content from the selected capture file to test the GPU. The methods and devices may include receiving and store rendered image content from the emulator when the work is completed.
    Type: Application
    Filed: June 6, 2017
    Publication date: December 6, 2018
    Inventors: Aaron RODRIGUEZ HERNANDEZ, Jason GOULD, Cole BROOKING, Nihar MOHAPATRA, Parikshit NARKHEDE, Veena K. MALWANKAR
  • Publication number: 20180033115
    Abstract: The techniques and systems described herein are directed to capturing commands in a multi-engine graphics processing unit (GPU). Captured commands can be played back by a developer to optimize software, hardware, and drivers. To accurately capture commands and memory associated with the commands during execution, dependencies between command buffer segments associated with the various GPU engines may be determined and used to divide a command buffer segment into atomic elements (which may also be referred to as seglets). Command buffer segments are analyzed to identify synchronization commands, which may represent a point in a command buffer segment that relies on an operation to be completed in another command buffer segment. The command buffer segment can be recursively divided into seglets based on the synchronization commands. The resulting seglets represent command segments that, upon execution, operate without synchronization interference from other command buffer segments.
    Type: Application
    Filed: July 29, 2016
    Publication date: February 1, 2018
    Inventors: Brian Bo Rasmussen, Cole Brooking, Ivan Nevraev
  • Publication number: 20160225118
    Abstract: To optimize the compilation of shaders for execution within an application, a computer system discovers the context in which the shaders are executed. The application is compiled and executed on a target platform. Snapshots of the application during execution are captured. A snapshot includes data and commands passed between the central processing unit and the graphics processing unit of the target platform to generate a single frame of graphics data. The shaders used in these snapshots are identified. These shaders are compiled with a number of different permutations of available compiler options, resulting in sets of differently compiled shaders. The snapshot is re-executed with the sets of differently compiled shaders, and performance is measured. The set of compiler options that results in compiled shaders providing better performance can be used as the set of compilation parameters for the set of shaders for this application.
    Type: Application
    Filed: February 2, 2015
    Publication date: August 4, 2016
    Inventors: Ivan Nevraev, Cole Brooking, J. Andrew Goossen, Eric Christoffersen, Jason Strayer
  • Publication number: 20160224258
    Abstract: To optimize utilization of such dedicated memory by a particular application, the application is executed with multiple permutations of placement of data in the dedicated memory. That application is executed on a target platform, and snapshots of the application during execution are captured on the target platform. A snapshot is a log that includes data and commands passed between the central processing unit and the graphics processing unit of the target platform to generate a single frame of graphics data. Given a snapshot, multiple permutations of resource placement are generated and tested by re-executing the snapshot on the target platform. For multiple snapshots and multiple permutations for each snapshot, the computer system accesses or computes performance statistics. Based on the performance statistics, the computer system determines a layout of data for using the dedicated memory.
    Type: Application
    Filed: February 2, 2015
    Publication date: August 4, 2016
    Inventors: Ivan Nevraev, Cole Brooking, J. Andrew Goossen, Jason Strayer
  • Patent number: 8786609
    Abstract: The placement of one animated element in a virtualized three-dimensional environment can be accomplished with reference to a second animated element and a vector field derived from the relationship thereof. If the first animated element is “inside” the second animated element after the second one was moved to a new animation frame, an existing vector field can be calculated for the region where it is “inside”. The vector field can comprise vectors that can have a direction and magnitude commensurate with the initial velocity and direction required to move the first animated element back outside of the second one. Movement of the first animated element can then be simulated in accordance with the vector field and afterwards a determination can be made whether any portion still remains inside. Such an iterative process can move and place the first animation element prior to the next move of the second animation element.
    Type: Grant
    Filed: June 1, 2010
    Date of Patent: July 22, 2014
    Assignee: Microsoft Corporation
    Inventors: Pengpeng Wang, Nishant Dani, Cole Brooking, Pragyana K. Mishra, Manjula Ananthnarayanan Iyer
  • Patent number: 8165711
    Abstract: Sketches, notes and 2D computer drawings of a designed garment can be input into a computing device. The computing device can apply optical character recognition, shape inference, figure recognition, domain intelligence and inferred knowledge to automatically generate a garment construction specification from the input information. The garment construction specification can include a detailed description of each component of the garment, followed by step-by-step instructions, such as could be consumed by a computer-controlled device, regarding the joining of the components to create the garment. A virtual garment generation mechanism can create a 3D rendering of the garment by constructing each component and then joining them together to act as a single 3D piece. Material behavioral properties can also be applied to the 3D rendering.
    Type: Grant
    Filed: January 5, 2010
    Date of Patent: April 24, 2012
    Assignee: Microsoft Corporation
    Inventors: Cole Brooking, Nishant Dani, Pragyana K. Mishra, Pengpeng Wang, Manjula Ananthnarayanan Iyer
  • Publication number: 20110292053
    Abstract: The placement of one animated element in a virtualized three-dimensional environment can be accomplished with reference to a second animated element and a vector field derived from the relationship thereof. If the first animated element is “inside” the second animated element after the second one was moved to a new animation frame, an existing vector field can be calculated for the region where it is “inside”. The vector field can comprise vectors that can have a direction and magnitude commensurate with the initial velocity and direction required to move the first animated element back outside of the second one. Movement of the first animated element can then be simulated in accordance with the vector field and afterwards a determination can be made whether any portion still remains inside. Such an iterative process can move and place the first animation element prior to the next move of the second animation element.
    Type: Application
    Filed: June 1, 2010
    Publication date: December 1, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: Pengpeng Wang, Nishant Dani, Cole Brooking, Pragyana K. Mishra, Manjula Ananthnarayanan Iyer
  • Publication number: 20110296331
    Abstract: A best-fit rigged body model can be generated for a user based on body measurements provided by the user. Existing, and already known, rigged body models can be filtered, such as via a Principal Component Analysis to eliminate body models that are very similar in a measurement space whose dimensions are comprised of body measurements that can be, or actually were, collected from the user. The body measurements provided by the user can be expressed, in measurement space, as a combination of fractions of one or more existing body models. Such a combination can be computed through a Least Square Error analysis. A best-fit rigged body model can be generated for a user by amalgamating existing rigged body models in accordance with this previously determined combination of fractions of the one or more existing body models.
    Type: Application
    Filed: June 1, 2010
    Publication date: December 1, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: Manjula Ananthnarayanan Iyer, Cole Brooking, Nishant Dani, Pengpeng Wang, Pragyana K. Mishra
  • Publication number: 20110234591
    Abstract: Viewing apparel in a store or a catalog may not show a purchaser how the item will look in different light or settings. A user may select elements of a scene, such as a setting, a mannequin, a pose for the mannequin, and apparel/accessories from a web browser-based application. The selected elements are processed by a hierarchy of services that first divide the scene into component elements, render each element, and return the result to a composition server that combines and flattens the renderings into a 2D image. The 2D image is viewable on any platform or browser without the need for special graphics hardware.
    Type: Application
    Filed: March 26, 2010
    Publication date: September 29, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: Pragyana Mishra, Nishant Dani, Cole Brooking, Pengpeng Wang, Manjula A. Iyer
  • Publication number: 20110166682
    Abstract: Sketches, notes and 2D computer drawings of a designed garment can be input into a computing device. The computing device can apply optical character recognition, shape inference, figure recognition, domain intelligence and inferred knowledge to automatically generate a garment construction specification from the input information. The garment construction specification can include a detailed description of each component of the garment, followed by step-by-step instructions, such as could be consumed by a computer-controlled device, regarding the joining of the components to create the garment. A virtual garment generation mechanism can create a 3D rendering of the garment by constructing each component and then joining them together to act as a single 3D piece. Material behavioral properties can also be applied to the 3D rendering.
    Type: Application
    Filed: January 5, 2010
    Publication date: July 7, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: Cole Brooking, Nishant Dani, Pragyana K. Mishra, Pengpeng Wang, Manjula Ananthnarayanan Iyer