SPIRV-Cross/shaders-no-opt/asm/rgen/acceleration-nonuniform.spv14.vk.nocompat.asm.rgen
2021-01-22 13:13:56 +01:00

113 lines
5.0 KiB
Plaintext

; SPIR-V
; Version: 1.4
; Generator: Khronos Glslang Reference Front End; 10
; Bound: 73
; Schema: 0
OpCapability RayTracingKHR
OpCapability ShaderNonUniform
OpCapability RuntimeDescriptorArray
OpExtension "SPV_EXT_descriptor_indexing"
OpExtension "SPV_KHR_ray_tracing"
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint RayGenerationNV %main "main" %gl_LaunchIDEXT %gl_LaunchSizeEXT %as %payload %image
OpSource GLSL 460
OpSourceExtension "GL_EXT_nonuniform_qualifier"
OpSourceExtension "GL_EXT_ray_tracing"
OpName %main "main"
OpName %col "col"
OpName %origin "origin"
OpName %gl_LaunchIDEXT "gl_LaunchIDEXT"
OpName %gl_LaunchSizeEXT "gl_LaunchSizeEXT"
OpName %direction "direction"
OpName %as "as"
OpName %payload "payload"
OpName %image "image"
OpDecorate %gl_LaunchIDEXT BuiltIn LaunchIdNV
OpDecorate %gl_LaunchSizeEXT BuiltIn LaunchSizeNV
OpDecorate %as DescriptorSet 0
OpDecorate %as Binding 1
OpDecorate %51 NonUniform
OpDecorate %payload Location 0
OpDecorate %image DescriptorSet 0
OpDecorate %image Binding 0
%void = OpTypeVoid
%3 = OpTypeFunction %void
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Function_v4float = OpTypePointer Function %v4float
%float_0 = OpConstant %float 0
%float_1 = OpConstant %float 1
%12 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
%v3float = OpTypeVector %float 3
%_ptr_Function_v3float = OpTypePointer Function %v3float
%uint = OpTypeInt 32 0
%v3uint = OpTypeVector %uint 3
%_ptr_Input_v3uint = OpTypePointer Input %v3uint
%gl_LaunchIDEXT = OpVariable %_ptr_Input_v3uint Input
%uint_0 = OpConstant %uint 0
%_ptr_Input_uint = OpTypePointer Input %uint
%gl_LaunchSizeEXT = OpVariable %_ptr_Input_v3uint Input
%uint_1 = OpConstant %uint 1
%float_n1 = OpConstant %float -1
%41 = OpConstantComposite %v3float %float_0 %float_0 %float_n1
%42 = OpTypeAccelerationStructureKHR
%_runtimearr_42 = OpTypeRuntimeArray %42
%_ptr_UniformConstant__runtimearr_42 = OpTypePointer UniformConstant %_runtimearr_42
%as = OpVariable %_ptr_UniformConstant__runtimearr_42 UniformConstant
%_ptr_UniformConstant_42 = OpTypePointer UniformConstant %42
%uint_255 = OpConstant %uint 255
%float_1000 = OpConstant %float 1000
%int = OpTypeInt 32 1
%int_0 = OpConstant %int 0
%_ptr_RayPayloadNV_float = OpTypePointer RayPayloadNV %float
%payload = OpVariable %_ptr_RayPayloadNV_float RayPayloadNV
%_ptr_Function_float = OpTypePointer Function %float
%63 = OpTypeImage %float 2D 0 0 0 2 Rgba8
%_ptr_UniformConstant_63 = OpTypePointer UniformConstant %63
%image = OpVariable %_ptr_UniformConstant_63 UniformConstant
%v2uint = OpTypeVector %uint 2
%v2int = OpTypeVector %int 2
%main = OpFunction %void None %3
%5 = OpLabel
%col = OpVariable %_ptr_Function_v4float Function
%origin = OpVariable %_ptr_Function_v3float Function
%direction = OpVariable %_ptr_Function_v3float Function
OpStore %col %12
%22 = OpAccessChain %_ptr_Input_uint %gl_LaunchIDEXT %uint_0
%23 = OpLoad %uint %22
%24 = OpConvertUToF %float %23
%26 = OpAccessChain %_ptr_Input_uint %gl_LaunchSizeEXT %uint_0
%27 = OpLoad %uint %26
%28 = OpConvertUToF %float %27
%29 = OpFDiv %float %24 %28
%31 = OpAccessChain %_ptr_Input_uint %gl_LaunchIDEXT %uint_1
%32 = OpLoad %uint %31
%33 = OpConvertUToF %float %32
%34 = OpAccessChain %_ptr_Input_uint %gl_LaunchSizeEXT %uint_1
%35 = OpLoad %uint %34
%36 = OpConvertUToF %float %35
%37 = OpFDiv %float %33 %36
%38 = OpCompositeConstruct %v3float %29 %37 %float_1
OpStore %origin %38
OpStore %direction %41
%46 = OpAccessChain %_ptr_Input_uint %gl_LaunchIDEXT %uint_0
%47 = OpLoad %uint %46
%48 = OpCopyObject %uint %47
%50 = OpAccessChain %_ptr_UniformConstant_42 %as %48
%51 = OpLoad %42 %50
%53 = OpLoad %v3float %origin
%54 = OpLoad %v3float %direction
OpTraceRayKHR %51 %uint_0 %uint_255 %uint_0 %uint_1 %uint_0 %53 %float_0 %54 %float_1000 %payload
%60 = OpLoad %float %payload
%62 = OpAccessChain %_ptr_Function_float %col %uint_1
OpStore %62 %60
%66 = OpLoad %63 %image
%68 = OpLoad %v3uint %gl_LaunchIDEXT
%69 = OpVectorShuffle %v2uint %68 %68 0 1
%71 = OpBitcast %v2int %69
%72 = OpLoad %v4float %col
OpImageWrite %66 %71 %72
OpReturn
OpFunctionEnd