Phyre LCUE with YEBIS cause issues about GS

minggoddess發表於2016-03-18

when LCUE enabled in phyreEngine

when Yebis integrated and render

there are two mainloopdraws in one frame

the inout stream of geometry shader in second mainloop will be changed from stripstream to pointstream

 

why.....

I used gfxcontext,ccb,dcb to add yebis in phyre.

this issue seems to have some relationship with ....these command buffers.

silicon回信說他們本來就是按照LQ 寫的不需要特殊處理。

今天抽空測了下,排除了之前的一種猜想,就是pass0 pass1 的資料結構不一樣 0深度1color

use pass1 only render to color target, the spots still there

 

LCUE shut down, the issue will be resolved

---------------------------------------

這個問題坑了我們幾個感覺有個月了,我們找方法規避了。

但silicon和客戶一直在跟進,我那天抽空看了下,發現雖然  razor裡面renderstate那摞都是一樣的,

commandbuffer裡面,就是batch的API list裡面,錯誤的地方少兩句命令setGsShader(),setEsShader(),經測試,也認為是command buffer不對

但上層phyre到sdk那裡,相關的命令都是對的。有發setgsshder()

 後來silicon也提到這兩句命令的差異。

這個問題錯的時候的表現就是,沒有呼叫setGsShader()調了updateGsShader(),或者什麼都沒呼叫,但是有關gs的其他mode之類的設定都有進行。

所以推斷是更底層的 gnmx gnm 的問題(gnmx 包gnm)

在yebis 裡面reapplyallstateForce(context)之後用lcue invilade gs es就好了.參考sdk3.5 sample

renderInterface.getContext().incalidateShaderStage(gnm::kShaderStageGs);Es;

---------------------------

這是個千古大bug

相關文章