Crash deep in nvoglv64.dll when calling vkCreateComputePipelines

Hi,
I’ve been struggling with a driver crash this week. I’m runnning on Windows 11 with a RTX 3080 card (driver version 576.80). I’m using Vulkan 1.3.296.0. The crash occurs when calling vkCreateComputePipelines with a shader which samples (using Load) from a usampler3D inside a loop. The shader compiles fine but crashes in vkCreateComputePipelines. If I remove the looping it doesn’t crash. The loop terminates using the result of the sampling within the loop, so it cannot be unrolled. There are no validation layer errors/warnings.

Any suggestions or advice would be much appreciated.

Are you properly synchronising with a feedback loop barrier?

Hi Sora, thanks for the reply. I’m not sure what there is to synchronise. The Vulkan functions vkCreateShaderModule and vkCreateComputePipelines are serial and do not take a command buffer, so there’s nothing to wait on. Can you explain what you mean please? Thanks.

@CodiesBP

  1. do you have any Vulkan Validation Error ?
  2. Can you provide The minimal demo project with minimal source code for debugging? It cann help us to invistigate problem
  3. do you have problem on AMD/Intel/Mobile GPU ?

Hi Andrey,

No, we don’t get any validation errors. Yes, I have created a minimal project which reproduces the issue. It was sent to Nvidia developer support in China but they have not been very helpful unfortunately. They said that the crash is happening in Parse SPIR-V, and they think it appears to be related to an if statement which always evaluates to true. This doesn’t really help us because the minimum repro sample shader has been chopped down a lot to make it minimal :-), and the statement is different in the full shader. It works fine on AMD.

I can only send the project to Nvidia as it’s a commercial project. I was hoping they would chip in here. Maybe I should contact developer support directly.

Bill.