本技術(shù)涉及計(jì)算機(jī),特別是涉及一種基于畫面渲染的任務(wù)處理方法及裝置。
背景技術(shù):
1、畫面渲染可以由主線程和渲染線程共同完成。在一個具體的示例中,對于一幀畫面而言,可以由主線程先執(zhí)行與該幀畫面相關(guān)的處理任務(wù),得到相應(yīng)的處理結(jié)果,并將該處理結(jié)果傳遞給渲染線程,由渲染進(jìn)行執(zhí)行渲染操作。
2、目前,主線程可以按照一定的頻率執(zhí)行處理任務(wù),具體的,主線程執(zhí)行某一幀畫面對應(yīng)的處理任務(wù)的起始時刻與主線程執(zhí)行下一幀畫面對應(yīng)的處理任務(wù)的起始時刻之間的時間差是一個固定的值。
3、但是,在一些畫面渲染場景中,對畫面展示的流暢度要求較高,當(dāng)前使用的主線程和渲染線程共同實(shí)現(xiàn)畫面渲染的方式,無法滿足要求。
4、因此,急需一種方案,能夠解決上述問題。
技術(shù)實(shí)現(xiàn)思路
1、為了解決或者至少部分解決上述技術(shù)問題,本技術(shù)實(shí)施例提供了一種基于畫面渲染的任務(wù)處理方法及裝置。
2、第一方面,本技術(shù)實(shí)施例提供了一種基于畫面渲染的任務(wù)處理方法,所述方法包括:
3、監(jiān)測主線程執(zhí)行當(dāng)前待渲染畫面幀對應(yīng)的處理任務(wù);
4、獲取下一幀待渲染畫面幀對應(yīng)的處理任務(wù)中的部分或者全部任務(wù)作為預(yù)加載任務(wù);
5、響應(yīng)于監(jiān)測到所述當(dāng)前待渲染畫面幀對應(yīng)的處理任務(wù)執(zhí)行結(jié)束,控制目標(biāo)線程立即執(zhí)行所述預(yù)加載任務(wù),所述目標(biāo)線程包括所述主線程和/或子線程。
6、可選的,所述處理任務(wù)包括輸入類型的任務(wù)、動畫類型的任務(wù)、遍歷類型的任務(wù)和提交類型的任務(wù);
7、所述監(jiān)測主線程執(zhí)行當(dāng)前待渲染畫面幀對應(yīng)的處理任務(wù),包括:利用預(yù)先創(chuàng)建的提交類型的監(jiān)測任務(wù)監(jiān)測所述主線程執(zhí)行當(dāng)前待渲染畫面幀對應(yīng)的處理任務(wù);
8、所述響應(yīng)于監(jiān)測到所述當(dāng)前待渲染畫面幀對應(yīng)的處理任務(wù)執(zhí)行結(jié)束,包括:響應(yīng)于監(jiān)測到所述監(jiān)測任務(wù)被觸發(fā)。
9、可選的,獲取下一幀待渲染畫面幀對應(yīng)的處理任務(wù)中的部分或者全部任務(wù)作為預(yù)加載任務(wù),包括:
10、從預(yù)設(shè)存儲空間中獲取若干個處理任務(wù),所述預(yù)設(shè)存儲空間中存儲有至少一個待渲染畫面幀對應(yīng)的處理任務(wù);
11、基于所述若干個處理任務(wù)的處理時間和當(dāng)前時間的差值,確定出下一幀待渲染畫面幀對應(yīng)的處理任務(wù);
12、從所述下一幀待渲染畫面幀對應(yīng)的處理任務(wù)中確定所述預(yù)加載任務(wù)。
13、可選的,所述方法還包括:
14、將所述預(yù)加載任務(wù)添加到任務(wù)隊(duì)列中;
15、所述控制目標(biāo)線程立即執(zhí)行所述預(yù)加載任務(wù),包括:
16、控制所述目標(biāo)線程從所述任務(wù)隊(duì)列中讀取所述預(yù)加載任務(wù)、并執(zhí)行所讀取的預(yù)加載任務(wù)。
17、可選的,在所述目標(biāo)線程執(zhí)行所讀取的預(yù)加載任務(wù)之后,所述方法還包括:
18、將所述已執(zhí)行的預(yù)加載任務(wù)從所述任務(wù)隊(duì)列中刪除。
19、可選的,所述方法還包括:
20、響應(yīng)于目標(biāo)計(jì)時器計(jì)數(shù)達(dá)到預(yù)設(shè)數(shù)值,所述主線程讀取所述任務(wù)隊(duì)列,所述目標(biāo)計(jì)時器計(jì)數(shù)達(dá)到預(yù)設(shè)數(shù)值,指示當(dāng)前時刻與所述主線程開始執(zhí)行所述當(dāng)前待渲染畫面幀對應(yīng)的處理任務(wù)的起始時刻之間的時間差達(dá)到預(yù)設(shè)時間差值;
21、響應(yīng)于所述任務(wù)隊(duì)列中存在任務(wù),則所述主線程執(zhí)行所述任務(wù)隊(duì)列中的任務(wù);
22、或者,
23、響應(yīng)于所述任務(wù)隊(duì)列中不存在任務(wù),所述主線程從預(yù)設(shè)存儲空間中讀取任務(wù)并執(zhí)行,所述預(yù)設(shè)存儲空間中存儲有至少一個待渲染畫面幀對應(yīng)的處理任務(wù)。
24、第二方面,本技術(shù)實(shí)施例提供了一種基于畫面渲染的任務(wù)處理裝置,所述裝置包括:
25、監(jiān)測單元,用于監(jiān)測主線程執(zhí)行當(dāng)前待渲染畫面幀對應(yīng)的處理任務(wù);
26、獲取單元,用于獲取下一幀待渲染畫面幀對應(yīng)的處理任務(wù)中的部分或者全部任務(wù)作為預(yù)加載任務(wù);
27、控制單元,用于響應(yīng)于監(jiān)測到所述當(dāng)前待渲染畫面幀對應(yīng)的處理任務(wù)執(zhí)行結(jié)束,控制目標(biāo)線程立即執(zhí)行所述預(yù)加載任務(wù),所述目標(biāo)線程包括所述主線程和/或子線程。
28、可選的,所述處理任務(wù)包括輸入類型的任務(wù)、動畫類型的任務(wù)、遍歷類型的任務(wù)和提交類型的任務(wù);
29、所述監(jiān)測單元,用于:利用預(yù)先創(chuàng)建的提交類型的監(jiān)測任務(wù)監(jiān)測所述主線程執(zhí)行當(dāng)前待渲染畫面幀對應(yīng)的處理任務(wù);
30、所述控制單元,用于:響應(yīng)于監(jiān)測到所述監(jiān)測任務(wù)被觸發(fā),控制目標(biāo)線程立即執(zhí)行所述預(yù)加載任務(wù),所述目標(biāo)線程包括所述主線程和/或子線程。
31、可選的,所述獲取單元,用于:
32、從預(yù)設(shè)存儲空間中獲取若干個處理任務(wù),所述預(yù)設(shè)存儲空間中存儲有至少一個待渲染畫面幀對應(yīng)的處理任務(wù);
33、基于所述若干個處理任務(wù)的處理時間和當(dāng)前時間的差值,確定出下一幀待渲染畫面幀對應(yīng)的處理任務(wù);
34、從所述下一幀待渲染畫面幀對應(yīng)的處理任務(wù)中確定所述預(yù)加載任務(wù)。
35、可選的,所述裝置還包括:
36、添加單元,用于將所述預(yù)加載任務(wù)添加到任務(wù)隊(duì)列中;
37、所述控制單元,用于:
38、控制所述目標(biāo)線程從所述任務(wù)隊(duì)列中讀取所述預(yù)加載任務(wù)、并執(zhí)行所讀取的預(yù)加載任務(wù)。
39、可選的,所述裝置還包括:
40、刪除單元,用于在所述目標(biāo)線程執(zhí)行所讀取的預(yù)加載任務(wù)之后,將所述已執(zhí)行的預(yù)加載任務(wù)從所述任務(wù)隊(duì)列中刪除。
41、可選的,所述裝置還包括:讀取單元和處理單元;
42、所述讀取單元,用于響應(yīng)于目標(biāo)計(jì)時器計(jì)數(shù)達(dá)到預(yù)設(shè)數(shù)值,所述主線程讀取所述任務(wù)隊(duì)列,所述目標(biāo)計(jì)時器計(jì)數(shù)達(dá)到預(yù)設(shè)數(shù)值,指示當(dāng)前時刻與所述主線程開始執(zhí)行所述當(dāng)前待渲染畫面幀對應(yīng)的處理任務(wù)的起始時刻之間的時間差達(dá)到預(yù)設(shè)時間差值;
43、所述處理單元,用于:
44、響應(yīng)于所述任務(wù)隊(duì)列中存在任務(wù),則所述主線程執(zhí)行所述任務(wù)隊(duì)列中的任務(wù);或者,響應(yīng)于所述任務(wù)隊(duì)列中不存在任務(wù),所述主線程從預(yù)設(shè)存儲空間中讀取任務(wù)并執(zhí)行,所述預(yù)設(shè)存儲空間中存儲有至少一個待渲染畫面幀對應(yīng)的處理任務(wù)。
45、第三方面,本技術(shù)實(shí)施例提供了一種設(shè)備,所述設(shè)備包括處理器和存儲器;
46、所述處理器用于執(zhí)行所述存儲器中存儲的指令,以使得所述設(shè)備執(zhí)行以上第一方面任一項(xiàng)所述的方法。
47、第四方面,本技術(shù)實(shí)施例提供了一種計(jì)算機(jī)可讀存儲介質(zhì),包括指令,所述指令指示設(shè)備執(zhí)行以上第一方面任一項(xiàng)所述的方法。
48、第五方面,本技術(shù)實(shí)施例提供了一種計(jì)算機(jī)程序產(chǎn)品,當(dāng)所述計(jì)算機(jī)程序產(chǎn)品在計(jì)算機(jī)上運(yùn)行時,使得計(jì)算機(jī)執(zhí)行以上第一方面任一項(xiàng)所述的方法。
49、與現(xiàn)有技術(shù)相比,本技術(shù)實(shí)施例具有以下優(yōu)點(diǎn):
50、本技術(shù)實(shí)施例提供了一種基于畫面渲染的任務(wù)處理方法,在一個示例中,該方法可以應(yīng)用于客戶端。在一個示例中,客戶端可以監(jiān)測主線程執(zhí)行當(dāng)前帶渲染畫面幀對應(yīng)的處理任務(wù)。所述客戶端還可以獲取下一幀待渲染畫面幀對應(yīng)的處理任務(wù)中的部分或者全部任務(wù)作為預(yù)加載任務(wù)??蛻舳丝梢栽诒O(jiān)測到所述當(dāng)前待渲染畫面幀對應(yīng)的處理任務(wù)執(zhí)行結(jié)束的情況下,響應(yīng)于所述當(dāng)前待渲染畫面幀對應(yīng)的處理任務(wù)執(zhí)行結(jié)束,控制目標(biāo)線程立即執(zhí)行所述預(yù)加載任務(wù),其中,所述目標(biāo)線程可以包括所述主線程和/或子線程。由此可見,利用本方案,預(yù)加載任務(wù)無需在所述當(dāng)前待渲染畫面幀對應(yīng)的處理任務(wù)執(zhí)行結(jié)束之后再等待一定時間再被執(zhí)行,而是在所述當(dāng)前待渲染畫面幀對應(yīng)的處理任務(wù)執(zhí)行結(jié)束之后立即被執(zhí)行。也就是說,本方案提前了預(yù)加載任務(wù)的執(zhí)行時間,相應(yīng)的,可以提升畫面渲染的效率,從而提升畫面展示的流暢度。