[問題] mips write buffer的問題
開發環境是 c
cpu 是 mips 架構
最近碰到一個問題
就是我在frame buffer 操作畫出一個填滿圓形
使用一個個點填入
填入的演算法確定是對的
(我有把資料讀出來看, 確定沒問題)
可是問題出現是說
我的圓形在畫面上並沒有完整的畫出來
每一次畫一個圓形就會把前面的圓形慢慢的補齊
如果畫7~8個半徑6的小圓, 就只會有圓的雛型
如果畫上一個半徑為60的較大圓形, 那前面7,8個小圓就會被完整的畫完
原因跟老闆討論過 問題可能是資料還卡在出在write buffer 這邊
所以dram上的資料沒有馬上被刷新
一開始我也有考慮到這問題
所以在程式碼內加上volatile 但是沒有用處
後來說要把cache 直接清空
所以在程式碼內插入 asm("sync"); 也是沒有用處
目前是採用比較暴力的做法,
這我是進行測試時實驗出來的
就是在frame buffer 自己對自己上進行 memcpy一次
硬是把write buffer 內的值清出來
不過這做法並不是我想要的
畢竟loading 很大
想問的是說 這問題有人有碰過並且有比較好的解法的嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.204.174.139
※ 編輯: realmeat 來自: 220.130.192.231 (04/13 09:10)
Programming 近期熱門文章
PTT數位生活區 即時熱門文章