Open6

yuniframeメンテナンスまつり(SDL2, SPIRV, ANGLE)

okuokuokuoku

とりあえずWindows上で移行できてからmac/iOSに挑戦する作戦で行く。残念ながらANGLEとSPIRVは同時に更新する必要があるようだ。

okuokuokuoku

SDL2のためにinstall prefixを定義する

適当でも良いので CMAKE_INSTALL_PREFIX が絶対パスで定義されていないとビルドに失敗するようだ。ドキュメント的には絶対パスでなければならないという風にはなっていないが、まぁ普通は絶対パスだろうということで適当に定義。。CMake側の install コマンドは一切使わない予定なので適当でOK。

-- Looking for shellscalingapi.h - found
CMake Error at yfrm/ext/platform/SDL/CMakeLists.txt:3041 (file):
  file RELATIVE_PATH must be passed a full path to the directory: install/bin

https://github.com/okuoku/em2native-proto/commit/0bf7a1b293b851218bc60d8144efb465e828229f

okuokuokuoku

glslangのデフォルトリソースにAPIができた

従来は内部の定数 glslang::DefaultTBuiltInResource に直接アクセスしていたが、これが廃止され専用のAPI GetDefaultResources が用意された。

shxm_glslang.obj : error LNK2001: unresolved external symbol "struct TBuiltInResource const glslang::DefaultTBuiltInResource" (?DefaultTBuiltInResource@glslang@@3UTBuiltInResource@@B) [F:\yfrm22\em2c-win64-tracker-vulkan\em2app.vcxproj]
F:\yfrm22\em2c-win64-tracker-vulkan\Debug\em2app.exe : fatal error LNK1120: 1 unresolved externals [F:\yfrm22\em2c-win64-tracker-vulkan\em2app.vcxproj]

https://github.com/KhronosGroup/glslang/commit/90c5214344bc9ec0e7c5cc09e86dad82b8b7abc9

というわけでそれを使う。

https://github.com/okuoku/yuniframe/commit/46b22acbc1f059705073ad4d9be419bbf0ac27a6

okuokuokuoku

VulkanMemoryAllocatorのメジャーバージョンアップ

ディレクトリ配置が変わった

https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/commit/59ec0809a7176ce6b9fa3d6341b477102ac3d3aa

まぁ以前のディレクトリ配置では Tests.h とかが同じディレクトリにあったからなぁ。。というわけで本体が include に移動された。

API変更

ANGLE内で ANGLE_VMA_VERSION があるようなので適当に設定する。Buddyアロケータが廃止され、デフォルトはTLSFになった。

okuokuokuoku

ANGLEはC++17 / C++20になった

C:\cygwin64\home\oku\repos\em2c\yfrm\ext\cwgl\angle\src\compiler/translator/Common.h(268,31): error C2039: 'string_view': is not a member of 'std' (compiling source file C:\cygwin64\home\oku\repos\em2c\yfrm\ext\cwgl\angle\src\compiler\translator\Symbol.cpp) [F:\yfrm22\em2c-win64-angle-dx11\yfrm\angle\angle_static.vcxproj]

https://github.com/google/angle/commit/a48a2c7a277ad5d9a69e2f830ffc730e3cb6af77

... C++20の指定はどこでしてるんだ。。?とりあえず C++17 にしておく。Xcodeでどうなるかだな。。

https://github.com/okuoku/angle-static-cmake/blob/4976cdc644dc52060cf9792968cb7c16acfa51d7/CMakeLists.txt#L170

ここまでで、VS2022では正常にビルド & 動作するようになった。