OpHitObjectGetCurrentTimeEXT doesn't appear to work correctly

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