|
その後 Intel HD Graphics 4000 のPCでテストができて、再現もできました。
結果を先に書くと、GPUのバグということで間違いなさそうです。
調べてみたところ、ScrollWindowExを介してGPUのアクセラレータが使われて、
さらに入力イベントに対してかなり高速に処理できている場合に限って再現でき
ました。
その際、他のソフトでも同時に高速に描画処理が行われていると高い確率で再現
します。
他のソフトが何もしていないと起きないです。
Intel HD Graphics 4000でのみ起きて、Intel HD Graphics 無印や、Radeon HD
5450のPCなどでは再現せず、GPU固有の問題ということになると思います。
Visual C++で新規プロジェクトの既定のソースに以下の行を追加するだけでも再
現しました。
case WM_MOUSEMOVE:{
RECT rc;
GetClientRect(hWnd,&rc);
ScrollWindowEx( hWnd, 0, 20, &rc, &rc, NULL, NULL, SW_ERASE |
SW_INVALIDATE );
return 0;
}
この場合マウスの動きに対して高速に応答するので再現しやすかったです。
応答が遅い場合は再現しないです。
秀丸エディタの対応としては、基本的にはやはりトラブル対策をONにしていただ
くということになると思います。
ただ回避方法も見つけて、GetPixel()をしてスクロールした部分のピクセルを取
得しようとすると、GPUのキャッシュがフラッシュされるためか回避できました。
ただ取得するだけなので、影響は少ないと思うので、そういう対策も入れてもう
一度β版を出そうと思います。
|
|