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.