Open joscha-alisch opened 4 years ago
Hi joscha,
yeah, I also experienced lately those crashes. I wasnt getting any before.
I'm not sure exactly where the problem lies, however I'm going with another better approach: we keep everything on jvm until we have to interface the vulkan api natively. At that point we push all the jvm resources to the native memory-stack,
You can see it in action here.
I got the idea from playing with Swift, they implement a very similar concept with c strings: you are given a valid pointer to the underlaying char array which is assured to be valid for the whole closure/lambda. Everything is on Swift side until you have to interface c.
I'm using that same project as lab, but once finished I'll port all the work back to vk², hopefully in a few days
If you have any feedback, I'm here
ps: I'm also testing type safety for a couple of flag masks, let's see how that plays out
but once finished I'll port all the work back to vk²
Sounds good, looking forward to it 👍
I might push some PRs your way afterwards if it's fine. I've noticed some of the "convenience" functions missing where you don't have to deal with buffers yourself. But I'll wait until you've done that refactoring, it would probably be double the work otherwise :)
Pushed, tmp branch
relevant:
MemoryStack
to malloc/calloc primitives (default to size 1) and various buffers and plain pointers (also with nice build dsl, eg: stack.IntAdr(size) { init(it) }
or stack.IntBuffer(size) { init(it) }
get/set
operators with the right offset based on the type of the pointerI'm eager to gather feedbacks, I'll send you an invite for the PRs
vk10 is complete (always tmp
branch)
Hi @elect86 , sorry didn't have a chance to take a look yet. Will hopefully get to it on the weekend!
Hi @joscha-alisch, news?
Hi Folks,
I believe there is a bug with the priorities float buffer allocation in vk.DeviceQueueCreateInfo.
When doing the following the creation of a logical device fails with a SIGSEGV:
Results in
However, when I push the float buffer myself, everything works fine: