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: 20220318945Abstract: 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: ApplicationFiled: June 7, 2022Publication date: October 6, 2022Inventors: Ivan NEVRAEV, Cole BROOKING, J. Andrew GOOSSEN, Eric CHRISTOFFERSEN, Jason STRAYER
-
Patent number: 11379943Abstract: 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: GrantFiled: January 31, 2019Date of Patent: July 5, 2022Assignee: Microsoft Technology Licensing, LLCInventors: Ivan Nevraev, Cole Brooking, J. Andrew Goossen, Eric Christoffersen, Jason Strayer
-
Patent number: 10445218Abstract: 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: GrantFiled: June 6, 2017Date of Patent: October 15, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Aaron Rodriguez Hernandez, Jason Gould, Cole Brooking, Nihar Mohapatra, Parikshit Gopal Narkhede, Veena K. Malwankar
-
Publication number: 20190236750Abstract: 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: ApplicationFiled: January 31, 2019Publication date: August 1, 2019Inventors: Ivan NEVRAEV, Cole BROOKING, J. Andrew GOOSSEN, Eric CHRISTOFFERSEN, Jason STRAYER
-
Patent number: 10210591Abstract: 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: GrantFiled: February 2, 2015Date of Patent: February 19, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Ivan Nevraev, Cole Brooking, J. Andrew Goossen, Eric Christoffersen, Jason Strayer
-
Patent number: 10198784Abstract: 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: GrantFiled: July 29, 2016Date of Patent: February 5, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Brian Bo Rasmussen, Cole Brooking, Ivan Nevraev
-
Publication number: 20180349252Abstract: 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: ApplicationFiled: June 6, 2017Publication date: December 6, 2018Inventors: Aaron RODRIGUEZ HERNANDEZ, Jason GOULD, Cole BROOKING, Nihar MOHAPATRA, Parikshit NARKHEDE, Veena K. MALWANKAR
-
Publication number: 20180033115Abstract: 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: ApplicationFiled: July 29, 2016Publication date: February 1, 2018Inventors: Brian Bo Rasmussen, Cole Brooking, Ivan Nevraev
-
Publication number: 20160225118Abstract: 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: ApplicationFiled: February 2, 2015Publication date: August 4, 2016Inventors: Ivan Nevraev, Cole Brooking, J. Andrew Goossen, Eric Christoffersen, Jason Strayer
-
Publication number: 20160224258Abstract: 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: ApplicationFiled: February 2, 2015Publication date: August 4, 2016Inventors: Ivan Nevraev, Cole Brooking, J. Andrew Goossen, Jason Strayer
-
Patent number: 8786609Abstract: 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: GrantFiled: June 1, 2010Date of Patent: July 22, 2014Assignee: Microsoft CorporationInventors: Pengpeng Wang, Nishant Dani, Cole Brooking, Pragyana K. Mishra, Manjula Ananthnarayanan Iyer
-
Patent number: 8165711Abstract: 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: GrantFiled: January 5, 2010Date of Patent: April 24, 2012Assignee: Microsoft CorporationInventors: Cole Brooking, Nishant Dani, Pragyana K. Mishra, Pengpeng Wang, Manjula Ananthnarayanan Iyer
-
Publication number: 20110292053Abstract: 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: ApplicationFiled: June 1, 2010Publication date: December 1, 2011Applicant: MICROSOFT CORPORATIONInventors: Pengpeng Wang, Nishant Dani, Cole Brooking, Pragyana K. Mishra, Manjula Ananthnarayanan Iyer
-
Publication number: 20110296331Abstract: 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: ApplicationFiled: June 1, 2010Publication date: December 1, 2011Applicant: MICROSOFT CORPORATIONInventors: Manjula Ananthnarayanan Iyer, Cole Brooking, Nishant Dani, Pengpeng Wang, Pragyana K. Mishra
-
Publication number: 20110234591Abstract: 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: ApplicationFiled: March 26, 2010Publication date: September 29, 2011Applicant: MICROSOFT CORPORATIONInventors: Pragyana Mishra, Nishant Dani, Cole Brooking, Pengpeng Wang, Manjula A. Iyer
-
Publication number: 20110166682Abstract: 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: ApplicationFiled: January 5, 2010Publication date: July 7, 2011Applicant: MICROSOFT CORPORATIONInventors: Cole Brooking, Nishant Dani, Pragyana K. Mishra, Pengpeng Wang, Manjula Ananthnarayanan Iyer