Patents by Inventor Anuj B. Gosalia

Anuj B. Gosalia 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: 20040187122
    Abstract: Techniques for minimizing coprocessor “starvation,” and for effectively scheduling processing in a coprocessor for greater efficiency and power. A run list is provided allowing a coprocessor to switch from one task to the next, without waiting for CPU intervention. A method called “surface faulting” allows a coprocessor to fault at the beginning of a large task rather than somewhere in the middle of the task. DMA control instructions, namely a “fence,” a “trap” and a “enable/disable context switching,” can be inserted into a processing stream to cause a coprocessor to perform tasks that enhance coprocessor efficiency and power. These instructions can also be used to build high-level synchronization objects. Finally, a “flip” technique is described that can switch a base reference for a display from one location to another, thereby changing the entire display surface.
    Type: Application
    Filed: January 22, 2004
    Publication date: September 23, 2004
    Applicant: Microsoft Corporation
    Inventors: Anuj B. Gosalia, Steve Pronovost
  • Publication number: 20040187135
    Abstract: Systems and methods for scheduling coprocessing resources in a computing system are provided without redesigning the coprocessor. In various embodiments, a system of preemptive multitasking is provided achieving benefits over cooperative multitasking by any one or more of (1) executing rendering commands sent to the coprocessor in a different order than they were submitted by applications; (2) preempting the coprocessor during scheduling of non-interruptible hardware; (3) allowing user mode drivers to build work items using command buffers in a way that does not compromise security; (4) preparing DMA buffers for execution while the coprocessor is busy executing a previously prepared DMA buffer; (5) resuming interrupted DMA buffers; and (6) reducing the amount of memory needed to run translated DMA buffers.
    Type: Application
    Filed: February 12, 2004
    Publication date: September 23, 2004
    Applicant: Microsoft Corporation.
    Inventors: Steve Pronovost, Anuj B. Gosalia, Bryan L. Langley, Hideyuki Nagase
  • Publication number: 20040169671
    Abstract: Systems and methods for the integration of an effects framework pipeline with one or more programmable shaders of a computer graphics pipeline is provided. In an illustrative implementation, one ore more component interfaces is provided that allow for the communication and processing of data by one or more cooperating components of a computer graphics pipeline. The component interfaces operate on a data file having high level programming computer instruction sets that, inter alia, provide a manner to express one or more constraints and/or variables for desired constraints. In operation, the cooperating components, such as programmable shaders, of the computer graphics pipeline perform one or more steps according to the instruction sets found in the effects data file. The instruction sets are designed to allow a plain language expression of a desired effect without requiring knowledge of the machine level operations of the computer graphics pipeline.
    Type: Application
    Filed: March 1, 2003
    Publication date: September 2, 2004
    Inventors: David Floyd Aronson, Anuj B. Gosalia, Craig C. Peeper, Loren McQuade, David John Martin
  • Publication number: 20040164987
    Abstract: Usage semantics allow for shaders to be authored independently of the actual vertex data and accordingly enables their reuse. Usage semantics define a feature that binds data between distinct components to allow them to work together. In various embodiments, the components include high level language variables that are bound by an application or by vertex data streams, high level language fragments to enable several fragments to be developed separately and compiled at a later time together to form a single shader, assembly language variables that get bound to vertex data streams, and parameters between vertex and pixel shaders. This allows developers to be able to program the shaders in the assembly and high level language with variables that refer to names rather than registers. By allowing this decoupling of registers from the language, developers can work on the language separately from the vertex data and modify and enhance high level language shaders without having to manually manipulate the registers.
    Type: Application
    Filed: February 24, 2003
    Publication date: August 26, 2004
    Applicant: Microsoft Corporation
    Inventors: David F. Aronson, Amar Patel, Anantha R. Kancherla, Anuj B. Gosalia, Craig Peeper, Daniel K. Baker, Iouri Tarassov, Loren McQuade
  • Publication number: 20040160446
    Abstract: Systems and methods are provided for scheduling the processing of a coprocessor whereby applications can submit tasks to a scheduler, and the scheduler can determine how much processing each application is entitled to as well as an order for processing. In connection with this process, tasks that require processing can be stored in physical memory or in virtual memory that is managed by a memory manager. The invention also provides various techniques of determining whether a particular task is ready for processing. A “run list” may be employed to ensure that the coprocessor does not waste time between tasks or after an interruption. The invention also provides techniques for ensuring the security of a computer system, by not allowing applications to modify portions of memory that are integral to maintaining the proper functioning of system operations.
    Type: Application
    Filed: January 22, 2004
    Publication date: August 19, 2004
    Inventors: Anuj B. Gosalia, Steve Pronovost
  • Publication number: 20040001064
    Abstract: Complex computer graphics forms and motions can be constructed either by hand or with motion or geometry capture technologies, once they are created, they are difficult to modify, particularly at runtime. Interpolation provides a way to leverage artist-generated source material. Methodologies for efficient runtime interpolation between multiple forms or multiple motion segments enables computers to perform more realistic animation in real-time. Shape interpolation is applied to predefined figures to create smoothly skinned figures that deform in natural ways. Predefined figures are selected using a search technique that reduces the amount of interpolation required to produce real-time animation.
    Type: Application
    Filed: June 28, 2002
    Publication date: January 1, 2004
    Applicant: Microsoft Corporation
    Inventors: Charles N. Boyd, David John Martin, Anuj B. Gosalia, David Floyd Aronson
  • Publication number: 20020169897
    Abstract: An API is provided to automatically transition data objects or containers between memory types to enable the seamless switching of data. The switching of data containers from one location to another is performed automatically by the API. Thus, polygon or pixel data objects are automatically transitioned between memory types such that the switching is seamless. It appears to a developer as if the data chunks/containers last forever, whereas in reality, the API hides the fact that the data is being transitioned to optimize system performance. The API hides an optimal cache managing algorithm from the developer so that the developer need not be concerned with the optimal tradeoff of system resources, and so that efficient switching of data can take place ‘behind the scenes’, thereby simplifying the developer's task.
    Type: Application
    Filed: March 1, 2001
    Publication date: November 14, 2002
    Inventors: Anuj B. Gosalia, Jeff M.J. Noyle, Michael A. Toelle