記乙個glslang的bug

2021-10-25 04:17:27 字數 984 閱讀 6631

這個錯誤是在vulkan專案出現的,由vulkan的validation layer報出:

validation error: [ unassigned-corevalidation-shader-inconsistentspirv ] object 0: handle = 0x1c89eff0fd8, type = vk_object_type_device; | messageid = 0x6bbb14 | spir-v module not valid: inte***ces passed to opentrypoint must be of type optypevariable. found opfunctionparameter.

%texture = opfunctionparameter %_ptr_uniformconstant_71

看起來是shader的問題,根據呼叫堆疊找到對應的shader,搜尋關鍵字texture,找到這樣一段**:

ibl = evaluateibl(texture, ....)
其中,texture是乙個取樣器sampler:

layout(binding = 4) uniform sampler2d texture;
在這裡我把乙個sampler作為函式的引數傳入了,難道vulkan不支援將sampler作為函式的引數嗎?

一番搜尋後,在glslang的git repo找到這樣乙個commit:fix #2264: opentrypoint incorrectly including function parameters.

看起來是shader編譯器的乙個問題,應該是在最新版的sdk修復掉了。既然如此,解決方案就比較容易了:更新sdk

由於這個專案是採用了cmake自動化編譯流程,所以得刪除掉cmake的cache檔案:cmakecache.txt,然後檢查環境變數裡面vulkan sdk路徑已經指向了最新版的sdk,最後編譯,問題解決!

記乙個VTK8 0下的BUG

開發環境 win10 x64,vs2015,vtk8.1,qt5.8.0 報錯資訊 報錯nullper qvtkwidget的話是直接崩潰。解決方法 vtkrenderwindow在new之後還存在問題。原來是預設沒找到opengl2.0。加上下面這兩句搞定!include vtk module i...

記乙個bug定位與修復過程

flash程式,在前台修改之後,提供列印和email功能。這兩個功能都是把發到伺服器上,然後跳轉到email頁面和列印頁面。email頁面多做乙個動作,就是通過smtp把嵌入的html發出去。email和列印兩個過程對比圖如下 問題是,列印這個功能一切正常。而email功能,當成功傳送出去一張 之後...

微軟的乙個BUG

各位,我不知道我的這個發現屬不屬於微軟的乙個bug round 1.225,2 1.23 round 1.245,2 1.25 round 1.265,2 1.26 round 1.285,2 1.28 按照技術文章上說的,vb中round 函式屬於四捨五入函式,但實際執行當中,其實round 函式...