Vulkan driver crashing while creating compute pipeline due to function call in compute shader

Hey I couldn’t find where to submit driver bugs - only GameWorks bugs - so I’m posting this here (the NVIDIA dev portal is quite difficult to navigate). I’m getting a crash in nvoglv64.dll when creating a compute pipeline. It’s crashing only when a specific function is included in the compute shader via latest glslang:

void d_get_xy_begin_end(vec2 v0, vec2 v1, out ivec4 result)
{
	// result xbegin = x, ybegin = y, xend = z, yend = w

	if(v0.x <= v1.x)
	{
		result.x = d_float2int_rd(v0.x, _INOVAE_UI_FRAG_SIZE) + _INOVAE_UI_FRAG_SIZE;
		result.z = d_float2int_rd(v1.x, _INOVAE_UI_FRAG_SIZE);
	}
	else
	{
		result.x = d_float2int_rd(v1.x, _INOVAE_UI_FRAG_SIZE) + _INOVAE_UI_FRAG_SIZE;
		result.z = d_float2int_rd(v0.x, _INOVAE_UI_FRAG_SIZE);
	}

	if(v0.y <= v1.y)
	{
		result.y = d_float2int_rd(v0.y, _INOVAE_UI_FRAG_SIZE) + _INOVAE_UI_FRAG_SIZE;
		result.w = d_float2int_rd(v1.y, _INOVAE_UI_FRAG_SIZE);
	}
	else
	{
		result.y = d_float2int_rd(v1.y, _INOVAE_UI_FRAG_SIZE) + _INOVAE_UI_FRAG_SIZE;
		result.w = d_float2int_rd(v0.y, _INOVAE_UI_FRAG_SIZE);
	}
}

If I remove the sole call to this function the compute pipeline is then created without problem. If I make the function empty except for the assignment of result to (0,0,0,0):

void d_get_xy_begin_end(vec2 v0, vec2 v1, out ivec4 result)
{
	// result xbegin = x, ybegin = y, xend = z, yend = w

	result = ivec4(0,0,0,0);
}

It still crashes. If I make it:

ivec4 d_get_xy_begin_end(vec2 v0, vec2 v1)
{
	// result xbegin = x, ybegin = y, xend = z, yend = w

	return ivec4(0,0,0,0);
}

or change the type from ivec4 to vec4 it still crashes. I’m running Vulkan 1.39.1 on Windows 10 x64 with driver 378.49. Here’s the callstack:

nvoglv64.dll!00000000518a939f()	Unknown
 	nvoglv64.dll!00000000518afe6a()	Unknown
 	nvoglv64.dll!00000000518b1271()	Unknown
 	nvoglv64.dll!000000005187fbac()	Unknown
 	nvoglv64.dll!00000000518b57a5()	Unknown
 	nvoglv64.dll!0000000051ae754a()	Unknown
 	nvoglv64.dll!0000000051cde05a()	Unknown
 	nvoglv64.dll!000000005187fcc2()	Unknown
 	nvoglv64.dll!0000000051885cb0()	Unknown
 	nvoglv64.dll!00000000518827f1()	Unknown
 	nvoglv64.dll!0000000051666edb()	Unknown
 	nvoglv64.dll!000000005166f6e9()	Unknown
 	nvoglv64.dll!0000000051671a49()	Unknown
 	nvoglv64.dll!000000005201ad16()	Unknown
 	nvoglv64.dll!00000000520205fe()	Unknown
 	nvoglv64.dll!000000005201f866()	Unknown
 	nvoglv64.dll!000000005254ce3e()	Unknown
 	nvoglv64.dll!0000000052548f6b()	Unknown
 	nvoglv64.dll!0000000052544877()	Unknown
 	nvoglv64.dll!000000005255317b()	Unknown
 	nvoglv64.dll!000000005253bd7d()	Unknown
 	VkLayer_unique_objects.dll!00007ff934e214a6()	Unknown
 	VkLayer_core_validation.dll!00007ff92311e607()	Unknown
 	VkLayer_object_tracker.dll!00007ff9255015fc()	Unknown
 	VkLayer_parameter_validation.dll!00007ff923f783dc()	Unknown
 	VkLayer_threading.dll!00007ff949329a3c()	Unknown

Access violation reading location 0x000000000000006C.

I can provide a minidump and a copy of the shader, I just need to know where to send it.