Pixelユーザーを長年悩ませてきたスクロール時のカクつき問題。この問題に対し、サードパーティデベロッパーが原因を特定し、修正パッチを公開した。長期間放置されてきた問題の解決に光が差すか、Googleの対応に注目が集まっている。
Pixelユーザーを悩ませるスクロール問題
ここ数ヶ月、Pixelデバイスのユーザーから、アプリ使用時のスクロールにおけるカクつき問題が多数報告されている。Reddit、Gmail、YouTubeコメント、Instagramなど、多くのアプリでスクロール操作時に滑らかさを欠く現象が発生しており、ユーザー体験を著しく損なっているのだ。この問題は、Android 14のリリース以降顕著になり、最新のAndroid 15においても依然として改善が見られない状況である。
Googleもこの問題を認識しており、Issue Tracker上でユーザーからの報告を受け付けているが、抜本的な解決策は未だ提供されていない。Googleは、同様の報告を既存のIssue Trackerに重複として統合し、クローズする対応を繰り返しており、ユーザーには新しいAndroidビルドを試すよう推奨するに留まっている。しかし、新しいビルドがリリースされても問題は解決せず、Android 16 Developer Previewやbeta 1ビルドにおいても、依然としてこの問題が確認されている。
サードパーティデベロッパーが原因を特定
Pixelユーザーコミュニティが長期間にわたり解決を待ち望む中、Androidカーネル開発者として知られるSultan Alsawaf氏が、このスクロール問題の原因を特定した。Alsawaf氏によれば、問題の根源はPixelデバイスに搭載されているTensorチップのドライバーコードに存在するという。
Alsawaf氏の分析によると、Tensorチップのドライバーコード内のbts_update_bw()関数において、排他制御(同期処理)に使用するロック(lock)の種類に誤りがあった。本来、同時に一つの処理しか実行できないように制御するmutex lock(btsdev->mutex_lock)を使用すべき箇所で、より制約の緩いlock(btsdev->lock)が誤って使用されていたのである。
このロックの種類の誤りにより、Pixelデバイスはディスプレイに必要な帯域幅(bandwidth)を正確に計算できなくなる。その結果、ディスプレイコントローラを含むプロセッサの各コンポーネントが予期せぬ動作を引き起こし、スクロール時のカクつきやパフォーマンスの低下として表面化していたとAlsawaf氏は指摘する。
Alsawaf氏による修正とGoogleへの提言
Alsawaf氏は、問題の原因特定に留まらず、修正パッチを作成し、Pixel 8ユーザー向けにカスタムカーネルとして公開した。さらに、修正コードをGoogleにも提出している。Alsawaf氏が提供した修正は、帯域幅の利用スケジュールを適切に管理し、常に一つの処理のみが帯域幅を使用するようにすることで、問題を解決するものだという。
しかしながら、カスタムカーネルの導入は、一般ユーザーにとってはハードルが高く、デバイスのデータ損失や最悪の場合、デバイスの破損に繋がるリスクも伴う。したがって、多くのPixelユーザーは、Googleが公式ソフトウェアアップデートを通じてこの修正を実装することを期待している。
現時点では、GoogleがAlsawaf氏の指摘と修正コードをどのように評価し、今後のアップデートに反映させるかは不明である。Pixelユーザーからは、早期の公式な修正と問題解決を求める声が強まっている。
Source
コメント