Loren Brichter - San Jose CA, US Alexander King-Chung Kan - Mountain View CA, US Michael James Elliott Swift - Mountain View CA, US
Assignee:
Apple Inc. - Cupertino CA
International Classification:
G09G 5/00
US Classification:
345660, 345661, 345667, 345668
Abstract:
A method and an apparatus for determining an up scale factor and a down scale factor according to a scale factor received from a graphics application program interface (API) to scale a graphics data in a graphics processing unit (GPU) are described. The up scale factor and the down scale factor may be precisely stored in the GPU based on a fixed number of bits. An actual scale factor which can be precisely stored in the GPU corresponding to the scale factor may differ from the scale factor with a difference. Graphics commands may be sent to the GPU to scale the graphics data according to the up scale factor and the down scale factor separately. A combined scale factor corresponding to a combination of the up scale factor and the down scale factor may differ from the scale factor less then the difference between the actual scale factor and the scale factor.
Loren Brichter - San Jose CA, US Alexander King-Chung Kan - Mountain View CA, US Michael James Elliott Swift - Mountain View CA, US
International Classification:
G09G 5/00 G06T 1/00 G09G 5/36
US Classification:
345661, 345522, 345559
Abstract:
A method and an apparatus for determining an up scale factor and a down scale factor according to a scale factor received from a graphics application program interface (API) to scale a graphics data in a graphics processing unit (GPU) are described. The up scale factor and the down scale factor may be precisely stored in the GPU based on a fixed number of bits. An actual scale factor which can be precisely stored in the GPU corresponding to the scale factor may differ from the scale factor with a difference. Graphics commands may be sent to the GPU to scale the graphics data according to the up scale factor and the down scale factor separately. A combined scale factor corresponding to a combination of the up scale factor and the down scale factor may differ from the scale factor less then the difference between the actual scale factor and the scale factor
- Cupertino CA, US Mehmet N Agaoglu - Dublin CA, US Gokhan Avkarogullari - San Jose CA, US Jenny Hu - Sunnyvale CA, US Alexander K Kan - San Carlos CA, US Yuhui Li - Cupertino CA, US James R Montgomerie - Sunnyvale CA, US Andrey Pokrovskiy - Mountain View CA, US Yingying Tang - Cupertino CA, US Chaohao Wang - Shanghai, CN
International Classification:
G09G 5/36
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.
Task Execution On A Graphics Processor Using Indirect Argument Buffers
- Cupertino CA, US Sean P. James - Sunnyvale CA, US Gokhan Avkarogullari - San Jose CA, US Alexander K. Kan - Huntington Woods MI, US Michael Imbrogno - San Jose CA, US
The disclosure pertains to techniques for operation of graphics systems and task execution on a graphics processor. One such technique comprises a computer-implemented method for task execution on a graphics processor, the method comprising creating a data structure for grouping data resources, populating the data structure with two or more data resources for encoding into a graphics processing language by an encoding object, passing the data structure to a first programming interface command, the first programming interface command configured to access the data structure's data resources, triggering execution of a first function on a graphics processer in response to passing the data structure to the first programming interface command, passing the data structure to a second programming interface command, the second programming interface command configured to access the data structure's data resources, and triggering execution of a second function on the graphics processer in response to passing the data structure to the second programming interface command.
System And Method For Unified Application Programming Interface And Model
- Cupertino CA, US Kenneth C. Dyke - Los Altos CA, US Alexander K. Kan - San Francisco CA, US
International Classification:
G06T 1/20 G06F 9/54 G06F 9/30
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.
- Cupertino CA, US Sean P. James - Sunnyvale CA, US Gokhan Avkarogullari - San Jose CA, US Alexander K. Kan - Huntington Woods MI, US Michael Imbrogno - San Jose CA, US
The disclosure pertains to techniques for operation of graphics systems and task execution on a graphics processor. One such technique comprises a computer-implemented method for task execution on a graphics processor, the method comprising creating a data structure for grouping data resources, populating the data structure with two or more data resources for encoding into a graphics processing language by an encoding object, passing the data structure to a first programming interface command, the first programming interface command configured to access the data structure's data resources, triggering execution of a first function on a graphics processor in response to passing the data structure to the first programming interface command, passing the data structure to a second programming interface command, the second programming interface command configured to access the data structure's data resources, and triggering execution of a second function on the graphics processor in response to passing the data structure to the second programming interface command.
Combining Compute Tasks For A Graphics Processing Unit
- Cupertino CA, US Alexander K. Kan - San Francisco CA, US Kelvin C. Chiu - San Jose CA, US
International Classification:
G06F 9/45 G06F 9/445
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.
- Cupertino CA, US Eric O. Sunalp - San Jose CA, US Richard W. Schreyer - Scotts Valley CA, US Alexander K. Kan - San Francisco CA, US
International Classification:
G06T 1/20 G06F 9/45 G06T 15/80
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.
Isbn (Books And Publications)
A Glorious Evolution: The William and Mary Lectures Delivered in the University of Cambridge on 24 October 1995