Hybrid touch sample mode
The hybrid touch sample mode addresses touch latency and visual feedback issues in user devices by switching to a poll mode for touch sampling, reducing latency and improving smoothness without increasing power consumption.
Patent Information
- Application Number
- PCT/CN2023/137790
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-12-11
- Publication Date
- 2025-06-19
AI Technical Summary
Touch latency and visual feedback issues arise in user devices due to the lack of synchronization between touch sampling and display refreshing, leading to noticeable jerkiness and increased power consumption when attempting to reduce latency through higher touch sampling rates.
Implementing a hybrid touch sample mode that switches from an interrupt mode to a poll mode upon detecting a touch move event, allowing the user device to poll touch events at a time offset prior to the Vsync signal, thereby reducing latency and improving smoothness without significant power consumption increases.
The hybrid touch sample mode effectively reduces touch latency and improves real-time visual feedback by synchronizing touch sampling with display refreshing, while also minimizing power consumption by disabling the interrupt mode during poll mode operations.
Smart Images

Figure CN2023137790_19062025_PF_FP_ABST
Abstract
Description
HYBRID TOUCH SAMPLE MODE
[0001] FIELD OF THE DISCLOSURE
[0002] Aspects of the present disclosure generally relate to user devices and, for example, to a hybrid touch sample mode for a user device.BACKGROUND
[0003] A touch screen of a user device enables a user to interact with the user device through touching the touch screen in various ways. The user may touch the touch screen in a particular manner to provide a corresponding input to the user device. The user device may interpret the input (e.g., via a touch screen interface and / or a controller of the user device) according to one or more characteristics of the user touching the touch screen and / or according to information that is displayed on the touch screen, among other examples. The user device may update the information displayed on the touch screen based on the input provided via the touch screen.SUMMARY
[0004] Some aspects described herein relate to a user device. The user device may include one or more memories and one or more processors coupled to the one or more memories. The one or more processors may be configured to cause the user device to detect, while operating in an interrupt mode, a touch move event associated with a touch screen of the user device. The one or more processors may be configured to cause the user device to switch from the interrupt mode to a poll mode in connection with detecting the touch move event. The one or more processors may be configured to cause the user device to poll, while operating in the poll mode, a touch event associated with the touch screen at a poll occasion prior to a time associated with a vertical synchronization (Vsync) signal by a time offset. The one or more processors may be configured to cause the user device to render, in connection with the Vsync signal, a frame for display on the touch screen based at least in part on polling the touch event at the poll occasion.
[0005] Some aspects described herein relate to a method performed by a user device. The method may include detecting, while operating in an interrupt mode, a touch move event associated with a touch screen of the user device. The method may include switching from the interrupt mode to a poll mode in connection with detecting the touch move event. The method may include polling, while operating in the poll mode, a touch event associated with the touch screen at a poll occasion prior to a time associated with a Vsync signal by a time offset. The method may include rendering, in connection with the Vsync signal, a frame for display on the touch screen based at least in part on polling the touch event at the poll occasion.
[0006] Some aspects described herein relate to a non-transitory computer-readable medium that stores a set of instructions by a user device. The set of instructions, when executed by one or more processors of the user device, may cause the user device to detect, while operating in an interrupt mode, a touch move event associated with a touch screen of the user device. The set of instructions, when executed by one or more processors of the user device, may cause the user device to switch from the interrupt mode to a poll mode in connection with detecting the touch move event. The set of instructions, when executed by one or more processors of the user device, may cause the user device to poll, while operating in the poll mode, a touch event associated with the touch screen at a poll occasion prior to a time associated with a Vsync signal by a time offset. The set of instructions, when executed by one or more processors of the user device, may cause the user device to render, in connection with the Vsync signal, a frame for display on the touch screen based at least in part on polling the touch event at the poll occasion.
[0007] Some aspects described herein relate to an apparatus. The apparatus may include means for detecting, while operating in an interrupt mode, a touch move event associated with a touch screen of the apparatus. The apparatus may include means for switching from the interrupt mode to a poll mode in connection with detecting the touch move event. The apparatus may include means for polling, while operating in the poll mode, a touch event associated with the touch screen at a poll occasion prior to a time associated with a Vsync signal by a time offset. The apparatus may include means for rendering, in connection with the Vsync signal, a frame for display on the touch screen based at least in part on polling the touch event at the poll occasion.
[0008] Aspects generally include a method, apparatus, system, computer program product, non-transitory computer-readable medium, user device, user equipment, wireless communication device, and / or processing system as substantially described with reference to and as illustrated by the drawings and specification.
[0009] The foregoing has outlined rather broadly the features and technical advantages of examples according to the disclosure in order that the detailed description that follows may be better understood. Additional features and advantages will be described hereinafter. The conception and specific examples disclosed may be readily utilized as a basis for modifying or designing other structures for carrying out the same purposes of the present disclosure. Such equivalent constructions do not depart from the scope of the appended claims. Characteristics of the concepts disclosed herein, both their organization and method of operation, together with associated advantages will be better understood from the following description when considered in connection with the accompanying figures. Each of the figures is provided for the purposes of illustration and description, and not as a definition of the limits of the claims.BRIEF DESCRIPTION OF THE DRAWINGS
[0010] So that the above-recited features of the present disclosure can be understood in detail, a more particular description, briefly summarized above, may be had by reference to aspects, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only certain typical aspects of this disclosure and are therefore not to be considered limiting of its scope, for the description may admit to other equally effective aspects. The same reference numbers in different drawings may identify the same or similar elements.
[0011] Fig. 1 is a diagram of an example environment in which systems and / or methods described herein may be implemented.
[0012] Fig. 2 is a diagram illustrating example components of a device, in accordance with the present disclosure.
[0013] Fig. 3 is a diagram illustrating examples of touch sampling of a touch screen of a user device, in accordance with the present disclosure.
[0014] Figs. 4A-4E and 5 are diagrams illustrating examples associated with a hybrid touch sample mode, in accordance with the present disclosure.
[0015] Fig. 6 is a flowchart of an example process associated with a hybrid touch sample mode, in accordance with the present disclosure.DETAILED DESCRIPTION
[0016] Various aspects of the disclosure are described more fully hereinafter with reference to the accompanying drawings. This disclosure may, however, be embodied in many different forms and should not be construed as limited to any specific structure or function presented throughout this disclosure. Rather, these aspects are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art. One skilled in the art should appreciate that the scope of the disclosure is intended to cover any aspect of the disclosure disclosed herein, whether implemented independently of or combined with any other aspect of the disclosure. For example, an apparatus may be implemented or a method may be practiced using any number of the aspects set forth herein. In addition, the scope of the disclosure is intended to cover such an apparatus or method which is practiced using other structure, functionality, or structure and functionality in addition to or other than the various aspects of the disclosure set forth herein. It should be understood that any aspect of the disclosure disclosed herein may be embodied by one or more elements of a claim.
[0017] A user device that is equipped with a touch screen (also referred to as a “touchscreen” ) may include an input system associated with the touch screen and a display system associated with the touch screen. The input system may perform touch sampling to detect touch inputs on the touch screen. For example, the input system may perform the touch sampling periodically at a certain touch sampling rate. The input system and the display system may be implemented as two individual modules in the user device. In some examples, the touch sampling rate used by the input system may be different from a display refresh rate used by the display system. In other examples, the touch sampling rate may be the same as the display refresh rate. In either case, the user device may not have a mechanism for synchronizing the touch sampling for detecting touch inputs on the touch screen and the display refreshing for updating the frames displayed on the touch screen. This may introduce touch latency (e.g., in addition to latency associated with rendering a frame to be displayed on the touch screen) , which will worsen real-time visual feedback based on user input (e.g., touch input) to the touch screen. Furthermore, the rendered frames may not be smooth due to such latency, which may result in visual jerkiness that is noticeable to the user of the user device. In some examples, a higher touch sampling rate can reduce the touch latency. However, the use of the higher touch sampling rate may be associated with significant power overhead, and therefore may result in increased power consumption by the user device.
[0018] Various aspects relate to a hybrid touch sample mode for touch sampling of a touch screen of a user device. The hybrid touch sample mode may include touch sampling in an interrupt mode and touch sampling in a poll mode. In some aspects, the user device may detect, while operating in an interrupt mode, a touch move event associated with the touch screen of the user device. The user device may switch from the interrupt mode to a poll mode in connection with detecting the touch move event. The user device, while operating in the poll mode, may poll a touch event associated with the touch screen at a poll occasion that is prior to a time associated with a vertical synchronization (Vsync) signal. For example, the poll occasion may be prior to the time associated with the Vsync signal by a certain time offset. The user device may render, in connection with the Vsync signal, a frame for display on the touch screen based at least in part on polling the touch event at the poll occasion. In some examples, the user device, while operating in the poll mode, may poll touch events at one or more subsequent poll occasions prior to subsequent times associated with the Vsync signal (e.g., in one or more subsequent Vsync cycles) until a touch move event is no longer detected in a poll occasion. In some examples, the user device may switch to the interrupt mode in connection with detecting a touch event other than a touch move event in a poll occasion.
[0019] Particular aspects of the subject matter described in this disclosure can be implemented to realize one or more of the following potential advantages. In some examples, by switching from the interrupt mode to the poll mode in connection with detecting a touch move event and polling a touch event at a certain time offset prior to a time associated with the Vsync signal while operating in the poll mode, the user device may reduce touch latency as compared with remaining in the interrupt mode and performing touch sampling at a touch sampling rate associated with the interrupt mode. As a result, real-time visual feedback based on user input to the touch screen may be improved. For example, this may result in improved touch response on the user device for application scrolling, game touch response, and / or other touch movement controls or inputs to the touch screen of the user device. Furthermore, by rendering frames to be displayed on the touch screen based on polling of touch events at the poll occasions while operating in the poll mode, the user device may improve smoothness of rendered frames. In some examples, by disabling the interrupt mode while operating in the poll mode, the user device may reduce power consumption as compared with increasing the touch sampling rate associated with the interrupt mode. Thus, the user device may reduce the touch latency without a significant increase in power consumption.
[0020] Fig. 1 is a diagram of an example environment 100 in which systems and / or methods described herein may be implemented. As shown in Fig. 1, environment 100 may include a user device 110, a wireless communication device 120, and a network 130. Devices of environment 100 may interconnect via wired connections, wireless connections, or a combination of wired and wireless connections.
[0021] The user device 110 may include one or more devices capable of receiving, generating, storing, processing, and / or providing information associated with filtering inputs to the user device 110, as described elsewhere herein. The user device 110 may include a communication device and / or a computing device. For example, the user device 110 may include a communication device, a mobile phone, a user equipment, a laptop computer, a tablet computer, a desktop computer, a gaming console, a set-top box, a wearable communication device (e.g., a smart wristwatch, a pair of smart eyeglasses, a head mounted display, or a virtual reality headset) , or a similar type of device. In some implementations, the user device 110 may include a keyboard and / or a mouse (e.g., that is capable of wired or wireless communication with a computing device) .
[0022] The wireless communication device 120 may include one or more devices capable of receiving, generating, storing, processing, providing, and / or routing information associated with filtering inputs to the user device, as described elsewhere herein. The wireless communication device 120 may include a communication device and / or a computing device. For example, the wireless communication device 120 may include a server, such as an application server, a client server, a web server, a database server, a host server, a proxy server, a virtual server (e.g., executing on computing hardware) , or a server in a cloud computing system. In some implementations, the wireless communication device 120 may include computing hardware used in a cloud computing environment. In some implementations, the wireless communication device 120 may include a user device (e.g., that is capable of wired or wireless communication with a keyboard, a mouse, or the like) , as described herein.
[0023] The network 130 may include one or more wired and / or wireless networks. For example, the network 130 may include a wireless wide area network (e.g., a cellular network or a public land mobile network) , a local area network (e.g., a wired local area network or a wireless local area network (WLAN) , such as a Wi-Fi network) , a personal area network (e.g., a Bluetooth network) , a near-field communication network, a telephone network, a private network, the Internet, and / or a combination of these or other types of networks. The network 130 enables communication among the devices of environment 100.
[0024] The number and arrangement of devices and networks shown in Fig. 1 are provided as an example. In practice, there may be additional devices and / or networks, fewer devices and / or networks, different devices and / or networks, or differently arranged devices and / or networks than those shown in Fig. 1. Furthermore, two or more devices shown in Fig. 1 may be implemented within a single device, or a single device shown in Fig. 1 may be implemented as multiple, distributed devices. Additionally, or alternatively, a set of devices (e.g., one or more devices) of environment 100 may perform one or more functions described as being performed by another set of devices of environment 100.
[0025] Fig. 2 is a diagram illustrating example components of a device 200, in accordance with the present disclosure. The device 200 may correspond to the user device 110 and / or the wireless communication device 120. In some aspects, the user device 110 and / or the wireless communication device 120 may include one or more devices 200 and / or one or more components of the device 200. As shown in Fig. 2, the device 200 may include a bus 205, a processor 210, a memory 215, an input component 220, an output component 225, a communication component 230, and / or a sensor 235.
[0026] The bus 205 may include one or more components that enable wired and / or wireless communication among the components of the device 200. The bus 205 may couple together two or more components of Fig. 2, such as via operative coupling, communicative coupling, electronic coupling, and / or electric coupling. For example, the bus 205 may include an electrical connection (e.g., a wire, a trace, and / or a lead) and / or a wireless bus. The processor 210 may include a central processing unit, a graphics processing unit, a microprocessor, a controller, a microcontroller, a digital signal processor, a field-programmable gate array, an application-specific integrated circuit, and / or another type of processing component. The processor 210 may be implemented in hardware, firmware, or a combination of hardware and software. In some aspects, the processor 210 may include one or more processors capable of being programmed to perform one or more operations or processes described elsewhere herein.
[0027] The memory 215 may include volatile and / or nonvolatile memory. For example, the memory 215 may include random access memory (RAM) , read only memory (ROM) , a hard disk drive, and / or another type of memory (e.g., a flash memory, a magnetic memory, and / or an optical memory) . The memory 215 may include internal memory (e.g., RAM, ROM, or a hard disk drive) and / or removable memory (e.g., removable via a universal serial bus connection) . The memory 215 may be a non-transitory computer-readable medium. The memory 215 may store information, one or more instructions, and / or software (e.g., one or more software applications) related to the operation of the device 200. In some aspects, the memory 215 may include one or more memories that are coupled (e.g., communicatively coupled) to one or more processors (e.g., processor 210) , such as via the bus 205. Communicative coupling between a processor 210 and a memory 215 may enable the processor 210 to read and / or process information stored in the memory 215 and / or to store information in the memory 215.
[0028] The input component 220 may enable the device 200 to receive input, such as user input and / or sensed input. For example, the input component 220 may include a touch screen, a keyboard, a keypad, a mouse, a button, a microphone, a switch, a sensor, a global positioning system sensor, a global navigation satellite system sensor, an accelerometer, a gyroscope, and / or an actuator. The output component 225 may enable the device 200 to provide output, such as via a display (e.g., a touch screen) , a speaker, and / or a light-emitting diode. The communication component 230 may enable the device 200 to communicate with other devices via a wired connection and / or a wireless connection. For example, the communication component 230 may include a receiver, a transmitter, a transceiver, a modem, a network interface card, and / or an antenna.
[0029] The sensor 235 includes one or more devices capable of detecting a characteristic associated with device 200 (e.g., a characteristic relating to a physical environment of the device 200 or a characteristic relating to a condition of the device 200) . The sensor 235 may include one or more photodetectors (e.g., one or more photodiodes) , one or more cameras, one or more microphones, one or more gyroscopes (e.g., a micro-electro-mechanical system (MEMS) gyroscope) , one or more magnetometers, one or more accelerometers, one or more location sensors (e.g., a global positioning system (GPS) receiver or a local position system (LPS) device) , one or more motion sensors, one or more temperature sensors, one or more pressure sensors, and / or one or more touch sensors, among other examples.
[0030] The device 200 may perform one or more operations or processes described herein. For example, a non-transitory computer-readable medium (e.g., memory 215) may store a set of instructions (e.g., one or more instructions or code) for execution by the processor 210. The processor 210 may execute the set of instructions to perform one or more operations or processes described herein. In some aspects, execution of the set of instructions, by one or more processors 210, causes the one or more processors 210 and / or the device 200 to perform one or more operations or processes described herein. In some aspects, hardwired circuitry may be used instead of or in combination with the instructions to perform one or more operations or processes described herein. Additionally, or alternatively, the processor 210 may be configured to perform one or more operations or processes described herein. Thus, aspects described herein are not limited to any specific combination of hardware circuitry and software.
[0031] In some aspects, device 200 may include means for detecting, while operating in an interrupt mode, a touch move event associated with a touch screen of the device; means for switching from the interrupt mode to a poll mode in connection with detecting the touch move event; means for polling, while operating in the poll mode, a touch event associated with the touch screen at a poll occasion prior to a time associated with a Vsync signal by a time offset; and / or means for rendering, in connection with the Vsync signal, a frame for display on the touch screen based at least in part on polling the touch event at the poll occasion. In some aspects, the means for device 200 to perform processes and / or operations described herein may include one or more components of device 200 described in connection with Fig. 2, such as bus 205, processor 210, memory 215, input component 220, output component 225, communication component 230, and / or sensor 235.
[0032] The number and arrangement of components shown in Fig. 2 are provided as an example. The device 200 may include additional components, fewer components, different components, or differently arranged components than those shown in Fig. 2. Additionally, or alternatively, a set of components (e.g., one or more components) of the device 200 may perform one or more functions described as being performed by another set of components of the device 200.
[0033] Fig. 3 is a diagram illustrating examples 300, 310, and 320 of touch sampling of a touch screen of a user device, in accordance with the present disclosure.
[0034] A user device (e.g., user device 110) that is equipped with a touch screen may include an input system associated with the touch screen and a display system associated with the touch screen. In some examples, the input system may be the input component 220, may be included in the input component 220, or may include the input component 220. In some aspects, the input system may include a touch integrated circuit (IC) configured to a scan a touch panel of the touch screen to obtain a coordinate (e.g., a finger coordinate) of a touch input on the touch screen. In some examples, the display system may be the output component 225, may be included in the output component 225, or may include the output component 225. In some examples, the input system and the display system may be implemented as two individual modules in the user device.
[0035] In some examples, the user device may perform touch sampling in an interrupt mode. For example, the interrupt mode may be a default mode for touch sampling for the user device. As shown in Fig. 3, in the interrupt mode, the input system may perform touch sampling at periodic touch sampling occasions 302 in accordance with a touch sampling rate. The touch sampling rate is the frequency (e.g., how often) at which the touch sampling is performed (e.g., a frequency at which the touch sampling occasions 302 occur) . The input system may perform touch sampling at the touch sampling occasions 302 to monitor for touch events. For example, at each touch sampling occasion 302, the input system may detect whether a touch event has occurred. The input system may detect various types of touch events, including a touch down event, a touch up event, and / or a touch move event, among other examples. A touch down event may correspond to a new touch input to the touch screen (e.g., a user touching a finger to the touch screen) or a stationary touch input to the touch screen. A touch move event may correspond to a movement of a touch input on the touch screen (e.g., movement of a finger of a user while maintaining contact with the touch screen) . A touch up event may correspond to an ending or removal of a touch input on the touch screen (e.g., a finger of the user being lifted from the touch screen) .
[0036] When the input system detects a touch event, the input system (e.g., touch firmware of the input system) may report the touch event to the user device. For example, the input system may transmit an interrupt request (IRQ) to report the touch event. The IRQ may report the type of touch event detected and / or a location (e.g., a finger coordinate) associated with the touch event. In some examples, a system server executing on the user device may receive the IRQ. The system server (e.g., an input reader of the system server) may read the touch event reported by the IRQ, and the system server (e.g., an input dispatcher of the system server) may dispatch the touch event to an application executing on the user device. For example, the application may be a game or another type of application with output being displayed on the touch screen, and the touch event may be associated with the application. The application may receive the touch event from the system server. The application may consume the touch event when a Vsync signal 304 is received or detected by the user device and / or the application. For example, the application may apply the touch input associated with the touch event and begin rendering a frame to be displayed on the touch screen based at least in part on the touch event. The Vsync signal 304 may be transmitted / generated by the display system (e.g., by a hardware composer of the display system) . The Vsync signal 304 synchronizes the display pipeline (e.g., central processing unit (CPU) and / or graphics processing unit (GPU) frame rendering, SurfaceFlinger composition, and / or framebuffer transmission to the display, among other examples) with the display refresh cycle. As shown in Fig. 3, the Vsync signal 304 may be generated / transmitted periodically in accordance with the display refresh rate. In some examples, latency between the touch event being reported (e.g., at a touch sampling occasion 302) and the touch event being consumed by the application (e.g., at a time associated with the Vsync 304) may be introduced, which may increase the overall touch latency between a touch input on the touch screen and an output associated with the touch input being displayed on the touch screen.
[0037] As shown in Fig. 3, example 300 shows an example of touch sampling in which the touch sampling rate is equal to the display refresh rate. For example, the touch sampling rate and the display refresh rate may each be 90 Hz or another frequency. As shown in example 300, the touch sampling occasions 302 and the Vsync signal 304 may not be synchronized. As shown by reference number 306, latency between a touch event being reported and the touch event being consumed may be introduced due to the lack of synchronization between the touch sampling occasions 302 and the Vsync signal 304.
[0038] As further shown in Fig. 3, example 310 shows an example of touch sampling in which the touch sampling rate is greater than the display refresh rate. For example, the touch sampling rate may be 100 Hz and the display refresh rate may be 60 Hz. In other examples, other touch sampling rates and / or display refresh rates may be used. As shown in example 310, in a case in which the touch sampling rate is greater than the display refresh rate, there may be variable latencies (shown by reference number 312 and 314) between touch events being reported (e.g., at different touch sampling occasions 302) and consumed. This may result in rendered frames that are not smooth, but instead appear choppy or jerky to a user of the user device.
[0039] As further shown in Fig. 3, example 320 shows an example of touch sampling in which the touch sampling rate is equal to a multiple of the display refresh rate (e.g., touch sampling rate = n × display refresh rate, where n is an integer) . For example, the touch sampling rate may be 180 Hz and the display refresh rate may be 90 Hz, among other examples. As shown in example 320, the latency (shown by reference number 322) between a touch event being reported and the touch event being consumed may be reduced (e.g., in comparison with example 300) . However, the higher touch sampling rate may result in increased power consumption by the user device.
[0040] In some aspects, a user device may use a hybrid touch sample mode for touch sampling. The user device may detect, while operating in an interrupt mode, a touch move event associated with the touch screen of the user device. The user device may switch from the interrupt mode to a poll mode in connection with detecting the touch move event. The user device, while operating in the poll mode, may poll a touch event associated with the touch screen at a poll occasion that is prior to a time associated with a Vsync signal by a certain time offset. The user device may render, in connection with the Vsync signal, a frame for display on the touch screen based at least in part on polling the touch event at the poll occasion. In some aspects, the user device, while operating in the poll mode, may poll touch events at one or more subsequent poll occasions prior to subsequent times associated with the Vsync signal (e.g., in one or more subsequent Vsync cycles) until a touch move event is no longer detected in a poll occasion. In some aspects, the user device may switch to the interrupt mode in connection with detecting a touch event other than a touch move event in a poll occasion. As a result, the touch latency may be reduced as compared with touch sampling using only the interrupt mode. Furthermore, the hybrid touch sample mode may reduce the touch latency without a significant increase in power consumption (e.g., without increasing the touch sample frequency in the interrupt mode) . In addition, the hybrid touch sample mode may improve smoothness of rendered frames.
[0041] As indicated above, Fig. 3 is provided as an example. Other examples may differ from what is described with respect to Fig. 3.
[0042] Figs. 4A-4E are diagrams illustrating an example 400 associated with a hybrid touch sample mode, in accordance with the present disclosure. As shown in Figs. 4A-4E, example 400 includes a user device (e.g., user device 110) with a touch screen. The hybrid touch sample mode may include the user device switching between an interrupt mode for touch sampling and a poll mode for touch sampling.
[0043] As shown in Fig. 4A, and by reference number 405, the user device may monitor for touch events associated with the touch screen while operating in the interrupt mode. In some aspects, the interrupt mode may be a default touch sampling mode for the user device. While operating in the interrupt mode, the user device may monitor for touch events associated with the touch screen of the user device at periodic touch sampling occasions in accordance with a touch sampling rate. For example, at each touch sampling occasion, the user device may perform touch sampling to determine whether a touch event has occurred. The user device may monitor for touch down events, touch up events, and / or touch move events, among other examples, while operating in the interrupt mode. In some aspects, while the user device is operating in the interrupt mode, the input system of the user device (e.g., the input system associated with the touch screen of the user device) may monitor for touch events (e.g., at the touch sampling occasions) , as discussed above in connection with Fig. 3. For example, the user device may cause the input system to monitor for touch events while the user device is operating in the interrupt mode.
[0044] As further shown in Fig. 4A, and by reference number 410, the user device may detect a touch move event associated with the touch screen while operating in the interrupt mode. The user device (e.g., the input system of the user device) may detect the touch move event based at least in part on monitoring for touch events at the touch sampling occasions. When the input system detects a touch event (e.g., a touch down event, a touch up event, or a touch move event) at a touch sampling occasion, the input system may report the touch event. For example, the input system may transmit an IRQ reporting the touch event to the user device (e.g., to a system server executing on the user device) . The IRQ may report a type of the detected touch event. In some aspects, the input system may detect a touch move event (e.g., movement of a touch input on the touch screen) at a touch sampling occasion, and the input system may transmit an IRQ reporting the touch move event. The user device (e.g., a system server executing on the user device) may receive, from the input system, the IRQ reporting the touch move event.
[0045] As shown in Fig. 4B, and by reference number 415, the user device may switch from the interrupt mode to a poll mode in connection with detecting the touch move event. In some aspects, each time a new touch event is reported (e.g., via an IRQ) while the user device is operating in the interrupt mode, the user device may determine whether a touch move event has be detected. For example, the user device may determine whether the reported touch event is a touch move event. When a touch move event is detected (e.g., the reported touch event is a touch move event) while the user device is operating in the interrupt mode, the user device may switch from the interrupt mode to the poll mode. When a reported touch event is not a touch move event (e.g., the reported touch event is a touch down event or a touch up event) , the user device may continue monitoring for touch events in the interrupt mode.
[0046] In some aspects, the poll mode is a mode in which the user device polls the input system associated with the touch screen for touch data associated with the touch screen. In some aspects, when the user device switches to the poll mode, the user device may disable the interrupt mode. For example, the user device may cause the input system associated with the touch screen to refrain from monitoring for touch events at the touch sampling occasions associated with the interrupt mode. In some aspects, while the user device is operating in the poll mode, the input system may only report on touch events associated with the touch screen in response to a polling request from the user device.
[0047] As further shown in Fig. 4B, and by reference number 420, the user device, while operating in the poll mode, may poll a touch event associated with the touch screen at a poll occasion that is prior to a time associated with a Vsync signal. In some aspects, the poll occasion may be prior to the time associated with the Vsync signal by a reserved time offset. The reserved time offset may be a reserved amount of time that is configured between the poll occasion and the Vsync signal time. The reserved time offset may be set to minimize a latency between the poll occasion and the Vsync signal time, while providing enough time for polling the input system associated with the touch screen for touch data associated with a touch event and retrieving the touch data from the input system. In some aspects, at the poll occasion, the user device may transmit, to the input system, a polling request for touch data associated with the touch screen. For example, the touch data may include a coordinate (e.g., a finger coordinate) of a touch point on the touch screen at the poll occasion. The poll request may trigger the input system (e.g., a touch IC of input system) to scan a touch panel of the touch screen to obtain the touch data (e.g., the coordinate of the touch point) , and the user device may receive the touch data from the input system in response to the poll request.
[0048] In some aspects, the user device may wake, at the poll occasion, a poll thread for polling a touch event associated with the touch screen. In some aspects, the poll thread may be a separated thread with a timer that is created to poll for the touch data, such as the coordinate of the touch point on the touch screen. In some aspects, the poll thread is associated with a timer for waking the poll thread at a next poll occasion prior to a next Vsync signal (e.g., prior to a next time associated with the Vsync signal) by the reserved time offset. In some aspects, the timer may be calibrated with the Vsync signal for increased accuracy. For example, the timer may be calibrated with the refresh rate associated with the Vsync signal, such that the timer wakes the poll thread at the same reserved offset prior to the Vsync signal in each Vsync cycle (e.g., for each frame) while the user device is operating in the poll mode.
[0049] As further shown in Fig. 4B, and by reference number 425, the user device may render a frame for display on the touch screen based at least in part on polling the touch event at the poll occasion. The user device may render the frame, in connection with the Vsync signal, based at least in part on polling the touch event at the poll occasion prior to the Vsync signal time by the reserved offset. For example, the user device may begin rendering the frame at the time associated with the Vsync signal (e.g., the time at which the Vsync signal is generated by the display system and / or received by a component of the user device) . The user device may render the frame using the touch data retrieved by polling the touch event at the poll occasion, which will result in better real-time feedback, as compared with touch data reported in an IRQ (e.g., reported in the interrupt mode) . As shown by reference number 430, the user device may display the frame on the touch screen of the user device.
[0050] As shown in Fig. 4C, and by reference number 435, the user device, while operating in the poll mode, may repeat polling touch events at one or more subsequent poll occasions prior to subsequent times associated with the Vsync signal (e.g., in one or more subsequent Vsync cycles) until a touch move event is no longer detected in a poll occasion. Each subsequent poll occasion may be prior to a respective Vsync time in a respective Vsync cycle by the reserved time offset. In some aspects, when the user device polls a touch event in a poll occasion while operating in the polling mode (e.g., as discussed in connection with reference number 420) , the user device may determine whether the touch event in the poll occasion is a touch move event. For example, the user device may determine, based at least in part on the touch data retrieved in the poll occasion, whether a touch move event is detected (e.g., whether movement is detected from a previous touch event) or whether a touch move event is no longer detected.
[0051] In a case in which the touch event in a poll occasion is a touch move event, the user device may continue operating in the poll mode. That is the user device, in connection with the touch event in the poll occasion being a touch move event, may poll a next touch event associated with the touch screen at a next touch occasion prior to a next Vsync time (e.g., in a next Vsync cycle) by the reserved offset. In this case, the user device may then render, in connection with the Vsync signal, a next frame based at least in part on polling the next touch event at the next poll occasion, and the user device may display the next frame on the touch screen.
[0052] As further shown in Fig. 4C, and by reference number 440, the user device may switch from the poll mode to the interrupt mode in connection with a polled touch event in a poll occasion not being a touch move event. As discussed in connection with reference number 435, when the user device polls a touch event in a poll occasion while operating in the polling mode, the user device may determine whether the touch event in the poll occasion is a touch move event. For example, the user device may determine, based at least in part on the touch data retrieved in the poll occasion, whether a touch move event is detected (e.g., whether movement is detected from a previous touch event) or whether a touch move event is no longer detected. For example, a touch move event may be no longer detected in a case in which the user device determines that the touch event is a touch up event (e.g., the touch input has been removed / lifted from the touch screen) or in a case in which no movement has been detected from a previous touch event. In some aspects, the user device may switch from the poll mode to the interrupt mode (e.g., the user device may return to the interrupt mode) in connection with the touch event polled at the poll occasion not being a move event. The user device, in connection with switching from the poll mode to the interrupt mode, may then monitor for touch events while operating in the interrupt mode (e.g., as discussed in connection with reference number 405) .
[0053] Fig. 4D shows an example process 450 of the user device for performing touch sampling using the hybrid touch sample mode. As shown in Fig. 4D, and by block 452, the user device may operate in the interrupt mode. For example, the interrupt mode may be a default touch sampling mode, and the user device may begin the process 450 operating in the interrupt mode. The user device may monitor for touch events (e.g., in touch sampling occasions) while operating in the interrupt mode.
[0054] As shown by block 454, a new touch event may be reported while the user device is operating in the interrupt mode. For example, the new touch event may be a touch down event, a touch up event, or a touch move event. The new touch event may be detected by an input system associated with the touch screen of the user device, and the input system may transmit an IRQ reporting the new touch event.
[0055] As shown by block 456, the user device may determine whether a touch move event is detected. For example, the user device may determine whether the reported touch event (e.g., the new touch event) is a touch move event. If the user device determines that a touch move event is not detected (e.g., the reported touch event is not a touch move event) , process 450 returns to block 452, and the user device may continue to operate in the interrupt mode. If the user device determines that a touch move event is detected (e.g., the reported touch event is a touch move event) , process 450 proceeds to block 458.
[0056] As shown by block 458, the user device may switch to the poll mode. The user device may switch from the interrupt mode to the poll mode in connection with the determination (in block 456) that a touch move event is detected. As shown by block 460, the user device, while operating in the poll mode, may wake a poll thread at a poll occasion prior to a Vsync signal by a reserved time offset. As shown by block 462, the user device may poll a touch event at the poll occasion prior to the Vsync signal by the reserved time offset. For example, the poll thread may poll an input system associated with the touch screen for touch data associated with the touch event at the poll occasion.
[0057] As shown by block 464, the user device may determine whether a touch move event is detected in the current Vsync cycle. For example, the user device may determine, based on the touch data retrieved at the poll occasion, whether the polled touch event is a touch move event. In some aspects, the user device may determine whether a touch move event was reported in response to polling the touch event (e.g., polling for the touch data) at the poll occasion. If the user device determines that a touch move event is detected in the current Vsync cycle, process 450 returns to block 460, and the user device may again wake the poll thread (e.g., using the timer associated with the poll thread) at a next poll occasion in a next Vsync cycle. If the user device determines that a touch move event is not detected in the current Vsync cycle, process 450 proceeds to block 466.
[0058] As shown by block 466, the user device may switch to the interrupt mode. The user device may switch from the poll mode to the interrupt mode in connection with the determination (in block 464) that a touch move event is not detected in the current Vsync cycle. Process 450 then returns to block 452, and the user device may operate in the interrupt mode (e.g., the user device may monitor for touch events in the interrupt mode) , as discussed above.
[0059] Fig. 4E shows an example 470 of touch sampling using the hybrid touch sample mode. As shown in Fig. 4E, and by reference number 472, the user device begins by operating in the interrupt mode. As shown by reference number 474, while operating in the interrupt mode, the user device detects a touch down event in a touch sampling occasion. For example, the input system associated with the touch screen of the user device may transmit, to the user device, an IRQ reporting the touch down event. The user device may continue operating in the interrupt mode after detecting the touch down event.
[0060] As shown by reference number 476, while operating in the interrupt mode, the user device detects a touch move event in a touch sampling occasion. For example, the input system associated with the touch screen of the user device may transmit, to the user device, an IRQ reporting the touch move event. A position, on the touch screen, of a touch point associated with the touch move event detected in the touch sampling occasion is (x1, y1) . As shown by reference number 478, the user device switches from the interrupt mode to the poll mode in connection with detecting the touch move event.
[0061] As shown by reference number 480, while operating in the poll mode, the user device polls a touch event at a first poll occasion prior to a Vsync signal 482 in a first Vsync cycle by the reserved time offset 484. The touch event polled in the first poll occasion is a touch move event, and a position, on the touch screen, of a touch point associated with the touch event polled in the first poll occasion is (x2, y2) . The user device may begin to render a first frame associated with the first Vsync cycle at a time (t1) of the Vsync signal of the first Vsync cycle. At t1, the user device may render the first frame based on the touch move event at position (x2, y2) that is polled in the first poll occasion. The position (x2, y2) is more recent than the position (x1, y1) (e.g., which would be used for rendering in interrupt mode touch sampling) , and thus closer to the current touch point position at t1. Furthermore, as shown in Fig. 4E, the latency between the first poll occasion and t1 is equal to the reserved time offset 484, which is less than a latency (shown by reference number 486) between the touch move event detected in the interrupt mode and t1.
[0062] The user device continues operating in the poll mode after a first Vsync cycle in connection with the touch event polled in the first poll occasion being a touch move event. As shown by reference number 488, while operating in the poll mode, the user device polls a touch event at a second poll occasion prior to the Vsync signal in a second Vsync cycle. The touch event polled in the second poll occasion is a touch move event. The user device continues operating in the poll mode after a second Vsync cycle in connection with the touch event polled in the second poll occasion being a touch move event. As shown by reference number 490, while operating in the poll mode, the user device polls a touch event at a third poll occasion prior to the Vsync signal in a third Vsync cycle. The touch event polled in the third poll occasion is a touch up event. As shown by reference number 492, the user device switches from the poll mode to the interrupt mode in connection with the touch event polled in the third poll occasion not being a touch move event.
[0063] As indicated above, Figs. 4A-4E are provided as an example. Other examples may differ from what is described with respect to Figs. 4A-4E.
[0064] Fig. 5 is a diagram illustrating an example 500 associated with a hybrid touch sample mode, in accordance with the present disclosure. As shown in Fig. 5, reference number 510 shows an example of touch sampling (for a touch move event) using a default (e.g., interrupt only) touch sampling mode, and reference number 520 shows an example of touch sampling (for a touch move event) using the hybrid touch sample mode discussed in connection with Figs. 4A-4E.
[0065] As shown in Fig. 5, T0 is a time at which an IRQ reporting a touch event (e.g., a touch move event) is reported. Before reporting the IRQ, the input system (e.g., the touch IC) may scan the touch panel of the touch screen to obtain the touch point coordinate P0 (X0, Y0) . T1 is a time at which the user device obtains poll results from the input system (e.g., the touch IC) , while operating in the poll mode of the hybrid touch sample mode. While operating in the poll mode, the user device may send the poll request, and trigger the touch IC to scan the touch panel of the touch screen to obtain the touch point coordinate P1 (X1, Y1) . T2 is a time at which the Vsync signal is received, and the user device begins rendering for a frame (shown as “Frame-0” ) . Tn is a time at which Frame-0 is displayed on the touch screen (e.g., visible to a user of the user device) . For example, the time from T2 to Tn may include CPU rendering, GPU rendering, SurfaceFlinger composition, and / or framebuffer transmission to touch screen, among other examples.
[0066] In the default (e.g., interrupt only) touch sampling example shown by reference number 510, the user device calculates and renders Frame-0 based on IRQ reporting to the touch event (e.g., the touch move event) , which indicates the coordinate P0 (X0, Y0) . In this example, the touch move latency (e.g., from the touch point position to the corresponding frame displayed on screen) is (Tn -T0 = 55 ms) . In this example, the delay / lag distance for the touch input is (Pn (Xn, Yn) -P0 (X0, Y0) ) , where Pn (Xn, Yn) is a current touch point position (e.g., finger position) at Tn.
[0067] In the hybrid touch sampling example shown by reference number 520, the user device calculates and renders Frame-0 based on the poll result, which indicates the coordinate P1 (X1, Y1) . In this example, the touch move latency (from the touch point position to the corresponding frame displayed on screen) is (Tn -T1 = 50 ms) . In this example, the delay / lag distance for human is (Pn (Xn, Yn) –P1 (X1, Y1) ) . Accordingly, in this example, the hybrid touch sampling may reduce the touch latency by 5 ms, as compared with the default touch sampling.
[0068] As indicated above, Fig. 5 is provided as an example. Other examples may differ from what is described with respect to Fig. 5.
[0069] Fig. 6 is a flowchart of an example process 600 associated with a hybrid touch sample mode, in accordance with the present disclosure. In some aspects, one or more process blocks of Fig. 6 are performed by a user device (e.g., user device 110) . In some aspects, one or more process blocks of Fig. 6 are performed by another device or a group of devices separate from or including the user device, such as a wireless communication device (e.g., wireless communication device 120) . Additionally, or alternatively, one or more process blocks of Fig. 6 may be performed by one or more components of device 200, such as processor 210, memory 215, input component 220, output component 225, communication component 230, and / or sensor 235.
[0070] As shown in Fig. 6, process 600 may include detecting, while operating in an interrupt mode, a touch move event associated with a touch screen of the user device (block 610) . For example, the user device may detect, while operating in an interrupt mode, a touch move event associated with a touch screen of the user device, as described above.
[0071] As further shown in Fig. 6, process 600 may include switching from the interrupt mode to a poll mode in connection with detecting the touch move event (block 620) . For example, the user device may switch from the interrupt mode to a poll mode in connection with detecting the touch move event, as described above.
[0072] As further shown in Fig. 6, process 600 may include polling, while operating in the poll mode, a touch event associated with the touch screen at a poll occasion prior to a time associated with a Vsync signal by a time offset (block 630) . For example, the user device may poll, while operating in the poll mode, a touch event associated with the touch screen at a poll occasion prior to a time associated with a Vsync signal by a time offset, as described above.
[0073] As further shown in Fig. 6, process 600 may include rendering, in connection with the Vsync signal, a frame for display on the touch screen based at least in part on polling the touch event at the poll occasion (block 640) . For example, the user device may render, in connection with the Vsync signal, a frame for display on the touch screen based at least in part on polling the touch event at the poll occasion, as described above.
[0074] Process 600 may include additional aspects, such as any single aspect or any combination of aspects described below and / or in connection with one or more other processes described elsewhere herein.
[0075] In a first aspect, process 600 includes monitoring, while operating in the interrupt mode, for touch events associated with the touch screen in accordance with a touch sampling rate, wherein detecting the touch move event includes detecting the touch move event based at least in part on the monitoring for touch events.
[0076] In a second aspect, alone or in combination with the first aspect, process 600 includes displaying the frame on the touch screen.
[0077] In a third aspect, alone or in combination with one or more of the first and second aspects, process 600 includes disabling the interrupt mode in connection with switching from the interrupt mode to the poll mode.
[0078] In a fourth aspect, alone or in combination with one or more of the first through third aspects, disabling the interrupt mode includes causing an input system associated with the touch screen to refrain from monitoring for touch events at touch sampling occasions associated with the interrupt mode.
[0079] In a fifth aspect, alone or in combination with one or more of the first through fourth aspects, detecting the touch move event includes receiving, from an input system associated with the touch screen, an interrupt request reporting the touch move event.
[0080] In a sixth aspect, alone or in combination with one or more of the first through fifth aspects, polling the touch event associated with the touch screen at the poll occasion includes waking, at the poll occasion, a poll thread for polling the touch event associated with the touch screen, wherein the poll thread is associated with a timer for waking the poll thread at a next poll occasion prior to a next time associated with the Vsync signal by the time offset.
[0081] In a seventh aspect, alone or in combination with one or more of the first through sixth aspects, the timer is calibrated with a refresh rate associated with the Vsync signal.
[0082] In an eighth aspect, alone or in combination with one or more of the first through seventh aspects, polling the touch event associated with the touch screen at the poll occasion includes polling for touch data associated with the touch screen at the poll occasion.
[0083] In a ninth aspect, alone or in combination with one or more of the first through eighth aspects, the touch data includes a coordinate of a touch point on the touch screen at the poll occasion.
[0084] In a tenth aspect, alone or in combination with one or more of the first through ninth aspects, process 600 includes polling, while operating in the poll mode and in connection with the touch event being a move event, a next touch event associated with the touch screen at a next touch occasion prior to a next time associated with the Vsync signal by the time offset, and rendering, in connection with the Vsync signal, a next frame for display on the touch screen based at least in part on polling the next touch event at the next poll occasion.
[0085] In an eleventh aspect, alone or in combination with one or more of the first through tenth aspects, process 600 includes switching from the poll mode to the interrupt mode in connection with the touch event polled at the poll occasion not being a move event.
[0086] In a twelfth aspect, alone or in combination with one or more of the first through eleventh aspects, process 600 includes monitoring for touch events while operating in the interrupt mode in connection with switching from the poll mode to the interrupt mode.
[0087] Although Fig. 6 shows example blocks of process 600, in some aspects, process 600 includes additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted in Fig. 6. Additionally, or alternatively, two or more of the blocks of process 600 may be performed in parallel.
[0088] The following provides an overview of some Aspects of the present disclosure:
[0089] Aspect 1: A method performed by a user device, comprising: detecting, while operating in an interrupt mode, a touch move event associated with a touch screen of the user device; switching from the interrupt mode to a poll mode in connection with detecting the touch move event; polling, while operating in the poll mode, a touch event associated with the touch screen at a poll occasion prior to a time associated with a vertical synchronization (Vsync) signal by a time offset; and rendering, in connection with the Vsync signal, a frame for display on the touch screen based at least in part on polling the touch event at the poll occasion.
[0090] Aspect 2: The method of Aspect 1, further comprising: monitoring, while operating in the interrupt mode, for touch events associated with the touch screen in accordance with a touch sampling rate, wherein detecting the touch move event comprises detecting the touch move event based at least in part on the monitoring for touch events.
[0091] Aspect 3: The method of any of Aspects 1-2, further comprising: displaying the frame on the touch screen.
[0092] Aspect 4: The method of any of Aspects 1-3, further comprising: disabling the interrupt mode in connection with switching from the interrupt mode to the poll mode.
[0093] Aspect 5: The method of Aspect 4, wherein disabling the interrupt mode comprises: causing an input system associated with the touch screen to refrain from monitoring for touch events at touch sampling occasions associated with the interrupt mode.
[0094] Aspect 6: The method of any of Aspects 1-5, wherein detecting the touch move event comprises: receiving, from an input system associated with the touch screen, an interrupt request reporting the touch move event.
[0095] Aspect 7: The method of any of Aspects 1-6, wherein polling the touch event associated with the touch screen at the poll occasion comprises: waking, at the poll occasion, a poll thread for polling the touch event associated with the touch screen, wherein the poll thread is associated with a timer for waking the poll thread at a next poll occasion prior to a next time associated with the Vsync signal by the time offset.
[0096] Aspect 8: The method of Aspect 7, wherein the timer is calibrated with a refresh rate associated with the Vsync signal.
[0097] Aspect 9: The method of any of Aspects 1-8, wherein polling the touch event associated with the touch screen at the poll occasion comprises: polling for touch data associated with the touch screen at the poll occasion.
[0098] Aspect 10: The method of Aspect 9, wherein the touch data includes a coordinate of a touch point on the touch screen at the poll occasion.
[0099] Aspect 11: The method of any of Aspects 1-10, further comprising: polling, while operating in the poll mode and in connection with the touch event being a move event, a next touch event associated with the touch screen at a next touch occasion prior to a next time associated with the Vsync signal by the time offset; and rendering, in connection with the Vsync signal, a next frame for display on the touch screen based at least in part on polling the next touch event at the next poll occasion.
[0100] Aspect 12: The method of any of Aspects 1-11, further comprising: switching from the poll mode to the interrupt mode in connection with the touch event polled at the poll occasion not being a move event.
[0101] Aspect 13: The method of Aspect 12, further comprising: monitoring for touch events while operating in the interrupt mode in connection with switching from the poll mode to the interrupt mode.
[0102] Aspect 14: An apparatus for wireless communication at a device, the apparatus comprising one or more processors; one or more memories coupled with the one or more processors; and instructions stored in the one or more memories and executable by the one or more processors to cause the apparatus to perform the method of one or more of Aspects 1-13.
[0103] Aspect 15: An apparatus for wireless communication at a device, the apparatus comprising one or more memories and one or more processors coupled to the one or more memories, the one or more processors configured to cause the device to perform the method of one or more of Aspects 1-13.
[0104] Aspect 16: An apparatus for wireless communication, the apparatus comprising at least one means for performing the method of one or more of Aspects 1-13.
[0105] Aspect 17: A non-transitory computer-readable medium storing code for wireless communication, the code comprising instructions executable by one or more processors to perform the method of one or more of Aspects 1-13.
[0106] Aspect 18: A non-transitory computer-readable medium storing a set of instructions for wireless communication, the set of instructions comprising one or more instructions that, when executed by one or more processors of a device, cause the device to perform the method of one or more of Aspects 1-13.
[0107] Aspect 19: A device for wireless communication, the device comprising a processing system that includes one or more processors and one or more memories coupled with the one or more processors, the processing system configured to cause the device to perform the method of one or more of Aspects 1-13.
[0108] Aspect 20: An apparatus for wireless communication at a device, the apparatus comprising one or more memories and one or more processors coupled to the one or more memories, the one or more processors individually or collectively configured to cause the device to perform the method of one or more of Aspects 1-13.
[0109] The foregoing disclosure provides illustration and description but is not intended to be exhaustive or to limit the aspects to the precise forms disclosed. Modifications and variations may be made in light of the above disclosure or may be acquired from practice of the aspects.
[0110] As used herein, the term “component” is intended to be broadly construed as hardware and / or a combination of hardware and software. “Software” shall be construed broadly to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, executables, threads of execution, procedures, and / or functions, among other examples, whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise. As used herein, a “processor” is implemented in hardware and / or a combination of hardware and software. It will be apparent that systems and / or methods described herein may be implemented in different forms of hardware and / or a combination of hardware and software. The actual specialized control hardware or software code used to implement these systems and / or methods is not limiting of the aspects. Thus, the operation and behavior of the systems and / or methods are described herein without reference to specific software code, since those skilled in the art will understand that software and hardware can be designed to implement the systems and / or methods based, at least in part, on the description herein.
[0111] As used herein, “satisfying a threshold” may, depending on the context, refer to a value being greater than the threshold, greater than or equal to the threshold, less than the threshold, less than or equal to the threshold, equal to the threshold, not equal to the threshold, or the like.
[0112] Even though particular combinations of features are recited in the claims and / or disclosed in the specification, these combinations are not intended to limit the disclosure of various aspects. Many of these features may be combined in ways not specifically recited in the claims and / or disclosed in the specification. The disclosure of various aspects includes each dependent claim in combination with every other claim in the claim set. As used herein, a phrase referring to “at least one of” a list of items refers to any combination of those items, including single members. As an example, “at least one of: a, b, or c” is intended to cover a, b, c, a + b, a + c, b + c, and a + b + c, as well as any combination with multiples of the same element (e.g., a + a, a + a + a, a + a + b, a +a + c, a + b + b, a + c + c, b + b, b + b + b, b + b + c, c + c, and c + c + c, or any other ordering of a, b, and c) .
[0113] No element, act, or instruction used herein should be construed as critical or essential unless explicitly described as such. Also, as used herein, the articles “a” and “an” are intended to include one or more items and may be used interchangeably with “one or more. ” Further, as used herein, the article “the” is intended to include one or more items referenced in connection with the article “the” and may be used interchangeably with “the one or more. ” Furthermore, as used herein, the terms “set” and “group” are intended to include one or more items and may be used interchangeably with “one or more. ” Where only one item is intended, the phrase “only one” or similar language is used. Also, as used herein, the terms “has, ” “have, ” “having, ” or the like are intended to be open-ended terms that do not limit an element that they modify (e.g., an element “having” A may also have B) . Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise. Also, as used herein, the term “or” is intended to be inclusive when used in a series and may be used interchangeably with “and / or, ” unless explicitly stated otherwise (e.g., if used in combination with “either” or “only one of” ) .
Claims
1.A user device, comprising:one or more memories; andone or more processors, coupled to the one or more memories, configured to cause the user device to:detect, while operating in an interrupt mode, a touch move event associated with a touch screen of the user device;switch from the interrupt mode to a poll mode in connection with detecting the touch move event;poll, while operating in the poll mode, a touch event associated with the touch screen at a poll occasion prior to a time associated with a vertical synchronization (Vsync) signal by a time offset; andrender, in connection with the Vsync signal, a frame for display on the touch screen based at least in part on polling the touch event at the poll occasion.2.The user device of claim 1, wherein the one or more processors are further configured to cause the user device to:monitor, while operating in the interrupt mode, for touch events associated with the touch screen in accordance with a touch sampling rate,wherein the one or more processors, to cause the user device to detect the touch move event, are configured to cause the user device to detect the touch move event based at least in part on the monitoring for touch events.3.The user device of claim 1, wherein the one or more processors are further configured to cause the user device to:display the frame on the touch screen.4.The user device of claim 1, wherein the one or more processors are further configured to cause the user device to:disable the interrupt mode in connection with switching from the interrupt mode to the poll mode.5.The user device of claim 4, wherein the one or more processors, to cause the user device to disable the interrupt mode, are configured to cause the user device to:cause an input system associated with the touch screen to refrain from monitoring for touch events at touch sampling occasions associated with the interrupt mode.6.The user device of claim 1, wherein the one or more processors, to cause the user device to detect the touch move event, are configured to cause the user device to:receive, from an input system associated with the touch screen, an interrupt request reporting the touch move event.7.The user device of claim 1, wherein the one or more processors, to cause the user device to poll the touch event associated with the touch screen at the poll occasion, are configured to cause the user device to:wake, at the poll occasion, a poll thread for polling the touch event associated with the touch screen,wherein the poll thread is associated with a timer for waking the poll thread at a next poll occasion prior to a next time associated with the Vsync signal by the time offset.8.The user device of claim 7, wherein the timer is calibrated with a refresh rate associated with the Vsync signal.9.The user device of claim 1, wherein the one or more processors, to cause the user device to poll the touch event associated with the touch screen at the poll occasion, are configured to cause the user device to:polling for touch data associated with the touch screen at the poll occasion.10.The user device of claim 9, wherein the touch data includes a coordinate of a touch point on the touch screen at the poll occasion.11.The user device of claim 1, wherein the one or more processors are further configured to cause the user device to:poll, while operating in the poll mode and in connection with the touch event being a move event, a next touch event associated with the touch screen at a next touch occasion prior to a next time associated with the Vsync signal by the time offset; andrender, in connection with the Vsync signal, a next frame for display on the touch screen based at least in part on polling the next touch event at the next poll occasion.12.The user device of claim 1, wherein the one or more processors are further configured to cause the user device to:switch from the poll mode to the interrupt mode in connection with the touch event polled at the poll occasion not being a move event.13.The user device of claim 12, wherein the one or more processors are further configured to cause the user device to:monitor for touch events while operating in the interrupt mode in connection with switching from the poll mode to the interrupt mode.14.A method performed by a user device, comprising:detecting, while operating in an interrupt mode, a touch move event associated with a touch screen of the user device;switching from the interrupt mode to a poll mode in connection with detecting the touch move event;polling, while operating in the poll mode, a touch event associated with the touch screen at a poll occasion prior to a time associated with a vertical synchronization (Vsync) signal by a time offset; andrendering, in connection with the Vsync signal, a frame for display on the touch screen based at least in part on polling the touch event at the poll occasion.15.The method of claim 14, further comprising:monitoring, while operating in the interrupt mode, for touch events associated with the touch screen in accordance with a touch sampling rate,wherein detecting the touch move event comprises detecting the touch move event based at least in part on the monitoring for touch events.16.The method of claim 14, further comprising:displaying the frame on the touch screen.17.The method of claim 14, further comprising:disabling the interrupt mode in connection with switching from the interrupt mode to the poll mode.18.The method of claim 14, wherein polling the touch event associated with the touch screen at the poll occasion comprises:waking, at the poll occasion, a poll thread for polling the touch event associated with the touch screen,wherein the poll thread is associated with a timer for waking the poll thread at a next poll occasion prior to a next time associated with the Vsync signal by the time offset.19.The method of claim 14, further comprising:polling, while operating in the poll mode and in connection with the touch event being a move event, a next touch event associated with the touch screen at a next touch occasion prior to a next time associated with the Vsync signal by the time offset; andrendering, in connection with the Vsync signal, a next frame for display on the touch screen based at least in part on polling the next touch event at the next poll occasion.20.A non-transitory computer-readable medium storing a set of instructions, the set of instructions comprising:one or more instructions that, when executed by one or more processors of a user device, cause the user device to:detect, while operating in an interrupt mode, a touch move event associated with a touch screen of the user device;switch from the interrupt mode to a poll mode in connection with detecting the touch move event;poll, while operating in the poll mode, a touch event associated with the touch screen at a poll occasion prior to a time associated with a vertical synchronization (Vsync) signal by a time offset; andrender, in connection with the Vsync signal, a frame for display on the touch screen based at least in part on polling the touch event at the poll occasion.
Citation Information
Patent Citations
Hardware vertical synchronization signal obtaining method and device, equipment and storage medium
CN111190560A
Operation method for touch panel of portable terminal and portable terminal supporting the same
US20110291967A1
Intelligent Input / Output Operation Completion Modes in a High-Speed Network
US20200089527A1
Methods and apparatus for dynamically switching between polling and interrupt mode for a ring buffer of a network interface card
US7937499B1
Load balancing method for multi-thread forwarding, and related apparatus
WO2022257799A1