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