Using driver 610.52 on a 4080, OpHitObjectGetCurrentTimeEXT (and OpHitObjectGetCurrentTimeNV) do not appear to work correctly and always seems to return 0. Probably incorrect code is being generated in the driver because trying to do any conditionals based on the result cause strange and inconsistent effects.
If I instead calculate the hit distance a different way (for example by storing it from an invoked shader, or calculating it based on interpolated geometry position) then I get the correct result.
An example shader which always seems to output 0 (the same shader using HitObject in D3D12 works fine):
; SPIR-V
; Version: 1.4
; Generator: Google spiregg; 0
; Bound: 511
; Schema: 0
OpCapability RayQueryKHR
OpCapability RayTracingKHR
OpCapability RuntimeDescriptorArray
OpCapability SampledBuffer
OpCapability ShaderInvocationReorderEXT
OpExtension "SPV_KHR_ray_query"
OpExtension "SPV_KHR_ray_tracing"
OpExtension "SPV_EXT_descriptor_indexing"
OpExtension "SPV_EXT_shader_invocation_reorder"
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint RayGenerationKHR %3 "InspectBVH" %4 %5 %6 %7 %8 %9
OpDecorate %5 BuiltIn LaunchIdKHR
OpDecorate %7 BuiltIn LaunchSizeKHR
OpDecorate %8 DescriptorSet 2
OpDecorate %8 Binding 0
OpDecorate %6 DescriptorSet 1
OpDecorate %6 Binding 0
OpDecorate %9 DescriptorSet 3
OpDecorate %9 Binding 0
OpMemberDecorate %_struct_112 0 Offset 0
OpMemberDecorate %_struct_112 0 MatrixStride 16
OpMemberDecorate %_struct_112 0 RowMajor
OpMemberDecorate %_struct_112 1 Offset 64
OpMemberDecorate %_struct_112 2 Offset 76
OpMemberDecorate %_struct_112 3 Offset 80
OpDecorate %_struct_112 Block
%uint = OpTypeInt 32 0
%int = OpTypeInt 32 1
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
%int_3 = OpConstant %int 3
%float = OpTypeFloat 32
%float_0 = OpConstant %float 0
%float_1000 = OpConstant %float 1000
%uint_0 = OpConstant %uint 0
%uint_255 = OpConstant %uint 255
%float_1 = OpConstant %float 1
%float_0_5 = OpConstant %float 0.5
%v2float = OpTypeVector %float 2
%328 = OpConstantComposite %v2float %float_0_5 %float_0_5
%float_2 = OpConstant %float 2
%330 = OpConstantComposite %v2float %float_1 %float_1
%111 = OpTypeAccelerationStructureKHR
%_ptr_UniformConstant_111 = OpTypePointer UniformConstant %111
%v4float = OpTypeVector %float 4
%mat4v4float = OpTypeMatrix %v4float 4
%v3float = OpTypeVector %float 3
%_struct_112 = OpTypeStruct %mat4v4float %v3float %float %uint
%_ptr_Uniform__struct_112 = OpTypePointer Uniform %_struct_112
%113 = OpTypeImage %float 2D 2 0 0 2 Rgba32f
%_ptr_UniformConstant_113 = OpTypePointer UniformConstant %113
%v3uint = OpTypeVector %uint 3
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
%void = OpTypeVoid
%339 = OpTypeFunction %void
%_struct_114 = OpTypeStruct %float
%_ptr_RayPayloadKHR__struct_114 = OpTypePointer RayPayloadKHR %_struct_114
%_struct_115 = OpTypeStruct %v3float %float %v3float %float
%v2uint = OpTypeVector %uint 2
%116 = OpTypeHitObjectEXT
%_ptr_Function_116 = OpTypePointer Function %116
%_ptr_RayPayloadKHR_float = OpTypePointer RayPayloadKHR %float
%_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float
%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float
%_ptr_Uniform_uint = OpTypePointer Uniform %uint
%8 = OpVariable %_ptr_UniformConstant_111 UniformConstant
%6 = OpVariable %_ptr_Uniform__struct_112 Uniform
%9 = OpVariable %_ptr_UniformConstant_113 UniformConstant
%5 = OpVariable %_ptr_Input_v3uint Input
%7 = OpVariable %_ptr_Input_v3uint Input
%4 = OpVariable %_ptr_RayPayloadKHR__struct_114 RayPayloadKHR
%float_0_100000001 = OpConstant %float 0.100000001
%373 = OpUndef %v2float
%374 = OpUndef %_struct_115
%375 = OpUndef %v3float
%3 = OpFunction %void None %339
%376 = OpLabel
%377 = OpVariable %_ptr_Function_116 Function
%382 = OpAccessChain %_ptr_RayPayloadKHR_float %4 %int_0
OpStore %382 %float_0
%385 = OpLoad %v3uint %5
%387 = OpVectorShuffle %v2uint %385 %385 0 1
%391 = OpAccessChain %_ptr_Uniform_mat4v4float %6 %int_0
%393 = OpLoad %mat4v4float %391
%397 = OpAccessChain %_ptr_Uniform_v3float %6 %int_1
%399 = OpLoad %v3float %397
%407 = OpConvertUToF %v2float %387
%409 = OpFAdd %v2float %407 %328
%411 = OpLoad %v3uint %7
%413 = OpVectorShuffle %v2uint %411 %411 0 1
%415 = OpConvertUToF %v2float %413
%417 = OpFDiv %v2float %409 %415
%421 = OpVectorTimesScalar %v2float %417 %float_2
%423 = OpFSub %v2float %421 %330
%427 = OpCompositeExtract %float %423 1
%429 = OpFNegate %float %427
%433 = OpCompositeExtract %float %423 0
%435 = OpCompositeConstruct %v4float %433 %429 %float_0 %float_1
%437 = OpVectorTimesMatrix %v4float %435 %393
%441 = OpCompositeExtract %float %437 3
%443 = OpCompositeConstruct %v4float %441 %441 %441 %441
%445 = OpFDiv %v4float %437 %443
%451 = OpVectorShuffle %v3float %445 %445 0 1 2
%453 = OpFSub %v3float %451 %399
%455 = OpExtInst %v3float %1 Normalize %453
%467 = OpLoad %111 %8
%477 = OpAccessChain %_ptr_Uniform_uint %6 %int_3
%479 = OpLoad %uint %477
OpHitObjectTraceRayEXT %377 %467 %uint_0 %uint_255 %uint_0 %479 %uint_0 %399 %float_0 %455 %float_1000 %4
%500 = OpHitObjectGetCurrentTimeEXT %float %377
%502 = OpFMul %float %500 %float_0_100000001
%508 = OpCompositeConstruct %v4float %502 %502 %502 %float_1
%510 = OpLoad %113 %9
OpImageWrite %510 %387 %508 None
OpReturn
OpFunctionEnd