realitix / pyvma

Python Wrapper for VulkanMemoryAllocator

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PyVma can't work with its dependancy vulkan

realitix opened this issue · comments

Sadly this module can't work for now because of a missing feature of CFFI.
This line locks me.
I tried to bypass it and I finally managed to compile my extension but when I load the module, I got:

ImportError: while loading _pyvmamodule: failed to import ffi, lib from vulkan._vulkancache

Of course, _vulkancache is a cdef cache so you can't import lib from it.

If it was part of the vulkan module proper, instead of its own thing, it should "just work". I admit that pyvma does not quite belong there as not everyone will need it, but as cffi is not made to facilitate separate modules, that may just be the best option.

Hi Fabian. I managed to make it work with a small workaround. I cast the struct to void*. I will release a proper version of pyvma in the next days. Follow the commits ;-)

You can try it again now.
It's not fully tested but it's a work in progreee

Took a while for me to take a look, sorry.

Failing on MSVC now, it seems:

E:\pyvma-master> py -3.6 .\setup.py install
running install
running bdist_egg
running egg_info
creating pyvma.egg-info
writing pyvma.egg-info\PKG-INFO
writing dependency_links to pyvma.egg-info\dependency_links.txt
writing requirements to pyvma.egg-info\requires.txt
writing top-level names to pyvma.egg-info\top_level.txt
writing manifest file 'pyvma.egg-info\SOURCES.txt'
reading manifest file 'pyvma.egg-info\SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'pyvma.egg-info\SOURCES.txt'
installing library code to build\bdist.win-amd64\egg
running install_lib
running build_py
creating build
creating build\lib.win-amd64-3.6
creating build\lib.win-amd64-3.6\pyvma
copying pyvma\__init__.py -> build\lib.win-amd64-3.6\pyvma
creating build\lib.win-amd64-3.6\pyvma\pyvma_build
copying pyvma\pyvma_build\vk_mem_alloc.h -> build\lib.win-amd64-3.6\pyvma\pyvma_build
creating build\lib.win-amd64-3.6\pyvma\pyvma_build\cdef
copying pyvma\pyvma_build\cdef\vk_mem_alloc.cdef.h -> build\lib.win-amd64-3.6\pyvma\pyvma_build\cdef
creating build\lib.win-amd64-3.6\pyvma\pyvma_build\include
creating build\lib.win-amd64-3.6\pyvma\pyvma_build\include\vulkan
copying pyvma\pyvma_build\include\vulkan\vulkan.h -> build\lib.win-amd64-3.6\pyvma\pyvma_build\include\vulkan
running build_ext
generating cffi module 'build\\temp.win-amd64-3.6\\Release\\_pyvma.c'
creating build\temp.win-amd64-3.6
creating build\temp.win-amd64-3.6\Release
building '_pyvma' extension
creating build\temp.win-amd64-3.6\Release\build
creating build\temp.win-amd64-3.6\Release\build\temp.win-amd64-3.6
creating build\temp.win-amd64-3.6\Release\build\temp.win-amd64-3.6\Release
E:\Visual Studio 2017 Community\VC\Tools\MSVC\14.11.25503\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD "-IC:\Program Files\Python36\include" "-IC:\Program Files\Python36\include" "-IE:\Visual Studio 2017 Community\VC\Tools\MSVC\14.11.25503\ATLMFC\include" "-IE:\Visual Studio 2017 Community\VC\Tools\MSVC\14.11.25503\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\winrt" /Tcbuild\temp.win-amd64-3.6\Release\_pyvma.c /Fobuild\temp.win-amd64-3.6\Release\build\temp.win-amd64-3.6\Release\_pyvma.obj -IE:\pyvma-master\pyvma\pyvma_build\include
_pyvma.c
build\temp.win-amd64-3.6\Release\_pyvma.c(9371): error C2143: syntax error: missing ')' before '*'
build\temp.win-amd64-3.6\Release\_pyvma.c(9371): error C2143: syntax error: missing '{' before '*'
build\temp.win-amd64-3.6\Release\_pyvma.c(9371): error C2059: syntax error: ')'
build\temp.win-amd64-3.6\Release\_pyvma.c(9372): error C2054: expected '(' to follow 'p'
build\temp.win-amd64-3.6\Release\_pyvma.c(9377): error C2061: syntax error: identifier '__fsid_t'
build\temp.win-amd64-3.6\Release\_pyvma.c(9377): error C2059: syntax error: '}'
build\temp.win-amd64-3.6\Release\_pyvma.c(14991): warning C4133: 'function': incompatible types - from 'unsigned long *' to 'size_t *'
build\temp.win-amd64-3.6\Release\_pyvma.c(15043): warning C4133: 'function': incompatible types - from 'unsigned long *' to 'size_t *'
build\temp.win-amd64-3.6\Release\_pyvma.c(15292): warning C4028: formal parameter 2 different from declaration
build\temp.win-amd64-3.6\Release\_pyvma.c(15292): warning C4028: formal parameter 3 different from declaration
build\temp.win-amd64-3.6\Release\_pyvma.c(15293): warning C4028: formal parameter 3 different from declaration
build\temp.win-amd64-3.6\Release\_pyvma.c(15293): warning C4028: formal parameter 4 different from declaration
build\temp.win-amd64-3.6\Release\_pyvma.c(15295): warning C4028: formal parameter 2 different from declaration
build\temp.win-amd64-3.6\Release\_pyvma.c(15296): warning C4028: formal parameter 2 different from declaration
build\temp.win-amd64-3.6\Release\_pyvma.c(15648): warning C4133: 'initializing': incompatible types - from 'const VkDeviceSize **' to 'const unsigned long **'
build\temp.win-amd64-3.6\Release\_pyvma.c(15680): warning C4028: formal parameter 4 different from declaration
build\temp.win-amd64-3.6\Release\_pyvma.c(15681): warning C4028: formal parameter 4 different from declaration
build\temp.win-amd64-3.6\Release\_pyvma.c(15751): warning C4028: formal parameter 3 different from declaration
build\temp.win-amd64-3.6\Release\_pyvma.c(15751): warning C4028: formal parameter 4 different from declaration
build\temp.win-amd64-3.6\Release\_pyvma.c(15753): warning C4028: formal parameter 4 different from declaration
build\temp.win-amd64-3.6\Release\_pyvma.c(15754): warning C4028: formal parameter 4 different from declaration
build\temp.win-amd64-3.6\Release\_pyvma.c(16376): error C2065: '__fsid_t': undeclared identifier
build\temp.win-amd64-3.6\Release\_pyvma.c(16376): error C2059: syntax error: ')'
build\temp.win-amd64-3.6\Release\_pyvma.c(16381): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16384): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16387): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16390): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16393): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16396): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16399): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16402): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16405): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16408): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16411): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16414): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16417): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16420): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16423): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16426): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16429): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16432): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16435): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16438): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16441): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16444): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16447): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16450): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16453): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16456): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16459): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16462): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16465): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16468): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16471): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16474): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16477): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16480): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16483): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16486): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16489): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16492): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16495): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16498): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16501): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16504): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16507): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16510): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16513): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16516): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16519): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16522): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16525): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16528): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16531): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16534): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16537): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16540): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16543): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16546): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16549): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16552): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16555): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16558): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16561): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16564): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16567): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16570): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16573): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16576): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16579): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16582): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16585): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16588): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16591): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16594): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16597): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16600): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16603): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16606): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16609): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16612): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16615): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16618): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16621): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16624): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16627): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16630): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16633): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16636): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16639): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16642): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16645): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16648): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16651): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16654): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16657): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16657): fatal error C1003: error count exceeds 100; stopping compilation
error: command 'E:\\Visual Studio 2017 Community\\VC\\Tools\\MSVC\\14.11.25503\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2

Can you try again, it should be ok now