Patents by Inventor Alexander K. Kan

Alexander K. Kan 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: 20230077843
    Abstract: An electronic device may include a display. Control circuitry may operate the display at different frame rates such as 60 Hz, 80 Hz, and 120 Hz. The control circuitry may determine which frame rate to use based on a speed of animation on the display and based on a type of animation on the display. To mitigate the appearance of judder as the display frame rate changes, the control circuitry may implement techniques such as hysteresis (e.g., windows of tolerance around speed thresholds to ensure that the display frame rate does not change too frequently as a result of noise), speed thresholds that are based on a user perception study, consistent latency between touch input detection and corresponding display output across different frame rates (e.g., using a fixed touch scan rate that is independent of frame duration), and animation-specific speed thresholds for triggering frame rate changes.
    Type: Application
    Filed: August 12, 2022
    Publication date: March 16, 2023
    Inventors: Wanqing Xin, Mehmet N Agaoglu, Gokhan Avkarogullari, Jenny Hu, Alexander K Kan, Yuhui Li, James R Montgomerie, Andrey Pokrovskiy, Yingying Tang, Chaohao Wang
  • Patent number: 11430174
    Abstract: Techniques are disclosed relating to specifying memory consistency constraints. In some embodiments, an instruction may specify, for a memory operation, a type of memory consistency and a scope at which to enforce the type of consistency. For example, these fields may specify whether to sequence memory accesses relative to the operation at one or more of multiple different cache levels based on the type of memory consistency and the scope.
    Type: Grant
    Filed: January 15, 2021
    Date of Patent: August 30, 2022
    Assignee: Apple Inc.
    Inventors: Terence M. Potter, Richard W. Schreyer, James J. Ding, Alexander K. Kan, Michael Imbrogno
  • Patent number: 11094036
    Abstract: The disclosure pertains to techniques for operation of graphics systems and task execution on a graphics processor.
    Type: Grant
    Filed: April 16, 2020
    Date of Patent: August 17, 2021
    Assignee: Apple Inc.
    Inventors: Michal Valient, Sean P. James, Gokhan Avkarogullari, Alexander K. Kan, Michael Imbrogno
  • Publication number: 20210134045
    Abstract: Techniques are disclosed relating to specifying memory consistency constraints. In some embodiments, an instruction may specify, for a memory operation, a type of memory consistency and a scope at which to enforce the type of consistency. For example, these fields may specify whether to sequence memory accesses relative to the operation at one or more of multiple different cache levels based on the type of memory consistency and the scope.
    Type: Application
    Filed: January 15, 2021
    Publication date: May 6, 2021
    Inventors: Terence M. Potter, Richard W. Schreyer, James J. Ding, Alexander K. Kan, Michael Imbrogno
  • Patent number: 10949944
    Abstract: Systems, computer readable media, and methods for a unified programming interface and language are disclosed. In one embodiment, the unified programming interface and language assists program developers write multi-threaded programs that can perform both graphics and data-parallel compute processing on GPUs. The same GPU programming language model can be used to describe both graphics shaders and compute kernels, and the same data structures and resources may be used for both graphics and compute operations. Developers can use multithreading efficiently to create and submit command buffers in parallel.
    Type: Grant
    Filed: April 22, 2019
    Date of Patent: March 16, 2021
    Assignee: Apple Inc.
    Inventors: Richard W. Schreyer, Kenneth C. Dyke, Alexander K. Kan
  • Patent number: 10930047
    Abstract: Techniques are disclosed relating to synchronizing access to pixel resources. Examples of pixel resources include color attachments, a stencil buffer, and a depth buffer. In some embodiments, hardware registers are used to track status of assigned pixel resources and pixel wait and pixel release instruction are used to synchronize access to the pixel resources. In some embodiments, other accesses to the pixel resources may occur out of program order. Relative to tracking and ordering pass groups, this weak ordering and explicit synchronization may improve performance and reduce power consumption. Disclosed techniques may also facilitate coordination between fragment rendering threads and auxiliary mid-render compute tasks.
    Type: Grant
    Filed: December 9, 2019
    Date of Patent: February 23, 2021
    Assignee: Apple Inc.
    Inventors: Terence M. Potter, Richard W. Schreyer, James J. Ding, Alexander K. Kan, Michael Imbrogno
  • Publication number: 20200242726
    Abstract: The disclosure pertains to techniques for operation of graphics systems and task execution on a graphics processor.
    Type: Application
    Filed: April 16, 2020
    Publication date: July 30, 2020
    Inventors: Michal Valient, Sean P. James, Gokhan Avkarogullari, Alexander K. Kan, Michael Imbrogno
  • Publication number: 20200167986
    Abstract: Techniques are disclosed relating to synchronizing access to pixel resources. Examples of pixel resources include color attachments, a stencil buffer, and a depth buffer. In some embodiments, hardware registers are used to track status of assigned pixel resources and pixel wait and pixel release instruction are used to synchronize access to the pixel resources. In some embodiments, other accesses to the pixel resources may occur out of program order. Relative to tracking and ordering pass groups, this weak ordering and explicit synchronization may improve performance and reduce power consumption. Disclosed techniques may also facilitate coordination between fragment rendering threads and auxiliary mid-render compute tasks.
    Type: Application
    Filed: December 9, 2019
    Publication date: May 28, 2020
    Inventors: Terence M. Potter, Richard W. Schreyer, James J. Ding, Alexander K. Kan, Michael Imbrogno
  • Patent number: 10657619
    Abstract: The disclosure pertains to techniques for operation of graphics systems and task execution on a graphics processor.
    Type: Grant
    Filed: June 2, 2017
    Date of Patent: May 19, 2020
    Assignee: Apple Inc.
    Inventors: Michal Valient, Sean P. James, Gokhan Avkarogullari, Alexander K. Kan, Michael Imbrogno
  • Patent number: 10504270
    Abstract: Techniques are disclosed relating to synchronizing access to pixel resources. Examples of pixel resources include color attachments, a stencil buffer, and a depth buffer. In some embodiments, hardware registers are used to track status of assigned pixel resources and pixel wait and pixel release instruction are used to synchronize access to the pixel resources. In some embodiments, other accesses to the pixel resources may occur out of program order. Relative to tracking and ordering pass groups, this weak ordering and explicit synchronization may improve performance and reduce power consumption. Disclosed techniques may also facilitate coordination between fragment rendering threads and auxiliary mid-render compute tasks.
    Type: Grant
    Filed: December 22, 2016
    Date of Patent: December 10, 2019
    Assignee: Apple Inc.
    Inventors: Terence M. Potter, Richard W. Schreyer, James J. Ding, Alexander K. Kan, Michael Imbrogno
  • Publication number: 20190251656
    Abstract: Systems, computer readable media, and methods for a unified programming interface and language are disclosed. In one embodiment, the unified programming interface and language assists program developers write multi-threaded programs that can perform both graphics and data-parallel compute processing on GPUs. The same GPU programming language model can be used to describe both graphics shaders and compute kernels, and the same data structures and resources may be used for both graphics and compute operations. Developers can use multithreading efficiently to create and submit command buffers in parallel.
    Type: Application
    Filed: April 22, 2019
    Publication date: August 15, 2019
    Inventors: Richard W. Schreyer, Kenneth C. Dyke, Alexander K. Kan
  • Patent number: 10346941
    Abstract: Systems, computer readable media, and methods for a unified programming interface and language are disclosed. In one embodiment, the unified programming interface and language assists program developers write multi-threaded programs that can perform both graphics and data-parallel compute processing on GPUs. The same GPU programming language model can be used to describe both graphics shaders and compute kernels, and the same data structures and resources may be used for both graphics and compute operations. Developers can use multithreading efficiently to create and submit command buffers in parallel.
    Type: Grant
    Filed: September 30, 2014
    Date of Patent: July 9, 2019
    Assignee: Apple Inc.
    Inventors: Richard W. Schreyer, Kenneth C. Dyke, Alexander K. Kan
  • Publication number: 20180350029
    Abstract: The disclosure pertains to techniques for operation of graphics systems and task execution on a graphics processor.
    Type: Application
    Filed: June 2, 2017
    Publication date: December 6, 2018
    Inventors: Michal Valient, Sean P. James, Gokhan Avkarogullari, Alexander K. Kan, Michael Imbrogno
  • Publication number: 20180182154
    Abstract: Techniques are disclosed relating to synchronizing access to pixel resources. Examples of pixel resources include color attachments, a stencil buffer, and a depth buffer. In some embodiments, hardware registers are used to track status of assigned pixel resources and pixel wait and pixel release instruction are used to synchronize access to the pixel resources. In some embodiments, other accesses to the pixel resources may occur out of program order. Relative to tracking and ordering pass groups, this weak ordering and explicit synchronization may improve performance and reduce power consumption. Disclosed techniques may also facilitate coordination between fragment rendering threads and auxiliary mid-render compute tasks.
    Type: Application
    Filed: December 22, 2016
    Publication date: June 28, 2018
    Inventors: Terence M. Potter, Richard W. Schreyer, James J. Ding, Alexander K. Kan, Michael Imbrogno
  • Patent number: 9442706
    Abstract: Methods, systems and devices are disclosed to examine developer supplied graphics code and attributes at run-time. The graphics code designed for execution on a graphics processing unit (GPU) utilizing a coding language such as OpenCL or OpenGL which provides for run-time analysis by a driver, code generator, and compiler. Developer supplied code and attributes can be analyzed and altered based on the execution capabilities and performance criteria of a GPU on which the code is about to be executed. In general, reducing the number of developer defined work items or work groups can reduce the initialization cost of the GPU with respect to the work to be performed and result in an overall optimization of the machine code. Manipulation code can be added to adjust the supplied code in a manner similar to unrolling a loop to improve execution performance.
    Type: Grant
    Filed: July 31, 2014
    Date of Patent: September 13, 2016
    Assignee: Apple Inc.
    Inventors: Gokhan Avkarogullari, Alexander K. Kan, Kelvin C. Chiu
  • Publication number: 20150347105
    Abstract: Methods, systems and devices are disclosed to examine developer supplied graphics code and attributes at run-time. The graphics code designed for execution on a graphics processing unit (GPU) utilizing a coding language such as OpenCL or OpenGL which provides for run-time analysis by a driver, code generator, and compiler. Developer supplied code and attributes can be analyzed and altered based on the execution capabilities and performance criteria of a GPU on which the code is about to be executed. In general, reducing the number of developer defined work items or work groups can reduce the initialization cost of the GPU with respect to the work to be performed and result in an overall optimization of the machine code. Manipulation code can be added to adjust the supplied code in a manner similar to unrolling a loop to improve execution performance.
    Type: Application
    Filed: July 31, 2014
    Publication date: December 3, 2015
    Inventors: Gokhan Avkarogullari, Alexander K. Kan, Kelvin C. Chiu
  • Publication number: 20150348224
    Abstract: An innovative GPU framework and related APIs present more accurate representations of the target hardware so that the distinctions between the fixed-function and programmable features of the GPU are perceived by a developer. This permits a program and/or a graphics object generated or manipulated by the program to be understood as not just code, but machine states that are associated with the code. When such an object is defined, the definitional components requiring programmable GPU features can be compiled only once and reused repeatedly as needed. Similarly, when a state change is made, the state changes correspond to the state changes made on the hardware. Additionally, the creation of these immutable objects prevents a developer from inadvertently changing portions of the program or object that cause it to behave differently than intended.
    Type: Application
    Filed: September 30, 2014
    Publication date: December 3, 2015
    Inventors: Gokhan Avkarogullari, Eric O. Sunalp, Richard W. Schreyer, Alexander K. Kan
  • Publication number: 20150348225
    Abstract: Systems, computer readable media, and methods for a unified programming interface and language are disclosed. In one embodiment, the unified programming interface and language assists program developers write multi-threaded programs that can perform both graphics and data-parallel compute processing on GPUs. The same GPU programming language model can be used to describe both graphics shaders and compute kernels, and the same data structures and resources may be used for both graphics and compute operations. Developers can use multithreading efficiently to create and submit command buffers in parallel.
    Type: Application
    Filed: September 30, 2014
    Publication date: December 3, 2015
    Inventors: Richard W. Schreyer, Kenneth C. Dyke, Alexander K. Kan
  • Patent number: 9183664
    Abstract: An image may be divided into tiles, each tile including a multitude of pixels. For each tile, a list of primitive groups that intersect the tile and an initial list of volumes that intersect the tile may be generated. For each primitive group in the list of primitive groups, a per-primitive group list of volumes may be generated. The per-primitive-group list of volumes may include volumes from the initial list of volumes whose depth range overlaps with a depth range of the primitive group. Pixels in the tile which intersect the primitive group may be shaded using the per-primitive-group list of volumes.
    Type: Grant
    Filed: May 3, 2012
    Date of Patent: November 10, 2015
    Assignee: Apple Inc.
    Inventors: Richard W. Schreyer, Alexander K. Kan
  • Publication number: 20130293544
    Abstract: An image may be divided into tiles, each tile including a multitude of pixels. For each tile, a list of primitive groups that intersect the tile and an initial list of volumes that intersect the tile may be generated. For each primitive group in the list of primitive groups, a per-primitive group list of volumes may be generated. The per-primitive-group list of volumes may include volumes from the initial list of volumes whose depth range overlaps with a depth range of the primitive group. Pixels in the tile which intersect the primitive group may be shaded using the per-primitive-group list of volumes.
    Type: Application
    Filed: May 3, 2012
    Publication date: November 7, 2013
    Inventors: Richard W. Schreyer, Alexander K. Kan