Forum Discussion

🚨 This forum is archived and read-only. To submit a forum post, please visit our new Developer Forum. 🚨
Anonymous's avatar
Anonymous
5 years ago

Does vkCreateComputePipelines() actually work on Quest ?

Hi,
it's months now I am working on some graphic engine vulkan based that I am developing/testing "in parallel" between PC and Quest ( they share a very common codebase ).

Recently, I started working with Compute Shaders but apparently I hit a weird obstacle,even "extremely basic stuff" that works perfectly on a PC it would appear can't make it work on Quest, any time - no matter what - I try to create a Compute Pipeline calling something like :

result = vkCreateComputePipelines(DeviceParams.device, VK_NULL_HANDLE, 1,
&computePipelineCreateInfo, nullptr, the_pipeline);



I always get a thing like :

Signal = SIGSEGV ( signal SIGSEVG : invalid address ( fault address 0x3df8e9be534709) )

Besides that "fault address" seems to be always the same.

Unfortunately there's NO Vulkan sample about "compute shader use" in the Quest SDK, I tried to "use a reference" the QualComm Adreno SDK but "it's not really made for quest". However even trying to put into my stuff their "extremely simple" compute shader with their settings seems to create the same problem.

I tried various things, it almost looks like "does not really matter what parameters you pass in", it's like something does not really want to work with that vkCreateComputePipelines.

I'd appreciate if you have any clue you could give me to look at, I am trying to debug this situation to not much avail, what I am quite certain of is :

- the SPIRV compiled code should be ok
- descriptors and layout too

Anyway if maybe in a future the Vulkan samples could contain some compute shader example that would be very helpful.

Cheers.

1 Reply

  • Anonymous's avatar
    Anonymous
    Hi,

    actually yes, it does, I found what was an error of mine.

    The two things mentioned above in fact were correct, the problem wasn't there.

    Now performance speaking .. still investigating, I do have some better performance by using some CS in place of a VS ( avoiding some duplication issues ) but overall it's not that much better than what I was hoping.

    Also it seems Qualcomm warns "beware of using SBOs" because they don't work that good compared to UBOs ..

    Hum ..