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: 10949345
    Abstract: 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: Grant
    Filed: January 7, 2020
    Date of Patent: March 16, 2021
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Jason Matthew Gould, Ivan Nevraev
  • Patent number: 10719268
    Abstract: 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: Grant
    Filed: June 29, 2018
    Date of Patent: July 21, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Jason Matthew Gould, Jack Andrew Elliott
  • Publication number: 20200151093
    Abstract: 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: Application
    Filed: January 7, 2020
    Publication date: May 14, 2020
    Inventors: Jason Matthew Gould, Ivan Nevraev
  • Patent number: 10552321
    Abstract: 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: Grant
    Filed: January 15, 2018
    Date of Patent: February 4, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Jason Matthew Gould, Ivan Nevraev
  • Patent number: 10546412
    Abstract: 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: Grant
    Filed: October 30, 2018
    Date of Patent: January 28, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Mark S. Grossman, Jason Matthew Gould, Alexander Nankervis, Charles Neill Boyd
  • Publication number: 20200004460
    Abstract: 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: Application
    Filed: June 29, 2018
    Publication date: January 2, 2020
    Inventors: Jason Matthew GOULD, Jack Andrew ELLIOTT
  • Publication number: 20190172247
    Abstract: 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: Application
    Filed: October 30, 2018
    Publication date: June 6, 2019
    Inventors: Mark S. GROSSMAN, Jason Matthew GOULD, Alexander NANKERVIS, Charles Neill BOYD
  • Publication number: 20190042410
    Abstract: 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: Application
    Filed: January 15, 2018
    Publication date: February 7, 2019
    Inventors: Jason Matthew Gould, Ivan Nevraev
  • Patent number: 10152819
    Abstract: 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: Grant
    Filed: August 15, 2016
    Date of Patent: December 11, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Mark S. Grossman, Jason Matthew Gould, Alexander Nankervis, Charles Neill Boyd
  • Publication number: 20180047203
    Abstract: 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: Application
    Filed: August 15, 2016
    Publication date: February 15, 2018
    Inventors: Mark S. GROSSMAN, Jason Matthew GOULD, Alexander NANKERVIS, Charles Neill BOYD
  • Patent number: 9582919
    Abstract: 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: Grant
    Filed: October 9, 2009
    Date of Patent: February 28, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Jason Matthew Gould, Juan Carlos Arevalo Baeza
  • Patent number: 8884974
    Abstract: 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: Grant
    Filed: August 12, 2011
    Date of Patent: November 11, 2014
    Assignee: Microsoft Corporation
    Inventors: Andrew Dadi, Robert C. Aldinger, Ketan K. Dalal, Jason Matthew Gould, Jeffrey Kay, J. Andrew Goossen, David Ruzyski
  • Patent number: 8872823
    Abstract: 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: Grant
    Filed: October 9, 2009
    Date of Patent: October 28, 2014
    Assignee: Microsoft Corporation
    Inventors: Jason Matthew Gould, Michael Edward Pietraszak, Zsolt Mathe, J. Andrew Goossen, Casey Leon Meekhof
  • Publication number: 20130038614
    Abstract: 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: Application
    Filed: August 12, 2011
    Publication date: February 14, 2013
    Applicant: Microsoft Corporation
    Inventors: Andrew Dadi, Robert C. Aldinger, Ketan K. Dalal, Jason Matthew Gould, Jeffrey Kay, J. Andrew Goossen, David Ruzyski
  • Patent number: 8219975
    Abstract: 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: Grant
    Filed: October 26, 2007
    Date of Patent: July 10, 2012
    Assignee: Microsoft Corporation
    Inventors: 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: 20110314412
    Abstract: 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: Application
    Filed: June 17, 2010
    Publication date: December 22, 2011
    Applicant: Microsoft Corporation
    Inventors: Rob Aldinger, Andrew Dadi, Thomas W. Getzinger, J. Andrew Goossen, Jason Matthew Gould
  • Publication number: 20110084965
    Abstract: 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: Application
    Filed: October 9, 2009
    Publication date: April 14, 2011
    Applicant: Microsoft Corporation
    Inventors: Jason Matthew Gould, Juan Carlos Arevalo Baeza
  • Publication number: 20110084964
    Abstract: 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: Application
    Filed: October 9, 2009
    Publication date: April 14, 2011
    Applicant: Microsoft Corporation
    Inventors: Jason Matthew Gould, Michael Edward Pietraszak, Zsolt Mathe, J. Andrew Goossen, Casey Leon Meekhof
  • Publication number: 20090113251
    Abstract: 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: Application
    Filed: October 26, 2007
    Publication date: April 30, 2009
    Applicant: Microsoft Corporation
    Inventors: 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