Patents by Inventor Jason Matthew Gould
Jason Matthew Gould 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: 10949345Abstract: Enhanced data buffer control in data systems is presented herein. In one example, a method includes establishing a pool of available memory pages tracked by memory pointers for use in a data structure, and processing requests for storing data to identify ones of the requests indicating data sizes that exceed a capacity of current pages included in the data structure. The method includes providing first pointers indicating start locations in the data structure to begin writing associated data, count information indicating quantities of the associated data able to be written in the current pages, and second pointers indicating at least one additional page in the data structure into which the associated data can be spanned from the current pages, where the at least one additional page is allocated from the pool of available memory pages in accordance with a fullness threshold for the data structure.Type: GrantFiled: January 7, 2020Date of Patent: March 16, 2021Assignee: Microsoft Technology Licensing, LLCInventors: Jason Matthew Gould, Ivan Nevraev
-
Patent number: 10719268Abstract: Methods and devices for managing first-in first-out (FIFO) queues in graphics processing are described. A write operation can be executed by multiple write threads on a graphics processing unit (GPU) to write data to memory locations in the multiple pages of memory. Similarly, and/or simultaneously, a read operation can be executed by multiple read threads to read data from the memory locations. The write and read operations include updating a pointer or multiple pointers indicating the point at which all preceding data has been fully written, or fully read. The read and write operations can also include maintaining and advancing one or more allocation pointers, and performing comparisons with the read and write done pointers, and/or various methods of synchronization, to handle overflow and underflow scenarios, to ensure read operations only read valid data, and write operations do not attempt to write to locations which are already in use.Type: GrantFiled: June 29, 2018Date of Patent: July 21, 2020Assignee: Microsoft Technology Licensing, LLCInventors: Jason Matthew Gould, Jack Andrew Elliott
-
Publication number: 20200151093Abstract: Enhanced data buffer control in data systems is presented herein. In one example, a method includes establishing a pool of available memory pages tracked by memory pointers for use in a data structure, and processing requests for storing data to identify ones of the requests indicating data sizes that exceed a capacity of current pages included in the data structure. The method includes providing first pointers indicating start locations in the data structure to begin writing associated data, count information indicating quantities of the associated data able to be written in the current pages, and second pointers indicating at least one additional page in the data structure into which the associated data can be spanned from the current pages, where the at least one additional page is allocated from the pool of available memory pages in accordance with a fullness threshold for the data structure.Type: ApplicationFiled: January 7, 2020Publication date: May 14, 2020Inventors: Jason Matthew Gould, Ivan Nevraev
-
Patent number: 10552321Abstract: Enhanced data buffer control in data systems is presented herein. In one example, a method of handling data buffer resources in a graphics processor includes establishing a pool of available memory pages tracked by memory pointers for use in a growable data structure. Responsive to requests by at least a shader unit of the graphics processor for space in the growable data structure in which to write shader data, the method includes providing to the shader unit at least write pointers to locations within memory pages from the growable data structure in accordance with data sizes indicated in the requests. Responsive to exceeding a threshold fullness of the growable data structure, the method includes allocating at least one further memory page from the pool of available memory pages for inclusion in the growable data structure.Type: GrantFiled: January 15, 2018Date of Patent: February 4, 2020Assignee: Microsoft Technology Licensing, LLCInventors: Jason Matthew Gould, Ivan Nevraev
-
Patent number: 10546412Abstract: Methods and devices for rendering graphics in a computer system include a graphical processing unit (GPU) with a flexible, dynamic, application-directed mechanism for varying the rate at which fragment shading is performed for rendering an image to a display. In particular, the described aspects allow different shading rates to be used for different regions of a primitive based on a new, interpolated shading rate parameter. In other words, the described aspects enable the GPU to change shading rates on-the-fly between different fragments of each primitive. Additionally, or independently, the GPU utilizes each respective shading rate parameter to determine how many sample positions to consider to be covered by the computed shaded output, e.g., the fragment color, thereby allowing the color sample to be shared across two or more pixels.Type: GrantFiled: October 30, 2018Date of Patent: January 28, 2020Assignee: Microsoft Technology Licensing, LLCInventors: Mark S. Grossman, Jason Matthew Gould, Alexander Nankervis, Charles Neill Boyd
-
Publication number: 20200004460Abstract: Methods and devices for managing first-in first-out (FIFO) queues in graphics processing are described. A write operation can be executed by multiple write threads on a graphics processing unit (GPU) to write data to memory locations in the multiple pages of memory. Similarly, and/or simultaneously, a read operation can be executed by multiple read threads to read data from the memory locations. The write and read operations include updating a pointer or multiple pointers indicating the point at which all preceding data has been fully written, or fully read. The read and write operations can also include maintaining and advancing one or more allocation pointers, and performing comparisons with the read and write done pointers, and/or various methods of synchronization, to handle overflow and underflow scenarios, to ensure read operations only read valid data, and write operations do not attempt to write to locations which are already in use.Type: ApplicationFiled: June 29, 2018Publication date: January 2, 2020Inventors: Jason Matthew GOULD, Jack Andrew ELLIOTT
-
Publication number: 20190172247Abstract: Methods and devices for rendering graphics in a computer system include a graphical processing unit (GPU) with a flexible, dynamic, application-directed mechanism for varying the rate at which fragment shading is performed for rendering an image to a display. In particular, the described aspects allow different shading rates to be used for different regions of a primitive based on a new, interpolated shading rate parameter. In other words, the described aspects enable the GPU to change shading rates on-the-fly between different fragments of each primitive. Additionally, or independently, the GPU utilizes each respective shading rate parameter to determine how many sample positions to consider to be covered by the computed shaded output, e.g., the fragment color, thereby allowing the color sample to be shared across two or more pixels.Type: ApplicationFiled: October 30, 2018Publication date: June 6, 2019Inventors: Mark S. GROSSMAN, Jason Matthew GOULD, Alexander NANKERVIS, Charles Neill BOYD
-
Publication number: 20190042410Abstract: Enhanced data buffer control in data systems is presented herein. In one example, a method of handling data buffer resources in a graphics processor includes establishing a pool of available memory pages tracked by memory pointers for use in a growable data structure. Responsive to requests by at least a shader unit of the graphics processor for space in the growable data structure in which to write shader data, the method includes providing to the shader unit at least write pointers to locations within memory pages from the growable data structure in accordance with data sizes indicated in the requests. Responsive to exceeding a threshold fullness of the growable data structure, the method includes allocating at least one further memory page from the pool of available memory pages for inclusion in the growable data structure.Type: ApplicationFiled: January 15, 2018Publication date: February 7, 2019Inventors: Jason Matthew Gould, Ivan Nevraev
-
Patent number: 10152819Abstract: Methods and devices for rendering graphics in a computer system include a graphical processing unit (GPU) with a flexible, dynamic, application-directed mechanism for varying the rate at which fragment shading is performed for rendering an image to a display. In particular, the described aspects allow different shading rates to be used for different regions of a primitive based on a new, interpolated shading rate parameter. In other words, the described aspects enable the GPU to change shading rates on-the-fly between different fragments of each primitive. Additionally, or independently, the GPU utilizes each respective shading rate parameter to determine how many sample positions to consider to be covered by the computed shaded output, e.g., the fragment color, thereby allowing the color sample to be shared across two or more pixels.Type: GrantFiled: August 15, 2016Date of Patent: December 11, 2018Assignee: Microsoft Technology Licensing, LLCInventors: Mark S. Grossman, Jason Matthew Gould, Alexander Nankervis, Charles Neill Boyd
-
Publication number: 20180047203Abstract: Methods and devices for rendering graphics in a computer system include a graphical processing unit (GPU) with a flexible, dynamic, application-directed mechanism for varying the rate at which fragment shading is performed for rendering an image to a display. In particular, the described aspects allow different shading rates to be used for different regions of a primitive based on a new, interpolated shading rate parameter. In other words, the described aspects enable the GPU to change shading rates on-the-fly between different fragments of each primitive. Additionally, or independently, the GPU utilizes each respective shading rate parameter to determine how many sample positions to consider to be covered by the computed shaded output, e.g., the fragment color, thereby allowing the color sample to be shared across two or more pixels.Type: ApplicationFiled: August 15, 2016Publication date: February 15, 2018Inventors: Mark S. GROSSMAN, Jason Matthew GOULD, Alexander NANKERVIS, Charles Neill BOYD
-
Patent number: 9582919Abstract: In one embodiment, a texture identification method and system are disclosed that uniquely identifies textures as they are used by the application and associates collected, inferred, or user-specified data with objects not owned by the library. In various embodiments, textures may be identified in various scenarios such as when textures are loaded, deleted, relocated, reloaded, and the like. In a further embodiment, APIs are provided that the application can call to provide useful information to the system that can improve the quality of the data in some situations.Type: GrantFiled: October 9, 2009Date of Patent: February 28, 2017Assignee: Microsoft Technology Licensing, LLCInventors: Jason Matthew Gould, Juan Carlos Arevalo Baeza
-
Patent number: 8884974Abstract: Content is rendered for display using a plurality of rendering contexts. Rendering is performed, at least in part, using a graphics processing unit (GPU). The plurality of rendering contexts can comprise a lower priority rendering context and a higher priority rendering context. One or more components can be associated with each of the lower priority rendering context and the higher priority rendering context. Different restrictions can be imposed on each rendering context. Restrictions can include a restriction on block size, prioritization of requests for each context, and a restriction on the number of requests in a GPU queue at a time.Type: GrantFiled: August 12, 2011Date of Patent: November 11, 2014Assignee: Microsoft CorporationInventors: Andrew Dadi, Robert C. Aldinger, Ketan K. Dalal, Jason Matthew Gould, Jeffrey Kay, J. Andrew Goossen, David Ruzyski
-
Patent number: 8872823Abstract: A method and system are disclosed for automatic instrumentation that modifies a video game's shaders at run-time to collect detailed statistics about texture fetches such as MIP usage. The tracking may be transparent to the game application and therefore not require modifications to the application. In an embodiment, the method may be implemented in a software development kit used to record and provide texture usage data and optionally generate a report.Type: GrantFiled: October 9, 2009Date of Patent: October 28, 2014Assignee: Microsoft CorporationInventors: Jason Matthew Gould, Michael Edward Pietraszak, Zsolt Mathe, J. Andrew Goossen, Casey Leon Meekhof
-
Publication number: 20130038614Abstract: Content is rendered for display using a plurality of rendering contexts. Rendering is performed, at least in part, using a graphics processing unit (GPU). The plurality of rendering contexts can comprise a lower priority rendering context and a higher priority rendering context. One or more components can be associated with each of the lower priority rendering context and the higher priority rendering context. Different restrictions can be imposed on each rendering context. Restrictions can include a restriction on block size, prioritization of requests for each context, and a restriction on the number of requests in a GPU queue at a time.Type: ApplicationFiled: August 12, 2011Publication date: February 14, 2013Applicant: Microsoft CorporationInventors: Andrew Dadi, Robert C. Aldinger, Ketan K. Dalal, Jason Matthew Gould, Jeffrey Kay, J. Andrew Goossen, David Ruzyski
-
Patent number: 8219975Abstract: A method for analyzing the performance of a video game uses a diagnostic tool that is associated with application code of the video game. The diagnostic tool is activated when the video game is in operation, and real-time performance data is captured and displayed. A warning is generated when a performance metric violates a pre-set condition. The warning may be displayed on a display screen that is used to provide information for rectifying the violation.Type: GrantFiled: October 26, 2007Date of Patent: July 10, 2012Assignee: Microsoft CorporationInventors: Andrew Goossen, Parham Mohadjer, Matthew Kimball, John Howard Palevich, Juan Carlos Arevalo Baeza, Jason Matthew Gould, Matthew Lee, Michael Burrows, Karen Elaine Stevens, David Aronson
-
Publication number: 20110314412Abstract: Application content and system content are composited to create composited frames for display by drawing foreground application content into an application buffer, building a reconstruction buffer, drawing system user interface content on top of the foreground application content in the application buffer, and displaying a composited frame by sending the application buffer directly to display hardware for display. The reconstruction buffer contains portions of the foreground application content copied from the application buffer. When system user interface content is being updated, the reconstruction buffer is used to recreate the original foreground application content. Updated system user interface content and original foreground application content are then used to create additional composited frames for display.Type: ApplicationFiled: June 17, 2010Publication date: December 22, 2011Applicant: Microsoft CorporationInventors: Rob Aldinger, Andrew Dadi, Thomas W. Getzinger, J. Andrew Goossen, Jason Matthew Gould
-
Publication number: 20110084965Abstract: In one embodiment, a texture identification method and system are disclosed that uniquely identifies textures as they are used by the application and associates collected, inferred, or user-specified data with objects not owned by the library. In various embodiments, textures may be identified in various scenarios such as when textures are loaded, deleted, relocated, reloaded, and the like.Type: ApplicationFiled: October 9, 2009Publication date: April 14, 2011Applicant: Microsoft CorporationInventors: Jason Matthew Gould, Juan Carlos Arevalo Baeza
-
Publication number: 20110084964Abstract: A method and system are disclosed for automatic instrumentation that modifies a video game's shaders at run-time to collect detailed statistics about texture fetches such as MIP usage. The tracking may be transparent to the game application and therefore not require modifications to the application. In an embodiment, the method may be implemented in a software development kit used to record and provide texture usage data and optionally generate a report.Type: ApplicationFiled: October 9, 2009Publication date: April 14, 2011Applicant: Microsoft CorporationInventors: Jason Matthew Gould, Michael Edward Pietraszak, Zsolt Mathe, J. Andrew Goossen, Casey Leon Meekhof
-
Publication number: 20090113251Abstract: A method for analyzing the performance of a video game uses a diagnostic tool that is associated with application code of the video game. The diagnostic tool is activated when the video game is in operation, and real-time performance data is captured and displayed. A warning is generated when a performance metric violates a pre-set condition. The warning may be displayed on a display screen that is used to provide information for rectifying the violation.Type: ApplicationFiled: October 26, 2007Publication date: April 30, 2009Applicant: Microsoft CorporationInventors: Andrew Goossen, Parham Mohadjer, Matthew Kimball, John Howard Palevich, Juan Carlos Arevalo Baeza, Jason Matthew Gould, Matthew Lee, Michael Burrows, Karen Elaine Stevens, David Aronson